summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>2019-07-11 21:00:20 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2019-07-12 11:05:47 -0700
commitf168a9a54ec39b3f832c353733898b713b6b5c1f (patch)
tree54a6a99ef4e9abdd2fc0011af13ea83cc8336702
parent135e53514ef2cb200b616bf3fa4272cfa6c39291 (diff)
mm: memcontrol: use CSS_TASK_ITER_PROCS at mem_cgroup_scan_tasks()
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 <penguin-kernel@I-love.SAKURA.ne.jp> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Shakeel Butt <shakeelb@google.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Tejun Heo <tj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/memcontrol.c2
-rw-r--r--mm/oom_kill.c3
2 files changed, 1 insertions, 4 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 2cb7e4e5c51a..773ae5674e12 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1167,7 +1167,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 f719b64741d6..606e5e4c6a3e 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -346,9 +346,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);