mbox series

[v5,0/12] cxl: CXL Inject & Clear Poison

Message ID cover.1679892337.git.alison.schofield@intel.com
Headers show
Series cxl: CXL Inject & Clear Poison | expand

Message

Alison Schofield March 27, 2023, 5:03 a.m. UTC
From: Alison Schofield <alison.schofield@intel.com>

Built on cxl/next plus [PATCH v11 0/6] CXL Poison List Retrieval & Tracing

Changes in v5:
- Move the inject & clear sysfs attrs to debugfs attrs (Dan)
- Allow inject and clear to mapped DPAs and dev_warn_once() 
- Add cxl_poison trace events for inject and clear (CXL Community Forum)
- Add conditional compiles for CONFIG_DEBUG_FS
- Conform to spacing in uapi header cxlmem.h (Jonathan)

Tags: Kept Jonathans Reviewed-by on, what are now, patches 6-11
Link to v4:
https://lore.kernel.org/linux-cxl/cover.1677704994.git.alison.schofield@intel.com/

Introducing Inject and Clear Poison support for CXL Devices.

These are optional commands, meaning not all CXL devices must support
them. The debugfs attributes, inject_poison and clear_poison, are only
visible for devices reporting support of the capability.

Example:
# echo 0x40000000 > /sys/kernel/debug/cxl/mem1/inject_poison

cxl_poison: memdev=mem1 pcidev=cxl_mem.1 trace_type=Inject region= region_uuid=00000000-0000-0000-0000-000000000000 hpa=0xffffffffffffffff dpa=0x40000000 length=0x40 source=Unknown flags= overflow_time=0

Example in which the injected poison landed in region5:
# echo 0x40000000 > /sys/kernel/debug/cxl/mem0/inject_poison

cxl_poison: memdev=mem0 host=cxl_mem.0 serial=0 trace_type=Inject region=region5 region_uuid=cfcfc13a-5290-4983-aa74-4c8465c25f26 hpa=0xf110000000 dpa=0x40000000 dpa_length=0x40 source=Unknown flags= overflow_time=0

Alison Schofield (12):
  cxl/memdev: Add support for the Inject Poison mailbox command
  cxl/memdev: Add support for the Clear Poison mailbox command
  cxl/memdev: Warn of poison inject or clear to a mapped region
  cxl/memdev: Trace inject and clear poison as cxl_poison events
  cxl/mem: Add debugfs attributes for poison inject and clear
  cxl/memdev: Make inject and clear poison cmds kernel exclusive
  cxl/mbox: Block inject and clear poison opcodes in raw mode
  tools/testing/cxl: Mock the Inject Poison mailbox command
  tools/testing/cxl: Mock the Clear Poison mailbox command
  tools/testing/cxl: Use injected poison for get poison list
  tools/testing/cxl: Add a sysfs attr to test poison inject limits
  tools/testing/cxl: Require CONFIG_DEBUG_FS

 Documentation/ABI/testing/debugfs-cxl |  36 +++++
 drivers/cxl/core/core.h               |   2 +
 drivers/cxl/core/mbox.c               |   5 +
 drivers/cxl/core/memdev.c             | 179 +++++++++++++++++++++
 drivers/cxl/core/trace.h              |   8 +-
 drivers/cxl/cxlmem.h                  |  13 ++
 drivers/cxl/mem.c                     |  26 ++++
 include/uapi/linux/cxl_mem.h          |  20 ++-
 tools/testing/cxl/config_check.c      |   1 +
 tools/testing/cxl/test/mem.c          | 216 +++++++++++++++++++++++---
 10 files changed, 479 insertions(+), 27 deletions(-)
 create mode 100644 Documentation/ABI/testing/debugfs-cxl