Lines Matching full:policy

19 static inline int __normal_prio(int policy, int rt_prio, int nice)  in __normal_prio()  argument
23 if (dl_policy(policy)) in __normal_prio()
25 else if (rt_policy(policy)) in __normal_prio()
42 return __normal_prio(p->policy, p->rt_priority, PRIO_TO_NICE(p->static_prio)); in normal_prio()
164 * sched policy return value kernel prio user prio/nice
264 * sched_setparam() passes in -1 for its policy, to let the functions in DEFINE_CLASS()
272 int policy = attr->sched_policy; in DEFINE_CLASS() local
274 if (policy == SETPARAM_POLICY) in DEFINE_CLASS()
275 policy = p->policy; in DEFINE_CLASS()
277 p->policy = policy; in DEFINE_CLASS()
279 if (dl_policy(policy)) in DEFINE_CLASS()
281 else if (fair_policy(policy)) in DEFINE_CLASS()
284 /* rt-policy tasks do not have a timerslack */ in DEFINE_CLASS()
288 /* when switching back to non-rt policy, restore timerslack */ in DEFINE_CLASS()
436 int policy, int reset_on_fork) in user_check_sched_setscheduler() argument
438 if (fair_policy(policy)) { in user_check_sched_setscheduler()
444 if (rt_policy(policy)) { in user_check_sched_setscheduler()
447 /* Can't set/change the rt policy: */ in user_check_sched_setscheduler()
448 if (policy != p->policy && !rlim_rtprio) in user_check_sched_setscheduler()
458 * Can't set/change SCHED_DEADLINE policy at all for now in user_check_sched_setscheduler()
463 if (dl_policy(policy)) in user_check_sched_setscheduler()
470 if (task_has_idle_policy(p) && !idle_policy(policy)) { in user_check_sched_setscheduler()
496 int oldpolicy = -1, policy = attr->sched_policy; in __sched_setscheduler() local
509 /* Double check policy once rq lock held: */ in __sched_setscheduler()
510 if (policy < 0) { in __sched_setscheduler()
512 policy = oldpolicy = p->policy; in __sched_setscheduler()
516 if (!valid_policy(policy)) in __sched_setscheduler()
530 if ((dl_policy(policy) && !__checkparam_dl(attr)) || in __sched_setscheduler()
531 (rt_policy(policy) != (attr->sched_priority != 0))) in __sched_setscheduler()
535 retval = user_check_sched_setscheduler(p, attr, policy, reset_on_fork); in __sched_setscheduler()
558 if (dl_policy(policy) || dl_policy(p->policy)) { in __sched_setscheduler()
567 * To be able to change p->policy safely, the appropriate in __sched_setscheduler()
574 * Changing the policy of the stop threads its a very bad idea: in __sched_setscheduler()
581 retval = scx_check_setscheduler(p, policy); in __sched_setscheduler()
589 if (unlikely(policy == p->policy)) { in __sched_setscheduler()
590 if (fair_policy(policy) && in __sched_setscheduler()
594 if (rt_policy(policy) && attr->sched_priority != p->rt_priority) in __sched_setscheduler()
596 if (dl_policy(policy) && dl_param_changed(p, attr)) in __sched_setscheduler()
614 rt_bandwidth_enabled() && rt_policy(policy) && in __sched_setscheduler()
621 if (dl_bandwidth_enabled() && dl_policy(policy) && in __sched_setscheduler()
638 /* Re-check policy now with rq lock held: */ in __sched_setscheduler()
639 if (unlikely(oldpolicy != -1 && oldpolicy != p->policy)) { in __sched_setscheduler()
640 policy = oldpolicy = -1; in __sched_setscheduler()
652 if ((dl_policy(policy) || dl_task(p)) && sched_dl_overflow(p, policy, attr)) { in __sched_setscheduler()
660 newprio = __normal_prio(policy, attr->sched_priority, attr->sched_nice); in __sched_setscheduler()
675 next_class = __setscheduler_class(policy, newprio); in __sched_setscheduler()
723 static int _sched_setscheduler(struct task_struct *p, int policy, in _sched_setscheduler() argument
727 .sched_policy = policy, in _sched_setscheduler()
736 if ((policy != SETPARAM_POLICY) && (policy & SCHED_RESET_ON_FORK)) { in _sched_setscheduler()
738 policy &= ~SCHED_RESET_ON_FORK; in _sched_setscheduler()
739 attr.sched_policy = policy; in _sched_setscheduler()
745 * sched_setscheduler - change the scheduling policy and/or RT priority of a thread.
747 * @policy: new policy.
756 int sched_setscheduler(struct task_struct *p, int policy, in sched_setscheduler() argument
759 return _sched_setscheduler(p, policy, param, true); in sched_setscheduler()
774 …* sched_setscheduler_nocheck - change the scheduling policy and/or RT priority of a thread from ke…
776 * @policy: new policy.
786 int sched_setscheduler_nocheck(struct task_struct *p, int policy, in sched_setscheduler_nocheck() argument
789 return _sched_setscheduler(p, policy, param, false); in sched_setscheduler_nocheck()
851 do_sched_setscheduler(pid_t pid, int policy, struct sched_param __user *param) in do_sched_setscheduler() argument
864 return sched_setscheduler(p, policy, &lparam); in do_sched_setscheduler()
925 * sys_sched_setscheduler - set/change the scheduler policy and RT priority
927 * @policy: new policy.
932 SYSCALL_DEFINE3(sched_setscheduler, pid_t, pid, int, policy, struct sched_param __user *, param) in SYSCALL_DEFINE3() argument
934 if (policy < 0) in SYSCALL_DEFINE3()
937 return do_sched_setscheduler(pid, policy, param); in SYSCALL_DEFINE3()
987 * sys_sched_getscheduler - get the policy (scheduling class) of a thread
990 * Return: On success, the policy of the thread. Otherwise, a negative error
1008 retval = p->policy; in SYSCALL_DEFINE1()
1078 kattr.sched_policy = p->policy; in SYSCALL_DEFINE4()
1455 * @policy: scheduling class.
1461 SYSCALL_DEFINE1(sched_get_priority_max, int, policy) in SYSCALL_DEFINE1() argument
1465 switch (policy) { in SYSCALL_DEFINE1()
1483 * @policy: scheduling class.
1489 SYSCALL_DEFINE1(sched_get_priority_min, int, policy) in SYSCALL_DEFINE1() argument
1493 switch (policy) { in SYSCALL_DEFINE1()