Commit 567f3e42 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

x86_64: 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f2890255
...@@ -296,7 +296,7 @@ static DEFINE_PER_CPU(unsigned, last_irq_sum); ...@@ -296,7 +296,7 @@ static DEFINE_PER_CPU(unsigned, last_irq_sum);
static DEFINE_PER_CPU(local_t, alert_counter); static DEFINE_PER_CPU(local_t, alert_counter);
static DEFINE_PER_CPU(int, nmi_touch); static DEFINE_PER_CPU(int, nmi_touch);
void touch_nmi_watchdog (void) void touch_nmi_watchdog(void)
{ {
if (nmi_watchdog > 0) { if (nmi_watchdog > 0) {
unsigned cpu; unsigned cpu;
...@@ -306,9 +306,11 @@ void touch_nmi_watchdog (void) ...@@ -306,9 +306,11 @@ void touch_nmi_watchdog (void)
* do it ourselves because the alert count increase is not * do it ourselves because the alert count increase is not
* atomic. * atomic.
*/ */
for_each_present_cpu (cpu) for_each_present_cpu(cpu) {
if (per_cpu(nmi_touch, cpu) != 1)
per_cpu(nmi_touch, cpu) = 1; per_cpu(nmi_touch, cpu) = 1;
} }
}
touch_softlockup_watchdog(); touch_softlockup_watchdog();
} }
......
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