On 06/17/2016 11:11 AM, Joao Martins wrote: > On 06/16/2016 11:30 PM, Joao Martins wrote: >> On 06/16/2016 10:59 PM, Jim Fehlig wrote: >>> Commit 2a58ed0b added support for creating guests with USB >>> hostdevs. Commit fc21d10 later added support for hotplut of >> ^ hotplug >>> USB hostdevs. Advertise support for USB hostdevs in the >>> domcapabilities. >>> >>> Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> >>> --- >>> src/libxl/libxl_capabilities.c | 5 +++++ >>> 1 file changed, 5 insertions(+) >>> >>> diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c >>> index 45f0988..0145116 100644 >>> --- a/src/libxl/libxl_capabilities.c >>> +++ b/src/libxl/libxl_capabilities.c >>> @@ -492,6 +492,11 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceHostdevPtr dev) >>> VIR_DOMAIN_CAPS_ENUM_SET(dev->subsysType, >>> VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI); >>> >>> +#ifdef LIBXL_HAVE_PVUSB >>> + VIR_DOMAIN_CAPS_ENUM_SET(dev->subsysType, >>> + VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB); >>> +#endif >>> + >> Hm, this also requires changes on domaincapstest otherwise the test will fail for Xen >>> = 4.7. Probably to cover also < Xen 4.7 we would end up having two sets of caps to >> test and have libxl_capabilities.h advertise whether it was built with PVUSB support >> or not? > > Since I was the one suggesting to add usb to the domain caps I went ahead and > attempted the suggested fix above. With the diff below ammend to this patch, > domaincapstest can now pass. > Diff contained a mistake see below. > Thanks! > Joao > > diff --git a/tests/domaincapsschemadata/libxl-xenfv-usb.xml > b/tests/domaincapsschemadata/libxl-xenfv-usb.xml > new file mode 100644 > index 0000000..c071d12 > --- /dev/null > +++ b/tests/domaincapsschemadata/libxl-xenfv-usb.xml > @@ -0,0 +1,69 @@ > +<domainCapabilities> > + <path>/usr/bin/qemu-system-x86_64</path> > + <domain>xen</domain> > + <machine>xenfv</machine> > + <arch>x86_64</arch> > + <vcpu max='128'/> > + <os supported='yes'> > + <loader supported='yes'> > + <value>/usr/lib/xen/boot/hvmloader</value> > + <value>/usr/lib/xen/boot/ovmf.bin</value> > + <enum name='type'> > + <value>rom</value> > + <value>pflash</value> > + </enum> > + <enum name='readonly'> > + <value>yes</value> > + </enum> > + </loader> > + </os> > + <devices> > + <disk supported='yes'> > + <enum name='diskDevice'> > + <value>disk</value> > + <value>cdrom</value> > + </enum> > + <enum name='bus'> > + <value>ide</value> > + <value>scsi</value> > + <value>xen</value> > + </enum> > + </disk> > + <graphics supported='yes'> > + <enum name='type'> > + <value>sdl</value> > + <value>vnc</value> > + <value>spice</value> > + </enum> > + </graphics> > + <video supported='yes'> > + <enum name='modelType'> > + <value>vga</value> > + <value>cirrus</value> > + <value>xen</value> > + </enum> > + </video> > + <hostdev supported='yes'> > + <enum name='mode'> > + <value>subsystem</value> > + </enum> > + <enum name='startupPolicy'> > + <value>default</value> > + <value>mandatory</value> > + <value>requisite</value> > + <value>optional</value> > + </enum> > + <enum name='subsysType'> > + <value>usb</value> > + <value>pci</value> > + </enum> > + <enum name='capsType'/> > + <enum name='pciBackend'> > + <value>xen</value> > + </enum> > + </hostdev> > + </devices> > + <features> > + <gic supported='no'/> > + </features> > +</domainCapabilities> > diff --git a/tests/domaincapsschemadata/libxl-xenpv-usb.xml > b/tests/domaincapsschemadata/libxl-xenpv-usb.xml > new file mode 100644 > index 0000000..4dd07bd > --- /dev/null > +++ b/tests/domaincapsschemadata/libxl-xenpv-usb.xml > @@ -0,0 +1,59 @@ > +<domainCapabilities> > + <path>/usr/bin/qemu-system-x86_64</path> > + <domain>xen</domain> > + <machine>xenpv</machine> > + <arch>x86_64</arch> > + <vcpu max='512'/> > + <os supported='yes'> > + <loader supported='no'/> > + </os> > + <devices> > + <disk supported='yes'> > + <enum name='diskDevice'> > + <value>disk</value> > + <value>cdrom</value> > + </enum> > + <enum name='bus'> > + <value>ide</value> > + <value>scsi</value> > + <value>xen</value> > + </enum> > + </disk> > + <graphics supported='yes'> > + <enum name='type'> > + <value>sdl</value> > + <value>vnc</value> > + <value>spice</value> > + </enum> > + </graphics> > + <video supported='yes'> > + <enum name='modelType'> > + <value>vga</value> > + <value>cirrus</value> > + <value>xen</value> > + </enum> > + </video> > + <hostdev supported='yes'> > + <enum name='mode'> > + <value>subsystem</value> > + </enum> > + <enum name='startupPolicy'> > + <value>default</value> > + <value>mandatory</value> > + <value>requisite</value> > + <value>optional</value> > + </enum> > + <enum name='subsysType'> > + <value>usb</value> > + <value>pci</value> > + </enum> > + <enum name='capsType'/> > + <enum name='pciBackend'> > + <value>xen</value> > + </enum> > + </hostdev> > + </devices> > + <features> > + <gic supported='no'/> > + </features> > +</domainCapabilities> > diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c > index 9fb2c97..e988f38 100644 > --- a/tests/domaincapstest.c > +++ b/tests/domaincapstest.c > @@ -367,9 +367,17 @@ mymain(void) > > #if WITH_LIBXL > > - DO_TEST_LIBXL("libxl-xenpv", "/usr/bin/qemu-system-x86_64", > +# if LIBXL_HAVE_PVUSB There's a mistake here that would complain on non Xen 4.7 versions. It should be "# ifdef" and not just "# if" > +# define LIBXL_XENPV_CAPS "libxl-xenpv-usb" > +# define LIBXL_XENFV_CAPS "libxl-xenfv-usb" > +# else > +# define LIBXL_XENPV_CAPS "libxl-xenpv" > +# define LIBXL_XENFV_CAPS "libxl-xenfv" > +# endif > + > + DO_TEST_LIBXL(LIBXL_XENPV_CAPS, "/usr/bin/qemu-system-x86_64", > "xenpv", "x86_64", VIR_DOMAIN_VIRT_XEN); > - DO_TEST_LIBXL("libxl-xenfv", "/usr/bin/qemu-system-x86_64", > + DO_TEST_LIBXL(LIBXL_XENFV_CAPS, "/usr/bin/qemu-system-x86_64", > "xenfv", "x86_64", VIR_DOMAIN_VIRT_XEN); > > #endif /* WITH_LIBXL */ > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list