v1->v2 changes: * patch 4 rewrite: instead of todos implemented usage of pipe for cursor_set and cursor_move. * small fixes: (Hans de Goede) * fix introducing function in patch 1 and renaming it in patch 2. (s/qxl_create_vcpu_to_iothread_pipe/qxl_create_server_to_iothread_pipe/) * move prototype defined in patch 1 but used in patch 2 to patch 2. (qxl_vga_mode_get_command)
This patchset removes all uses of unlock/lock in qxl and spice code. It does this by reimplementing the one path that required a lock from the spice-server thread, namely interface_get_command when in vga mode or running without a qxl device. Incidentaly it fixes the assert(cpu_single_env) that happen in the unrelated qemu-kvm repository, because we never drop the global lock in io vmexits. Tested with winxp 32 bit and linux 64 bit vms, including changes between vga mode and qxl mode using chvt. Also tested -sdl and -vnc together with -spice. Alon Levy (3): qxl/spice-display: move pipe to ssd qxl/spice: remove qemu_mutex_{un,}lock_iothread around dispatcher hw/qxl-render: drop cursor locks, replace with pipe Uri Lublin (1): qxl: implement get_command in vga mode without locks hw/qxl-render.c | 25 ++++-- hw/qxl.c | 246 ++++++++++++++++++++++++++++++++++++++++++++-------- hw/qxl.h | 8 +- ui/spice-display.c | 20 +---- ui/spice-display.h | 16 ++++ 5 files changed, 251 insertions(+), 64 deletions(-) -- 1.7.4.1