[libvirt] [PATCH v3 10/13] qemu: vcpu: Aggregate code to set vCPU tuning

Ján Tomko jtomko at redhat.com
Fri Feb 5 19:42:11 UTC 2016


On Fri, Feb 05, 2016 at 04:44:46PM +0100, Peter Krempa wrote:
> Rather than iterating 3 times for various settings this function
> aggregates all the code into single place. One of the other advantages
> is that it can then be reused for properly setting vCPU info on hotplug.
> 
> With this approach autoCpuset is also used when setting the process
> affinity rather than just via cgroups.
> ---
> 
> Notes:
>     v3:
>     - mention change to affinity in commit message
>     - reorder affinity/cgroups
>     - fix comment spacing
> 
>  src/qemu/qemu_cgroup.c  |  95 ---------------------
>  src/qemu/qemu_cgroup.h  |   1 -
>  src/qemu/qemu_process.c | 215 +++++++++++++++++++++++++++++++++---------------
>  src/qemu/qemu_process.h |   4 +
>  4 files changed, 151 insertions(+), 164 deletions(-)


> +
> +    if (cpumask) {
> +        /* setup cgroups */
> +        if (cgroup_vcpu &&
> +            virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET)) {
> +            if (mem_mask &&
> +                virCgroupSetCpusetMems(cgroup_vcpu, mem_mask) < 0)
> +                goto cleanup;
> +
> +            if (qemuSetupCgroupCpusetCpus(cgroup_vcpu, cpumask) < 0)
> +                goto cleanup;
> +        }
> +

> +        /* setup legacy affinty */
> +        if (virProcessSetAffinity(vcpupid, cpumask) < 0)
> +            goto cleanup;

This hunk...

> +    }
> +
> +    /* move the thread for vcpu to sub dir */
> +    if (cgroup_vcpu &&
> +        virCgroupAddTask(cgroup_vcpu, vcpupid) < 0)
> +        goto cleanup;
> +

should go here after the thread has been moved to its cgroup dir to
preserve the original order.

Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160205/29c9f353/attachment-0001.sig>


More information about the libvir-list mailing list