[Spice-devel] [BUG] Spice Mouse Mode:client mode: save then restore

Zhou Peng ailvpeng25 at gmail.com
Thu Mar 8 02:19:48 PST 2012


= How to reproduce =
$ virsh create win7template.xml
$ virsh save win7template win7template.ckp
$ virsh restore win7template.ckp

= Phenomenon =
Unexpected:
Mouse works wrongly:
  * Seems many mouse click events delayed or discarded
  * Mouse icon position incorrect in coordinate
Expected:
  * keyboard works well
  * Mouse not captured

= VM config related in libvirt =
    <input type='tablet' bus='usb'/>
    <graphics type='spice' port='9999' listen='192.168.12.236'>
      <mouse mode='client'/>
    </graphics>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0'/>
      <address type='virtio-serial' controller='1' bus='0' port='3'/>
    </channel>
    <video>
      <model type='qxl' vram='65536' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
    </video>

    NB. Libvirt don't support <mouse mode='client'/> option at the
moment, patched[attached] by myself.
          It's equal to agent-mouse='off' in qemu-kvm argv

= Qemu log related =
2012-03-08 10:08:14.256+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
QEMU_AUDIO_DRV=spice /usr/bin/qemu-kvm -S -M pc-0.14 -cpu qemu32
-enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name
win7template -uuid 1696585d-307c-3e1e-815c-9849bb322dd1 -nodefconfig
-nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/win7template.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
-no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0x4 -drive
file=/home/ifs-repos/source/f2886f2f-800b-c232-8e4d-13404c6d96b5.img,if=none,id=drive-ide0-0-0,format=raw
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
-netdev tap,fd=14,id=hostnet0 -device
rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:27:ed:2f,bus=pci.0,addr=0x3
-chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=serial0 -chardev
spicevmc,id=charchannel0,name=vdagent -device
virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0
-device usb-tablet,id=input0 -spice
port=9999,tls-port=0,addr=192.168.12.236,agent-mouse=on,disable-ticketing,x509-dir=/etc/pki/libvirt-spice
-vga qxl -global qxl-vga.vram_size=67108864 -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
Domain id=20 is tainted: high-privileges
char device redirected to /dev/pts/0
do_spice_init: starting 0.10.0
spice_server_add_interface: SPICE_INTERFACE_KEYBOARD
spice_server_add_interface: SPICE_INTERFACE_MOUSE
spice_server_add_interface: SPICE_INTERFACE_QXL
red_worker_main: begin
ensure_display_channel_created: create display channel
ensure_cursor_channel_created: create cursor channel
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_main_link:
reds_disconnect:
reds_show_new_channel: channel 1:0, connected successfully, over Non Secure link
main_channel_link: add main channel client
reds_handle_main_link: NEW Client 0x7f0d78cf8370 mcc 0x7f0d78cf7660
connect-id 1804289383
main_channel_handle_parsed: net test: latency 1.098000 ms, bitrate
91204631 bps (86.979514 Mbps)
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 4:0, connected successfully, over Non Secure link
red_dispatcher_set_cursor_peer:
handle_dev_cursor_connect: cursor connect
red_connect_cursor: add cursor channel client
listen_to_new_client_channel: NEW ID = 0
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 2:0, connected successfully, over Non Secure link
red_dispatcher_set_display_peer:
handle_dev_display_connect: connect
handle_new_display_channel: add display channel client
handle_new_display_channel: New display (client 0x7f0d78cf8370) dcc
0x7f0d3406c260 stream 0x7f0d78d311b0
handle_new_display_channel: jpeg disabled
handle_new_display_channel: zlib-over-glz disabled
listen_to_new_client_channel: NEW ID = 0
reds_show_new_channel: channel 3:0, connected successfully, over Non Secure link
inputs_connect: inputs channel client create
display_channel_client_wait_for_init: creating encoder with id == 0
display_channel_release_item: not pushed (101)
spice_server_add_interface: SPICE_INTERFACE_TABLET
handle_dev_set_mouse_mode: mouse mode 2
spice_server_char_device_add_interface: CHAR_DEVICE vdagent
main_channel_handle_parsed: agent start
handle_dev_stop: stop
spice_server_migrate_switch:
reds_mig_switch: warning: reds_mig_switch called without migrate_info set
2012-03-08 10:09:11.281+0000: shutting down
qemu: terminating on signal 15 from pid 24610
2012-03-08 10:09:19.995+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
QEMU_AUDIO_DRV=spice /usr/bin/qemu-kvm -S -M pc-0.14 -cpu qemu32
-enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name
win7template -uuid 1696585d-307c-3e1e-815c-9849bb322dd1 -nodefconfig
-nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/win7template.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
-no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0x4 -drive
file=/home/ifs-repos/source/f2886f2f-800b-c232-8e4d-13404c6d96b5.img,if=none,id=drive-ide0-0-0,format=raw
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1
-netdev tap,fd=15,id=hostnet0 -device
rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:27:ed:2f,bus=pci.0,addr=0x3
-chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=serial0 -chardev
spicevmc,id=charchannel0,name=vdagent -device
virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0
-device usb-tablet,id=input0 -spice
port=9999,tls-port=0,addr=192.168.12.236,agent-mouse=on,disable-ticketing,x509-dir=/etc/pki/libvirt-spice
-vga qxl -global qxl-vga.vram_size=67108864 -incoming fd:13 -device
virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
Domain id=21 is tainted: high-privileges
char device redirected to /dev/pts/0
do_spice_init: starting 0.10.0
spice_server_add_interface: SPICE_INTERFACE_KEYBOARD
spice_server_add_interface: SPICE_INTERFACE_MOUSE
spice_server_add_interface: SPICE_INTERFACE_QXL
red_worker_main: begin
ensure_display_channel_created: create display channel
ensure_cursor_channel_created: create cursor channel
red_dispatcher_loadvm_commands:
handle_dev_loadvm_commands: loadvm_commands
spice_server_char_device_add_interface: CHAR_DEVICE vdagent
spice_server_add_interface: SPICE_INTERFACE_TABLET
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_main_link:
reds_disconnect:
reds_show_new_channel: channel 1:0, connected successfully, over Non Secure link
main_channel_link: add main channel client
reds_handle_main_link: NEW Client 0x7f9a988b2030 mcc 0x7f9a988b20a0
connect-id 1804289383
main_channel_handle_parsed: agent start
handle_dev_set_mouse_mode: mouse mode 2
main_channel_handle_parsed: net test: latency 1.091000 ms, bitrate
91571652 bps (87.329533 Mbps)
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 4:0, connected successfully, over Non Secure link
red_dispatcher_set_cursor_peer:
handle_dev_cursor_connect: cursor connect
red_connect_cursor: add cursor channel client
listen_to_new_client_channel: NEW ID = 0
reds_handle_read_link_done: Peer doesn't support AUTH selection
reds_show_new_channel: channel 2:0, connected successfully, over Non Secure link
red_dispatcher_set_display_peer:
handle_dev_display_connect: connect
handle_new_display_channel: add display channel client
handle_new_display_channel: New display (client 0x7f9a988b2030) dcc
0x7f9a9571c010 stream 0x7f9a988b1b40
handle_new_display_channel: jpeg disabled
handle_new_display_channel: zlib-over-glz disabled
listen_to_new_client_channel: NEW ID = 0
reds_show_new_channel: channel 3:0, connected successfully, over Non Secure link
inputs_connect: inputs channel client create
display_channel_client_wait_for_init: creating encoder with id == 0
display_channel_release_item: not pushed (101)
qemu: terminating on signal 15 from pid 24610
2012-03-08 10:09:40.006+0000: shutting down

= Related packages =
Guest:
win7:
vdagend-win32_20111124.zip
virtio-serial_20110725.zip
qxl-0.10-20112808.zip

Host:
3.2.5-3.fc16.x86_64
spice-server-0.10.0-1.fc16.x86_64
qemu-kvm-0.15.1-3.fc16.x86_64


Expecting to be fixed, thanks.
-- 
Zhou Peng
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libvirt-spice-agentmouse.v4.diff
Type: text/x-patch
Size: 9847 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20120308/1bdd91fd/attachment-0001.bin>


More information about the Spice-devel mailing list