mbox

[PULL,for,usb-next] : Add support for live-migration to usb-redir

Message ID 5049DEBB.1030305@redhat.com
State New
Headers show

Pull-request

git://people.freedesktop.org/~jwrdegoede/qemu usb-for-gerd

Message

Hans de Goede Sept. 7, 2012, 11:47 a.m. UTC
Hi Gerd,

I'm very happy to present to you a pull-request for usb-redir
live-migration support. I've tested this combined with Spice
seamless migration, and it can successful:
1) migrate a vm while running "dd if=/dev/zero of=/dev/sdb1 bs=32K"
inside the guest with sdb being a redirect USB-2 mass storage device.
2) migrate a vm while running camorama inside the vm showing a 720p
video from a redirected USB-2 webcam at 30 fps!

Note this is based on usb-next rather then master / usb.62,
since one of my patches would otherwise conflict with your recent
ehci changes.

The following changes since commit a44fd2e0c66b2276f586948702e5ebc7136fdb73:

   usb-host: allow emulated (non-async) control requests without USBPacket (2012-09-06 12:03:41 +0200)

are available in the git repository at:

   git://people.freedesktop.org/~jwrdegoede/qemu usb-for-gerd

for you to fetch changes up to 5f5f0f1eaa29ec1cb07fc906acf917d5648b3bcf:

   usb-redir: Add chardev open / close debug logging (2012-09-07 13:44:49 +0200)

----------------------------------------------------------------
Hans de Goede (9):
       ehci: Don't set seen to 0 when removing unseen queue-heads
       ehci: Walk async schedule before and after migration
       ehci: Don't process too much frames in 1 timer tick
       usb: Migrate over device speed and speedmask
       usb-redir: Change cancelled packet code into a generic packet-id queue
       usb-redir: Add an already_in_flight packet-id queue
       usb-redir: Store max_packet_size in endp_data
       usb-redir: Add support for migration
       usb-redir: Add chardev open / close debug logging

  hw/usb.h          |   4 +-
  hw/usb/bus.c      |   2 +
  hw/usb/hcd-ehci.c |  61 ++++++-
  hw/usb/redirect.c | 482 ++++++++++++++++++++++++++++++++++++++++++++++++++----
  4 files changed, 508 insertions(+), 41 deletions(-)

Thanks & Regards,

Hans

Comments

Hans de Goede Sept. 7, 2012, 6:52 p.m. UTC | #1
Hi,

On 09/07/2012 01:47 PM, Hans de Goede wrote:
> Hi Gerd,
>
> I'm very happy to present to you a pull-request for usb-redir
> live-migration support. I've tested this combined with Spice
> seamless migration, and it can successful:
> 1) migrate a vm while running "dd if=/dev/zero of=/dev/sdb1 bs=32K"
> inside the guest with sdb being a redirect USB-2 mass storage device.
> 2) migrate a vm while running camorama inside the vm showing a 720p
> video from a redirected USB-2 webcam at 30 fps!
>
> Note this is based on usb-next rather then master / usb.62,
> since one of my patches would otherwise conflict with your recent
> ehci changes.
>
> The following changes since commit a44fd2e0c66b2276f586948702e5ebc7136fdb73:
>
>    usb-host: allow emulated (non-async) control requests without USBPacket (2012-09-06 12:03:41 +0200)
>
> are available in the git repository at:
>
>    git://people.freedesktop.org/~jwrdegoede/qemu usb-for-gerd
>
> for you to fetch changes up to 5f5f0f1eaa29ec1cb07fc906acf917d5648b3bcf:
>
>    usb-redir: Add chardev open / close debug logging (2012-09-07 13:44:49 +0200)
>
> ----------------------------------------------------------------
> Hans de Goede (9):
>        ehci: Don't set seen to 0 when removing unseen queue-heads
>        ehci: Walk async schedule before and after migration
>        ehci: Don't process too much frames in 1 timer tick
>        usb: Migrate over device speed and speedmask

Hmm, thinking more about this, this one is only necessary for usb-redir, since
for normal devices both get set from the descriptors of the device + the
port speedmask, which are const from a migration pov, so no need to migrate them.

And usb-redir itself can re-construct them in its post_load function since it
migrates over the usb-redir device_info struct already.

So let me respin this patch set, dropping the above patch...

>        usb-redir: Change cancelled packet code into a generic packet-id queue
>        usb-redir: Add an already_in_flight packet-id queue
>        usb-redir: Store max_packet_size in endp_data
>        usb-redir: Add support for migration

and instead set speed and speedmask from this patch.

>        usb-redir: Add chardev open / close debug logging
>
>   hw/usb.h          |   4 +-
>   hw/usb/bus.c      |   2 +
>   hw/usb/hcd-ehci.c |  61 ++++++-
>   hw/usb/redirect.c | 482 ++++++++++++++++++++++++++++++++++++++++++++++++++----
>   4 files changed, 508 insertions(+), 41 deletions(-)
>

Regards,

Hans