
From: Xu Kuohai <xukuohai@huawei.com> hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/ICAOAT -------------------------------- Fix sub-cgroup can't show in cgroup v1 Signed-off-by: Xu Kuohai <xukuohai@huawei.com> Signed-off-by: Pu Lehui <pulehui@huawei.com> --- include/linux/cgroup.h | 4 ++++ init/init_task.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 256d04d28ea2..612a2547a4f9 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -895,6 +895,10 @@ static inline struct cgroup_ifs *cgroup_ifs(struct cgroup *cgrp) static inline struct cgroup_ifs *task_ifs(struct task_struct *task) { +#ifdef CONFIG_CGROUP_CPUACCT + if (!cgroup_subsys_on_dfl(cpuacct_cgrp_subsys)) + return cgroup_ifs(task_cgroup(task, cpuacct_cgrp_id)); +#endif return cgroup_ifs(task_dfl_cgroup(task)); } diff --git a/init/init_task.c b/init/init_task.c index 1adc17149558..275ae1f2ff1c 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -12,6 +12,7 @@ #include <linux/audit.h> #include <linux/numa.h> #include <linux/scs.h> +#include <linux/cgroup.h> #include <linux/uaccess.h> @@ -61,6 +62,10 @@ static struct task_struct_resvd init_task_struct_resvd = { .task = &init_task, }; +#ifdef CONFIG_CGROUP_IFS +static struct css_set dummy_css; +#endif + /* * Set up the first task table, touch at your own risk!. Base=0, * limit=0x1fffff (=2MB) @@ -168,6 +173,9 @@ struct task_struct init_task .mems_allowed_seq = SEQCNT_SPINLOCK_ZERO(init_task.mems_allowed_seq, &init_task.alloc_lock), #endif +#ifdef CONFIG_CGROUP_IFS + .cgroups = &dummy_css, +#endif #ifdef CONFIG_RT_MUTEXES .pi_waiters = RB_ROOT_CACHED, .pi_top_task = NULL, -- 2.34.1