On Fri, Feb 28, 2014 at 09:10:47AM +0000, Hong-Hua.Yin@xxxxxxxxxxxxx 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list