From cd6370462f0b9a49fe7532e4c840b43eea8d6f48 Mon Sep 17 00:00:00 2001 From: Tetsuo Handa Date: Thu, 24 Oct 2019 18:01:59 +0800 Subject: [PATCH] mm: memcontrol: use CSS_TASK_ITER_PROCS at mem_cgroup_scan_tasks() mainline inclusion from mainline-5.3-rc1 commit f168a9a54ec39b3f832c353733898b713b6b5c1f category: bugfix bugzilla: 20545 CVE: NA ------------------------------------------------- Since commit c03cd7738a83 ("cgroup: Include dying leaders with live threads in PROCS iterations") corrected how CSS_TASK_ITER_PROCS works, mem_cgroup_scan_tasks() can use CSS_TASK_ITER_PROCS in order to check only one thread from each thread group. [penguin-kernel@I-love.SAKURA.ne.jp: remove thread group leader check in oom_evaluate_task()] Link: http://lkml.kernel.org/r/1560853257-14934-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp Link: http://lkml.kernel.org/r/c763afc8-f0ae-756a-56a7-395f625b95fc@i-love.sakura.ne.jp Signed-off-by: Tetsuo Handa Acked-by: Michal Hocko Reviewed-by: Shakeel Butt Cc: Johannes Weiner Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: tongtiangen Reviewed-by: Kefeng Wang Signed-off-by: Yang Yingliang --- mm/memcontrol.c | 2 +- mm/oom_kill.c | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8fdd512f6e69..ed4ae5629c8d 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1101,7 +1101,7 @@ int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, struct css_task_iter it; struct task_struct *task; - css_task_iter_start(&iter->css, 0, &it); + css_task_iter_start(&iter->css, CSS_TASK_ITER_PROCS, &it); while (!ret && (task = css_task_iter_next(&it))) ret = fn(task, arg); css_task_iter_end(&it); diff --git a/mm/oom_kill.c b/mm/oom_kill.c index a581fe2a2f1f..8a4570c53e83 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -345,9 +345,6 @@ static int oom_evaluate_task(struct task_struct *task, void *arg) if (!points || points < oc->chosen_points) goto next; - /* Prefer thread group leaders for display purposes */ - if (points == oc->chosen_points && thread_group_leader(oc->chosen)) - goto next; select: if (oc->chosen) put_task_struct(oc->chosen); -- GitLab