diff options
author | Oleg Nesterov <oleg@redhat.com> | 2016-11-14 19:46:12 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-11-22 12:33:43 +0100 |
commit | 8e5bfa8c1f8471aa4a2d30be631ef2b50e10abaf (patch) | |
tree | ad3d1c2dc3f1770ac865c8f1df91a53c1e276728 /kernel/exit.c | |
parent | 18f649ef344127ef6de23a5a4272dbe2fdb73dde (diff) | |
download | lwn-8e5bfa8c1f8471aa4a2d30be631ef2b50e10abaf.tar.gz lwn-8e5bfa8c1f8471aa4a2d30be631ef2b50e10abaf.zip |
sched/autogroup: Do not use autogroup->tg in zombie threads
Exactly because for_each_thread() in autogroup_move_group() can't see it
and update its ->sched_task_group before _put() and possibly free().
So the exiting task needs another sched_move_task() before exit_notify()
and we need to re-introduce the PF_EXITING (or similar) check removed by
the previous change for another reason.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: hartsjc@redhat.com
Cc: vbendel@redhat.com
Cc: vlovejoy@redhat.com
Link: http://lkml.kernel.org/r/20161114184612.GA15968@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 9d68c45ebbe3..3076f3089919 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -836,6 +836,7 @@ void __noreturn do_exit(long code) */ perf_event_exit_task(tsk); + sched_autogroup_exit_task(tsk); cgroup_exit(tsk); /* |