aboutsummaryrefslogtreecommitdiff
path: root/lib/debugobjects.c
diff options
context:
space:
mode:
authorOleg Nesterov <[email protected]>2009-12-17 15:27:15 -0800
committerLinus Torvalds <[email protected]>2009-12-17 15:45:31 -0800
commit9cd80bbb07fcd6d4d037fad4297496d3b132ac6b (patch)
tree322216d34b6d5ba2366f53ba0d677950c4cde766 /lib/debugobjects.c
parent0f67b0b0392ccca98459bf40b36c0037793b5f71 (diff)
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 <[email protected]> Cc: Roland McGrath <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Ratan Nalumasu <[email protected]> Cc: Vitaly Mayatskikh <[email protected]> Cc: David Rientjes <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'lib/debugobjects.c')
0 files changed, 0 insertions, 0 deletions