Linux EDAC development
 help / color / mirror / Atom feed
* [PATCH 0/7] EDAC/Intel: Make memory controller instances into a flexible array
@ 2025-07-31 14:55 Qiuxu Zhuo
  2025-07-31 14:55 ` [PATCH 1/7] EDAC/{skx_common,skx}: Use configuration data, not global macros Qiuxu Zhuo
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Qiuxu Zhuo @ 2025-07-31 14:55 UTC (permalink / raw)
  To: Tony Luck, Borislav Petkov
  Cc: Qiuxu Zhuo, James Morse, Mauro Carvalho Chehab, Robert Richter,
	Lai Yi, linux-edac, linux-kernel

Problem
=======
The current array of memory controller instances for Intel server EDAC
driver is sized using the macro NUM_IMC. Each time EDAC support is added
for a new CPU, NUM_IMC needs to be updated to ensure it is greater than
or equal to the number of memory controllers for the new CPU. This approach
is inconvenient and also results in memory waste for older CPUs with fewer
memory controllers.

Solution
========
Make the array of memory controller instances a flexible array and
determine its size from configuration data or at runtime.

Patches
=======
Patch 1~3: Refactor code to be independent of *NUM*_IMC macros.
Patch   4: Make the array of memory controller instances a flexible array.
Patch 5~7: Clean up and remove unused *NUM*_IMC macros.

Testing
=======
Pass basic testing on Cascade Lake, {Sapphire, Granite} Rapids server CPUs.
- Load and unload the {skx,i10nm_}edac driver.
- Receive events for memory correctable errors.
- Decode memory errors.

This patch series is on top of v6.16.

Qiuxu Zhuo (7):
  EDAC/{skx_common,skx}: Use configuration data, not global macros
  EDAC/skx_common: Move mc_mapping to be a field inside struct skx_imc
  EDAC/skx_common: Swap memory controller index mapping
  EDAC/skx_common: Make skx_dev->imc[] a flexible array
  EDAC/skx_common: Remove redundant upper bound check for res->imc
  EDAC/i10nm: Reallocate skx_dev list if preconfigured cnt != runtime cnt
  EDAC/skx_common: Remove unused *NUM*_IMC macros

 drivers/edac/i10nm_base.c | 13 +++++-----
 drivers/edac/skx_base.c   | 33 +++++++++++++++----------
 drivers/edac/skx_common.c | 51 +++++++++++++++++++++++++--------------
 drivers/edac/skx_common.h | 28 +++++++++------------
 4 files changed, 72 insertions(+), 53 deletions(-)


base-commit: 038d61fd642278bab63ee8ef722c50d10ab01e8f
-- 
2.43.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-08-19 23:33 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-31 14:55 [PATCH 0/7] EDAC/Intel: Make memory controller instances into a flexible array Qiuxu Zhuo
2025-07-31 14:55 ` [PATCH 1/7] EDAC/{skx_common,skx}: Use configuration data, not global macros Qiuxu Zhuo
2025-07-31 14:55 ` [PATCH 2/7] EDAC/skx_common: Move mc_mapping to be a field inside struct skx_imc Qiuxu Zhuo
2025-07-31 14:55 ` [PATCH 3/7] EDAC/skx_common: Swap memory controller index mapping Qiuxu Zhuo
2025-07-31 14:55 ` [PATCH 4/7] EDAC/skx_common: Make skx_dev->imc[] a flexible array Qiuxu Zhuo
2025-07-31 14:55 ` [PATCH 5/7] EDAC/skx_common: Remove redundant upper bound check for res->imc Qiuxu Zhuo
2025-07-31 14:55 ` [PATCH 6/7] EDAC/i10nm: Reallocate skx_dev list if preconfigured cnt != runtime cnt Qiuxu Zhuo
2025-07-31 14:55 ` [PATCH 7/7] EDAC/skx_common: Remove unused *NUM*_IMC macros Qiuxu Zhuo
2025-08-19 23:33 ` [PATCH 0/7] EDAC/Intel: Make memory controller instances into a flexible array Luck, Tony

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox