From: Luka Bai Cgroup_psi() now includes a condition, and checks against whether the cgroup is the root cgroup to decide whether to use psi_system instead of cgrp->psi. This is mostly because the default hierarchy does not have any psi group attached. So we make psi_system as its psi group, and remove the if condition in cgroup_psi(). Signed-off-by: Luka Bai --- include/linux/psi.h | 2 +- kernel/cgroup/cgroup.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/psi.h b/include/linux/psi.h index e0745873e3f2..8f2db511d051 100644 --- a/include/linux/psi.h +++ b/include/linux/psi.h @@ -34,7 +34,7 @@ __poll_t psi_trigger_poll(void **trigger_ptr, struct file *file, #ifdef CONFIG_CGROUPS static inline struct psi_group *cgroup_psi(struct cgroup *cgrp) { - return cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi; + return cgrp->psi; } int psi_cgroup_alloc(struct cgroup *cgrp); diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 43adc96c7f1a..357c68662d18 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -178,6 +178,9 @@ static DEFINE_PER_CPU(struct cgroup_rstat_base_cpu, root_rstat_base_cpu); /* the default hierarchy */ struct cgroup_root cgrp_dfl_root = { .cgrp.self.rstat_cpu = &root_rstat_cpu, +#ifdef CONFIG_PSI + .cgrp.psi = &psi_system, +#endif .cgrp.rstat_base_cpu = &root_rstat_base_cpu, }; EXPORT_SYMBOL_GPL(cgrp_dfl_root); -- 2.52.0