1
linux/arch/x86/kernel/cpu
Huang Ying 482908b49e ACPI, APEI, Use ERST for persistent storage of MCE
Traditionally, fatal MCE will cause Linux print error log to console
then reboot. Because MCE registers will preserve their content after
warm reboot, the hardware error can be logged to disk or network after
reboot. But system may fail to warm reboot, then you may lose the
hardware error log. ERST can help here. Through saving the hardware
error log into flash via ERST before go panic, the hardware error log
can be gotten from the flash after system boot successful again.

The fatal MCE processing procedure with ERST involved is as follow:

- Hardware detect error, MCE raised
- MCE read MCE registers, check error severity (fatal), prepare error record
- Write MCE error record into flash via ERST
- Go panic, then trigger system reboot
- System reboot, /sbin/mcelog run, it reads /dev/mcelog to check flash
  for error record of previous boot via ERST, and output and clear
  them if available
- /sbin/mcelog logs error records into disk or network

ERST only accepts CPER record format, but there is no pre-defined CPER
section can accommodate all information in struct mce, so a customized
section type is defined to hold struct mce inside a CPER record as an
error section.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2010-05-19 22:41:40 -04:00
..
cpufreq powernow-k8: Fix frequency reporting 2010-05-03 15:04:18 +02:00
mcheck ACPI, APEI, Use ERST for persistent storage of MCE 2010-05-19 22:41:40 -04:00
mtrr include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
.gitignore
addon_cpuid_features.c x86, cpu: Print AMD virtualization features in /proc/cpuinfo 2010-02-13 15:04:40 -08:00
amd.c x86, amd: Get multi-node CPU info from NodeId MSR instead of PCI config space 2009-12-16 15:06:23 -08:00
bugs_64.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
bugs.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
centaur.c x86, cpu: mv display_cacheinfo -> cpu_detect_cache_sizes 2009-11-23 11:59:53 -08:00
cmpxchg.c
common.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-12-14 12:36:46 -08:00
cpu.h x86, cpu: mv display_cacheinfo -> cpu_detect_cache_sizes 2009-11-23 11:59:53 -08:00
cyrix.c x86, cpu: mv display_cacheinfo -> cpu_detect_cache_sizes 2009-11-23 11:59:53 -08:00
hypervisor.c x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
intel_cacheinfo.c x86, cacheinfo: Turn off L3 cache index disable feature in virtualized environments 2010-05-14 11:53:01 -07:00
intel.c x86: Disable large pages on CPUs with Atom erratum AAE44 2010-04-23 16:49:51 -07:00
Makefile x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) 2010-01-23 18:27:47 -08:00
mkcapflags.pl
perf_event_amd.c perf, x86: Fix AMD hotplug & constraint initialization 2010-04-02 19:30:02 +02:00
perf_event_intel.c perf, x86: Enable Nehalem-EX support 2010-04-06 17:52:59 +02:00
perf_event_p6.c perf, x86: Change x86_pmu.{enable,disable} calling convention 2010-03-10 13:22:28 +01:00
perf_event.c Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
perfctr-watchdog.c perf, x86: rename macro in ARCH_PERFMON_EVENTSEL_ENABLE 2010-03-01 14:21:23 +01:00
powerflags.c
proc.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
sched.c sched: x86: Name old_perf in a unique way 2009-09-16 11:21:07 +02:00
transmeta.c x86, cpu: mv display_cacheinfo -> cpu_detect_cache_sizes 2009-11-23 11:59:53 -08:00
umc.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
vmware.c VMware Balloon driver 2010-04-24 11:31:26 -07:00