提交 ce75057b 编写于 作者: T Tetsuo Handa 提交者: Caspar Zhang

mm: memcontrol: use CSS_TASK_ITER_PROCS at mem_cgroup_scan_tasks()

commit f168a9a54ec39b3f832c353733898b713b6b5c1f upstream.

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.jpSigned-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Acked-by: NMichal Hocko <mhocko@suse.com>
Reviewed-by: NShakeel Butt <shakeelb@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: NXu Yu <xuyu@linux.alibaba.com>
Reviewed-by: NYang Shi <yang.shi@linux.alibaba.com>
Reviewed-by: NXunlei Pang <xlpang@linux.alibaba.com>
上级 b8abe421
...@@ -1229,7 +1229,7 @@ int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, ...@@ -1229,7 +1229,7 @@ int mem_cgroup_scan_tasks(struct mem_cgroup *memcg,
struct css_task_iter it; struct css_task_iter it;
struct task_struct *task; 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))) while (!ret && (task = css_task_iter_next(&it)))
ret = fn(task, arg); ret = fn(task, arg);
css_task_iter_end(&it); css_task_iter_end(&it);
......
...@@ -354,9 +354,6 @@ int oom_evaluate_task(struct task_struct *task, void *arg) ...@@ -354,9 +354,6 @@ int oom_evaluate_task(struct task_struct *task, void *arg)
if (points < oc->chosen_points) if (points < oc->chosen_points)
goto next; goto next;
/* Prefer thread group leaders for display purposes */
if (points == oc->chosen_points && thread_group_leader(oc->chosen))
goto next;
select: select:
if (oc->chosen) if (oc->chosen)
put_task_struct(oc->chosen); put_task_struct(oc->chosen);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册