From: David Rientjes Date: Wed, 26 May 2010 21:42:41 +0000 (-0700) Subject: memcg: make oom killer a no-op when no killable task can be found X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=df64f81bb1e01cbef967a96642dacf208acb7e72;p=mv-sheeva.git memcg: make oom killer a no-op when no killable task can be found It's pointless to try to kill current if select_bad_process() did not find an eligible task to kill in mem_cgroup_out_of_memory() since it's guaranteed that current is a member of the memcg that is oom and it is, by definition, unkillable. Signed-off-by: David Rientjes Acked-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Cc: Li Zefan Cc: Daisuke Nishimura Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/mm/oom_kill.c b/mm/oom_kill.c index b68e802a7a7..709aedfaa01 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -479,12 +479,9 @@ void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask) read_lock(&tasklist_lock); retry: p = select_bad_process(&points, mem); - if (PTR_ERR(p) == -1UL) + if (!p || PTR_ERR(p) == -1UL) goto out; - if (!p) - p = current; - if (oom_kill_process(p, gfp_mask, 0, points, mem, "Memory cgroup out of memory")) goto retry;