RE: [PATCH v13 0/4] cxl, EINJ: Update EINJ for CXL error types

Dan Williams
2024-02-20T23:04:25Z

Ben Cheatham wrote:
> v13 Changes:
> - Create new einj-cxl module for EINJ CXL error type functionality
> - Rename CONFIG_CXL_EINJ to CONFIG_ACPI_APEI_EINJ_CXL
> - Move CONFIG_ACPI_APEI_CXL to be under CONFIG_ACPI_APEI_EINJ (due to
> new CONFIG_CXL_BUS dependency)
> - Add an optional dependency to CONFIG_CXL_BUS on
> CONFIG_ACPI_APEI_EINJ_CXL
> - Change pr_warn("EINJ table not found.") to a pr_info() for when/if
> EINJ probe fails (Tony)

pr_info() is too chatty once CXL starts triggering this module to
autoload. I will take a look for anything else that might trigger
another spin, but if that s/pr_info/pr_debug/ change is all that's
needed I can handle that on applying.

> - Add a clarification that a CXL port needs to be present for CXL
> EINJ error types to einj.rst (Davidlohr)
>
> v12 Changes:
> - Rebase onto v6.8-rc4
> - Squash Kconfig patch into patch 2/3 (Jonathan)
> - Change CONFIG_CXL_EINJ from "depends on ACPI_APEI_EINJ >= CXL_BUS"
> to "depends on ACPI_APEI_EINJ = CXL_BUS"
> - Drop "ACPI, APEI" part of commit message title and use just EINJ
> instead (Dan)
> - Add protocol error types to "einj_types" documentation (Jonathan)
> - Change 0xffff... constants to use GENMASK()
> - Drop param* variables and use constants instead in cxl error
> inject functions (Jonathan)
> - Add is_cxl_error_type() helper function in einj.c (Jonathan)
> - Remove a stray function declaration in einj-cxl.h (Jonathan)
> - Comment #else/#endifs with corresponding #if/#ifdef in
> einj-cxl.h (Jonathan)
>
> The new CXL error types will use the Memory Address field in the
> SET_ERROR_TYPE_WITH_ADDRESS structure in order to target a CXL 1.1
> compliant memory-mapped downstream port. The value of the memory address
> will be in the port's MMIO range, and it will not represent physical
> (normal or persistent) memory.
>
> Add the functionality for injecting CXL 1.1 errors to the EINJ module,
> but not through the EINJ legacy interface under /sys/kernel/debug/apei/einj.
> Instead, make the error types available under /sys/kernel/debug/cxl.
> This allows for validating the MMIO address for a CXL 1.1 error type
> while also not making the user responsible for finding it.
>
> Ben Cheatham (4):
> EINJ: Migrate to a platform driver
> EINJ: Add CXL error type support
> cxl/core: Add CXL EINJ debugfs files
> EINJ, Documentation: Update EINJ kernel doc
>
> Documentation/ABI/testing/debugfs-cxl | 30 +++++
> .../firmware-guide/acpi/apei/einj.rst | 21 +++
> MAINTAINERS | 1 +
> drivers/acpi/apei/Kconfig | 12 ++
> drivers/acpi/apei/Makefile | 1 +
> drivers/acpi/apei/apei-internal.h | 17 +++
> drivers/acpi/apei/einj-cxl.c | 121 +++++++++++++++++
> drivers/acpi/apei/einj.c | 127 ++++++++++++++----
> drivers/cxl/Kconfig | 1 +
> drivers/cxl/core/port.c | 41 ++++++
> include/linux/einj-cxl.h | 40 ++++++
> 11 files changed, 385 insertions(+), 27 deletions(-)
> create mode 100644 drivers/acpi/apei/einj-cxl.c
> create mode 100644 include/linux/einj-cxl.h
>
> --
> 2.34.1
>