Hi,
- Since the companion controllers have associated PCI addresses,
we must represent them explicitly in the XML, so it is clear
to apps what PCI slots/functions are used.
Hmm. Do we have to?
Usually the individual pci functions of multifunction devices are not
fully independent of each other. It is a single device with multiple
interfaces. I would try to present the *device* in libvirt xml, not the
*interfaces*.
[ Yes, you can bundle multiple virtio devices as multifunction device
into a single pci slot to overcome the slot number limit. That isn't
how pci functions are usually used on real hardware though. ]
5. USB companion controllers use type='usb' too, but with
an
extra 'master' attribute to associate them
<controller type='usb' index='0'
model='ich9-ehci'>
<address type='pci' domain='0' bus='0'
slot='4' function='7'/>
</controller>
<controller type='usb' index='0'
model='ich9-ehci1'>
<master startport='0'/>
<address type='pci' domain='0' bus='0'
slot='4' function='1'/>
</controller>
[ ... ]
<controller type='usb' index='0'
model='ich9-ehci-with-companions'>
<address type='pci' domain='0' bus='0' slot='4'
/>
</controller>
?
cheers,
Gerd