From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio Fantoni Subject: Re: Usb passthrough with upstream qemu question Date: Fri, 04 Oct 2013 16:59:03 +0200 Message-ID: <524ED7B7.7000905@m2r.biz> References: <52405459.80009@m2r.biz> <52416276.4030100@eu.citrix.com> <20130925141100.GI2924@reaktio.net> <524E9181.6000701@eu.citrix.com> <524EBF91.4030406@m2r.biz> <524EC304.5090407@eu.citrix.com> <524ECA1B.5030505@m2r.biz> <524ECFF1.9050407@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <524ECFF1.9050407@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: George Dunlap Cc: Anthony PERARD , xen-devel , Ian Jackson , Ian Campbell List-Id: xen-devel@lists.xenproject.org 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=E4rkk=E4inen 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 working. >>>>>>>> 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 the >>>>>>>> new parameters, for example: >>>>>>>> device_model_args=3D["-device","usb-host,vendorid=3D0x058f,product= id=3D0x6387"] = >>>>>>>> >>>>>>>> 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 >>>>>>> interface." >>>>>>> >>>>>>> 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). >>>>>>> >>>>>> Hi, >>>>>> >>>>>> 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: >>>>> >>>>> http://marc.info/?l=3Dxen-devel&m=3D136638728928743 >>>>> >>>>> 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: >>>>> >>>>> git://xenbits.xen.org/people/gdunlap/xen.git = >>>>> out/hvm-usb-hotplug.v6-plus >>>>> >>>>> -George >>>> >>>> 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? >>>> http://lists.xen.org/archives/html/xen-devel/2013-10/msg00157.html >>>> 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). >>> >>> -George >> >> 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. > > -George 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?