2024-04-18 02:46:59

by Xiu Jianfeng

[permalink] [raw]
Subject: [PATCH v2 -next] cgroup: don't call cgroup1_pidlist_destroy_all() for v2

From: Xiu Jianfeng <[email protected]>

Currently cgroup1_pidlist_destroy_all() will be called when releasing
cgroup even if the cgroup is on default hierarchy, however it doesn't
make any sense for v2 to destroy pidlist of v1.

Signed-off-by: Xiu Jianfeng <[email protected]>

---
v2: move the test to the caller
---
kernel/cgroup/cgroup.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index a66c088c851c..e32b6972c478 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -5368,7 +5368,8 @@ static void css_free_rwork_fn(struct work_struct *work)
} else {
/* cgroup free path */
atomic_dec(&cgrp->root->nr_cgrps);
- cgroup1_pidlist_destroy_all(cgrp);
+ if (!cgroup_on_dfl(cgrp))
+ cgroup1_pidlist_destroy_all(cgrp);
cancel_work_sync(&cgrp->release_agent_work);
bpf_cgrp_storage_free(cgrp);

--
2.34.1



2024-04-18 15:58:05

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH v2 -next] cgroup: don't call cgroup1_pidlist_destroy_all() for v2

On Thu, Apr 18, 2024 at 02:19:30AM +0000, Xiu Jianfeng wrote:
> From: Xiu Jianfeng <[email protected]>
>
> Currently cgroup1_pidlist_destroy_all() will be called when releasing
> cgroup even if the cgroup is on default hierarchy, however it doesn't
> make any sense for v2 to destroy pidlist of v1.
>
> Signed-off-by: Xiu Jianfeng <[email protected]>

Applied to cgroup/for-6.10.

Thanks.

--
tejun