]> err.no Git - linux-2.6/commitdiff
sched: rt-group: reduce rescheduling
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 25 Jan 2008 20:08:32 +0000 (21:08 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 25 Jan 2008 20:08:32 +0000 (21:08 +0100)
Only reschedule if the new group has a higher prio task.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched_rt.c

index 8bfdb3f8a52d6456b468fa5ddeeb5b872d1cec79..f1f215db3bd0d8f16859a2164d65dc5cbefa9cf5 100644 (file)
@@ -94,8 +94,11 @@ static void sched_rt_ratio_enqueue(struct rt_rq *rt_rq)
        struct sched_rt_entity *rt_se = rt_rq->rt_se;
 
        if (rt_se && !on_rt_rq(rt_se) && rt_rq->rt_nr_running) {
+               struct task_struct *curr = rq_of_rt_rq(rt_rq)->curr;
+
                enqueue_rt_entity(rt_se);
-               resched_task(rq_of_rt_rq(rt_rq)->curr);
+               if (rt_rq->highest_prio < curr->prio)
+                       resched_task(curr);
        }
 }