diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-08-15 09:34:32 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-08-15 09:35:31 -0400 |
commit | 8bb851900f5d0a79d3fddac808cc670d9894ef67 (patch) | |
tree | ba6a245195959495d5479a0cb3eae70d683e0b9e /arch/x86 | |
parent | 15636668449d4135ac77a79715ba430a81aed16d (diff) |
x86, nmi: clean UP NMI watchdog failure message
clean up the failure message - and redirect people to bugzilla
instead of lkml.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/nmi.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c index 919473ad4a29..abb78a2cc4ad 100644 --- a/arch/x86/kernel/nmi.c +++ b/arch/x86/kernel/nmi.c | |||
@@ -114,6 +114,23 @@ static __init void nmi_cpu_busy(void *data) | |||
114 | } | 114 | } |
115 | #endif | 115 | #endif |
116 | 116 | ||
117 | static void report_broken_nmi(int cpu, int *prev_nmi_count) | ||
118 | { | ||
119 | printk(KERN_CONT "\n"); | ||
120 | |||
121 | printk(KERN_WARNING | ||
122 | "WARNING: CPU#%d: NMI appears to be stuck (%d->%d)!\n", | ||
123 | cpu, prev_nmi_count[cpu], get_nmi_count(cpu)); | ||
124 | |||
125 | printk(KERN_WARNING | ||
126 | "Please report this to bugzilla.kernel.org,\n"); | ||
127 | printk(KERN_WARNING | ||
128 | "and attach the output of the 'dmesg' command.\n"); | ||
129 | |||
130 | per_cpu(wd_enabled, cpu) = 0; | ||
131 | atomic_dec(&nmi_active); | ||
132 | } | ||
133 | |||
117 | int __init check_nmi_watchdog(void) | 134 | int __init check_nmi_watchdog(void) |
118 | { | 135 | { |
119 | unsigned int *prev_nmi_count; | 136 | unsigned int *prev_nmi_count; |
@@ -141,19 +158,8 @@ int __init check_nmi_watchdog(void) | |||
141 | for_each_online_cpu(cpu) { | 158 | for_each_online_cpu(cpu) { |
142 | if (!per_cpu(wd_enabled, cpu)) | 159 | if (!per_cpu(wd_enabled, cpu)) |
143 | continue; | 160 | continue; |
144 | if (get_nmi_count(cpu) - prev_nmi_count[cpu] <= 5) { | 161 | if (get_nmi_count(cpu) - prev_nmi_count[cpu] <= 5) |
145 | printk("\n"); | 162 | report_broken_nmi(cpu, prev_nmi_count); |
146 | printk(KERN_WARNING "WARNING: CPU#%d: NMI " | ||
147 | "appears to be stuck (%d->%d)!\n", | ||
148 | cpu, | ||
149 | prev_nmi_count[cpu], | ||
150 | get_nmi_count(cpu)); | ||
151 | printk(KERN_WARNING "Please report this to " | ||
152 | "linux-kernel@vger.kernel.org and attach " | ||
153 | "the output of 'dmesg' command.\n"); | ||
154 | per_cpu(wd_enabled, cpu) = 0; | ||
155 | atomic_dec(&nmi_active); | ||
156 | } | ||
157 | } | 163 | } |
158 | endflag = 1; | 164 | endflag = 1; |
159 | if (!atomic_read(&nmi_active)) { | 165 | if (!atomic_read(&nmi_active)) { |