On 2014年04月09日 17:25, Michal Privoznik wrote:
On 09.04.2014 04:03, Li Zhang wrote:
> From: Li Zhang <zhlcindy(a)linux.vnet.ibm.com>
>
> For QEMU2.0 forward version, it supports PCI multiBUS.
> Currently, libvirt still disables it which causes an error
> "Bus 'pci' not found".
>
> Signed-off-by: Li Zhang <zhlcindy(a)linux.vnet.ibm.com>
> ---
> src/qemu/qemu_capabilities.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 2c8ec10..b49398f 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -3019,6 +3019,9 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
> if (qemuCaps->version >= 1006000)
> virQEMUCapsSet(qemuCaps, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
>
> + if (qemuCaps->version >= 2000000)
> + virQEMUCapsSet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS);
> +
> if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0)
> goto cleanup;
> if (virQEMUCapsProbeQMPEvents(qemuCaps, mon) < 0)
>
Libvirt is setting this capability unconditionally for all x86_64 and
i686 (see virQEMUCapsInitArchQMPBasic). What is the actual scenario
you're seeing this error in?
For pseries machine, before QEMU2.0, the PCI bus default name is always
"pci".
QEMU2.0 changed the name as "pci.0" to support MULTBUS a couple days ago.
If libvirt still parses the name as "pci" with QEMU_CAPS_PCI_MULTIBUS
disabled,
it will report the error "Bus 'pci' not found".
I may need to add a PPC64 condition if X86 always enables MULTIBUS.
Thanks.
--Li
Michal