[David and Drew added to CC, feel free to skip to the bottom]
On Thu, 2017-04-20 at 15:44 +0200, Pavel Hrdina wrote:
[...]
+ } else if (def->os.arch == VIR_ARCH_AARCH64
&&
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_QEMU_XHCI)) {
+ /* If possible use qemu-xhci as default controller for
+ * aarch64, it's USB3 controller and we want to avoid using
+ * nec-usb-xhci. */
+ cont->model = VIR_DOMAIN_CONTROLLER_MODEL_USB_QEMU_XHCI;
If qemu-xhci is not available but usb-nec-xhci is, it would
probably be nicer to pick the latter rather than leaving it
unspecified (which will result in an error later on).
So I would basically use the same code as ppc64 here, minus
the pci-ohci part of course.
[...]
+++
b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-usb-controller-qemu-xhci.xml
@@ -0,0 +1,27 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
You don't need <currentMemory>, ...
[...]
+ <features>
+ <apic/>
+ <pae/>
+ </features>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
... you can remove all these...
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <controller type='usb' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x01' function='0x0'/>
+ </controller>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x06' function='0x0'/>
+ </memballoon>
... and set the model for <memballoon> to 'none'.
[...]
@@ -2472,6 +2472,14 @@ mymain(void)
QEMU_CAPS_PCI_OHCI);
DO_TEST("ppc64-usb-controller-legacy",
QEMU_CAPS_PIIX3_USB_UHCI);
+ DO_TEST_FULL("ppc64-usb-controller-qemu-xhci", NULL, -1, 0,
+ VIR_DOMAIN_DEF_PARSE_ABI_UPDATE, GIC_NONE,
+ QEMU_CAPS_DEVICE_QEMU_XHCI);
+
+ DO_TEST("aarch64-usb-controller-qemu-xhci",
+ QEMU_CAPS_OBJECT_GPEX,
+ QEMU_CAPS_DEVICE_IOH3420,
You don't need QEMU_CAPS_DEVICE_IOH3420 here.
The rest looks good, but I'd like to make sure changing the
default is something that's okay with everyone.
David, Drew, do you have anything against changing the
default USB controller model for ppc64 and aarch64 guests
respectively to qemu-xhci?
--
Andrea Bolognani / Red Hat / Virtualization