linux/arch
Aristeu Rozanski 28b166a700 x86, NMI watchdog: when booting with reset_devices, clear the performance counters
P4s have a quirk that makes necessary to clear P4_CCCR_OVF bit on the CCCR
everytime the PMI is triggered. When booting the kernel with reset_devices
(more specific kdump case), the counters reach zero and the PMI will be
generated. This is not a problem on other processors but on P4s, it'll
continue to generate NMIs until that bit is cleared. Since there may be
other users of the performance counters, clear and disable all of them
when booting with reset_devices option.

We have a P4 box here that crashes because of this problem. Since the kdump
kernel usually boots with only one processor active, the second logical
unit won't be set up, therefore, MSR_P4_IQ_CCCR1 (and other performance
counter registers) won't be cleared and P4_CCCR_OVF may be still set because
the previous kernel was using this register. An NMI is triggered because of
the MSR_P4_IQ_CCCR1 right after the NMI delivery is enabled, triggering the
race fixed on my previous email.

Signed-off-by: Aristeu Rozanski <aris@redhat.com>
Acked-by: Don Zickus <dzickus@redhat.com>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-09-22 19:48:18 +02:00
..
alpha [PATCH] fix osf_getdirents() 2008-08-25 01:18:06 -04:00
arm [ARM] 5255/1: Update jornada ssp to remove build errors/warnings 2008-09-18 12:29:09 +01:00
avr32 avr32: nmi_enter() without nmi_exit() 2008-09-19 20:08:08 +02:00
blackfin Blackfin arch: Fix PM building on BF52x: No ROTWE on BF52x, add USBWE 2008-08-28 17:32:01 +08:00
cris removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
frv FRV: Wire up new system calls 2008-08-01 13:03:49 -07:00
h8300 [h8300] move include/asm-h8300 to arch/h8300/include/asm 2008-08-13 14:26:32 -07:00
ia64 KVM: ia64: 'struct fdesc' build fix 2008-09-19 16:49:01 -07:00
m32r m32r: use generic show_mem() 2008-07-26 12:00:11 -07:00
m68k m68k: Update defconfigs for 2.6.27-rc6 2008-09-10 14:15:29 -07:00
m68knommu m68k{,nommu}: Wire up new system calls 2008-08-11 10:37:34 -07:00
mips [MIPS] vmlinux.lds.S: handle .text.* 2008-09-21 14:52:58 +02:00
mn10300 MN10300: Change the fault handler to check in_atomic() not in_interrupt() 2008-09-11 10:36:08 -07:00
parisc lib: Correct printk %pF to work on all architectures 2008-09-09 11:51:15 -07:00
powerpc Fix compile failure with non modular builds 2008-09-17 09:14:42 -07:00
s390 [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit mode 2008-09-09 12:39:06 +02:00
sh sh64: resume_kernel fix for kernel oops built with CONFIG_BKL_PREEMPT=y. 2008-09-05 14:51:28 +09:00
sparc sparc: Fix user_regset 'n' field values. 2008-09-12 15:55:44 -07:00
sparc64 sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace. 2008-09-16 11:44:00 -07:00
um uml: fix tty-related build error 2008-07-30 09:41:45 -07:00
x86 x86, NMI watchdog: when booting with reset_devices, clear the performance counters 2008-09-22 19:48:18 +02:00
xtensa remove unneeded #include <linux/ide.h>'s 2008-08-05 18:17:00 +02:00
.gitignore
Kconfig tracehook: CONFIG_HAVE_ARCH_TRACEHOOK 2008-07-26 12:00:09 -07:00