kernel-ark/arch/x86
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
..
boot x86 setup: fix asm constraints in vesa_store_edid 2009-01-30 23:55:25 +01:00
configs x86, mce: enable machine checks in 64-bit defconfig 2009-02-19 14:48:55 -08:00
crypto crypto: crc32c-intel - Switch to shash 2008-12-25 11:01:37 +11:00
ia32 x86: introducing asm/sys_ia32.h 2008-12-29 13:18:40 +01:00
include/asm x86, mce: don't disable machine checks during code patching 2009-02-17 15:32:38 -08:00
kernel x86, mce: implement dynamic machine check banks support 2009-02-19 14:50:58 -08:00
kvm KVM: change KVM to use IOMMU API 2009-01-03 14:11:07 +01:00
lguest lguest: typos fix 2009-01-30 11:34:10 +10:30
lib x86: use early clobbers in usercopy*.c 2009-01-21 09:43:17 +01:00
mach-default x86/Voyager: make it build and boot 2009-01-31 18:26:07 +01:00
mach-generic x86: rename all fields of mpc_table mpc_X to X 2009-01-05 14:08:34 +01:00
mach-rdc321x
mach-voyager x86/Voyager: make it build and boot 2009-01-31 18:26:07 +01:00
math-emu x86: fix math_emu register frame access 2009-02-10 00:39:14 +01:00
mm x86: CPA avoid repeated lazy mmu flush 2009-02-12 23:11:58 +01:00
oprofile Merge branch 'oprofile/ring_buffer' into oprofile/oprofile-for-tip 2009-01-08 14:27:34 +01:00
pci PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs 2009-01-27 09:46:08 -08:00
power x86, hibernate: fix breakage on x86_32 with CONFIG_NUMA set 2008-11-12 23:28:51 +01:00
vdso Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2008-12-28 12:33:21 -08:00
video
xen xen: disable interrupts before saving in percpu 2009-02-03 17:22:40 -08:00
Kconfig x86: disable intel_iommu support by default 2009-02-05 16:48:38 +01:00
Kconfig.cpu x86/Kconfig.cpu: make Kconfig help readable in the console 2009-02-04 22:19:27 +01:00
Kconfig.debug 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
Makefile
Makefile_32.cpu