• Home
  • Raw
  • Download

Lines Matching refs:attr

1472 			   const struct sched_attr *attr)  in uclamp_validate()  argument
1477 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN) { in uclamp_validate()
1478 util_min = attr->sched_util_min; in uclamp_validate()
1484 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX) { in uclamp_validate()
1485 util_max = attr->sched_util_max; in uclamp_validate()
1506 static bool uclamp_reset(const struct sched_attr *attr, in uclamp_reset() argument
1511 if (likely(!(attr->sched_flags & SCHED_FLAG_UTIL_CLAMP)) && in uclamp_reset()
1517 attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN && in uclamp_reset()
1518 attr->sched_util_min == -1) { in uclamp_reset()
1523 attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX && in uclamp_reset()
1524 attr->sched_util_max == -1) { in uclamp_reset()
1532 const struct sched_attr *attr) in __setscheduler_uclamp() argument
1540 if (!uclamp_reset(attr, clamp_id, uc_se)) in __setscheduler_uclamp()
1556 if (likely(!(attr->sched_flags & SCHED_FLAG_UTIL_CLAMP))) in __setscheduler_uclamp()
1559 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN && in __setscheduler_uclamp()
1560 attr->sched_util_min != -1) { in __setscheduler_uclamp()
1562 attr->sched_util_min, true); in __setscheduler_uclamp()
1563 trace_android_vh_setscheduler_uclamp(p, UCLAMP_MIN, attr->sched_util_min); in __setscheduler_uclamp()
1566 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX && in __setscheduler_uclamp()
1567 attr->sched_util_max != -1) { in __setscheduler_uclamp()
1569 attr->sched_util_max, true); in __setscheduler_uclamp()
1570 trace_android_vh_setscheduler_uclamp(p, UCLAMP_MAX, attr->sched_util_max); in __setscheduler_uclamp()
1642 const struct sched_attr *attr) in uclamp_validate() argument
1647 const struct sched_attr *attr) { } in __setscheduler_uclamp() argument
5426 const struct sched_attr *attr) in __setscheduler_params() argument
5428 int policy = attr->sched_policy; in __setscheduler_params()
5436 __setparam_dl(p, attr); in __setscheduler_params()
5438 p->static_prio = NICE_TO_PRIO(attr->sched_nice); in __setscheduler_params()
5445 p->rt_priority = attr->sched_priority; in __setscheduler_params()
5467 const struct sched_attr *attr, in __sched_setscheduler() argument
5470 int oldpolicy = -1, policy = attr->sched_policy; in __sched_setscheduler()
5487 reset_on_fork = !!(attr->sched_flags & SCHED_FLAG_RESET_ON_FORK); in __sched_setscheduler()
5493 if (attr->sched_flags & ~(SCHED_FLAG_ALL | SCHED_FLAG_SUGOV)) in __sched_setscheduler()
5501 if ((p->mm && attr->sched_priority > MAX_USER_RT_PRIO-1) || in __sched_setscheduler()
5502 (!p->mm && attr->sched_priority > MAX_RT_PRIO-1)) in __sched_setscheduler()
5504 if ((dl_policy(policy) && !__checkparam_dl(attr)) || in __sched_setscheduler()
5505 (rt_policy(policy) != (attr->sched_priority != 0))) in __sched_setscheduler()
5513 if (attr->sched_nice < task_nice(p) && in __sched_setscheduler()
5514 !can_nice(p, attr->sched_nice)) in __sched_setscheduler()
5527 if (attr->sched_priority > p->rt_priority && in __sched_setscheduler()
5528 attr->sched_priority > rlim_rtprio) in __sched_setscheduler()
5559 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP) in __sched_setscheduler()
5564 if (attr->sched_flags & SCHED_FLAG_SUGOV) in __sched_setscheduler()
5573 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP) { in __sched_setscheduler()
5574 retval = uclamp_validate(p, attr); in __sched_setscheduler()
5611 if (fair_policy(policy) && attr->sched_nice != task_nice(p)) in __sched_setscheduler()
5613 if (rt_policy(policy) && attr->sched_priority != p->rt_priority) in __sched_setscheduler()
5615 if (dl_policy(policy) && dl_param_changed(p, attr)) in __sched_setscheduler()
5617 if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP) in __sched_setscheduler()
5641 !(attr->sched_flags & SCHED_FLAG_SUGOV)) { in __sched_setscheduler()
5672 if ((dl_policy(policy) || dl_task(p)) && sched_dl_overflow(p, policy, attr)) { in __sched_setscheduler()
5680 newprio = __normal_prio(policy, attr->sched_priority, attr->sched_nice); in __sched_setscheduler()
5703 if (!(attr->sched_flags & SCHED_FLAG_KEEP_PARAMS)) { in __sched_setscheduler()
5704 __setscheduler_params(p, attr); in __sched_setscheduler()
5708 __setscheduler_uclamp(p, attr); in __sched_setscheduler()
5751 struct sched_attr attr = { in _sched_setscheduler() local
5759 attr.sched_flags |= SCHED_FLAG_RESET_ON_FORK; in _sched_setscheduler()
5761 attr.sched_policy = policy; in _sched_setscheduler()
5764 return __sched_setscheduler(p, &attr, check, true); in _sched_setscheduler()
5785 int sched_setattr(struct task_struct *p, const struct sched_attr *attr) in sched_setattr() argument
5787 return __sched_setscheduler(p, attr, true, true); in sched_setattr()
5791 int sched_setattr_nocheck(struct task_struct *p, const struct sched_attr *attr) in sched_setattr_nocheck() argument
5793 return __sched_setscheduler(p, attr, false, true); in sched_setattr_nocheck()
5854 struct sched_attr attr = { in sched_set_normal() local
5858 WARN_ON_ONCE(sched_setattr_nocheck(p, &attr) != 0); in sched_set_normal()
5887 static int sched_copy_attr(struct sched_attr __user *uattr, struct sched_attr *attr) in sched_copy_attr() argument
5893 memset(attr, 0, sizeof(*attr)); in sched_copy_attr()
5905 ret = copy_struct_from_user(attr, sizeof(*attr), uattr, size); in sched_copy_attr()
5912 if ((attr->sched_flags & SCHED_FLAG_UTIL_CLAMP) && in sched_copy_attr()
5920 attr->sched_nice = clamp(attr->sched_nice, MIN_NICE, MAX_NICE); in sched_copy_attr()
5925 put_user(sizeof(*attr), &uattr->size); in sched_copy_attr()
5929 static void get_params(struct task_struct *p, struct sched_attr *attr) in get_params() argument
5932 __getparam_dl(p, attr); in get_params()
5934 attr->sched_priority = p->rt_priority; in get_params()
5936 attr->sched_nice = task_nice(p); in get_params()
5976 struct sched_attr attr; in SYSCALL_DEFINE3() local
5983 retval = sched_copy_attr(uattr, &attr); in SYSCALL_DEFINE3()
5987 if ((int)attr.sched_policy < 0) in SYSCALL_DEFINE3()
5989 if (attr.sched_flags & SCHED_FLAG_KEEP_POLICY) in SYSCALL_DEFINE3()
5990 attr.sched_policy = SETPARAM_POLICY; in SYSCALL_DEFINE3()
6000 if (attr.sched_flags & SCHED_FLAG_KEEP_PARAMS) in SYSCALL_DEFINE3()
6001 get_params(p, &attr); in SYSCALL_DEFINE3()
6002 retval = sched_setattr(p, &attr); in SYSCALL_DEFINE3()
7742 struct sched_attr attr = { in normalize_rt_tasks() local
7769 __sched_setscheduler(p, &attr, false, false); in normalize_rt_tasks()