[libvirt] [PATCH] qemu: add PCI-multibus support for ppc

Daniel P. Berrange berrange at redhat.com
Tue Mar 4 14:52:54 UTC 2014


On Fri, Feb 28, 2014 at 09:10:47AM +0000, Hong-Hua.Yin at freescale.com wrote:
> Hi Daniel,
> 
> Refer to libvirt/src/qemu/qemu_capabilities.c, only x86_64/i686 support PCI_MULTIBUS.
>     /* Currently only x86_64 and i686 support PCI-multibus. */
>     if (qemuCaps->arch == VIR_ARCH_X86_64 ||
>         qemuCaps->arch == VIR_ARCH_I686) {
>         virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS);
> 
> libvirt/src/qemu/qemu_capabilities.h:
>     QEMU_CAPS_PCI_MULTIBUS       = 52, /* bus=pci.0 vs bus=pci */
> 
> 
> Exactly there're several PowerPC platforms also use pci.0 as PCI bus name.
> $ grep -r "pci\.0"  qemu/hw/
> qemu/hw/ppc/prep.c:    pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
> qemu/hw/ppc/e500.c:    pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
> qemu/hw/ppc/ppc440_bamboo.c:    pcibus = (PCIBus *)qdev_get_child_bus(dev, "pci.0");
> 
> There's no much platform specific code in libvirt.
> How can we get the exact PCI bus name and make "pci.0" work on the above PowerPC platforms?

As I said in my previous comments, if PPC is now using 'pci.0' as the
bus name, this is a change from previous QEMU behaviour. If you just
make libvirt use 'pci.0' for all PPC arches you will be breaking
compatibility with old QEMU versions. You must therefore do proper
version detection for this.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list