mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 14:41:27 +00:00
sched: clean up the rt priority macros
clean up the rt priority macros, pointed out by Andrew Morton. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
138a8aeb5b
commit
e05606d330
3 changed files with 54 additions and 31 deletions
|
@ -220,6 +220,18 @@ static inline unsigned int task_timeslice(struct task_struct *p)
|
|||
return static_prio_timeslice(p->static_prio);
|
||||
}
|
||||
|
||||
static inline int rt_policy(int policy)
|
||||
{
|
||||
if (unlikely(policy == SCHED_FIFO) || unlikely(policy == SCHED_RR))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int task_has_rt_policy(struct task_struct *p)
|
||||
{
|
||||
return rt_policy(p->policy);
|
||||
}
|
||||
|
||||
/*
|
||||
* This is the priority-queue data structure of the RT scheduling class:
|
||||
*/
|
||||
|
@ -698,7 +710,7 @@ static inline int __normal_prio(struct task_struct *p)
|
|||
|
||||
static void set_load_weight(struct task_struct *p)
|
||||
{
|
||||
if (has_rt_policy(p)) {
|
||||
if (task_has_rt_policy(p)) {
|
||||
#ifdef CONFIG_SMP
|
||||
if (p == task_rq(p)->migration_thread)
|
||||
/*
|
||||
|
@ -749,7 +761,7 @@ static inline int normal_prio(struct task_struct *p)
|
|||
{
|
||||
int prio;
|
||||
|
||||
if (has_rt_policy(p))
|
||||
if (task_has_rt_policy(p))
|
||||
prio = MAX_RT_PRIO-1 - p->rt_priority;
|
||||
else
|
||||
prio = __normal_prio(p);
|
||||
|
@ -4051,7 +4063,7 @@ void set_user_nice(struct task_struct *p, long nice)
|
|||
* it wont have any effect on scheduling until the task is
|
||||
* not SCHED_NORMAL/SCHED_BATCH:
|
||||
*/
|
||||
if (has_rt_policy(p)) {
|
||||
if (task_has_rt_policy(p)) {
|
||||
p->static_prio = NICE_TO_PRIO(nice);
|
||||
goto out_unlock;
|
||||
}
|
||||
|
@ -4240,14 +4252,14 @@ recheck:
|
|||
(p->mm && param->sched_priority > MAX_USER_RT_PRIO-1) ||
|
||||
(!p->mm && param->sched_priority > MAX_RT_PRIO-1))
|
||||
return -EINVAL;
|
||||
if (is_rt_policy(policy) != (param->sched_priority != 0))
|
||||
if (rt_policy(policy) != (param->sched_priority != 0))
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* Allow unprivileged RT tasks to decrease priority:
|
||||
*/
|
||||
if (!capable(CAP_SYS_NICE)) {
|
||||
if (is_rt_policy(policy)) {
|
||||
if (rt_policy(policy)) {
|
||||
unsigned long rlim_rtprio;
|
||||
unsigned long flags;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue