[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>
<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>
<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>
<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'/>
</controller>
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.
Michal
More information about the libvir-list
mailing list