Use USB3 for supported OS
libosinfo now has metadata tracking which OSes support USB3. Boxes should use USB3 hardware in those cases: it supports more devices and is more performant for virt: https://www.kraxel.org/blog/2018/08/qemu-usb-tips/
Basically in virt-manager I recently added this. We check for
- libvirt>=3.3.0 and qemu>=2.9.0 (this should be reported in libvirt domcapabilities, but alas it is not)
- libosinfo OS supports qemu-xhci http://pcisig.com/pci/1b36/0004
If those conditions are met, rather than USB2 we use this XML: <controller type="usb" model="qemu-xhci" ports="15"/>
ports=15
is the max amount qemu supports for a single controller, I figured why not use as many possible