[PATCH v3 0/6] Handle MCA banks in a per_cpu way
From: Ghannam, Yazen
Date: Tue Apr 30 2019 - 16:32:35 EST
From: Yazen Ghannam <yazen.ghannam@xxxxxxx>
The focus of this patchset is define and use the MCA bank structures
and bank count per logical CPU.
With the exception of patch 4, this set applies to systems in production
today.
Patch 1:
Moves the declaration of struct mce_banks[] to the only file it's used.
Patch 2:
Splits struct mce_bank into a structure for fields common to MCA banks
on all CPUs and another structure that can be used per_cpu.
Patch 3:
Brings full circle the saga of the threshold block addresses on SMCA
systems. After taking a step back and reviewing the AMD documentation, I
think that this implimentation is the simplest and more robust way to
follow the spec.
Patch 4:
Saves and uses the MCA bank count as a per_cpu variable. This is to
support systems that have MCA bank counts that are different between
logical CPUs.
Patch 5:
Makes sure that sysfs reports the MCA_CTL value as set in hardware. This
is not something related to making things per_cpu but rather just
something I noticed while working on the other patches.
Patch 6:
Prevents sysfs access for MCA banks that are uninitialized.
Link:
https://lkml.kernel.org/r/20190411201743.43195-1-Yazen.Ghannam@xxxxxxx
Thanks,
Yazen
Yazen Ghannam (6):
x86/MCE: Make struct mce_banks[] static
x86/MCE: Handle MCA controls in a per_cpu way
x86/MCE/AMD: Don't cache block addresses on SMCA systems
x86/MCE: Make number of MCA banks per_cpu
x86/MCE: Save MCA control bits that get set in hardware
x86/MCE: Treat MCE bank as initialized if control bits set in hardware
arch/x86/kernel/cpu/mce/amd.c | 90 ++++++++++----------
arch/x86/kernel/cpu/mce/core.c | 131 +++++++++++++++++++++--------
arch/x86/kernel/cpu/mce/internal.h | 12 +--
3 files changed, 142 insertions(+), 91 deletions(-)
--
2.17.1