Hi Michal, On Fri, Jan 17, 2020 at 7:15 AM Michal Koutný <mkoutny@xxxxxxxx> wrote: > > Hi, > I was looking into the issue and came up with an alternative solution that > changes task iteration to be consistent with cgroup_is_populated() check and > moving the responsibility to check PF_EXITING on the consumers of iterator API. Yeah, that was my first thought which basically reverts a part of c03cd7738a83. When I first brought up this issue in the other email thread, Tejun's comment was "the right thing to do is allowing destruction of cgroups w/ only dead processes in it". I assumed, maybe incorrectly, that the desire here is not to include dying processes into cgroup.procs but to allow cgroups with dying processes to be deleted. To be clear, either way is fine with me since both ways solve the issue and this way the code is definitely simpler. I'll rerun the tests with your patches just to confirm the issue is gone. Thanks! > I haven't check your approach thoroughly, however, it appears to me it > complicates (already non-trivial) cgroup destruction path. I ran your selftest > on the iterators approach and it proved working. > > > Michal Koutný (2): > cgroup: Unify css_set task lists > cgroup: Iterate tasks that did not finish do_exit() > > Suren Baghdasaryan (1): > kselftest/cgroup: add cgroup destruction test > > include/linux/cgroup-defs.h | 15 ++- > include/linux/cgroup.h | 4 +- > kernel/cgroup/cgroup.c | 86 ++++++++-------- > kernel/cgroup/debug.c | 16 ++- > tools/testing/selftests/cgroup/test_core.c | 113 +++++++++++++++++++++ > 5 files changed, 176 insertions(+), 58 deletions(-) > > -- > 2.24.1 > > -- > To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe@xxxxxxxxxxx. >