From 60df621f75af6e29d721d95a738c8860eed5590e Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 15 Aug 2014 16:28:58 +0200 Subject: [PATCH] qemu: cpu: unplug: Remove vcpu pinning on cold cpu unplug Remove the pinning info when removing to CPU, otherwise when the VM will be started our code will try to pin non-existing vcpus as the definition wasn't updated. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1129372 --- src/qemu/qemu_driver.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ac0717c6f9..bff8f77bbc 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -4277,6 +4277,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus, qemuAgentCPUInfoPtr cpuinfo = NULL; int ncpuinfo; qemuDomainObjPrivatePtr priv; + size_t i; virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG | @@ -4386,6 +4387,12 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus, } if (flags & VIR_DOMAIN_AFFECT_CONFIG) { + /* remove vcpupin entries for vcpus that were unplugged */ + if (nvcpus < persistentDef->vcpus) { + for (i = persistentDef->vcpus; i >= nvcpus; i--) + virDomainVcpuPinDel(persistentDef, i); + } + if (maximum) { persistentDef->maxvcpus = nvcpus; if (nvcpus < persistentDef->vcpus)