On Wed, Jul 13, 2022 at 7:04 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
On Wed, Jul 13, 2022 at 07:00:17PM +0800, Han Han wrote:
> Hello,
> I found that the default USB controller for q35 machine type is qemu-xhci
> while for pc it is piix3-uhci. Here are the results(on qemu-kvm-7.0.0
> qemu-kvm-7.0.0):
> ➜  ~ cat /tmp/usb.xml
> <domain type="kvm">
>   <name>USB</name>
>   <uuid>1a81d4ef-6537-4ae8-b257-8a15e0c0525f</uuid>
>   <memory>2097152</memory>
>   <currentMemory>2097152</currentMemory>
>   <vcpu>1</vcpu>
>   <os>
>     <type arch="x86_64" machine="q35">hvm</type>
>     <boot dev="hd"/>
>   </os>
>   <devices>
>     <emulator>/usr/libexec/qemu-kvm</emulator>
>   </devices>
> </domain>
>
> ➜  ~ virsh define /tmp/usb.xml && virsh dumpxml USB|grep usb
> Domain 'USB' defined from /tmp/usb.xml
>
>     <controller type='usb' index='0' model='qemu-xhci'>
>
>
> ➜  ~ cat /tmp/usb-pc.xml
> <domain type="kvm">
>   <name>USB</name>
>   <uuid>1a81d4ef-6537-4ae8-b257-8a15e0c0525f</uuid>
>   <memory>2097152</memory>
>   <currentMemory>2097152</currentMemory>
>   <vcpu>1</vcpu>
>   <os>
>     <type arch="x86_64" machine="pc">hvm</type>
>     <boot dev="hd"/>
>   </os>
>   <devices>
>     <emulator>/usr/libexec/qemu-kvm</emulator>
>   </devices>
> </domain>
>
> ➜  ~ virsh define /tmp/usb-pc.xml && virsh dumpxml USB|grep usb
> Domain 'USB' defined from /tmp/usb-pc.xml
>
>     <controller type='usb' index='0' model='piix3-uhci'>
>
> And the default usb controller for q35 has been added since:
> ed2049ea19 qemu: auto-add generic xhci rather than NEC xhci to Q35 domains
>
> As I know, pc machine supports qemu-xhci as well.           Morever, the
> performance of qemu-xhci is better than piix3-uhci. So why not update the
> default usb controller of pc machine type to qemu-xhci? I think we can
> improve it here.

A qemu-xhci controller can be added to any x86 machien type regardless
of the default, and most mgmt apps will do exactly that.
 
Does that mean, the default USB controller for a specific x86 machine type does NOT matter?
And leave the default USB controller to up-layer mgmt apps?

With regards,
Daniel
--
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|