All of lore.kernel.org
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@eu.citrix.com>
To: Fabio Fantoni <fabio.fantoni@m2r.biz>
Cc: Anthony PERARD <anthony.perard@citrix.com>,
	xen-devel <xen-devel@lists.xensource.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Ian Campbell <ian.campbell@citrix.com>
Subject: Re: Usb passthrough with upstream qemu question
Date: Fri, 4 Oct 2013 15:25:53 +0100	[thread overview]
Message-ID: <524ECFF1.9050407@eu.citrix.com> (raw)
In-Reply-To: <524ECA1B.5030505@m2r.biz>

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 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=["-device","usb-host,vendorid=0x058f,productid=0x6387"] 
>>>>>>>
>>>>>>> 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=xen-devel&m=136638728928743
>>>>
>>>> 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

  reply	other threads:[~2013-10-04 14:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-23 14:46 Usb passthrough with upstream qemu question Fabio Fantoni
2013-09-24  9:59 ` George Dunlap
2013-09-25 14:11   ` Pasi Kärkkäinen
2013-10-04  9:59     ` George Dunlap
2013-10-04 13:16       ` Fabio Fantoni
2013-10-04 13:30         ` George Dunlap
2013-10-04 14:00           ` Fabio Fantoni
2013-10-04 14:25             ` George Dunlap [this message]
2013-10-04 14:59               ` Fabio Fantoni
2013-10-07 10:41                 ` George Dunlap
2013-10-28 16:19                   ` Fabio Fantoni
2013-11-05 13:54                     ` Fabio Fantoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=524ECFF1.9050407@eu.citrix.com \
    --to=george.dunlap@eu.citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=anthony.perard@citrix.com \
    --cc=fabio.fantoni@m2r.biz \
    --cc=ian.campbell@citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.