2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/arch/x86/kernel/cpu/mce
Yazen Ghannam d35fb3121a x86/mce/amd: Remove shared threshold bank plumbing
Legacy AMD systems include an integrated Northbridge that is represented
by MCA bank 4. This is the only non-core MCA bank in legacy systems. The
Northbridge is physically shared by all the CPUs within an AMD "Node".

However, in practice the "shared" MCA bank can only by managed by a
single CPU within that AMD Node. This is known as the "Node Base Core"
(NBC). For example, only the NBC will be able to read the MCA bank 4
registers; they will be Read-as-Zero for other CPUs. Also, the MCA
Thresholding interrupt will only signal the NBC; the other CPUs will not
receive it. This is enforced by hardware, and it should not be managed by
software.

The current AMD Thresholding code attempts to deal with the "shared" MCA
bank by micromanaging the bank's sysfs kobjects. However, this does not
follow the intended kobject use cases. It is also fragile, and it has
caused bugs in the past.

Modern AMD systems do not need this shared MCA bank support, and it
should not be needed on legacy systems either.

Remove the shared threshold bank code. Also, move the threshold struct
definitions to mce/amd.c, since they are no longer needed in amd_nb.c.

Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20241206161210.163701-2-yazen.ghannam@amd.com
2025-01-03 19:05:35 +01:00
..
amd.c x86/mce/amd: Remove shared threshold bank plumbing 2025-01-03 19:05:35 +01:00
apei.c x86/mce/apei: Handle variable SMCA BERT record size 2024-10-31 10:45:59 +01:00
core.c x86/mce: Remove the redundant mce_hygon_feature_init() 2024-12-31 11:12:45 +01:00
dev-mcelog.c x86/mce/mcelog: Use xchg() to get and clear the flags 2024-10-28 14:07:47 +01:00
genpool.c x86/mce: Make four functions return bool 2024-12-30 22:06:36 +01:00
inject.c x86/mce: Add wrapper for struct mce to export vendor specific info 2024-10-30 17:18:59 +01:00
intel.c x86/mce: Make several functions return bool 2024-12-30 19:05:50 +01:00
internal.h x86/mce: Make four functions return bool 2024-12-30 22:06:36 +01:00
Makefile thermal: Move therm_throt there from x86/mce 2021-02-08 11:43:20 +01:00
p5.c x86/mce: Get rid of machine_check_vector 2021-09-23 11:15:49 +02:00
severity.c x86/cpu changes for v6.10: 2024-05-13 18:44:44 -07:00
threshold.c x86/mce/threshold: Remove the redundant this_cpu_dec_return() 2024-12-30 19:45:03 +01:00
winchip.c x86/mce: Get rid of machine_check_vector 2021-09-23 11:15:49 +02:00