On Tue 14-01-20 15:20:04, David Rientjes wrote: > 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. Yes, this is really helpful. > Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Thanks! > --- > mm/oom_kill.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > --- a/mm/oom_kill.c > +++ b/mm/oom_kill.c > @@ -26,6 +26,7 @@ > #include <linux/sched/mm.h> > #include <linux/sched/coredump.h> > #include <linux/sched/task.h> > +#include <linux/sched/debug.h> > #include <linux/swap.h> > #include <linux/timex.h> > #include <linux/jiffies.h> > @@ -620,6 +621,7 @@ static void oom_reap_task(struct task_struct *tsk) > > pr_info("oom_reaper: unable to reap pid:%d (%s)\n", > task_pid_nr(tsk), tsk->comm); > + sched_show_task(tsk); > debug_show_all_locks(); > > done: -- Michal Hocko SUSE Labs