aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r--kernel/sched/core.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 0ac0f811d623..cecbb64be05f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -7563,24 +7563,31 @@ cpu_cgroup_destroy(struct cgroup_subsys *ss, struct cgroup *cgrp)
7563 sched_destroy_group(tg); 7563 sched_destroy_group(tg);
7564} 7564}
7565 7565
7566static int 7566static int cpu_cgroup_can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,
7567cpu_cgroup_can_attach_task(struct cgroup *cgrp, struct task_struct *tsk) 7567 struct cgroup_taskset *tset)
7568{ 7568{
7569 struct task_struct *task;
7570
7571 cgroup_taskset_for_each(task, cgrp, tset) {
7569#ifdef CONFIG_RT_GROUP_SCHED 7572#ifdef CONFIG_RT_GROUP_SCHED
7570 if (!sched_rt_can_attach(cgroup_tg(cgrp), tsk)) 7573 if (!sched_rt_can_attach(cgroup_tg(cgrp), task))
7571 return -EINVAL; 7574 return -EINVAL;
7572#else 7575#else
7573 /* We don't support RT-tasks being in separate groups */ 7576 /* We don't support RT-tasks being in separate groups */
7574 if (tsk->sched_class != &fair_sched_class) 7577 if (task->sched_class != &fair_sched_class)
7575 return -EINVAL; 7578 return -EINVAL;
7576#endif 7579#endif
7580 }
7577 return 0; 7581 return 0;
7578} 7582}
7579 7583
7580static void 7584static void cpu_cgroup_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,
7581cpu_cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk) 7585 struct cgroup_taskset *tset)
7582{ 7586{
7583 sched_move_task(tsk); 7587 struct task_struct *task;
7588
7589 cgroup_taskset_for_each(task, cgrp, tset)
7590 sched_move_task(task);
7584} 7591}
7585 7592
7586static void 7593static void
@@ -7915,8 +7922,8 @@ struct cgroup_subsys cpu_cgroup_subsys = {
7915 .name = "cpu", 7922 .name = "cpu",
7916 .create = cpu_cgroup_create, 7923 .create = cpu_cgroup_create,
7917 .destroy = cpu_cgroup_destroy, 7924 .destroy = cpu_cgroup_destroy,
7918 .can_attach_task = cpu_cgroup_can_attach_task, 7925 .can_attach = cpu_cgroup_can_attach,
7919 .attach_task = cpu_cgroup_attach_task, 7926 .attach = cpu_cgroup_attach,
7920 .exit = cpu_cgroup_exit, 7927 .exit = cpu_cgroup_exit,
7921 .populate = cpu_cgroup_populate, 7928 .populate = cpu_cgroup_populate,
7922 .subsys_id = cpu_cgroup_subsys_id, 7929 .subsys_id = cpu_cgroup_subsys_id,