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 10:26:02 +0200 |
commit | 6c3df25511c2c51f2dd36cc52a8d22363d731793 (patch) | |
tree | 80ef006084108ebca3d49f6635a62d8ee261abe8 /kernel | |
parent | 10b612f440a22a294e87ec7e8f03f9eea3338628 (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')
-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 61d52112289c..bd90c8bb0739 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); |