aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorGuillaume Chazarain <guichaz@yahoo.fr>2008-01-25 15:08:33 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-25 15:08:33 -0500
commit782daeee3d596282bfee4cd9e976c86be0e194a8 (patch)
tree7f831f365ba3f9f9b8f10572b858eb231864dde0 /kernel
parent4f05b98d54b140ed3c5851d5d5156e9918c6305d (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')
-rw-r--r--kernel/sched.c2
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}
874EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event); 874EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event);
875 875