]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: cgroup: Don't use priv->ncpupids to iterate domain vCPUs
authorPeter Krempa <pkrempa@redhat.com>
Fri, 20 Nov 2015 15:10:04 +0000 (16:10 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 9 Dec 2015 13:57:12 +0000 (14:57 +0100)
Use the proper data structures for the iteration since ncpupids will be
made private later.

src/qemu/qemu_cgroup.c

index d5647bc70798d7dcec20002be7532c61760e3d80..8d88f9abb230bf3bf6578a396e8ad94eb9440522 100644 (file)
@@ -820,7 +820,12 @@ qemuRestoreCgroupState(virDomainObjPtr vm)
     if (virCgroupSetCpusetMems(priv->cgroup, mem_mask) < 0)
         goto error;
 
-    for (i = 0; i < priv->nvcpupids; i++) {
+    for (i = 0; i < virDomainDefGetVcpusMax(vm->def); i++) {
+        virDomainVcpuInfoPtr vcpu = virDomainDefGetVcpu(vm->def, i);
+
+        if (!vcpu->online)
+            continue;
+
         if (virCgroupNewThread(priv->cgroup, VIR_CGROUP_THREAD_VCPU, i,
                                false, &cgroup_temp) < 0 ||
             virCgroupSetCpusetMemoryMigrate(cgroup_temp, true) < 0 ||
@@ -1036,7 +1041,12 @@ qemuSetupCgroupForVcpu(virDomainObjPtr vm)
                                             &mem_mask, -1) < 0)
         goto cleanup;
 
-    for (i = 0; i < priv->nvcpupids; i++) {
+    for (i = 0; i < virDomainDefGetVcpusMax(def); i++) {
+        virDomainVcpuInfoPtr vcpu = virDomainDefGetVcpu(def, i);
+
+        if (!vcpu->online)
+            continue;
+
         virCgroupFree(&cgroup_vcpu);
         if (virCgroupNewThread(priv->cgroup, VIR_CGROUP_THREAD_VCPU, i,
                                true, &cgroup_vcpu) < 0)