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. 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 +# 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