[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V6 3/7] libxl: add pvusb API
>>> On 9/9/2015 at 12:52 AM, in message <55EF1244.107@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx> wrote: > On 09/08/2015 03:17 PM, Ian Campbell wrote: > > On Mon, 2015-08-10 at 18:35 +0800, Chunyan Liu wrote: > > > > Sorry for the delay, between 4.6 freeze crunch, conference and vacation > > I've been a bit swamped. > > > > I'm just going to comment on the APIs (mainly public libxl.h and .idl) in > > this pass. > > > >> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h > >> index 5f9047c..05b6331 100644 > >> --- a/tools/libxl/libxl.h > >> +++ b/tools/libxl/libxl.h > >> @@ -123,6 +123,23 @@ > >> #define LIBXL_HAVE_DOMAIN_NODEAFFINITY 1 > >> > >> /* > >> + * LIBXL_HAVE_PVUSB indicates the functions for doing hot-plug of > > > > And cold-plug, no? > > So you should probably say something like "indicates functions for > plugging in USB devices through pvusb -- both hotplug and at domain > creation time." Thanks. Will clarify. > > >> +libxl_usbctrl_type = Enumeration("usbctrl_type", [ > >> + (0, "AUTO"), > > > > What are the proposed semantics of using LIBXL_USBCTRL_TYPE_AUTO? > > Generally "DTRT". Meaning: > 1. If your domain has no devicemodel, use PV. > 2. If your device has a devicemodel, and no PV drivers have peen > detected, use the devicemodel. > 3. If your device has a devicemodel, but PV drivers have been detected, > use PV. > > At the moment we don't have a way to check for PV drivers, so this just > collapses down to "PV for domains without a DM and DM for domains with a > DM." Better to be: by default, PV for PV guest and DM for HVM guest. Thanks, Chunyan > > > > >> + (1, "PV"), > >> + (2, "QEMU"), > > > > Is "QEMU" what we want here, as opposed to, say, "EMU" (similar to NICs)? > > I had this as "DEVICEMODEL", since what we mean is that we want the > device model to provide access (and in theory in the future we may use a > different device model). But "EMU" works for me too. > > > I think we probably don't want to go as fine grained as "XHCI" and "EHCI" > > etc, do we? I see we have a version field below, is it intended that there > > be some way to select between e.g. UHCI and OHCI (which IIRC are different > > USB 1.0 controllers). > > > > Maybe these questions should all be left aside for when QMEU support is > > actually added (AFAICT this field is just a placeholder)? In fact I glanced > > at the code and was surprised to find nothing checking for > > LIBXL_USBCTRL_TYPE at all, did I miss something? > > > > I think the two choices are: > > > > We can decide quickly and easily what the option(s) other than PV should be > > here and you include it in the IDL, but you would then need to check > > usbctrl->type == PV at various points, not silently treat all options as > > PV. > > > > Or this becomes a long conversation in which case I think your best bet > > would be to leave the enum with just the PV (and maybe AUTO) entries and > > leave the decision on the name for the emulated option to the series which > > implements that. > > I think the idea was to simply offer 1, 2, and 3 as options, and for the > devicemodel version, choose a suitable controller (or set of > controllers) for each option; similar to what usbversion= does now. > > > > >> + ]) > >> + > >> +libxl_usbdev_type = Enumeration("usbdev_type", [ > >> + (0, "invalid"), > >> + (1, "hostdev"), > >> + ]) > >> + > >> +libxl_device_usbctrl = Struct("device_usbctrl", [ > >> + ("type", libxl_usbctrl_type), > >> + ("devid", libxl_devid), > >> + ("version", integer), > >> + ("ports", integer), > >> + ("backend_domid", libxl_domid), > >> + ("backend_domname", string), > >> + ]) > >> + > >> +libxl_device_usb = Struct("device_usb", [ > >> + ("ctrl", libxl_devid), > >> + ("port", integer), > >> + ("u", KeyedUnion(None, libxl_usbdev_type, "devtype", > >> + [("hostdev", Struct(None, [ > >> + ("hostbus", integer), > >> + ("hostaddr", integer)])), > >> + ("invalid", None), > > > > AIUI this is what was agreed to, i.e. an enum with only one real option, in > > order to leave a space for new devtypes without major API overhaul. > > > > Please can you confirm that hostbus and hostaddr are both flat integer > > namespaces (i.e. there is no structure to the bits within either, they are > > just a number). > > I can confirm this. > > -George > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |