mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-11 12:25:52 +00:00
qemu: setvcpus: Properly coldplug vcpus when hotpluggable vcpus are present
When coldplugging vcpus to a VM that already has a few hotpluggable vcpus the code might generate invalid configuration as non-hotpluggable cpus need to be clustered starting from vcpu 0. This fix forces the added vcpus to be hotpluggable in such case. Fixes a corner case described in: https://bugzilla.redhat.com/show_bug.cgi?id=1370357
This commit is contained in:
parent
24d4a0a1fb
commit
a946ea1a33
@ -4943,9 +4943,20 @@ qemuDomainSetVcpusConfig(virDomainDefPtr def,
|
||||
for (i = 0; i < maxvcpus; i++) {
|
||||
vcpu = virDomainDefGetVcpu(def, i);
|
||||
|
||||
if (!vcpu || vcpu->online)
|
||||
if (!vcpu)
|
||||
continue;
|
||||
|
||||
if (vcpu->online) {
|
||||
/* non-hotpluggable vcpus need to be clustered at the beggining,
|
||||
* thus we need to force vcpus to be hotpluggable when we find
|
||||
* vcpus that are hotpluggable and online prior to the ones
|
||||
* we are going to add */
|
||||
if (vcpu->hotpluggable == VIR_TRISTATE_BOOL_YES)
|
||||
hotpluggable = true;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
vcpu->online = true;
|
||||
if (hotpluggable) {
|
||||
vcpu->hotpluggable = VIR_TRISTATE_BOOL_YES;
|
||||
|
Loading…
Reference in New Issue
Block a user