Searched hist:"9 cd80bbb07fcd6d4d037fad4297496d3b132ac6b" (Results 1 – 3 of 3) sorted by relevance
/openbmc/linux/kernel/ |
H A D | exit.c | diff 9cd80bbb07fcd6d4d037fad4297496d3b132ac6b Thu Dec 17 17:27:15 CST 2009 Oleg Nesterov <oleg@redhat.com> do_wait() optimization: do not place sub-threads on task_struct->children list
Thanks to Roland who pointed out de_thread() issues.
Currently we add sub-threads to ->real_parent->children list. This buys nothing but slows down do_wait().
With this patch ->children contains only main threads (group leaders). The only complication is that forget_original_parent() should iterate over sub-threads by hand, and de_thread() needs another list_replace() when it changes ->group_leader.
Henceforth do_wait_thread() can never see task_detached() && !EXIT_DEAD tasks, we can remove this check (and we can unify do_wait_thread() and ptrace_do_wait()).
This change can confuse the optimistic search in mm_update_next_owner(), but this is fixable and minor.
Perhaps badness() and oom_kill_process() should be updated, but they should be fixed in any case.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: Roland McGrath <roland@redhat.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Ratan Nalumasu <rnalumasu@gmail.com> Cc: Vitaly Mayatskikh <vmayatsk@redhat.com> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
H A D | fork.c | diff 9cd80bbb07fcd6d4d037fad4297496d3b132ac6b Thu Dec 17 17:27:15 CST 2009 Oleg Nesterov <oleg@redhat.com> do_wait() optimization: do not place sub-threads on task_struct->children list
Thanks to Roland who pointed out de_thread() issues.
Currently we add sub-threads to ->real_parent->children list. This buys nothing but slows down do_wait().
With this patch ->children contains only main threads (group leaders). The only complication is that forget_original_parent() should iterate over sub-threads by hand, and de_thread() needs another list_replace() when it changes ->group_leader.
Henceforth do_wait_thread() can never see task_detached() && !EXIT_DEAD tasks, we can remove this check (and we can unify do_wait_thread() and ptrace_do_wait()).
This change can confuse the optimistic search in mm_update_next_owner(), but this is fixable and minor.
Perhaps badness() and oom_kill_process() should be updated, but they should be fixed in any case.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: Roland McGrath <roland@redhat.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Ratan Nalumasu <rnalumasu@gmail.com> Cc: Vitaly Mayatskikh <vmayatsk@redhat.com> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
/openbmc/linux/fs/ |
H A D | exec.c | diff 9cd80bbb07fcd6d4d037fad4297496d3b132ac6b Thu Dec 17 17:27:15 CST 2009 Oleg Nesterov <oleg@redhat.com> do_wait() optimization: do not place sub-threads on task_struct->children list
Thanks to Roland who pointed out de_thread() issues.
Currently we add sub-threads to ->real_parent->children list. This buys nothing but slows down do_wait().
With this patch ->children contains only main threads (group leaders). The only complication is that forget_original_parent() should iterate over sub-threads by hand, and de_thread() needs another list_replace() when it changes ->group_leader.
Henceforth do_wait_thread() can never see task_detached() && !EXIT_DEAD tasks, we can remove this check (and we can unify do_wait_thread() and ptrace_do_wait()).
This change can confuse the optimistic search in mm_update_next_owner(), but this is fixable and minor.
Perhaps badness() and oom_kill_process() should be updated, but they should be fixed in any case.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: Roland McGrath <roland@redhat.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Ratan Nalumasu <rnalumasu@gmail.com> Cc: Vitaly Mayatskikh <vmayatsk@redhat.com> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|