Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Date | Thu, 19 May 2022 16:26:51 -0700 | Subject | Re: [PATCH] cgroup: don't queue css_release_work if one already pending | From | Tadeusz Struk <> |
| |
On 5/19/22 04:23, Hillf Danton wrote: > On Wed, 18 May 2022 09:48:21 -0700 Tadeusz Struk wrote: >> On 4/22/22 04:05, Michal Koutny wrote: >>> On Thu, Apr 21, 2022 at 02:00:56PM -1000, Tejun Heo<tj@kernel.org> wrote: >>>> If this is the case, we need to hold an extra reference to be put by the >>>> css_killed_work_fn(), right? > That put could trigger INIT_WORK in css_release() and warning [1] > on init active (active state 0) object OTOH as the same > css->destroy_work is used in both kill and release pathes.
Will this help if there would be two WQs, one for the css_release path and one for the rcu_work?
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index adb820e98f24..a4873b33e488 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -124,6 +124,7 @@ DEFINE_PERCPU_RWSEM(cgroup_threadgroup_rwsem); * which may lead to deadlock. */ static struct workqueue_struct *cgroup_destroy_wq; +static struct workqueue_struct *cgroup_destroy_rcu_wq; /* generate an array of cgroup subsystem pointers */ #define SUBSYS(_x) [_x ## _cgrp_id] = &_x ## _cgrp_subsys, -- Thanks, Tadeusz
| ![\](/images/icornerr.gif) |