[libvirt] [PATCH 3/3] qemu: Forbid user aliases for USB controllers

Michal Privoznik mprivozn at redhat.com
Mon Mar 12 12:12:27 UTC 2018

On 03/12/2018 10:04 AM, Peter Krempa wrote:
> On Fri, Mar 09, 2018 at 12:56:13 +0100, Michal Privoznik wrote:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1552127
>> These are bit different than other devices. Their alias also
>> specify the name of the bus. For instance, if there are these
>> 'joined' USB devices:
>>   <controller type='usb' index='0' model='ich9-ehci1'>
>>     <alias name='ua-myUSB'/>
>>     <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
>>   </controller>
>>   <controller type='usb' index='0' model='ich9-uhci1'>
>>     <master startport='0'/>
>>     <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
>>   </controller>
>> which translates to cmd line as:
>>   -device ich9-usb-ehci1,id=ua-myUSB,bus=pci.0,addr=0x4.0x7
>>   -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4
>> The problem is that UHCI is still trying to serve 'usb.0' bus.
>> Rather than trying to come up with some complicated algorithm to
>> make everything work, lets forbid user aliases for USB
>> controllers.
> I'm not a fan of this. This creates situations where the user is not
> able to know which devices support user aliases and which don't. If
> there isn't a technical problem preventing this from working we should
> not forbid it.

Thing is I think we are facing technical problem. Let me give you an example:

  <controller type='usb' index='0' model='ich9-ehci1'>
    <alias name='ua-myUSB1'/>
    <address type='pci' domain='0' bus='0' slot='4' function='7'/>
  <controller type='usb' index='0' model='ich9-uhci1'>
    <alias name='ua-myUSB2'/>
    <master startport='0'/>
    <address type='pci' domain='0' bus='0' slot='4' function='0' multifunction='on'/>
  <controller type='usb' index='0' model='ich9-uhci2'>
    <alias name='ua-myUSB3'/>
    <master startport='2'/>
    <address type='pci' domain='0' bus='0' slot='4' function='1'/>
  <controller type='usb' index='0' model='ich9-uhci3'>
    <alias name='ua-myUSB3'/>
    <master startport='4'/>
    <address type='pci' domain='0' bus='0' slot='4' function='2'/>

What should the generated command line look like? To my knowledge, these
ich9-XhciN devices are tricky and their id= attribute gives also name to
the bus they are creating.


More information about the libvir-list mailing list