On 11/20/2015 10:22 AM, Peter Krempa wrote:
Use the proper data structures for the iteration since ncpupids will
be
made private later.
---
src/qemu/qemu_cgroup.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index d8a2b03..06c20c1 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -800,7 +800,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);
+
What if !vcpu? Shouldn't happen, but not checked - trying to consider
future too.
+ if (!vcpu->online)
+ continue;
+
if (virCgroupNewThread(priv->cgroup, VIR_CGROUP_THREAD_VCPU, i,
false, &cgroup_temp) < 0 ||
virCgroupSetCpusetMemoryMigrate(cgroup_temp, true) < 0 ||
@@ -1016,7 +1021,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);
+
Same here
ACK w/ adjustments... That reminds me - patch 33 will have the same issue.
John
+ if (!vcpu->online)
+ continue;
+
virCgroupFree(&cgroup_vcpu);
if (virCgroupNewThread(priv->cgroup, VIR_CGROUP_THREAD_VCPU, i,
true, &cgroup_vcpu) < 0)