From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: Usb passthrough with upstream qemu question Date: Fri, 4 Oct 2013 15:25:53 +0100 Message-ID: <524ECFF1.9050407@eu.citrix.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <524ECA1B.5030505@m2r.biz> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Fabio Fantoni Cc: Anthony PERARD , xen-devel , Ian Jackson , Ian Campbell List-Id: xen-devel@lists.xenproject.org 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,producti= d=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