[libvirt] [PATCH 4/7] add pci-bridge controller type

Laine Stump laine at laine.org
Tue Apr 16 19:30:39 UTC 2013


On 04/03/2013 11:50 AM, Ján Tomko wrote:
> From: liguang <lig.fnst at cn.fujitsu.com>
>
> add a new controller type, then one can
> define a pci-bridge controller like this:
>     <controller type='pci-bridge' index='0'/>
>     <controller type='pci-bridge' index='1'>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
>     </controller>
> actually, it works as a pci-bus, so as to support
> multi-pci-bus via pci-to-pci bridge

Okay. I think the result of all the discussion started by this patch is
that, for the current functionality, we need to do what is in the 4
steps at the bottom of this message:

 https://www.redhat.com/archives/libvir-list/2013-April/msg01144.html

1) There will be a new <controller type='pci'> device, with a <model
type='xyz'/> subelement. Initially we will support types "pci-root" and
"pci-bridge" (all the other types discussed above can be added later).
pci-root will have *no <address>* element (and will generate nothing on
the qemu commandline, but will create a 32 slot "bus='0'" to plug PCI
devices into). pci-bridge will have an <address> element, will generate
a -device option on the qemu commandline, and will also create a 32 slot
"bus='n'" to plug PCI devices into.

2) for machinetypes that have a PCI bus, the config should have this
controller auto-added:

   <controller type='pci'>
     <model type='pci-root'/>
   </controller>

This will make bus='0' available (but add nothing to the qemu
commandline). Any attempt to add a PCI device when there is no bus
available should be an error.

3) The way to add more buses will be to add a controller like this:

   <controller type='pci'>
     <model type='pci-bridge'/>
   </controller>

4) When <controller type='usb'> was added, resulting in auto-generated
devices, that caused problems when migrating from a host with newer
libvirt to one with older libvirt. We need to make sure we don't suffer
the same problem this time. See the following two BZes for details
(unless you have a better memory than me! :-):

  https://bugzilla.redhat.com/show_bug.cgi?id=815503
  https://bugzilla.redhat.com/show_bug.cgi?id=856864





More information about the libvir-list mailing list