Revision 9cd80bbb07fcd6d4d037fad4297496d3b132ac6b authored by Oleg Nesterov on 17 December 2009, 23:27:15 UTC, committed by Linus Torvalds on 17 December 2009, 23:45:31 UTC
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>
1 parent 0f67b0b
File | Mode | Size |
---|---|---|
Makefile | -rw-r--r-- | 384 bytes |
compat.c | -rw-r--r-- | 17.0 KB |
compat_mq.c | -rw-r--r-- | 4.0 KB |
ipc_sysctl.c | -rw-r--r-- | 5.1 KB |
ipcns_notifier.c | -rw-r--r-- | 2.2 KB |
mq_sysctl.c | -rw-r--r-- | 2.7 KB |
mqueue.c | -rw-r--r-- | 30.6 KB |
msg.c | -rw-r--r-- | 20.9 KB |
msgutil.c | -rw-r--r-- | 2.8 KB |
namespace.c | -rw-r--r-- | 3.3 KB |
sem.c | -rw-r--r-- | 35.8 KB |
shm.c | -rw-r--r-- | 25.9 KB |
util.c | -rw-r--r-- | 22.9 KB |
util.h | -rw-r--r-- | 5.2 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...