Currently, if no GIC version has been provided by the user,
libvirt will default to GIC v2. This is a problem when
trying to create new guests on hardware that only supports
GIC v3 guests: QEMU will refuse to start a GIC v2 guest, and
guest installation will abort immediately.
This series implements a way for libvirt to figure out a
suitable GIC version itself, without relying on tools such
as virt-install to parse the domain capabilities before
attempting installation.
Andrea Bolognani (4):
qemu: Automatically choose usable GIC version
qemu: Add virQEMUCapsSetGICCapabilities()
tests: Prepare to have different usable GIC versions
tests: Try different usable GIC versions
src/conf/domain_capabilities.c | 25 +++
src/conf/domain_capabilities.h | 8 +
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 29 +++-
src/qemu/qemu_capabilities.h | 5 +
src/qemu/qemu_domain.c | 66 ++++++--
.../qemuxml2argv-aarch64-gic-none-both.args | 1 +
.../qemuxml2argv-aarch64-gic-none-both.xml | 1 +
.../qemuxml2argv-aarch64-gic-none-v2.args | 1 +
.../qemuxml2argv-aarch64-gic-none-v2.xml | 1 +
.../qemuxml2argv-aarch64-gic-none-v3.args | 1 +
.../qemuxml2argv-aarch64-gic-none-v3.xml | 1 +
tests/qemuxml2argvtest.c | 153 +++++++++++++----
.../qemuxml2xmlout-aarch64-gic-none-both.xml | 1 +
.../qemuxml2xmlout-aarch64-gic-none-v2.xml | 1 +
.../qemuxml2xmlout-aarch64-gic-none-v3.xml | 1 +
tests/qemuxml2xmltest.c | 184 +++++++++++++--------
17 files changed, 368 insertions(+), 112 deletions(-)
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.args
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-both.xml
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.args
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v2.xml
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.args
create mode 120000 tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-none-v3.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-both.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v2.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-gic-none-v3.xml
--
2.5.5