From 798cfa768c743e03aac3336a43bd233d2ec824ce Mon Sep 17 00:00:00 2001 From: Xunlei Pang Date: Mon, 23 Mar 2020 15:30:28 +0800 Subject: [PATCH 0888/2944] alinux: cgroup: Fix task_css_check rcu warnings to #26424323 task_css() should be protected by rcu, fix several callers. Fixes: 1f49a7385032 ("alinux: psi: Support PSI under cgroup v1") Acked-by: Michael Wang Signed-off-by: Xunlei Pang Signed-off-by: Yihao Wu Acked-by: Yang Shi --- kernel/sched/psi.c | 5 ++++- mm/oom_kill.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c index dfdce4c..5e05592 100644 --- a/kernel/sched/psi.c +++ b/kernel/sched/psi.c @@ -728,12 +728,15 @@ static struct psi_group *iterate_groups(struct task_struct *task, void **iter) if (!*iter) { if (static_branch_likely(&psi_v1_disabled)) cgroup = task->cgroups->dfl_cgrp; - else + else { #ifdef CONFIG_CGROUP_CPUACCT + rcu_read_lock(); cgroup = task_cgroup(task, cpuacct_cgrp_id); + rcu_read_unlock(); #else cgroup = NULL; #endif + } } else if (*iter == &psi_system) return NULL; else diff --git a/mm/oom_kill.c b/mm/oom_kill.c index d763971..7f7fa7e 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -453,7 +453,9 @@ static void dump_header(struct oom_control *oc, struct task_struct *p) p = current; pr_info("Task in "); + rcu_read_lock(); pr_cont_cgroup_path(task_cgroup(p, memory_cgrp_id)); + rcu_read_unlock(); pr_cont(" killed as a result of limit of host\n"); #endif show_mem(SHOW_MEM_FILTER_NODES, oc->nodemask); -- 1.8.3.1