Loading kernel/sched.c +15 −0 Original line number Diff line number Diff line Loading @@ -4584,6 +4584,15 @@ int sched_setscheduler(struct task_struct *p, int policy, return -EPERM; } #ifdef CONFIG_RT_GROUP_SCHED /* * Do not allow realtime tasks into groups that have no runtime * assigned. */ if (rt_policy(policy) && task_group(p)->rt_runtime == 0) return -EPERM; #endif retval = security_task_setscheduler(p, policy, param); if (retval) return retval; Loading Loading @@ -8028,9 +8037,15 @@ static int cpu_cgroup_can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp, struct task_struct *tsk) { #ifdef CONFIG_RT_GROUP_SCHED /* Don't accept realtime tasks when there is no way for them to run */ if (rt_task(tsk) && cgroup_tg(cgrp)->rt_runtime == 0) return -EINVAL; #else /* We don't support RT-tasks being in separate groups */ if (tsk->sched_class != &fair_sched_class) return -EINVAL; #endif return 0; } Loading Loading
kernel/sched.c +15 −0 Original line number Diff line number Diff line Loading @@ -4584,6 +4584,15 @@ int sched_setscheduler(struct task_struct *p, int policy, return -EPERM; } #ifdef CONFIG_RT_GROUP_SCHED /* * Do not allow realtime tasks into groups that have no runtime * assigned. */ if (rt_policy(policy) && task_group(p)->rt_runtime == 0) return -EPERM; #endif retval = security_task_setscheduler(p, policy, param); if (retval) return retval; Loading Loading @@ -8028,9 +8037,15 @@ static int cpu_cgroup_can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp, struct task_struct *tsk) { #ifdef CONFIG_RT_GROUP_SCHED /* Don't accept realtime tasks when there is no way for them to run */ if (rt_task(tsk) && cgroup_tg(cgrp)->rt_runtime == 0) return -EINVAL; #else /* We don't support RT-tasks being in separate groups */ if (tsk->sched_class != &fair_sched_class) return -EINVAL; #endif return 0; } Loading