Messages in this thread | | | Date | Thu, 18 Feb 2016 13:08:49 +0100 | From | Michal Hocko <> | Subject | Re: [PATCH v2] mm,oom: exclude oom_task_origin processes if they are OOM-unkillable. |
| |
On Thu 18-02-16 19:30:12, Tetsuo Handa wrote: [...] > Commit 9cbb78bb314360a8 changed oom_scan_process_thread() to > always pass memcg == NULL by removing memcg argument from > oom_scan_process_thread(). As a result, after that commit, > we are doing test_tsk_thread_flag(p, TIF_MEMDIE) check and > oom_task_origin(p) check between two oom_unkillable_task() > calls of memcg OOM case. Why don't we skip these checks by > passing memcg != NULL to first oom_unkillable_task() call? > Was this change by error?
I am not really sure I understand your question. The point is that mem_cgroup_out_of_memory does for_each_mem_cgroup_tree which means that only tasks from the given memcg hierarchy is checked and oom_unkillable_task cares about memcg only for
/* When mem_cgroup_out_of_memory() and p is not member of the group */ if (memcg && !task_in_mem_cgroup(p, memcg)) return true;
which is never true by definition. I guess we can safely remove the memcg argument from oom_badness and oom_unkillable_task. At least from a quick glance... -- Michal Hocko SUSE Labs
| |