summaryrefslogtreecommitdiffstats
path: root/kernel/sched_rt.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2008-06-19 14:22:28 +0200
committerIngo Molnar <mingo@elte.hu>2008-06-20 10:26:02 +0200
commit6c3df25511c2c51f2dd36cc52a8d22363d731793 (patch)
tree80ef006084108ebca3d49f6635a62d8ee261abe8 /kernel/sched_rt.c
parent10b612f440a22a294e87ec7e8f03f9eea3338628 (diff)
sched: rt: dont stop the period timer when there are tasks wanting to run
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>
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r--kernel/sched_rt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index 61d52112289..bd90c8bb073 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -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);