[libvirt] [PATCH 34/34] qemu: cgroup: Don't use priv->ncpupids to iterate domain vCPUs
John Ferlan
jferlan at redhat.com
Tue Nov 24 13:41:53 UTC 2015
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)
>
More information about the libvir-list
mailing list