]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: domain: Don't infer vcpu state
authorPeter Krempa <pkrempa@redhat.com>
Tue, 13 Sep 2016 15:56:08 +0000 (17:56 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 14 Sep 2016 10:56:57 +0000 (12:56 +0200)
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

src/qemu/qemu_domain.c

index fb766d077663277524093906b8c30e782f276163..3f16dbee2e6aa77de33198355b1750637cd28fb6 100644 (file)
@@ -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;
         }
     }