Re: [PATCH] cgroup: add cgroup.stat interface with basic hierarchy stats

From: Roman Gushchin
Date: Thu Jul 27 2017 - 13:47:01 EST


On Thu, Jul 27, 2017 at 01:38:55PM -0400, Waiman Long wrote:
> On 07/27/2017 12:14 PM, Roman Gushchin wrote:
> > Add a cgroup.stat interface to the base cgroup control files
> > with the following metrics:
> >
> > nr_descendants total number of descendant cgroups
> > nr_dying_descendants total number of dying descendant cgroups
> > max_descendant_depth maximum descent depth below the current cgroup
>
> Both nr_descendants and max_descendant_depth can be found easily from
> userspace by scanning the cgroup directory. nr_dying_descendants is a
> transient figure and it should be 0 most of the time. So I wonder how
> useful it can be.
>
> This new interface file will be more useful if it can reveal information
> that cannot be easily obtained by looking from userspace alone.

A cgroup can be in dying state for substantional amount of time
(imagine a memcg which holds a page mlocked by a process in an other cgroup).

The total amount of cgroups, as well as tree depth include dying cgroups,
which are not visible from the userspace.

The main purpose of this interface is to have a reasonable way to check if
there are no leaks/refcounting issues, which prevents cgroups from being
completely freed.

Thanks!

Roman