xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: George Dunlap <george.dunlap@eu.citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: "sstanisi@cbnco.com" <sstanisi@cbnco.com>,
	Roger Pau Monne <roger.pau@citrix.com>,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH v6 2/2] xl: Add commands for usb hot-plug
Date: Thu, 25 Apr 2013 13:21:41 +0100	[thread overview]
Message-ID: <51791FD5.2040800@eu.citrix.com> (raw)
In-Reply-To: <51791E26.5090300@eu.citrix.com>

On 04/25/2013 01:14 PM, George Dunlap wrote:
> On 04/25/2013 01:08 PM, Ian Campbell wrote:
>> On Thu, 2013-04-25 at 12:57 +0100, George Dunlap wrote:
>>> On 04/25/2013 12:38 PM, Ian Campbell wrote:
>>>> On Thu, 2013-04-25 at 11:16 +0100, George Dunlap wrote:
>>>>>>> +    for (i = 0; i < num; i++) {
>>>>>>> +        printf("%8s  ", (dev[i].protocol==LIBXL_USB_PROTOCOL_PV)?"pv":"dm");
>>>>>>
>>>>>> You can use libxl_usb_protocol_to_string here.
>>>>>
>>>>> Could do, but I didn't necessarily want the long version ("devicemodel").
>>>>
>>>> TBH the more I think about it the more I think DM/DEVICEMODEL in this
>>>> interface is leaking an implementation detail, after all the user
>>>> doesn't really care who/what is emulating a USB controller.
>>>>
>>>> Protocol = {PV,OHCI,XHCI}?
>>>
>>> As we covered before:
>>
>>> 1. I have no way of selecting OHCI vs XHCI at this point
>>
>> OK, so maybe HCI (as the generic term for a USB host controller) or EMU
>> or something is more appropriate. I'm not too fussed about the
>> distinction between {O,U,X}HCI right now.
>>
>>> 2. Even if I did, why should the caller have to keep track of what kind
>>> of USB hardware is exposed to the guest?
>>
>> Perhaps because they have to make sure they have the appropriate drivers
>> in the guest?
>>
>> In particular if qemu decides to use xhci will that work seemlessly with
>> Windows XP? I think XHCI is supposed to be backwards compatible with
>> OHCI but I'm not really sure how that works in practice.
>>
>>> They should be able to just  say "Add" and have stuff sorted out.
>>
>> Sure.
>>
>>> 3. The point of saying DEVICEMODEL is that it's not PV.  An HVM guest
>>> may be able to do either, and should be allowed to choose.
>>
>> But not PV does not imply device model, except by
>> inspecting/understanding implementation details. What you are really
>> asking for is an emulated USB host controller and you don't care where
>> it comes from.
>>
>>> 4. In any case, PROTOCOL_AUTO should be the expected default thing which
>>> should be called 99% of the time, unless there's a reason to choose
>>> otherwise.
>>>
>>> 5. #4 doesn't undermine #2 as an argument, because the caller should be
>>> able to specify "use qemu" without having to remember which hardware is
>>> currently exposed to the guest.
>>
>> My point is that the user doesn't want to specify "use qemu" they want
>> to specify "use an emulated USB host controller".
>
> Right -- so your only problem is that you don't want users to have to
> know "emulated" <=> "device model".  That's fine.

Hmm...

So, I think I'm remembering why I chose "device model" in the first 
place.  The problem is that the *device itself* is not emulated -- it's 
a real device which is exposed via the device model.  We're emulating 
the instructions and the usb hardware used to access the device, but not 
the device itself.  The device model is a conduit, which is why 
"protocol" seemed like the closest fit in terms of a word.

  -George

  reply	other threads:[~2013-04-25 12:21 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-19 15:59 [PATCH v6 1/2] libxl: Introduce functions to add and remove USB devices to an HVM guest George Dunlap
2013-04-19 15:59 ` [PATCH v6 2/2] xl: Add commands for usb hot-plug George Dunlap
2013-04-24 12:45   ` Ian Campbell
2013-04-25 10:16     ` George Dunlap
2013-04-25 11:38       ` Ian Campbell
2013-04-25 11:57         ` George Dunlap
2013-04-25 12:04           ` George Dunlap
2013-04-25 12:08           ` Ian Campbell
2013-04-25 12:14             ` George Dunlap
2013-04-25 12:21               ` George Dunlap [this message]
2013-04-25 12:45                 ` Ian Campbell
2013-04-25 12:47               ` Ian Campbell
2013-04-25 13:42           ` Pasi Kärkkäinen
2013-04-25 13:48             ` George Dunlap
2013-04-24 11:56 ` [PATCH v6 1/2] libxl: Introduce functions to add and remove USB devices to an HVM guest Ian Campbell
2013-04-24 12:48   ` George Dunlap
2013-04-24 12:53     ` Ian Campbell
2013-04-24 13:37       ` George Dunlap
2013-04-24 13:53         ` Ian Campbell
2013-04-24 12:38 ` Ian Campbell
2013-04-24 13:32   ` George Dunlap
2013-04-24 13:47     ` Ian Campbell
2013-04-24 13:51     ` Ian Campbell
2013-04-24 15:45       ` George Dunlap
2013-04-24 15:51         ` Ian Campbell
2013-04-24 17:49           ` Pasi Kärkkäinen
2013-04-25  7:44             ` Ian Campbell
2013-04-25  7:54               ` Pasi Kärkkäinen
2013-04-25  9:56               ` George Dunlap
2013-04-25 10:17                 ` Pasi Kärkkäinen
2013-04-25 14:19 ` Anthony PERARD
2013-04-25 14:31   ` George Dunlap

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=51791FD5.2040800@eu.citrix.com \
    --to=george.dunlap@eu.citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=roger.pau@citrix.com \
    --cc=sstanisi@cbnco.com \
    --cc=xen-devel@lists.xen.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).