]> Git Repo - linux.git/commit
oom, oom_reaper: disable oom_reaper for oom_kill_allocating_task
authorMichal Hocko <[email protected]>
Fri, 25 Mar 2016 21:20:36 +0000 (14:20 -0700)
committerLinus Torvalds <[email protected]>
Fri, 25 Mar 2016 23:37:42 +0000 (16:37 -0700)
commit855b018325737f7691f9b7d86339df40aa4e47c3
tree53593c573d50f6ae6f46d05a8339528f44b99b5b
parent03049269de433cb5fe2859be9ae4469ceb1163ed
oom, oom_reaper: disable oom_reaper for oom_kill_allocating_task

Tetsuo has reported that oom_kill_allocating_task=1 will cause
oom_reaper_list corruption because oom_kill_process doesn't follow
standard OOM exclusion (aka ignores TIF_MEMDIE) and allows to enqueue
the same task multiple times - e.g.  by sacrificing the same child
multiple times.

This patch fixes the issue by introducing a new MMF_OOM_KILLED mm flag
which is set in oom_kill_process atomically and oom reaper is disabled
if the flag was already set.

Signed-off-by: Michal Hocko <[email protected]>
Reported-by: Tetsuo Handa <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Oleg Nesterov <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Rik van Riel <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/sched.h
mm/oom_kill.c
This page took 0.056989 seconds and 4 git commands to generate.