diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-06-19 14:22:28 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-20 11:00:19 +0200 |
commit | 8a8cde163ea724baf74e7752a31a69d3121a240e (patch) | |
tree | 5cdeed8a13ac27bf0bf03f522ab184c543a5030f /kernel/sched_rt.c | |
parent | d4abc238c9f4df8b3216f3e883f5d0a07b7ac75a (diff) | |
download | linux-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.c | 3 |
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); |