kernel-ark/arch/x86/kernel/cpu
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
..
cpufreq acpi-cpufreq: fix printk typo and indentation 2009-05-29 21:26:26 -04:00
mcheck x86, mce: extend struct mce user interface with more information. 2009-06-03 14:40:38 -07:00
mtrr x86: mtrr: Fix high_width computation when phys-addr is >= 44bit 2009-05-11 11:40:43 +02:00
.gitignore Update .gitignore files for generated targets 2008-10-20 11:24:31 -07:00
addon_cpuid_features.c x86 ACPI: Add support for Always Running APIC timer 2009-04-07 18:17:51 -04:00
amd.c x86: don't call read_apic_id if !cpu_has_apic 2009-05-18 08:43:25 +02:00
bugs_64.c
bugs.c
centaur.c x86/centaur: merge 32 & 64 bit version 2009-03-14 16:27:29 +01:00
cmpxchg.c
common.c Merge branch 'x86/cpufeature' into irq/numa 2009-06-01 22:30:01 +02:00
cpu_debug.c x86: display extended apic registers with print_local_APIC and cpu_debug code 2009-05-11 14:37:36 +02:00
cpu.h x86: cpu/cpu.h cleanup 2009-03-23 02:06:51 +05:30
cyrix.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
hypervisor.c x86: hypervisor - fix sparse warnings 2008-11-23 11:11:52 +01:00
intel_cacheinfo.c Merge branch 'linus' into cpumask-for-linus 2009-03-30 23:53:32 +02:00
intel.c x86: don't call read_apic_id if !cpu_has_apic 2009-05-18 08:43:25 +02:00
Makefile x86/centaur: merge 32 & 64 bit version 2009-03-14 16:27:29 +01:00
mkcapflags.pl
perfctr-watchdog.c x86: fold apic_ops into genapic 2009-02-17 12:22:20 +01:00
powerflags.c
proc.c x86: show number of core_siblings instead of thread_siblings in /proc/cpuinfo 2009-05-04 20:36:49 +02:00
transmeta.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
umc.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
vmware.c x86: vmware - fix sparse warnings 2008-11-23 11:02:36 +01:00