From 4872ad27aae6b24a441e7bd59bd7ae234ef33b5b Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Wed, 15 Jul 2020 11:33:05 +0200 Subject: [PATCH] qemu: Do not set //cpu/@migratable for running domains in post-parse Commit v6.4.0-61-g201bd5db63 started to fill the default value for //cpu/@migratable attribute according to QEMU support. However, active domains either have the migratable attribute already set or the capabilities we use for checking the QEMU support were created by older libvirt which didn't probe for this specific capability. Thus we should leave active domains alone when parsing their XMLs. https://bugzilla.redhat.com/show_bug.cgi?id=1857967 Reported-by: Mark Mielke Signed-off-by: Jiri Denemark Reviewed-by: Daniel Henrique Barboza --- src/qemu/qemu_domain.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 1a48a9aa5b..5b22eb2eaa 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4054,9 +4054,13 @@ qemuDomainDefCPUPostParse(virDomainDefPtr def, } } - if (qemuCaps && + /* Running domains were either started before QEMU_CAPS_CPU_MIGRATABLE was + * introduced and thus we can't rely on it or they already have the + * migratable default set. */ + if (def->id == -1 && + qemuCaps && def->cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH && - !def->cpu->migratable) { + def->cpu->migratable == VIR_TRISTATE_SWITCH_ABSENT) { if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_MIGRATABLE)) def->cpu->migratable = VIR_TRISTATE_SWITCH_ON; else if (ARCH_IS_X86(def->os.arch))