linux/arch/x86/kernel/cpu
Andi Kleen 0d7482e3d7 x86, mce: implement dynamic machine check banks support
Impact: cleanup; making code future proof; memory saving on small systems

This patch replaces the hardcoded max number of machine check banks with 
dynamic allocation depending on what the CPU reports. The sysfs
data structures and the banks array are dynamically allocated.

There is still a hard bank limit (128) because the mcelog protocol uses
banks >= 128 as pseudo banks to escape other events. But we expect
that 128 banks is beyond any reasonable CPU for now.

This supersedes an earlier patch by Venki, but it solves the problem
more completely by making the limit fully dynamic (up to the 128
boundary).

This saves some memory on machines with less than 6 banks because
they won't need sysdevs for unused ones and also allows to 
use sysfs to control these banks on possible future CPUs with
more than 6 banks.

This is an updated patch addressing Venki's comments.  I also added in
another patch from Thomas which fixed the error allocation path (that
patch was previously separated)

Cc: Venki Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2009-02-19 14:50:58 -08:00
..
cpufreq fix: crash: IP: __bitmap_intersects+0x48/0x73 2009-01-20 00:17:01 +01:00
mcheck x86, mce: implement dynamic machine check banks support 2009-02-19 14:50:58 -08:00
mtrr x86: tone down mtrr_trim_uncached_memory() warning 2009-01-29 11:45:35 +01:00
.gitignore Update .gitignore files for generated targets 2008-10-20 11:24:31 -07:00
addon_cpuid_features.c x86: fix intel x86_64 llc_shared_map/cpu_llc_id anomolies 2008-12-19 09:13:50 +01:00
amd.c x86: support always running TSC on Intel CPUs 2008-12-16 21:02:50 +01:00
bugs.c x86: fdiv bug detection fix 2008-07-31 23:56:27 +02:00
bugs_64.c x86: move bugs_64.c to cpu/bugs_64.c 2008-06-03 14:43:00 -07:00
centaur.c x86: move mtrr cpu cap setting early in early_init_xxxx 2008-09-06 17:50:55 +02:00
centaur_64.c x86: centaur_64.c remove duplicated setting of CONSTANT_TSC 2008-09-10 08:21:06 +02:00
cmpxchg.c x86: move cmpxchg fallbacks to a generic place 2008-08-18 16:05:47 +02:00
common.c x86: cleanup remaining cpumask_t ops in smpboot code 2009-01-04 15:39:26 +01:00
cpu.h x86: remove duplicated get_model_name() calling 2008-09-06 14:09:12 +02:00
cyrix.c x86: move mtrr cpu cap setting early in early_init_xxxx 2008-09-06 17:50:55 +02:00
hypervisor.c x86: hypervisor - fix sparse warnings 2008-11-23 11:11:52 +01:00
intel.c x86: add clflush before monitor for Intel 7400 series 2009-02-09 11:15:15 +01:00
intel_cacheinfo.c x86: add cache descriptors for Intel Core i7 2009-02-01 11:06:50 +01:00
Makefile Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-28 12:21:10 -08:00
mkcapflags.pl x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
perfctr-watchdog.c ftrace: mark lapic_wd_event() notrace 2008-10-14 10:34:36 +02:00
powerflags.c x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
proc.c x86/proc: fix /proc/cpuinfo cpu offline bug 2008-10-22 14:29:37 +02:00
transmeta.c x86: move transmeta cap read to early_init_transmeta() 2008-09-14 14:09:14 +02:00
umc.c x86: remove cpu_vendor_dev 2008-09-04 21:09:45 +02:00
vmware.c x86: vmware - fix sparse warnings 2008-11-23 11:02:36 +01:00