Commit 8a7ff02a authored by David Rientjes's avatar David Rientjes Committed by Linus Torvalds

mm, oom: dump stack of victim when reaping failed

When a process cannot be oom reaped, for whatever reason, currently the
list of locks that are held is currently dumped to the kernel log.

Much more interesting is the stack trace of the victim that cannot be
reaped.  If the stack trace is dumped, we have the ability to find
related occurrences in the same kernel code and hopefully solve the
issue that is making it wedged.

Dump the stack trace when a process fails to be oom reaped.

Link: http://lkml.kernel.org/r/alpine.DEB.2.21.2001141519280.200484@chino.kir.corp.google.comSigned-off-by: default avatarDavid Rientjes <rientjes@google.com>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a090d711
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <linux/sched/mm.h> #include <linux/sched/mm.h>
#include <linux/sched/coredump.h> #include <linux/sched/coredump.h>
#include <linux/sched/task.h> #include <linux/sched/task.h>
#include <linux/sched/debug.h>
#include <linux/swap.h> #include <linux/swap.h>
#include <linux/timex.h> #include <linux/timex.h>
#include <linux/jiffies.h> #include <linux/jiffies.h>
...@@ -620,6 +621,7 @@ static void oom_reap_task(struct task_struct *tsk) ...@@ -620,6 +621,7 @@ static void oom_reap_task(struct task_struct *tsk)
pr_info("oom_reaper: unable to reap pid:%d (%s)\n", pr_info("oom_reaper: unable to reap pid:%d (%s)\n",
task_pid_nr(tsk), tsk->comm); task_pid_nr(tsk), tsk->comm);
sched_show_task(tsk);
debug_show_all_locks(); debug_show_all_locks();
done: done:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment