diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-06-19 08:22:28 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-20 04:26:02 -0400 |
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) | |||
412 | if (rt_rq->rt_time || rt_rq->rt_nr_running) | 412 | if (rt_rq->rt_time || rt_rq->rt_nr_running) |
413 | idle = 0; | 413 | idle = 0; |
414 | spin_unlock(&rt_rq->rt_runtime_lock); | 414 | spin_unlock(&rt_rq->rt_runtime_lock); |
415 | } | 415 | } else if (rt_rq->rt_nr_running) |
416 | idle = 0; | ||
416 | 417 | ||
417 | if (enqueue) | 418 | if (enqueue) |
418 | sched_rt_rq_enqueue(rt_rq); | 419 | sched_rt_rq_enqueue(rt_rq); |