linux-kernel-test/arch/x86/kernel/cpu/mcheck
Andi Kleen f94b61c2c9 x86, mce: implement panic synchronization
In some circumstances multiple CPUs can enter mce_panic() in parallel.
This gives quite confused output because they will all dump the same
machine check buffer.

The other problem is that they would all panic in parallel, but not
process each other's shutdown IPIs because interrupts are disabled.

Detect this situation early on in mce_panic(). On the first CPU
entering will do the panic, the others will just wait to be killed.

For paranoia reasons in case the other CPU dies during the MCE I added
a 5 seconds timeout. If it expires each CPU will panic on its own again.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-06-03 14:45:12 -07:00
..
k7.c x86, mce: clean up k7.c 2009-05-28 09:24:10 -07:00
Makefile x86, mce: add table driven machine check grading 2009-06-03 14:40:39 -07:00
mce_amd_64.c x86, mce: trivial clean up for mce_amd_64.c 2009-05-28 09:24:16 -07:00
mce_intel_64.c x86, mce: trivial clean up for mce_intel_64.c 2009-05-28 09:24:16 -07:00
mce_intel.c x86, mce: Cleanup symbols in intel thermal codes 2009-05-28 09:24:11 -07:00
mce-inject.c x86, mce: support more than 256 CPUs in struct mce 2009-06-03 14:40:38 -07:00
mce-internal.h x86, mce: add table driven machine check grading 2009-06-03 14:40:39 -07:00
mce-severity.c x86, mce: add table driven machine check grading 2009-06-03 14:40:39 -07:00
mce.c x86, mce: implement panic synchronization 2009-06-03 14:45:12 -07:00
mce.h x86, mce: use 64bit machine check code on 32bit 2009-05-28 09:24:13 -07:00
non-fatal.c x86, mce: clean up non-fatal.c 2009-05-28 09:24:10 -07:00
p4.c x86, mce: Cleanup symbols in intel thermal codes 2009-05-28 09:24:11 -07:00
p5.c x86, mce: use 64bit machine check code on 32bit 2009-05-28 09:24:13 -07:00
p6.c x86, mce: clean up p6.c 2009-05-28 09:24:09 -07:00
therm_throt.c x86, mce: trivial clean up for therm_throt.c 2009-05-28 09:24:15 -07:00
threshold.c x86, mce: enable MCE_INTEL for 32bit new MCE 2009-05-28 09:24:13 -07:00
winchip.c x86, mce: clean up winchip.c 2009-05-28 09:24:10 -07:00