mbox series

[v11,0/4] CXL, ACPI, APEI, EINJ: Update EINJ for CXL error types

Message ID 20240208200042.432958-1-Benjamin.Cheatham@amd.com
Headers show
Series CXL, ACPI, APEI, EINJ: Update EINJ for CXL error types | expand

Message

Ben Cheatham Feb. 8, 2024, 8 p.m. UTC
v11 Changes:
	- Drop patch 2/6 (Add CXL protocol error defines) and put the
	  defines in patch 4/6 instead (Dan)
	- Add Dan's reviewed-by

v10 Changes:
	- Fixups in EINJ module initializtion (Dan)
	- Add include/linux/einj-cxl.h to MAINTAINERS under CXL subsystem
	  (Dan)
	- Replace usages of IS_ENABLED(CONFIG_CXL_EINJ) with new
	  einj_is_initialized() function in cxl/core/port.c (Dan)
	- Fix typo in EINJ documentation (Dan)

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):
  cxl, ACPI, APEI, EINJ: Add CXL_EINJ Kconfig option
  EINJ: Migrate to a platform driver
  cxl/core, EINJ: Add EINJ CXL debugfs files and EINJ helper functions
  EINJ, Documentation: Update EINJ kernel doc

 Documentation/ABI/testing/debugfs-cxl         |  22 ++
 .../firmware-guide/acpi/apei/einj.rst         |  19 ++
 MAINTAINERS                                   |   1 +
 drivers/acpi/apei/einj.c                      | 202 ++++++++++++++++--
 drivers/cxl/Kconfig                           |  12 ++
 drivers/cxl/core/port.c                       |  39 ++++
 include/linux/einj-cxl.h                      |  45 ++++
 7 files changed, 328 insertions(+), 12 deletions(-)
 create mode 100644 include/linux/einj-cxl.h

Comments

Dan Williams Feb. 11, 2024, 1:15 a.m. UTC | #1
[ Cc all the signers of 709f3cbd652e ("ACPI: APEI: EINJ: Refactor
available_error_type_show()") ]

Ben Cheatham wrote:
> v11 Changes:
> 	- Drop patch 2/6 (Add CXL protocol error defines) and put the
> 	  defines in patch 4/6 instead (Dan)
> 	- Add Dan's reviewed-by
> 
> v10 Changes:
> 	- Fixups in EINJ module initializtion (Dan)
> 	- Add include/linux/einj-cxl.h to MAINTAINERS under CXL subsystem
> 	  (Dan)
> 	- Replace usages of IS_ENABLED(CONFIG_CXL_EINJ) with new
> 	  einj_is_initialized() function in cxl/core/port.c (Dan)
> 	- Fix typo in EINJ documentation (Dan)
> 
> 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):
>   cxl, ACPI, APEI, EINJ: Add CXL_EINJ Kconfig option
>   EINJ: Migrate to a platform driver
>   cxl/core, EINJ: Add EINJ CXL debugfs files and EINJ helper functions

I think the above that go across cxl and EINJ can just be prefixed:

    "cxl, EINJ:"

Also please rebase this on v6.8-rc3 to resolve a conflict with:

    709f3cbd652e ACPI: APEI: EINJ: Refactor available_error_type_show()

That should also allow you to fixup the missing ifdef CONFIG_CXL_EINJ
guard around the EINJ driver exports.

This needs at least one "non-Dan" reviewer for the ACPI side.

>   EINJ, Documentation: Update EINJ kernel doc
> 
>  Documentation/ABI/testing/debugfs-cxl         |  22 ++
>  .../firmware-guide/acpi/apei/einj.rst         |  19 ++
>  MAINTAINERS                                   |   1 +
>  drivers/acpi/apei/einj.c                      | 202 ++++++++++++++++--
>  drivers/cxl/Kconfig                           |  12 ++
>  drivers/cxl/core/port.c                       |  39 ++++
>  include/linux/einj-cxl.h                      |  45 ++++
>  7 files changed, 328 insertions(+), 12 deletions(-)
>  create mode 100644 include/linux/einj-cxl.h
> 
> -- 
> 2.34.1
>
Ben Cheatham Feb. 12, 2024, 2:13 p.m. UTC | #2
On 2/10/24 7:15 PM, Dan Williams wrote:
> [ Cc all the signers of 709f3cbd652e ("ACPI: APEI: EINJ: Refactor
> available_error_type_show()") ]
> 
> Ben Cheatham wrote:
>> v11 Changes:
>> 	- Drop patch 2/6 (Add CXL protocol error defines) and put the
>> 	  defines in patch 4/6 instead (Dan)
>> 	- Add Dan's reviewed-by
>>
>> v10 Changes:
>> 	- Fixups in EINJ module initializtion (Dan)
>> 	- Add include/linux/einj-cxl.h to MAINTAINERS under CXL subsystem
>> 	  (Dan)
>> 	- Replace usages of IS_ENABLED(CONFIG_CXL_EINJ) with new
>> 	  einj_is_initialized() function in cxl/core/port.c (Dan)
>> 	- Fix typo in EINJ documentation (Dan)
>>
>> 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):
>>   cxl, ACPI, APEI, EINJ: Add CXL_EINJ Kconfig option
>>   EINJ: Migrate to a platform driver
>>   cxl/core, EINJ: Add EINJ CXL debugfs files and EINJ helper functions
> 
> I think the above that go across cxl and EINJ can just be prefixed:
> 
>     "cxl, EINJ:"
> 
> Also please rebase this on v6.8-rc3 to resolve a conflict with:
> 
>     709f3cbd652e ACPI: APEI: EINJ: Refactor available_error_type_show()
> 
> That should also allow you to fixup the missing ifdef CONFIG_CXL_EINJ
> guard around the EINJ driver exports.

Alright, will do.

Thanks,
Ben

> 
> This needs at least one "non-Dan" reviewer for the ACPI side.
> 
>>   EINJ, Documentation: Update EINJ kernel doc
>>
>>  Documentation/ABI/testing/debugfs-cxl         |  22 ++
>>  .../firmware-guide/acpi/apei/einj.rst         |  19 ++
>>  MAINTAINERS                                   |   1 +
>>  drivers/acpi/apei/einj.c                      | 202 ++++++++++++++++--
>>  drivers/cxl/Kconfig                           |  12 ++
>>  drivers/cxl/core/port.c                       |  39 ++++
>>  include/linux/einj-cxl.h                      |  45 ++++
>>  7 files changed, 328 insertions(+), 12 deletions(-)
>>  create mode 100644 include/linux/einj-cxl.h
>>
>> -- 
>> 2.34.1
>>
> 
>