Daniel,
I got it. We need do machine detection for the special PPC platforms.
Thank you for comments.
Olivia
-----Original Message-----
From: Daniel P. Berrange [mailto:berrange@redhat.com]
Sent: Tuesday, March 04, 2014 10:53 PM
To: Yin Olivia-R63875
Cc: libvir-list(a)redhat.com
Subject: Re: [PATCH] qemu: add PCI-multibus support for ppc
On Fri, Feb 28, 2014 at 09:10:47AM +0000, Hong-Hua.Yin(a)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 :|