[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Usb passthrough with upstream qemu question

Il 07/10/2013 12:41, George Dunlap ha scritto:
On Fri, Oct 4, 2013 at 3:59 PM, Fabio Fantoni <fabio.fantoni@xxxxxxx> wrote:
Il 04/10/2013 16:25, George Dunlap ha scritto:

On 04/10/13 15:00, Fabio Fantoni wrote:
Il 04/10/2013 15:30, George Dunlap ha scritto:
On 04/10/13 14:16, Fabio Fantoni wrote:
Il 04/10/2013 11:59, George Dunlap ha scritto:
On 25/09/13 15:11, Pasi Kärkkäinen wrote:
On Tue, Sep 24, 2013 at 10:59:18AM +0100, George Dunlap wrote:
On 09/23/2013 03:46 PM, Fabio Fantoni wrote:
I tested my latest patches about usb controllers (1-2-3) and usb
redirection (from Spice client) support for upstream qemu and are
I also tested usb passthrough (from dom0) but seems that with older
-usbdevice paraters is not working.
I see the qemu docs/qdev-device-use.txt and based on this I tried
new parameters, for example:

With new parameters usb passthrough is working, also with new usb
controller and also with usb redirection enabled.
I did all tests using latest xen and qemu version (1.6).
I think should be good to change upstream qemu parameters for usb
passthrough on libxl with the new ones.
Yes, I think it would be better.  The main difficulty is that the
libxl parameter is basically the old-style usbdevice parameter
passed straight through.  To support the current libxl parameter
with the new qemu would mean interpreting the usbdevice parameter
and translating it into the new-style parameter.

My USB hot-plug series begins to introduce a more reasonable
interface for USB devices. Once that's in, we can think about
introducing a similar new interface for creating domains, that
should match the new way of specifying devices better. Then we
could just say, "If you're using spice, you have to use the new

Unfortunately, it's looking like the USB hot-plug series may not
make it into 4.4 unless someone else can pick it up (or unless we
slip the feature freeze).


Is the latest version of the usb hotplug series posted to xen-devel,
or are these not-yet-posted changes in your (private) tree?

Just wondering if someone else wants to take a look at that.

The latest patches I posted were version 6; the 1/2 can be found here:


I can't remember if I went through and made any changes as a result of
comments or not; My latest local version can be found here:



Thanks for reply, I see your patches but I didn't found changes on "xl
create" parts.
Please could you keep an eye on my yesterday's mail about "xl create"
part changes?
For now I'm trying to do patch for basic spice support to pv.
After that I'll try to do a patch for changes usb qemu parameters to
make usb passthrough full working also with usb2,usb3 and usb redirection
enabled ifno one else can do.

So at the moment, USB devices specified in the config file are added to
the guest on the qemu command line.  However, most devices aren't like that:
if you specify a PCI pass-through device, it will create the guest, and then
the domain creation will call the pci add functions, just as it would if you
were hot-plugging the device afterwards.

So the idea would be that once the new USB hotplug interface was fully
functional, then you'd do the same thing: just specify the USB controller on
the qemu command line, and add in the other USB devices afterwards (i.e.,
after qemu had come up but before actually unpausing the guest).


If I'm not wrong on what you mean, usb controller definition should be
right with my patch "usbversion" while actual usbpassthrough part should be
replaced/remade in order to have devices passed by usbdevice and
usbdevice_list added after qemu launch with hotplug function you had already
did with your patches.
Did you mean something else?

I thought the "usbpassthrough" stuff had to do with spice.

In any case, what you describe it sounds pretty close, with one caveat:
Because usbdevice and usbdevice_list are basically just passing through
strings that qemu understands on its command line, I don't think we can
re-use them: I think we'd have to introduce another config option that would
have a new interface which matches the new libxl interface better.  We'd
have to keep the old ones around for backwards compatibility, but we can
deprecate them.


So to be sure, you mean to keep the old parameters usbdevice and
usbdevice_list with only usb1 (making them deprecated), and introduce a new
parameter storing the devices usbpassthrough list (from dom0) which will use
the new usb1-2-3 controller (with usbversion) and your usbhotplug functions?
Is it right?
Yes, except that I think ideally you'd design the new interface not
only for pass-through devices, but for emulated devices as well --
tablets, mice, keyboard, &c.  The patches I posted should be
expandable to include things like that.


I redid and posted some times ago usbversion and usbredirection patches:
Today I refreshed your patches of usb hot-plug, also fixed one bug and tested it. Seems full working (usb-attach, usb-list, usb-detach) and also with usbredirection enabled no problem found.
Here the latest version of all usb patches:

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.