OpenCloudOS-Kernel/arch/x86/kernel/cpu/mcheck
Andi Kleen 8ee08347c1 x86, mce: extend struct mce user interface with more information.
Experience has shown that struct mce which is used to pass an machine
check to the user space daemon currently a few limitations.  Also some
data which is useful to print at panic level is also missing.

This patch addresses most of them. The same information is also
printed out together with mce panic.

struct mce can be painlessly extended in a compatible way, the mcelog
user space code just ignores additional fields with a warning.

- It doesn't provide a wall time timestamp. There have been a few
  complaints about that. Fix that by adding a 64bit time_t

- It doesn't provide the exact CPU identification. This makes
  it awkward for mcelog to decode the event correctly, especially
  when there are variations in the supported MCE codes on different
  CPU models or when mcelog is running on a different host after a panic.
  Previously the administrator had to specify the correct CPU
  when mcelog ran on a different host, but with the more variation
  in machine checks now it's better to auto detect that.
  It's also useful for more detailed analysis of CPU events.
  Pass CPUID 1.EAX and the cpu vendor (as encoded in processor.h) instead.

- Socket ID and initial APIC ID are useful to report because they
  allow to identify the failing CPU in some (not all) cases.
  This is also especially useful for the panic situation.
  This addresses one of the complaints from Thomas Gleixner earlier.

- The MCG capabilities MSR needs to be reported for some advanced
  error processing in mcelog

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:40:38 -07:00
..
Makefile x86, mce: add basic error injection infrastructure 2009-05-28 09:24:14 -07:00
k7.c x86, mce: clean up k7.c 2009-05-28 09:24:10 -07:00
mce-inject.c x86, mce: support more than 256 CPUs in struct mce 2009-06-03 14:40:38 -07:00
mce.c x86, mce: extend struct mce user interface with more information. 2009-06-03 14:40:38 -07:00
mce.h x86, mce: use 64bit machine check code on 32bit 2009-05-28 09:24:13 -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.c x86, mce: Cleanup symbols in intel thermal codes 2009-05-28 09:24:11 -07:00
mce_intel_64.c x86, mce: trivial clean up for mce_intel_64.c 2009-05-28 09:24:16 -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