Re: [PATCH v6 5/6] acpi/ghes, cxl/pci: Process CXL CPER Protocol Errors

From: Koralahalli Channabasappa, Smita
Date: Wed Feb 12 2025 - 16:04:56 EST


On 2/3/2025 11:03 AM, Luck, Tony wrote:
On Thu, Jan 23, 2025 at 08:44:20AM +0000, Smita Koralahalli wrote:
When PCIe AER is in FW-First, OS should process CXL Protocol errors from
CPER records. Introduce support for handling and logging CXL Protocol
errors.

The defined trace events cxl_aer_uncorrectable_error and
cxl_aer_correctable_error trace native CXL AER endpoint errors. Reuse them
to trace FW-First Protocol errors.

Since the CXL code is required to be called from process context and
GHES is in interrupt context, use workqueues for processing.

Similar to CXL CPER event handling, use kfifo to handle errors as it
simplifies queue processing by providing lock free fifo operations.

Add the ability for the CXL sub-system to register a workqueue to
process CXL CPER protocol errors.

Signed-off-by: Smita Koralahalli <Smita.KoralahalliChannabasappa@xxxxxxx>
Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx>
---
drivers/acpi/apei/ghes.c | 49 ++++++++++++++++++++++++++++++++++++++++
drivers/cxl/core/pci.c | 36 +++++++++++++++++++++++++++++
drivers/cxl/cxlpci.h | 5 ++++
drivers/cxl/pci.c | 46 ++++++++++++++++++++++++++++++++++++-
include/cxl/event.h | 15 ++++++++++++
5 files changed, 150 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index 4d725d988c43..289e365f84b2 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -674,6 +674,15 @@ static void ghes_defer_non_standard_event(struct acpi_hest_generic_data *gdata,
schedule_work(&entry->work);
}
+/* Room for 8 entries */

Any science behind the choice of "8" here? This comment is merely
stating what the #define is used for, not why 8 was chosen.


The choice of "8" was arbitrary and not based on a specific rationale. If there are better heuristics or considerations for determining the optimal number of entries, I’d appreciate any suggestions.

Thanks
Smita