[PATCH v5 0/5] acpi/ghes, cper, cxl: Process CXL CPER Protocol errors

Smita Koralahalli posted 5 patches 11 months ago
There is a newer version of this series
drivers/acpi/apei/ghes.c        | 103 ++++++++++++++++++++++++++++++++
drivers/cxl/core/pci.c          |  62 +++++++++++++++++++
drivers/cxl/cxlpci.h            |   9 +++
drivers/cxl/pci.c               |  59 +++++++++++++++++-
drivers/firmware/efi/cper.c     |   6 +-
drivers/firmware/efi/cper_cxl.c |  39 +-----------
drivers/firmware/efi/cper_cxl.h |  66 --------------------
include/cxl/event.h             | 101 +++++++++++++++++++++++++++++++
include/linux/cper.h            |   8 +++
9 files changed, 347 insertions(+), 106 deletions(-)
delete mode 100644 drivers/firmware/efi/cper_cxl.h
[PATCH v5 0/5] acpi/ghes, cper, cxl: Process CXL CPER Protocol errors
Posted by Smita Koralahalli 11 months ago
This patchset adds logging support for CXL CPER endpoint and port protocol
errors.

The first 3 patches update the existing codebase to support CXL CPER
Protocol error reporting.

The last 2 patches introduce recognizing and reporting CXL CPER Protocol
errors.

Should be based on top of:
https://lore.kernel.org/linux-cxl/20250107143852.3692571-1-terry.bowman@amd.com

Link to v4:
https://lore.kernel.org/linux-cxl/20241217022032.87298-1-Smita.KoralahalliChannabasappa@amd.com

Changes in v4 -> v5:
[Dave]: Reviewed-by tags.
[Jonathan]: Remove blank line.
[Jonathan, Ira]: Change CXL -> "CXL".
[Ira]: Fix build error for CONFIG_ACPI_APEI_PCIEAER.

Changes in v3 -> v4:
[Ira]: Use memcpy() for RAS Cap struct.
[Jonathan]: Commit description edits.
[Jonathan]: Use separate work registration functions for protocol and
component errors.
[Jonathan, Ira]: Replace flags with separate functions for port and
device errors.
[Jonathan]: Use goto for register and unregister calls.

Changes in v2 -> v3:
[Dan]: Define a new workqueue for CXL CPER Protocol errors and avoid
reusing existing workqueue which handles CXL CPER events.
[Dan] Update function and struct names.
[Ira] Don't define common function get_cxl_devstate().
[Dan] Use switch cases rather than defining array of structures.
[Dan] Pass the entire cxl_cper_prot_err struct for CXL subsystem.
[Dan] Use pr_err_ratelimited().
[Dan] Use AER_ severities directly. Don't define CXL_ severities.
[Dan] Limit either to Device ID or Agent Info check.
[Dan] Validate size of RAS field matches expectations.

Changes in v2 -> v1:
[Jonathan] Refactor code for trace support. Rename get_cxl_dev()
to get_cxl_devstate().
[Jonathan] Cleanups for get_cxl_devstate().
[Alison, Jonathan]: Define array of structures for Device ID and Serial
number comparison.
[Dave] p_err -> rec/p_rec.
[Jonathan] Remove pr_warn.

Smita Koralahalli (5):
  efi/cper, cxl: Prefix protocol error struct and function names with
    cxl_
  efi/cper, cxl: Make definitions and structures global
  efi/cper, cxl: Remove cper_cxl.h
  acpi/ghes, cper: Recognize and cache CXL Protocol errors
  acpi/ghes, cxl/pci: Process CXL CPER Protocol Errors

 drivers/acpi/apei/ghes.c        | 103 ++++++++++++++++++++++++++++++++
 drivers/cxl/core/pci.c          |  62 +++++++++++++++++++
 drivers/cxl/cxlpci.h            |   9 +++
 drivers/cxl/pci.c               |  59 +++++++++++++++++-
 drivers/firmware/efi/cper.c     |   6 +-
 drivers/firmware/efi/cper_cxl.c |  39 +-----------
 drivers/firmware/efi/cper_cxl.h |  66 --------------------
 include/cxl/event.h             | 101 +++++++++++++++++++++++++++++++
 include/linux/cper.h            |   8 +++
 9 files changed, 347 insertions(+), 106 deletions(-)
 delete mode 100644 drivers/firmware/efi/cper_cxl.h

-- 
2.17.1
Re: [PATCH v5 0/5] acpi/ghes, cper, cxl: Process CXL CPER Protocol errors
Posted by Dave Jiang 10 months, 4 weeks ago

On 1/14/25 5:04 AM, Smita Koralahalli wrote:
> This patchset adds logging support for CXL CPER endpoint and port protocol
> errors.

Ard,
Do you mind giving an ACK for the series if it looks ok to you? I can pick up the series through the CXL tree with your ACKs. Thanks!

Smita,
Can you please respin a v6 based on top of latest upstream instead of Terry's changes? I think we are ready to pick this up before Terry's series. Thank you. 

> 
> The first 3 patches update the existing codebase to support CXL CPER
> Protocol error reporting.
> 
> The last 2 patches introduce recognizing and reporting CXL CPER Protocol
> errors.
> 
> Should be based on top of:
> https://lore.kernel.org/linux-cxl/20250107143852.3692571-1-terry.bowman@amd.com
> 
> Link to v4:
> https://lore.kernel.org/linux-cxl/20241217022032.87298-1-Smita.KoralahalliChannabasappa@amd.com
> 
> Changes in v4 -> v5:
> [Dave]: Reviewed-by tags.
> [Jonathan]: Remove blank line.
> [Jonathan, Ira]: Change CXL -> "CXL".
> [Ira]: Fix build error for CONFIG_ACPI_APEI_PCIEAER.
> 
> Changes in v3 -> v4:
> [Ira]: Use memcpy() for RAS Cap struct.
> [Jonathan]: Commit description edits.
> [Jonathan]: Use separate work registration functions for protocol and
> component errors.
> [Jonathan, Ira]: Replace flags with separate functions for port and
> device errors.
> [Jonathan]: Use goto for register and unregister calls.
> 
> Changes in v2 -> v3:
> [Dan]: Define a new workqueue for CXL CPER Protocol errors and avoid
> reusing existing workqueue which handles CXL CPER events.
> [Dan] Update function and struct names.
> [Ira] Don't define common function get_cxl_devstate().
> [Dan] Use switch cases rather than defining array of structures.
> [Dan] Pass the entire cxl_cper_prot_err struct for CXL subsystem.
> [Dan] Use pr_err_ratelimited().
> [Dan] Use AER_ severities directly. Don't define CXL_ severities.
> [Dan] Limit either to Device ID or Agent Info check.
> [Dan] Validate size of RAS field matches expectations.
> 
> Changes in v2 -> v1:
> [Jonathan] Refactor code for trace support. Rename get_cxl_dev()
> to get_cxl_devstate().
> [Jonathan] Cleanups for get_cxl_devstate().
> [Alison, Jonathan]: Define array of structures for Device ID and Serial
> number comparison.
> [Dave] p_err -> rec/p_rec.
> [Jonathan] Remove pr_warn.
> 
> Smita Koralahalli (5):
>   efi/cper, cxl: Prefix protocol error struct and function names with
>     cxl_
>   efi/cper, cxl: Make definitions and structures global
>   efi/cper, cxl: Remove cper_cxl.h
>   acpi/ghes, cper: Recognize and cache CXL Protocol errors
>   acpi/ghes, cxl/pci: Process CXL CPER Protocol Errors
> 
>  drivers/acpi/apei/ghes.c        | 103 ++++++++++++++++++++++++++++++++
>  drivers/cxl/core/pci.c          |  62 +++++++++++++++++++
>  drivers/cxl/cxlpci.h            |   9 +++
>  drivers/cxl/pci.c               |  59 +++++++++++++++++-
>  drivers/firmware/efi/cper.c     |   6 +-
>  drivers/firmware/efi/cper_cxl.c |  39 +-----------
>  drivers/firmware/efi/cper_cxl.h |  66 --------------------
>  include/cxl/event.h             | 101 +++++++++++++++++++++++++++++++
>  include/linux/cper.h            |   8 +++
>  9 files changed, 347 insertions(+), 106 deletions(-)
>  delete mode 100644 drivers/firmware/efi/cper_cxl.h
>
Re: [PATCH v5 0/5] acpi/ghes, cper, cxl: Process CXL CPER Protocol errors
Posted by Koralahalli Channabasappa, Smita 10 months, 3 weeks ago
Hi Dave,

On 1/21/2025 12:32 PM, Dave Jiang wrote:
> 
> 
> On 1/14/25 5:04 AM, Smita Koralahalli wrote:
>> This patchset adds logging support for CXL CPER endpoint and port protocol
>> errors.
> 
> Ard,
> Do you mind giving an ACK for the series if it looks ok to you? I can pick up the series through the CXL tree with your ACKs. Thanks!
> 
> Smita,
> Can you please respin a v6 based on top of latest upstream instead of Terry's changes? I think we are ready to pick this up before Terry's series. Thank you.

Sure. These patches depend on trace logging functions written by Terry 
trace_cxl_port_aer_uncorrectable_error() and 
trace_cxl_port_aer_correctable_error(). Let me work with him to just 
merge the trace logging functions and I will post v6 on latest upstream.

Thanks
Smita
> 
>>
>> The first 3 patches update the existing codebase to support CXL CPER
>> Protocol error reporting.
>>
>> The last 2 patches introduce recognizing and reporting CXL CPER Protocol
>> errors.
>>
>> Should be based on top of:
>> https://lore.kernel.org/linux-cxl/20250107143852.3692571-1-terry.bowman@amd.com
>>
>> Link to v4:
>> https://lore.kernel.org/linux-cxl/20241217022032.87298-1-Smita.KoralahalliChannabasappa@amd.com
>>
>> Changes in v4 -> v5:
>> [Dave]: Reviewed-by tags.
>> [Jonathan]: Remove blank line.
>> [Jonathan, Ira]: Change CXL -> "CXL".
>> [Ira]: Fix build error for CONFIG_ACPI_APEI_PCIEAER.
>>
>> Changes in v3 -> v4:
>> [Ira]: Use memcpy() for RAS Cap struct.
>> [Jonathan]: Commit description edits.
>> [Jonathan]: Use separate work registration functions for protocol and
>> component errors.
>> [Jonathan, Ira]: Replace flags with separate functions for port and
>> device errors.
>> [Jonathan]: Use goto for register and unregister calls.
>>
>> Changes in v2 -> v3:
>> [Dan]: Define a new workqueue for CXL CPER Protocol errors and avoid
>> reusing existing workqueue which handles CXL CPER events.
>> [Dan] Update function and struct names.
>> [Ira] Don't define common function get_cxl_devstate().
>> [Dan] Use switch cases rather than defining array of structures.
>> [Dan] Pass the entire cxl_cper_prot_err struct for CXL subsystem.
>> [Dan] Use pr_err_ratelimited().
>> [Dan] Use AER_ severities directly. Don't define CXL_ severities.
>> [Dan] Limit either to Device ID or Agent Info check.
>> [Dan] Validate size of RAS field matches expectations.
>>
>> Changes in v2 -> v1:
>> [Jonathan] Refactor code for trace support. Rename get_cxl_dev()
>> to get_cxl_devstate().
>> [Jonathan] Cleanups for get_cxl_devstate().
>> [Alison, Jonathan]: Define array of structures for Device ID and Serial
>> number comparison.
>> [Dave] p_err -> rec/p_rec.
>> [Jonathan] Remove pr_warn.
>>
>> Smita Koralahalli (5):
>>    efi/cper, cxl: Prefix protocol error struct and function names with
>>      cxl_
>>    efi/cper, cxl: Make definitions and structures global
>>    efi/cper, cxl: Remove cper_cxl.h
>>    acpi/ghes, cper: Recognize and cache CXL Protocol errors
>>    acpi/ghes, cxl/pci: Process CXL CPER Protocol Errors
>>
>>   drivers/acpi/apei/ghes.c        | 103 ++++++++++++++++++++++++++++++++
>>   drivers/cxl/core/pci.c          |  62 +++++++++++++++++++
>>   drivers/cxl/cxlpci.h            |   9 +++
>>   drivers/cxl/pci.c               |  59 +++++++++++++++++-
>>   drivers/firmware/efi/cper.c     |   6 +-
>>   drivers/firmware/efi/cper_cxl.c |  39 +-----------
>>   drivers/firmware/efi/cper_cxl.h |  66 --------------------
>>   include/cxl/event.h             | 101 +++++++++++++++++++++++++++++++
>>   include/linux/cper.h            |   8 +++
>>   9 files changed, 347 insertions(+), 106 deletions(-)
>>   delete mode 100644 drivers/firmware/efi/cper_cxl.h
>>
>