sched: rt: dont stop the period timer when there are tasks wanting to run
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 19 Jun 2008 12:22:28 +0000 (14:22 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 20 Jun 2008 08:26:02 +0000 (10:26 +0200)
So if the group ever gets throttled, it will never wake up again.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: "Daniel K." <dk@uw.no>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reported-by: "Daniel K." <dk@uw.no>
kernel/sched_rt.c

index 61d52112289c66a3f23c4056140da4619feae5de..bd90c8bb07399b161180b58853cef4f23cc70f41 100644 (file)
@@ -412,7 +412,8 @@ static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun)
                        if (rt_rq->rt_time || rt_rq->rt_nr_running)
                                idle = 0;
                        spin_unlock(&rt_rq->rt_runtime_lock);
-               }
+               } else if (rt_rq->rt_nr_running)
+                       idle = 0;
 
                if (enqueue)
                        sched_rt_rq_enqueue(rt_rq);