diff options
author | Guillaume Chazarain <guichaz@yahoo.fr> | 2008-01-25 15:08:33 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-25 15:08:33 -0500 |
commit | 782daeee3d596282bfee4cd9e976c86be0e194a8 (patch) | |
tree | 7f831f365ba3f9f9b8f10572b858eb231864dde0 /kernel/sched.c | |
parent | 4f05b98d54b140ed3c5851d5d5156e9918c6305d (diff) |
sched: fix rq->clock warps on frequency changes
sched: fix rq->clock warps on frequency changes
Fix 2bacec8c318ca0418c0ee9ac662ee44207765dd4
(sched: touch softlockup watchdog after idling) that reintroduced warps
on frequency changes. touch_softlockup_watchdog() calls __update_rq_clock
that checks rq->clock for warps, so call it after adjusting rq->clock.
Signed-off-by: Guillaume Chazarain <guichaz@yahoo.fr>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 629614ad0358..3995d1679858 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -858,7 +858,6 @@ void sched_clock_idle_wakeup_event(u64 delta_ns) | |||
858 | struct rq *rq = cpu_rq(smp_processor_id()); | 858 | struct rq *rq = cpu_rq(smp_processor_id()); |
859 | u64 now = sched_clock(); | 859 | u64 now = sched_clock(); |
860 | 860 | ||
861 | touch_softlockup_watchdog(); | ||
862 | rq->idle_clock += delta_ns; | 861 | rq->idle_clock += delta_ns; |
863 | /* | 862 | /* |
864 | * Override the previous timestamp and ignore all | 863 | * Override the previous timestamp and ignore all |
@@ -870,6 +869,7 @@ void sched_clock_idle_wakeup_event(u64 delta_ns) | |||
870 | rq->prev_clock_raw = now; | 869 | rq->prev_clock_raw = now; |
871 | rq->clock += delta_ns; | 870 | rq->clock += delta_ns; |
872 | spin_unlock(&rq->lock); | 871 | spin_unlock(&rq->lock); |
872 | touch_softlockup_watchdog(); | ||
873 | } | 873 | } |
874 | EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event); | 874 | EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event); |
875 | 875 | ||