diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-01-25 15:08:31 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-25 15:08:31 -0500 |
commit | 48d5e258216f1c7713633439beb98a38c7290649 (patch) | |
tree | 6f8c98785015d56337e87ed56b23d39feeeaf846 /kernel/time/tick-sched.c | |
parent | 614ee1f61f667b02165c1ae0c1357048dc6d94a0 (diff) |
sched: rt throttling vs no_hz
We need to teach no_hz about the rt throttling because its tick driven.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/time/tick-sched.c')
-rw-r--r-- | kernel/time/tick-sched.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index cb89fa8db110..5f9fb645b725 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c | |||
@@ -153,6 +153,7 @@ void tick_nohz_update_jiffies(void) | |||
153 | void tick_nohz_stop_sched_tick(void) | 153 | void tick_nohz_stop_sched_tick(void) |
154 | { | 154 | { |
155 | unsigned long seq, last_jiffies, next_jiffies, delta_jiffies, flags; | 155 | unsigned long seq, last_jiffies, next_jiffies, delta_jiffies, flags; |
156 | unsigned long rt_jiffies; | ||
156 | struct tick_sched *ts; | 157 | struct tick_sched *ts; |
157 | ktime_t last_update, expires, now, delta; | 158 | ktime_t last_update, expires, now, delta; |
158 | struct clock_event_device *dev = __get_cpu_var(tick_cpu_device).evtdev; | 159 | struct clock_event_device *dev = __get_cpu_var(tick_cpu_device).evtdev; |
@@ -216,6 +217,10 @@ void tick_nohz_stop_sched_tick(void) | |||
216 | next_jiffies = get_next_timer_interrupt(last_jiffies); | 217 | next_jiffies = get_next_timer_interrupt(last_jiffies); |
217 | delta_jiffies = next_jiffies - last_jiffies; | 218 | delta_jiffies = next_jiffies - last_jiffies; |
218 | 219 | ||
220 | rt_jiffies = rt_needs_cpu(cpu); | ||
221 | if (rt_jiffies && rt_jiffies < delta_jiffies) | ||
222 | delta_jiffies = rt_jiffies; | ||
223 | |||
219 | if (rcu_needs_cpu(cpu)) | 224 | if (rcu_needs_cpu(cpu)) |
220 | delta_jiffies = 1; | 225 | delta_jiffies = 1; |
221 | /* | 226 | /* |