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 <rientjes@google.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Li Zefan <lizf@cn.fujitsu.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
dc10e281f5
Коммит
df64f81bb1
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче