[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 3/3/2015 at 07:10 PM, in message <1425381019.24959.87.camel@xxxxxxxxxx>, >>> Ian Campbell <ian.campbell@xxxxxxxxxx> wrote: > 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. Yes, I agree it's better placed in libxl_usb_type rather than ctrl_type. > > 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. It won't harm to omit it for current pvusb work. Acceptable to me to add enum later when adding HVM qemu emulated usb device implementation. > > 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). OK. Will update. > > > + ]) > > + > > +libxl_device_usb = Struct("device_usb", [ > > + ("ctrl", integer), > > Is this an index into something? If so what? To usb controller index. A usb device should be connected to a usb port of a usb controller. e.g.: there is 2 usb controllers in system, each with 8 ports, then: 1st usb controller index will be 0, port will be 1~8. 2nd usb controller index will be 1, port will be 1~8. To attach a usb device through pvusb way, it should be pointed to connect to which controller and which port. > > 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) It means sysfs interface for the usb device under /sys/bus/usb/devices/, like: 2-1.6. > > > + ("u", KeyedUnion(None, libxl_usb_type, "type", > > + [("hostdev", Struct(None, [ > > + ("hostbus", integer), > > + ("hostaddr", integer) ])) > > + ])) > > + ]) This part is for HVM qemu emulated usb device too. Currently not used. > > + > > @@ -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. In domain config, user only needs to specify usb=['2-1.6'], by default, it will create a default usb contoller, and probe the 1st available controller:port for the usb device to attach. So, it can work to specify usbs here only. Reason didn't include controller in libxl_domain_config: for HVM qemu emulated usb device, all work is done in qemu (create usb controller and attach usb device), no controller exists in libxl in that case. > > 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 ow it fits together > in the 0/N patch. Sure. Thanks! -Chunyan > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |