aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched/core.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index cc1e3e0d29b0..e01bd807f0af 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -6811,11 +6811,20 @@ cpu_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)
6811 if (IS_ERR(tg)) 6811 if (IS_ERR(tg))
6812 return ERR_PTR(-ENOMEM); 6812 return ERR_PTR(-ENOMEM);
6813 6813
6814 sched_online_group(tg, parent);
6815
6816 return &tg->css; 6814 return &tg->css;
6817} 6815}
6818 6816
6817/* Expose task group only after completing cgroup initialization */
6818static int cpu_cgroup_css_online(struct cgroup_subsys_state *css)
6819{
6820 struct task_group *tg = css_tg(css);
6821 struct task_group *parent = css_tg(css->parent);
6822
6823 if (parent)
6824 sched_online_group(tg, parent);
6825 return 0;
6826}
6827
6819static void cpu_cgroup_css_released(struct cgroup_subsys_state *css) 6828static void cpu_cgroup_css_released(struct cgroup_subsys_state *css)
6820{ 6829{
6821 struct task_group *tg = css_tg(css); 6830 struct task_group *tg = css_tg(css);
@@ -7221,6 +7230,7 @@ static struct cftype cpu_files[] = {
7221 7230
7222struct cgroup_subsys cpu_cgrp_subsys = { 7231struct cgroup_subsys cpu_cgrp_subsys = {
7223 .css_alloc = cpu_cgroup_css_alloc, 7232 .css_alloc = cpu_cgroup_css_alloc,
7233 .css_online = cpu_cgroup_css_online,
7224 .css_released = cpu_cgroup_css_released, 7234 .css_released = cpu_cgroup_css_released,
7225 .css_free = cpu_cgroup_css_free, 7235 .css_free = cpu_cgroup_css_free,
7226 .fork = cpu_cgroup_fork, 7236 .fork = cpu_cgroup_fork,