diff options
| author | Oleg Nesterov <oleg@redhat.com> | 2015-11-05 18:48:20 -0800 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2019-07-08 14:08:55 +0200 |
| commit | 5f9ca4d72ffac0c5fbc87381f9c0b5c98c81bfbd (patch) | |
| tree | 1ff6d4b7946c0cc83d65ab8131b035cb5630aaac /mm/oom_kill.c | |
| parent | 173048a77ade2e0a276ba52ebf5e9ead5f4091d3 (diff) | |
mm/oom_kill: remove the wrong fatal_signal_pending() check in oom_kill_process()
The fatal_signal_pending() was added to suppress unnecessary "sharing same
memory" message, but it can't 100% help anyway because it can be
false-negative; SIGKILL can be already dequeued.
And worse, it can be false-positive due to exec or coredump. exec is
mostly fine, but coredump is not. It is possible that the group leader
has the pending SIGKILL because its sub-thread originated the coredump, in
this case we must not skip this process.
We could probably add the additional ->group_exit_task check but this
patch just removes the wrong check along with pr_info().
Change-Id: Icbf79bac26785838980325a418924c5d44c97d9d
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Kyle Walker <kwalker@redhat.com>
Cc: Stanislav Kozina <skozina@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/oom_kill.c')
| -rw-r--r-- | mm/oom_kill.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 5933c3c15..bf06d4f20 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -622,11 +622,7 @@ void oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, !(p->flags & PF_KTHREAD)) { if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) continue; - if (fatal_signal_pending(p)) - continue; - pr_info("Kill process %d (%s) sharing same memory\n", - task_pid_nr(p), p->comm); do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true); } rcu_read_unlock(); |
