|
@@ -463,9 +463,10 @@ static void dequeue_rt_entity(struct sched_rt_entity *rt_se);
|
|
|
static void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
|
|
|
{
|
|
|
struct task_struct *curr = rq_of_rt_rq(rt_rq)->curr;
|
|
|
+ struct rq *rq = rq_of_rt_rq(rt_rq);
|
|
|
struct sched_rt_entity *rt_se;
|
|
|
|
|
|
- int cpu = cpu_of(rq_of_rt_rq(rt_rq));
|
|
|
+ int cpu = cpu_of(rq);
|
|
|
|
|
|
rt_se = rt_rq->tg->rt_se[cpu];
|
|
|
|
|
@@ -476,7 +477,7 @@ static void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
|
|
|
enqueue_rt_entity(rt_se, false);
|
|
|
|
|
|
if (rt_rq->highest_prio.curr < curr->prio)
|
|
|
- resched_task(curr);
|
|
|
+ resched_curr(rq);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -566,7 +567,7 @@ static inline void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
|
|
|
return;
|
|
|
|
|
|
enqueue_top_rt_rq(rt_rq);
|
|
|
- resched_task(rq->curr);
|
|
|
+ resched_curr(rq);
|
|
|
}
|
|
|
|
|
|
static inline void sched_rt_rq_dequeue(struct rt_rq *rt_rq)
|
|
@@ -951,7 +952,7 @@ static void update_curr_rt(struct rq *rq)
|
|
|
raw_spin_lock(&rt_rq->rt_runtime_lock);
|
|
|
rt_rq->rt_time += delta_exec;
|
|
|
if (sched_rt_runtime_exceeded(rt_rq))
|
|
|
- resched_task(curr);
|
|
|
+ resched_curr(rq);
|
|
|
raw_spin_unlock(&rt_rq->rt_runtime_lock);
|
|
|
}
|
|
|
}
|
|
@@ -1366,7 +1367,7 @@ static void check_preempt_equal_prio(struct rq *rq, struct task_struct *p)
|
|
|
* to try and push current away:
|
|
|
*/
|
|
|
requeue_task_rt(rq, p, 1);
|
|
|
- resched_task(rq->curr);
|
|
|
+ resched_curr(rq);
|
|
|
}
|
|
|
|
|
|
#endif /* CONFIG_SMP */
|
|
@@ -1377,7 +1378,7 @@ static void check_preempt_equal_prio(struct rq *rq, struct task_struct *p)
|
|
|
static void check_preempt_curr_rt(struct rq *rq, struct task_struct *p, int flags)
|
|
|
{
|
|
|
if (p->prio < rq->curr->prio) {
|
|
|
- resched_task(rq->curr);
|
|
|
+ resched_curr(rq);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -1693,7 +1694,7 @@ retry:
|
|
|
* just reschedule current.
|
|
|
*/
|
|
|
if (unlikely(next_task->prio < rq->curr->prio)) {
|
|
|
- resched_task(rq->curr);
|
|
|
+ resched_curr(rq);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1740,7 +1741,7 @@ retry:
|
|
|
activate_task(lowest_rq, next_task, 0);
|
|
|
ret = 1;
|
|
|
|
|
|
- resched_task(lowest_rq->curr);
|
|
|
+ resched_curr(lowest_rq);
|
|
|
|
|
|
double_unlock_balance(rq, lowest_rq);
|
|
|
|
|
@@ -1939,7 +1940,7 @@ static void switched_from_rt(struct rq *rq, struct task_struct *p)
|
|
|
return;
|
|
|
|
|
|
if (pull_rt_task(rq))
|
|
|
- resched_task(rq->curr);
|
|
|
+ resched_curr(rq);
|
|
|
}
|
|
|
|
|
|
void __init init_sched_rt_class(void)
|
|
@@ -1977,7 +1978,7 @@ static void switched_to_rt(struct rq *rq, struct task_struct *p)
|
|
|
check_resched = 0;
|
|
|
#endif /* CONFIG_SMP */
|
|
|
if (check_resched && p->prio < rq->curr->prio)
|
|
|
- resched_task(rq->curr);
|
|
|
+ resched_curr(rq);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2006,11 +2007,11 @@ prio_changed_rt(struct rq *rq, struct task_struct *p, int oldprio)
|
|
|
* Only reschedule if p is still on the same runqueue.
|
|
|
*/
|
|
|
if (p->prio > rq->rt.highest_prio.curr && rq->curr == p)
|
|
|
- resched_task(p);
|
|
|
+ resched_curr(rq);
|
|
|
#else
|
|
|
/* For UP simply resched on drop of prio */
|
|
|
if (oldprio < p->prio)
|
|
|
- resched_task(p);
|
|
|
+ resched_curr(rq);
|
|
|
#endif /* CONFIG_SMP */
|
|
|
} else {
|
|
|
/*
|
|
@@ -2019,7 +2020,7 @@ prio_changed_rt(struct rq *rq, struct task_struct *p, int oldprio)
|
|
|
* then reschedule.
|
|
|
*/
|
|
|
if (p->prio < rq->curr->prio)
|
|
|
- resched_task(rq->curr);
|
|
|
+ resched_curr(rq);
|
|
|
}
|
|
|
}
|
|
|
|