diff options
| author | Yafang Shao <[email protected]> | 2020-08-11 18:31:32 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2020-08-12 10:57:56 -0700 |
| commit | 619b5b469bcab84ea3bee1d8d04451c781d23feb (patch) | |
| tree | 194a09ba036cd452f3e1bd34f67edf1dbedb58cc | |
| parent | b1aa7c9377bdff904efa0fbde1f96e1769730d8a (diff) | |
mm, oom: show process exiting information in __oom_kill_process()
When the OOM killer finds a victim and tryies to kill it, if the victim is
already exiting, the task mm will be NULL and no process will be killed.
But the dump_header() has been already executed, so it will be strange to
dump so much information without killing a process. We'd better show some
helpful information to indicate why this happens.
Suggested-by: David Rientjes <[email protected]>
Signed-off-by: Yafang Shao <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Cc: Tetsuo Handa <[email protected]>
Cc: Qian Cai <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Linus Torvalds <[email protected]>
| -rw-r--r-- | mm/oom_kill.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 48e0db54d838..e90f25d6385d 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -861,6 +861,8 @@ static void __oom_kill_process(struct task_struct *victim, const char *message) p = find_lock_task_mm(victim); if (!p) { + pr_info("%s: OOM victim %d (%s) is already exiting. Skip killing the task\n", + message, task_pid_nr(victim), victim->comm); put_task_struct(victim); return; } else if (victim != p) { |