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

Re: [Xen-devel] [PATCH RFC V2 1/5] libxl: add pvusb definitions



On Mon, 2015-01-19 at 16:28 +0800, Chunyan Liu wrote:

Sorry for the long delay in replying.

> To attach a usb device, a virtual usb controller should be created first.
> This patch defines usbctrl and usbdevice related structs.

Per <54CA17DF0200006600095E3D@xxxxxxxxxxxxxxxxxxxxxxx> please could you
mention here that the HVM guest related parts (i.e.
LIBXL_USBCTRL_TYPE_DEVICEMODEL) and libxl_usb_type are placeholders for
emulated HVM support.

In fact I wonder if it should just be omitted, we will need a LIBXL_HAVE
for HVM USB support anyway once it is implemented so we can add the enum
then.

Or will we -- do we think returning an error for such an HVM guest with
USB devices configured now is acceptable and for it to silently start
working at some point in the future is OK?

> 
> Signed-off-by: Chunyan Liu <cyliu@xxxxxxxx>
> Signed-off-by: Simon Cao <caobosimon@xxxxxxxxx>
> ---
>  tools/libxl/libxl_types.idl          | 58 
> +++++++++++++++++++++++++++++++++++-
>  tools/libxl/libxl_types_internal.idl |  1 +
>  2 files changed, 58 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index 1214d2e..0639434 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -521,6 +531,27 @@ libxl_device_pci = Struct("device_pci", [
>      ("seize", bool),
>      ])
>  
> +libxl_device_usbctrl = Struct("device_usbctrl", [
> +    ("name", string),
> +    ("type", libxl_usbctrl_type),
> +    ("backend_domid", libxl_domid),
> +    ("backend_domname", string),
> +    ("devid", libxl_devid),
> +    ("usb_version", uint8),
> +    ("num_ports", uint8),

I think int would be fine for both of these last two (and is a bit
kinder to language bindings).

> +    ])
> +
> +libxl_device_usb = Struct("device_usb", [
> +    ("ctrl", integer),

Is this an index into something? If so what?

There seems to be no usbctrl array added to the domain_config struct, so
I'm unsure how this is used.

> +    ("port", integer),

Port on the hub?
> +    ("intf", string),

What is this one? (This may just be my lack of usb knowledge)

> +    ("u", KeyedUnion(None, libxl_usb_type, "type",
> +        [("hostdev", Struct(None, [
> +            ("hostbus",   integer),
> +            ("hostaddr",  integer) ]))
> +        ]))
> +    ])
> +
> @@ -547,6 +578,7 @@ libxl_domain_config = Struct("domain_config", [
>      ("disks", Array(libxl_device_disk, "num_disks")),
>      ("nics", Array(libxl_device_nic, "num_nics")),
>      ("pcidevs", Array(libxl_device_pci, "num_pcidevs")),
> +    ("usbs", Array(libxl_device_usb, "num_usbs")),

So, I'm unsure how this interacts with the controllers, which it doesn't
seem to be possible to specify at domain build time.

You pointed me to
http://www.redhat.com/archives/libvir-list/2014-June/msg00038.html but
having had a look through I can't see it.

For v3 please could you give an overview/summary of how it fits together
in the 0/N patch.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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