Re: [Qemu-devel] [PATCH] usb-hid: activate usb tablet / mouse after migration.
On 16.10.2011 10:54, TeLeMan wrote: On Thu, Oct 13, 2011 at 18:48, Gerd Hoffmann wrote: On 10/13/11 04:09, TeLeMan wrote: On Wed, Oct 12, 2011 at 19:30, Gerd Hoffmannwrote: qemu uses the ps/2 mouse by default. The usb tablet (or mouse) is activated as soon as qemu sees some guest activity on the device, i.e. polling for HID events. That used to work fine for both fresh boot and migration. It does not fix usb tablet/mouse when starting vm directly from snapshot. What does "info mice" print before/after snapshotting? Which guest? WinXP IIRC? Yes, the guest is WinXP. Original: * Mouse #1: QEMU HID Tablet (absolute) Mouse #0: QEMU PS/2 Mouse Start from the snapshot: * Mouse #0: QEMU PS/2 Mouse Mouse #1: QEMU HID Tablet (absolute) The active mouse device is not be saved into the snapshot. it seems that the active mouse event receiver is messed up up after loading a vm. if you issue a 'mouse_set 1' in the qemu monitor the tablet should work again. can someone who is more familiar with the loadvm code check if the devices are just added in wrong order? thanks peter
Re: [Qemu-devel] [PATCH] usb-hid: activate usb tablet / mouse after migration.
On 21.10.2011 11:22, Gerd Hoffmann wrote: Hi, Original: * Mouse #1: QEMU HID Tablet (absolute) Mouse #0: QEMU PS/2 Mouse Start from the snapshot: * Mouse #0: QEMU PS/2 Mouse Mouse #1: QEMU HID Tablet (absolute) The active mouse device is not be saved into the snapshot. That shouldn't hurt though. When the guest polls the tablet the first time after starting from snapshot should activate it. In case it the guest doesn't pull because the guest activated remote wakeup and suspended the device we now (with the patch) activate it too. It also doesn't reproduce here. /me wonders what is going on ... What does 'info usb' print before and after snapshotting? Can you also post the full qemu command line? I see the same issue here, but not in my case it happens when migrating a VM. Before migration: (qemu) info usb info usb Device 0.1, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet (qemu) info mice info mice Mouse #0: QEMU PS/2 Mouse * Mouse #1: QEMU HID Tablet (absolute) After migration: (qemu) info usb info usb Device 0.1, Port 1, Speed 12 Mb/s, Product QEMU USB Tablet (qemu) info mice info mice Mouse #1: QEMU HID Tablet (absolute) * Mouse #0: QEMU PS/2 Mouse It seems the USB Tablet is not activated again. I can get it working by manually aktivating and deactivating the USB Hub in Windows Device Manager. The guest is Windows7 32-bit. cmdline: /usr/bin/qemu-kvm-1.0 -net tap,vlan=141,script=no,downscript=no,ifname=tap0 -net nic,vlan=141,model=e1000,macaddr=52:54:00:ff:00:d3 -drive format=host_device,file=/dev/mapper/iqn.2001-05.com.equallogic:0-8a0906-eeef4e007-a8a9f3818674f2fc-lieven-windows7-r80788,if=virtio,cache=writethrough,aio=native -m 2048 -monitor tcp:0:4001,server,nowait -vnc :1 -name lieven-win7 -boot order=dc,menu=off -k de -pidfile /var/run/qemu/vm-187.pid -rtc base=localtime -vga std -usb -usbdevice tablet -cpu host Thanks, Peter thanks, Gerd
Re: [Qemu-devel] [PATCH] usb-hid: activate usb tablet / mouse after migration.
Hi, > Original: > * Mouse #1: QEMU HID Tablet (absolute) > Mouse #0: QEMU PS/2 Mouse > > Start from the snapshot: > * Mouse #0: QEMU PS/2 Mouse > Mouse #1: QEMU HID Tablet (absolute) > > The active mouse device is not be saved into the snapshot. That shouldn't hurt though. When the guest polls the tablet the first time after starting from snapshot should activate it. In case it the guest doesn't pull because the guest activated remote wakeup and suspended the device we now (with the patch) activate it too. It also doesn't reproduce here. /me wonders what is going on ... What does 'info usb' print before and after snapshotting? Can you also post the full qemu command line? thanks, Gerd
Re: [Qemu-devel] [PATCH] usb-hid: activate usb tablet / mouse after migration.
On Thu, Oct 13, 2011 at 18:48, Gerd Hoffmann wrote: > On 10/13/11 04:09, TeLeMan wrote: >> >> On Wed, Oct 12, 2011 at 19:30, Gerd Hoffmann wrote: >>> >>> qemu uses the ps/2 mouse by default. The usb tablet (or mouse) is >>> activated as soon as qemu sees some guest activity on the device, >>> i.e. polling for HID events. That used to work fine for both fresh >>> boot and migration. >> >> It does not fix usb tablet/mouse when starting vm directly from snapshot. > > What does "info mice" print before/after snapshotting? > Which guest? WinXP IIRC? Yes, the guest is WinXP. Original: * Mouse #1: QEMU HID Tablet (absolute) Mouse #0: QEMU PS/2 Mouse Start from the snapshot: * Mouse #0: QEMU PS/2 Mouse Mouse #1: QEMU HID Tablet (absolute) The active mouse device is not be saved into the snapshot. > cheers, > Gerd > >
Re: [Qemu-devel] [PATCH] usb-hid: activate usb tablet / mouse after migration.
On 10/13/11 04:09, TeLeMan wrote: On Wed, Oct 12, 2011 at 19:30, Gerd Hoffmann wrote: qemu uses the ps/2 mouse by default. The usb tablet (or mouse) is activated as soon as qemu sees some guest activity on the device, i.e. polling for HID events. That used to work fine for both fresh boot and migration. It does not fix usb tablet/mouse when starting vm directly from snapshot. What does "info mice" print before/after snapshotting? Which guest? WinXP IIRC? cheers, Gerd
Re: [Qemu-devel] [PATCH] usb-hid: activate usb tablet / mouse after migration.
On Wed, Oct 12, 2011 at 19:30, Gerd Hoffmann wrote: > qemu uses the ps/2 mouse by default. The usb tablet (or mouse) is > activated as soon as qemu sees some guest activity on the device, > i.e. polling for HID events. That used to work fine for both fresh > boot and migration. It does not fix usb tablet/mouse when starting vm directly from snapshot. > Remote wakeup support changed the picture though: There will be no > polling after migration in case the guest suspended the usb bus, > waiting for wakeup events. Result is that the ps/2 mouse stays > active. > > Fix this by activating the usb tablet / mouse in post_load() in case > the guest enabled remote wakeup. > > Signed-off-by: Gerd Hoffmann > --- > hw/usb-hid.c | 11 +++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/hw/usb-hid.c b/hw/usb-hid.c > index 7c564b6..997f828 100644 > --- a/hw/usb-hid.c > +++ b/hw/usb-hid.c > @@ -520,10 +520,21 @@ static int usb_keyboard_initfn(USBDevice *dev) > return usb_hid_initfn(dev, HID_KEYBOARD); > } > > +static int usb_ptr_post_load(void *opaque, int version_id) > +{ > + USBHIDState *s = opaque; > + > + if (s->dev.remote_wakeup) { > + hid_pointer_activate(&s->hid); > + } > + return 0; > +} > + > static const VMStateDescription vmstate_usb_ptr = { > .name = "usb-ptr", > .version_id = 1, > .minimum_version_id = 1, > + .post_load = usb_ptr_post_load, > .fields = (VMStateField []) { > VMSTATE_USB_DEVICE(dev, USBHIDState), > VMSTATE_HID_POINTER_DEVICE(hid, USBHIDState), > -- > 1.7.1 > > >