diff options
author | Andi Kleen <andi@firstfloor.org> | 2009-02-17 23:07:13 +0100 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2009-02-19 14:50:58 -0800 |
commit | 0d7482e3d76522157c9d741d79fce22c401fa0c5 (patch) | |
tree | be87d0d3dcf9c44c7e706ce40f23515471a0b16e /arch/x86/kernel/machine_kexec_64.c | |
parent | e35849e910a6543d37c0d13648ef166678d03565 (diff) |
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>
Diffstat (limited to 'arch/x86/kernel/machine_kexec_64.c')
0 files changed, 0 insertions, 0 deletions