
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