On Mon, Jul 06, 2015 at 15:59:25 +0300, Pavel Fedin wrote:
This capability specifies that "virt" machine on ARM has
PCI controller.
Enabled when qemu version is at least 2.3.0.
Signed-off-by: Pavel Fedin <p.fedin(a)samsung.com>
---
src/qemu/qemu_capabilities.c | 5 +++++
src/qemu/qemu_capabilities.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 27686c3..0dc034f 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
...
@@ -3352,6 +3353,10 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr
qemuCaps,
qemuCaps->version >= 2003000)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_AARCH64_OFF);
+ /* 'virt' machine has PCI controller from v2.3.0 onwards */
+ if (qemuCaps->version >= 2003000)
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_ARM_VIRT_PCI);
Is there a way how we could detect this according to the actual presence
of the PCI bus for the ARM machine? A certain device type that can be
queried rather than relying on a version check.
(see virQEMUCapsObjectTypes[] and other similar arrays in
src/qemu/qemu_caps.c)
Generally the approach is to use a specific device check to set
capabilities for anything where it's possible since it's robust against
backports of given functionality to previous versions.
+
/* vhost-user supports multi-queue from v2.4.0 onwards,
* but there is no way to query for that capability */
if (qemuCaps->version >= 2004000)
Peter