diff options
author | Oleg Nesterov <oleg@redhat.com> | 2015-11-06 03:48:23 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-06 04:34:48 +0100 |
commit | c319025a6c79e532d862e3a0b9506ba316a4d13a (patch) | |
tree | 750c8a25dac8a54d87122be6d3afb3d4523f0d09 /mm/oom_kill.c | |
parent | mm/oom_kill: remove the wrong fatal_signal_pending() check in oom_kill_process() (diff) | |
download | linux-c319025a6c79e532d862e3a0b9506ba316a4d13a.tar.xz linux-c319025a6c79e532d862e3a0b9506ba316a4d13a.zip |
mm/oom_kill: cleanup the "kill sharing same memory" loop
Purely cosmetic, but the complex "if" condition looks annoying to me.
Especially because it is not consistent with OOM_SCORE_ADJ_MIN check
which adds another if/continue.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com>
Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
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 | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/mm/oom_kill.c b/mm/oom_kill.c index c837d06dce5a..2b6e8809d7a8 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -574,14 +574,18 @@ void oom_kill_process(struct oom_control *oc, struct task_struct *p, * pending fatal signal. */ rcu_read_lock(); - for_each_process(p) - if (p->mm == mm && !same_thread_group(p, victim) && - !(p->flags & PF_KTHREAD)) { - if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) - continue; + for_each_process(p) { + if (p->mm != mm) + continue; + if (same_thread_group(p, victim)) + continue; + if (unlikely(p->flags & PF_KTHREAD)) + continue; + if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) + continue; - do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true); - } + do_send_sig_info(SIGKILL, SEND_SIG_FORCED, p, true); + } rcu_read_unlock(); mmdrop(mm); |