Messages in this thread Patch in this message | | | Subject | Re: [PATCH v2] mm,oom: exclude oom_task_origin processes if they are OOM-unkillable. | From | Tetsuo Handa <> | Date | Sat, 20 Feb 2016 00:07:05 +0900 |
| |
Michal Hocko wrote: > On Thu 18-02-16 13:08:49, Michal Hocko wrote: > > I guess we can safely remove the memcg > > argument from oom_badness and oom_unkillable_task. At least from a quick > > glance... > > No we cannot actually. oom_kill_process could select a child which is in > a different memcg in that case...
Then, don't we need to check whether processes sharing victim->mm in other thread groups are in the same memcg when we walk the process list?
---------- diff --git a/mm/oom_kill.c b/mm/oom_kill.c index f426ce8..d05db31 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -762,8 +762,7 @@ void oom_kill_process(struct oom_control *oc, struct task_struct *p, continue; if (same_thread_group(p, victim)) continue; - if (unlikely(p->flags & PF_KTHREAD) || is_global_init(p) || - p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) { + if (oom_badness(p, memcg, oc, totalpages, false) == 0) { /* * We cannot use oom_reaper for the mm shared by this * process because it wouldn't get killed and so the ----------
| |