On Fri 19-02-16 22:51:38, Tetsuo Handa wrote: > Currently, mem_cgroup_out_of_memory() is calling > oom_scan_process_thread(&oc, task, totalpages) which includes > a call to oom_unkillable_task(task, NULL, NULL) and then is > calling oom_badness(task, memcg, NULL, totalpages) which includes > a call to oom_unkillable_task(task, memcg, NULL). > > Since for_each_mem_cgroup_tree() iterates on only tasks from the given > memcg hierarchy, there is no point with passing non-NULL memcg argument > to oom_unkillable_task() via oom_badness(). > > Replace memcg argument with NULL in order to save a call to > task_in_mem_cgroup(task, memcg) in oom_unkillable_task() > which is always true. yes this is true but oom_badness is called from super slow path here so I am not sure this change will buy anything. It makes the code little bit more confusing because now you have to think twice (or git blame) to see why the memcg == NULL is really OK. So I do not think this is an improvement. If anything wouldn't it be cleaner to remove memcg parameter from oom_badness altogether and instead do the task_in_mem_cgroup check where it is really needed? In other words do the check in oom_kill_process when evaluating children to sacrifice them? > Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> > --- > mm/memcontrol.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index ae8b81c..3c96dd3 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -1290,7 +1290,7 @@ static void mem_cgroup_out_of_memory(struct mem_cgroup *memcg, gfp_t gfp_mask, > case OOM_SCAN_OK: > break; > }; > - points = oom_badness(task, memcg, NULL, totalpages); > + points = oom_badness(task, NULL, NULL, totalpages); > if (!points || points < chosen_points) > continue; > /* Prefer thread group leaders for display purposes */ > -- > 1.8.3.1 -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>