Re: [PATCH v3 0/7] CPER: Add Memory Error Section 2 support

From: Pierre Gondois

Date: Mon Nov 09 2026 - 05:58:34 EST


Gentle ping to check if there are additional comments on this version.

(Thanks Mark for the review)


On 11/4/26 12:07, Pierre Gondois wrote:
+ Ashok

On 11/4/26 12:03, Pierre Gondois wrote:
The support is mostly duplicated from Memory Error Section handling.
Other than differences coming from the content of  Memory Error
Section 1 and 2, differences in the support are:

- v2 do not rely on a compact "struct cper_mem_err_compact" struct.
This structure was used to support older versions of the Memory
Error Section (1). This is not needed for the new structure.

- The compact version is also used by the tracing framework.
To avoid relying and propagating a non-standard record format,
through trace event (cf. extlog_mem event) the new trace event
prints each field individually.

The last patch of the serie was only build-tested due to the
absence of relevant hardware. apei_mce_report_mem_error() and
arch_apei_report_mem_error() implementations were also removed since
last version.

It will also require a proper handling from the rasdaemon. Applying
this last patch without rasdaemon support will silent the reports of
Memory Error Section 2 error, cf. ras_userspace_consumers() check.

Future:
- _OSC support
- Addition of arm64 tracepoints
https://lore.kernel.org/lkml/20261023170405.000060b8@xxxxxxxxxxxxxxxx/
- Emission of lossy CPER Mem error v1 tracepoints for legacy userspace
   tools
https://lore.kernel.org/lkml/at0rs4parlHFGI7k@xxxxxxxxxxxxxxxxxxxxxxxxxx/


RFC: https://lore.kernel.org/all/20260929074659.2587216-1-pierre.gondois@xxxxxxx/#t
V1: https://lore.kernel.org/all/20261019145643.1877246-1-pierre.gondois@xxxxxxx/
- Corrections from Jonathan's review
- New patch:
     [PATCH v2 4/6] EDAC/ghes: Extract error report initialization
- Last patch not in RFC as it has been reviewed by Jonathan@
     [PATCH v2 6/6] ACPI: extlog: add Memory Error Section 2 trace event
V2:
- Updated ghes_edac_init_error() to ghes_edac_init_error_desc(),
   which now only acts on the input "struct edac_raw_error_desc"
   + added lockdep_assert_held() to ghes_edac_init_error_desc()
- Accumulate failures with "queued |=" in ghes_do_proc()
- New PATCH:
   [PATCH v3 5/7] ACPI: APEI: Extract common memory failure handling

Pierre Gondois (7):
   cper: use BIT_ULL() for processor and memory validation bits
   cper: add Memory Error Section 2 structures
   cper: add helpers to handle Memory Error Section 2
   EDAC/ghes: Extract error report initialization
   ACPI: APEI: Extract common memory failure handling
   ACPI: APEI: add separate Memory Error Section 2 handlers
   ACPI: extlog: add Memory Error Section 2 trace event

  drivers/acpi/acpi_extlog.c  |   6 ++
  drivers/acpi/apei/ghes.c    |  58 +++++++++--
  drivers/edac/ghes_edac.c    | 189 +++++++++++++++++++++++++++++-------
  drivers/firmware/efi/cper.c | 109 +++++++++++++++++++++
  drivers/ras/ras.c           |   1 +
  include/acpi/ghes.h         |   2 +
  include/linux/cper.h        | 129 +++++++++++++++++-------
  include/ras/ras_event.h     | 102 +++++++++++++++++++
  8 files changed, 518 insertions(+), 78 deletions(-)

--
2.43.0