From: Peter Krempa Date: Tue, 13 Sep 2016 15:56:08 +0000 (+0200) Subject: qemu: domain: Don't infer vcpu state X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=64bc75f75606d0cc48432729b4618e2eae96accc;p=libvirt.git qemu: domain: Don't infer vcpu state Use the state information (online, hotpluggable) provided by the monitor code rather than trying to infer it. This fixes an issue where on architectures that require hotplug of multiple threads at once the sub-cores would get updated as offline on daemon restart thus creating an invalid configuration. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1375783 --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index fb766d0776..3f16dbee2e 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5941,15 +5941,11 @@ qemuDomainRefreshVcpuInfo(virQEMUDriverPtr driver, vcpupriv->enable_id = info[i].id; if (hotplug && state) { - vcpu->online = !!info[i].qom_path; - - /* mark cpus that don't have an alias as non-hotpluggable */ - if (vcpu->online) { - if (vcpupriv->alias) - vcpu->hotpluggable = VIR_TRISTATE_BOOL_YES; - else - vcpu->hotpluggable = VIR_TRISTATE_BOOL_NO; - } + vcpu->online = info[i].online; + if (info[i].hotpluggable) + vcpu->hotpluggable = VIR_TRISTATE_BOOL_YES; + else + vcpu->hotpluggable = VIR_TRISTATE_BOOL_NO; } }