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 11:00:19 +0200
commit8a8cde163ea724baf74e7752a31a69d3121a240e (patch)
tree5cdeed8a13ac27bf0bf03f522ab184c543a5030f /kernel/sched_rt.c
parentd4abc238c9f4df8b3216f3e883f5d0a07b7ac75a (diff)
downloadlinux-8a8cde163ea724baf74e7752a31a69d3121a240e.tar.gz
linux-8a8cde163ea724baf74e7752a31a69d3121a240e.tar.bz2
linux-8a8cde163ea724baf74e7752a31a69d3121a240e.zip
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. Reported-by: "Daniel K." <dk@uw.no> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Tested-by: Daniel K. <dk@uw.no> Signed-off-by: Ingo Molnar <mingo@elte.hu>
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 1dad5bbb59b6..0f3c19197fa4 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -250,7 +250,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);