Messages in this thread Patch in this message | | | Date | Wed, 17 Mar 2010 20:28:50 +0100 | From | Oleg Nesterov <> | Subject | [PATCH 1/4] exit: exit_notify() can trust signal->notify_count < 0 |
| |
Now that Veaceslav changed copy_signal() to use zalloc(), exit_notify() can just check notify_count < 0 to ensure the execing sub-threads needs the notification from us. No need to do other checks, notify_count != 0 must always mean ->group_exit_task != NULL is waiting for us.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> ---
kernel/exit.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
--- 34-rc1/kernel/exit.c~1_EXIT_NOTIFY 2010-03-17 19:10:28.000000000 +0100 +++ 34-rc1/kernel/exit.c 2010-03-17 19:17:39.000000000 +0100 @@ -857,12 +857,9 @@ static void exit_notify(struct task_stru tsk->exit_state = signal == DEATH_REAP ? EXIT_DEAD : EXIT_ZOMBIE; - /* mt-exec, de_thread() is waiting for us */ - if (thread_group_leader(tsk) && - tsk->signal->group_exit_task && - tsk->signal->notify_count < 0) + /* mt-exec, de_thread() is waiting for group leader */ + if (unlikely(tsk->signal->notify_count < 0)) wake_up_process(tsk->signal->group_exit_task); - write_unlock_irq(&tasklist_lock); tracehook_report_death(tsk, signal, cookie, group_dead);
| |