[PATCH v6 0/6] CXL Poison List Retrieval & Tracing

From: alison . schofield
Date: Thu Feb 09 2023 - 18:34:59 EST


From: Alison Schofield <alison.schofield@xxxxxxxxx>

This is not targeting the 6.3 merge window.

Changes in v6:
- Remove the ABI that collected poison per region, and added the
region info to the per memdev collection. (Dan)
This means Patch 4 is brand new:
cxl/region: Provide region info to the cxl_poison trace event

- Also added Patch 5: cxl/trace: Add an HPA to cxl_poison trace events
to this set. It comes w a couple of Review Tags, and is unchanged,
from a v2 last posted upstream.
- Dropped Jonathan's Review on Patch 3 because of changes
- Remove local var 'cxlps' (cxl_poison_state) (Dan)
- Trigger sysfs attr on boolean truisms only (Dan)
- Remove unneeded param pcidev from trace call.
- Mock: add __packed, and le64_to_cpu(() (Dan)
- Abbreviate less: s/max_mer/max_errors (Dan)
- Rename trace field 'pcidev', 'host' (Dan)
- getpoison_po/payload_out (Dan)
- Add serial no. to trace (Dan)
- s/getpoison_lock/lock (Dan)
- s/tmp/trigger

Link to v5: https://lore.kernel.org/linux-cxl/cover.1674070170.git.alison.schofield@xxxxxxxxx/

Add support for retrieving device poison lists and store the returned
error records as kernel trace events.

The handling of the poison list is guided by the CXL 3.0 Specification
Section 8.2.9.8.4.1. [1]

Example:
$ echo 1 > /sys/bus/cxl/devices/mem0/trigger_poison_list
cxl_poison: memdev=mem0 serial=0 host=cxl_mem.0 region=region4 region_uuid=117b2cf4-b160-4090-9361-ba31b9649317 hpa=0xf0d0000000 dpa=0x40000000 length=0x40 source=Internal flags= overflow_time=0

[1]: https://www.computeexpresslink.org/download-the-specification

Alison Schofield (6):
cxl/mbox: Add GET_POISON_LIST mailbox command
cxl/trace: Add TRACE support for CXL media-error records
cxl/memdev: Add trigger_poison_list sysfs attribute
cxl/region: Provide region info to the cxl_poison trace event
cxl/trace: Add an HPA to cxl_poison trace events
tools/testing/cxl: Mock support for Get Poison List

Documentation/ABI/testing/sysfs-bus-cxl | 14 ++++
drivers/cxl/core/core.h | 5 ++
drivers/cxl/core/mbox.c | 74 +++++++++++++++++++
drivers/cxl/core/memdev.c | 68 ++++++++++++++++++
drivers/cxl/core/region.c | 82 +++++++++++++++++++++
drivers/cxl/core/trace.c | 94 +++++++++++++++++++++++++
drivers/cxl/core/trace.h | 92 ++++++++++++++++++++++++
drivers/cxl/cxlmem.h | 69 +++++++++++++++++-
drivers/cxl/pci.c | 4 ++
tools/testing/cxl/test/mem.c | 42 +++++++++++
10 files changed, 543 insertions(+), 1 deletion(-)


base-commit: dbe9f7d1e155b97a42f7da81e22acc98fe0a9072
--
2.37.3