[RFC,0/6] cxl: Add support for CXL feature commands, CXL device patrol scrub control and DDR5 ECS control features

Message ID 20231114125648.1146-1-shiju.jose@huawei.com
Headers
Series cxl: Add support for CXL feature commands, CXL device patrol scrub control and DDR5 ECS control features |

Message

Shiju Jose Nov. 14, 2023, 12:56 p.m. UTC
  From: Shiju Jose <shiju.jose@huawei.com>

1. Add support for CXL feature commands(CXL spec 3.0 section 8.2.9.6).
2. Add CXL device scrub driver supporting patrol scrub control feature
(CXL spec 3.1 section 8.2.9.9.11.1) and DDR5 ECS feature(CXL spec 3.1
section 8.2.9.9.11.2).
3. Add scrub attributes for DDR5 ECS control to the memory scrub driver.

The attributes for the CXL scrub control features is exposed to the user
in the sysfs and is based on the previous code submitted for the memory
scrub control feature.
The patch and series for supporting memory scrub control feature are here,
https://lore.kernel.org/lkml/20230915172818.761-2-shiju.jose@huawei.com/ 
https://lore.kernel.org/lkml/20230915172818.761-1-shiju.jose@huawei.com/

The QEMU series to support these features is available here,
https://lore.kernel.org/qemu-devel/20231114124711.1128-1-shiju.jose@huawei.com/T/#t

Shiju Jose (6):
  cxl/mbox: Add GET_SUPPORTED_FEATURES, GET_FEATURE and SET_FEATURE
    mailbox commands
  cxl/memscrub: Add CXL device patrol scrub control feature
  memory: scrub: Add function to show scrub attributes in decimal
  memory: scrub: Add scrub control attributes for the DDR5 ECS
  cxl/memscrub: Add CXL device DDR5 ECS control feature
  cxl: scrub: sysfs: Add Documentation for CXL memory device scrub
    control attributes

 .../testing/sysfs-class-cxl-scrub-configure   |  135 +++
 drivers/cxl/Kconfig                           |   23 +
 drivers/cxl/core/Makefile                     |    1 +
 drivers/cxl/core/mbox.c                       |   74 ++
 drivers/cxl/core/memscrub.c                   | 1008 +++++++++++++++++
 drivers/cxl/cxlmem.h                          |  104 ++
 drivers/cxl/pci.c                             |    8 +
 drivers/memory/scrub/memory-scrub.c           |   36 +-
 include/memory/memory-scrub.h                 |   11 +
 include/uapi/linux/cxl_mem.h                  |    3 +
 10 files changed, 1400 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-class-cxl-scrub-configure
 create mode 100644 drivers/cxl/core/memscrub.c