[libvirt] [PATCH v2 14/53] vircgroup: introduce virCgroupV2MakeGroup

Michal Privoznik mprivozn at redhat.com
Fri Oct 5 13:43:40 UTC 2018


On 10/05/2018 02:43 PM, Pavel Hrdina wrote:
> When creating cgroup hierarchy we need to enable controllers in the
> parent cgroup in order to be usable.  That means writing "+{controller}"
> into cgroup.subtree_control file.  We can enable only controllers that
> are enabled for parent cgroup, that means we need to do that for the
> whole cgroup tree.
> 
> Cgroups for threads needs to be handled differently in cgroup v2.  There
> are two types of controllers:
> 
>     - domain controllers: these cannot be enabled for threads
>     - threaded controllers: these can be enabled for threads
> 
> In addition there are multiple types of cgroups:
> 
>     - domain: normal cgroup
>     - domain threaded: a domain cgroup that serves as root for threaded
>                        cgroups
>     - domain invalid: invalid cgroup, can be changed into threaded, this
>                       is the default state if you create subgroup inside
>                       domain threaded group or threaded group
>     - threaded: threaded cgroup which can have domain threaded or
>                 threaded as parent group
> 
> In order to create threaded cgroup it's sufficient to write "threaded"
> into cgroup.type file, it will automatically make parent cgroup
> "domain threaded" if it was only "domain".  In case the parent cgroup
> is already "domain threaded" or "threaded" it will modify only the type
> of current cgroup.  After that we can enable threaded controllers.
> 
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
>  src/util/vircgroup.c        |  2 +-
>  src/util/vircgroupbackend.h |  1 +
>  src/util/vircgroupv2.c      | 76 +++++++++++++++++++++++++++++++++++++
>  3 files changed, 78 insertions(+), 1 deletion(-)

ACK

Michal




More information about the libvir-list mailing list