diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2007-07-17 07:03:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-17 13:23:04 -0400 |
commit | f2890255b0ade497893d1e5e99f519b5c1d50f7d (patch) | |
tree | 54657c4bbe91325960ac2da676a5d212a8866544 /arch/i386/kernel/nmi.c | |
parent | 1c978b935e81da9434342f0bc8263c6cfe1214ce (diff) |
i386: speedup touch_nmi_watchdog
Avoid dirtying remote cpu's memory if it already has the correct value.
Cc: Andi Kleen <ak@suse.de>
Cc: Konrad Rzeszutek <konrad@darnok.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/kernel/nmi.c')
-rw-r--r-- | arch/i386/kernel/nmi.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c index fba121f7973f..03b7f5584d71 100644 --- a/arch/i386/kernel/nmi.c +++ b/arch/i386/kernel/nmi.c | |||
@@ -295,7 +295,7 @@ static unsigned int | |||
295 | last_irq_sums [NR_CPUS], | 295 | last_irq_sums [NR_CPUS], |
296 | alert_counter [NR_CPUS]; | 296 | alert_counter [NR_CPUS]; |
297 | 297 | ||
298 | void touch_nmi_watchdog (void) | 298 | void touch_nmi_watchdog(void) |
299 | { | 299 | { |
300 | if (nmi_watchdog > 0) { | 300 | if (nmi_watchdog > 0) { |
301 | unsigned cpu; | 301 | unsigned cpu; |
@@ -304,8 +304,10 @@ void touch_nmi_watchdog (void) | |||
304 | * Just reset the alert counters, (other CPUs might be | 304 | * Just reset the alert counters, (other CPUs might be |
305 | * spinning on locks we hold): | 305 | * spinning on locks we hold): |
306 | */ | 306 | */ |
307 | for_each_present_cpu (cpu) | 307 | for_each_present_cpu(cpu) { |
308 | alert_counter[cpu] = 0; | 308 | if (alert_counter[cpu]) |
309 | alert_counter[cpu] = 0; | ||
310 | } | ||
309 | } | 311 | } |
310 | 312 | ||
311 | /* | 313 | /* |