Re: [PATCH] cgroup: Show control files in cgroup2 root after mount

From: Tejun Heo
Date: Tue Jul 18 2017 - 16:12:40 EST


Hello,

On Tue, Jul 18, 2017 at 04:00:45PM -0400, Waiman Long wrote:
> From my own debugging, the controller files (e.g. the debug controller)
> were indirectly populated by the rebind_subsystems() call.
>
> [ 1.628103] css_populate_dir: init subsystem debug
...
> [ 1.654975] cgroup_apply_control_enable+0x103/0x340
> [ 1.657719] cgroup_apply_control+0x1a/0x30
> [ 1.658521] rebind_subsystems+0x18a/0x3b0
...

But there's kernfs_activate() call at the end of rebind_subsystems(),
so if the files were being added there, it should have been activated
there and I can confirm that the files are correctly added / removed
from the cgroup2 root directory when controllers are attached to /
detached from it.

> For the default cgroup2 root, kernfs_activate() was only called at the
> beginning in cgroup_init() with only the base cgroup files added. No
> more call after that until I touched the cgroup.subtree_control file.

Hmm... we're activating at the end of

* cgroup_setup_root()
* rebind_subsystems()
* cgroup_subtree_control_write()
* cgroup_apply_cftypes() after successful addition
* cgroup_mkdir()

I *think* this should cover everything. Just in case, are you looking
at the mainline kernel? Can you share how you can reproduce the
issue?

Thanks.

--
tejun