Commit 3150e63d authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

revert "clocksource: make clocksource watchdog cycle through online CPUs"

Revert commit 1ada5cba ("clocksource:
make clocksource watchdog cycle through online CPUs") due to the
regression reported by Gabriel C at

	http://lkml.org/lkml/2008/2/24/281

(short vesion: it makes TSC be marked as always unstable on his
machine).

Cc: Andi Kleen <ak@suse.de>
Acked-by: default avatarIngo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Robert Hancock <hancockr@shaw.ca>
Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Gabriel C <nix.or.die@googlemail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent cf821e8f
...@@ -141,13 +141,8 @@ static void clocksource_watchdog(unsigned long data) ...@@ -141,13 +141,8 @@ static void clocksource_watchdog(unsigned long data)
} }
if (!list_empty(&watchdog_list)) { if (!list_empty(&watchdog_list)) {
/* Cycle through CPUs to check if the CPUs stay synchronized to __mod_timer(&watchdog_timer,
* each other. */ watchdog_timer.expires + WATCHDOG_INTERVAL);
int next_cpu = next_cpu(raw_smp_processor_id(), cpu_online_map);
if (next_cpu >= NR_CPUS)
next_cpu = first_cpu(cpu_online_map);
watchdog_timer.expires += WATCHDOG_INTERVAL;
add_timer_on(&watchdog_timer, next_cpu);
} }
spin_unlock(&watchdog_lock); spin_unlock(&watchdog_lock);
} }
...@@ -169,7 +164,7 @@ static void clocksource_check_watchdog(struct clocksource *cs) ...@@ -169,7 +164,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
if (!started && watchdog) { if (!started && watchdog) {
watchdog_last = watchdog->read(); watchdog_last = watchdog->read();
watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL; watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL;
add_timer_on(&watchdog_timer, first_cpu(cpu_online_map)); add_timer(&watchdog_timer);
} }
} else { } else {
if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
...@@ -190,8 +185,7 @@ static void clocksource_check_watchdog(struct clocksource *cs) ...@@ -190,8 +185,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
watchdog_last = watchdog->read(); watchdog_last = watchdog->read();
watchdog_timer.expires = watchdog_timer.expires =
jiffies + WATCHDOG_INTERVAL; jiffies + WATCHDOG_INTERVAL;
add_timer_on(&watchdog_timer, add_timer(&watchdog_timer);
first_cpu(cpu_online_map));
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment