Messages in this thread | | | Date | Tue, 11 Apr 2023 14:32:34 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH v4 2/5] x86/mce: Add per-bank CMCI storm mitigation |
| |
On Mon, Apr 03, 2023 at 02:07:13PM -0700, Tony Luck wrote: > Add a hook into machine_check_poll() to keep track of per-CPU, per-bank > corrected error logs. > > Maintain a bitmap history for each bank showing whether the bank > logged an corrected error or not each time it is polled. > > In normal operation the interval between polls of this banks > determines how far to shift the history. The 64 bit width corresponds > to about one second. > > When a storm is observed the Rate of interrupts is reduced by setting > a large threshold value for this bank in IA32_MCi_CTL2. This bank is > added to the bitmap of banks for this CPU to poll. The polling rate > is increased to once per second. > During a storm each bit in the history indicates the status of the > bank each time it is polled. Thus the history covers just over a minute. > > Declare a storm for that bank if the number of corrected interrupts > seen in that history is above some threshold (5 in this RFC code for > ease of testing, likely move to 15 for compatibility with previous > storm detection). > > A storm on a bank ends if enough consecutive polls of the bank show > no corrected errors (currently 30, may also change). That resets the > threshold in IA32_MCi_CTL2 back to 1, removes the bank from the bitmap > for polling, and changes the polling rate back to the default. > > If a CPU with banks in storm mode is taken offline, the new CPU > that inherits ownership of those banks takes over management of > storm(s) in the inherited bank(s). > > Signed-off-by: Tony Luck <tony.luck@intel.com> > Reviewed-by: Yazen Ghannam <yazen.ghannam@amd.com> > Tested-by: Yazen Ghannam <yazen.ghannam@amd.com> > --- > arch/x86/kernel/cpu/mce/internal.h | 4 +- > arch/x86/kernel/cpu/mce/core.c | 26 ++++-- > arch/x86/kernel/cpu/mce/intel.c | 139 ++++++++++++++++++++++++++++- > 3 files changed, 158 insertions(+), 11 deletions(-)
ld: vmlinux.o: in function `machine_check_poll': /home/boris/kernel/2nd/linux/arch/x86/kernel/cpu/mce/core.c:683: undefined reference to `track_cmci_storm' make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Error 1 make: *** [Makefile:1249: vmlinux] Error 2 make: *** Waiting for unfinished jobs....
-- Regards/Gruss, Boris.
https://people.kernel.org/tglx/notes-about-netiquette
| |