Re: [PATCHSET for-6.1] kernfs, cgroup: implement kernfs_deactivate() and cgroup_file_show()
From: Chengming Zhou
Date: Sun Aug 21 2022 - 21:58:36 EST
On 2022/8/20 08:05, Tejun Heo wrote:
> Hello,
>
> Currently, deactivated kernfs nodes are used for two purposes - during
> removal to kill and drain nodes and during creation to make multiple
> kernfs_nodes creations to succeed or fail as a group.
>
> This patchset make kernfs [de]activation generic so that it can be used
> anytime to deactivate (hide and drain) and activate (show) kernfs nodes,
> and, on top, implement cgroup_file_show() which allows toggling cgroup file
> visiblity.
>
> This is for the following pending patchset to allow disabling PSI on
> per-cgroup basis:
>
> https://lore.kernel.org/all/20220808110341.15799-1-zhouchengming@xxxxxxxxxxxxx/t/#u
>
> which requires hiding the corresponding cgroup interface files while
> disabled.
Hello,
It's so nice of you for implementing this! I will rebase on your work to
do per-cgroup PSI disable/re-enable and test it today.
Thanks!
>
> This patchset contains the following seven patches.
>
> 0001-kernfs-Simply-by-replacing-kernfs_deref_open_node-wi.patch
> 0002-kernfs-Drop-unnecessary-mutex-local-variable-initial.patch
> 0003-kernfs-Refactor-kernfs_get_open_node.patch
> 0004-kernfs-Skip-kernfs_drain_open_files-more-aggressivel.patch
> 0005-kernfs-Make-kernfs_drain-skip-draining-more-aggressi.patch
> 0006-kernfs-Allow-kernfs-nodes-to-be-deactivated-and-re-a.patch
> 0007-cgroup-Implement-cgroup_file_show.patch
>
> 0001-0003 are misc prep patches. 0004-0006 implement kernsf_deactivate().
> 0008 implements cgroup_file_show() on top. The patches are also available in
> the following git branch:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git kernfs-deactivate
>
> diffstat follows. Thanks.
>
> fs/kernfs/dir.c | 120 +++++++++++++++++++++++++++++++++++++++++-------------------
> fs/kernfs/file.c | 139 +++++++++++++++++++++++++++++++---------------------------------------
> fs/kernfs/kernfs-internal.h | 1
> include/linux/cgroup.h | 1
> include/linux/kernfs.h | 2 +
> kernel/cgroup/cgroup.c | 23 +++++++++++
> 6 files changed, 172 insertions(+), 114 deletions(-)
>
> --
> tejun
>
>