|
@@ -901,6 +901,13 @@ inc_rt_prio_smp(struct rt_rq *rt_rq, int prio, int prev_prio)
|
|
|
{
|
|
|
struct rq *rq = rq_of_rt_rq(rt_rq);
|
|
|
|
|
|
+#ifdef CONFIG_RT_GROUP_SCHED
|
|
|
+ /*
|
|
|
+ * Change rq's cpupri only if rt_rq is the top queue.
|
|
|
+ */
|
|
|
+ if (&rq->rt != rt_rq)
|
|
|
+ return;
|
|
|
+#endif
|
|
|
if (rq->online && prio < prev_prio)
|
|
|
cpupri_set(&rq->rd->cpupri, rq->cpu, prio);
|
|
|
}
|
|
@@ -910,6 +917,13 @@ dec_rt_prio_smp(struct rt_rq *rt_rq, int prio, int prev_prio)
|
|
|
{
|
|
|
struct rq *rq = rq_of_rt_rq(rt_rq);
|
|
|
|
|
|
+#ifdef CONFIG_RT_GROUP_SCHED
|
|
|
+ /*
|
|
|
+ * Change rq's cpupri only if rt_rq is the top queue.
|
|
|
+ */
|
|
|
+ if (&rq->rt != rt_rq)
|
|
|
+ return;
|
|
|
+#endif
|
|
|
if (rq->online && rt_rq->highest_prio.curr != prev_prio)
|
|
|
cpupri_set(&rq->rd->cpupri, rq->cpu, rt_rq->highest_prio.curr);
|
|
|
}
|