Messages in this thread Patch in this message | | | Date | Mon, 14 Mar 2011 20:05:08 +0100 | From | Oleg Nesterov <> | Subject | [PATCH 2/3 for 2.6.38] oom: select_bad_process: ignore TIF_MEMDIE zombies |
| |
select_bad_process() assumes that a TIF_MEMDIE process should go away. But it can only go away it its parent does wait(). Change this check to ignore the TIF_MEMDIE zombies.
Note: this is _not_ enough. Just a minimal fix.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> ---
mm/oom_kill.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
--- 38/mm/oom_kill.c~2_tif_memdie_zombie 2011-03-14 18:51:49.000000000 +0100 +++ 38/mm/oom_kill.c 2011-03-14 18:52:39.000000000 +0100 @@ -311,7 +311,8 @@ static struct task_struct *select_bad_pr * blocked waiting for another task which itself is waiting * for memory. Is there a better alternative? */ - if (test_tsk_thread_flag(p, TIF_MEMDIE)) + if (test_tsk_thread_flag(p, TIF_MEMDIE) && + !p->exit_state && thread_group_empty(p)) return ERR_PTR(-1UL); /*
| |