[GIT PULL] Compute Express Link (CXL) for 6.4

From: Dan Williams
Date: Sat Apr 29 2023 - 19:36:46 EST


Hi Linus, please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-for-6.4

...to receive the CXL update for this cycle. This has appeared in -next
for the past week or so with only a minor conflict report with the PCI
tree for changes to '.clang-format'. DOE support is promoted from
drivers/cxl/ to drivers/pci/ with Bjorn's blessing, and the CXL core
continues to mature its media management capabilities with support for
listing and injecting media errors. Some late fixes that missed
v6.3-final are also included.

---

The following changes since commit 09a9639e56c01c7a00d6c0ca63f4c7c41abe075d:

Linux 6.3-rc6 (2023-04-09 11:15:57 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl tags/cxl-for-6.4

for you to fetch changes up to fd35fdcbf75b5f31dba6c284886b676bb2145fe6:

cxl/test: Add mock test for set_timestamp (2023-04-24 11:31:02 -0700)

----------------------------------------------------------------
cxl for v6.4

- Refactor the DOE infrastructure (Data Object Exchange PCI-config-cycle
mailbox) to be a facility of the PCI core rather than the CXL core.
This is foundational for upcoming support for PCI device-attestation and
PCIe / CXL link encryption.

- Add support for retrieving and injecting poison for CXL memory
expanders. This enabling uses trace-events to convey CXL media error
records to user tooling. It includes translation of device-local
addresses (DPA) to system physical addresses (SPA) and their
corresponding CXL region.

- Fixes for decoder enumeration that missed v6.3-final

- Miscellaneous fixups

----------------------------------------------------------------
Alison Schofield (18):
cxl/mbox: Restrict poison cmds to debugfs cxl_raw_allow_all
cxl/mbox: Initialize the poison state
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
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
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

Dan Williams (9):
cxl/hdm: Fail upon detecting 0-sized decoders
cxl/hdm: Use 4-byte reads to retrieve HDM decoder base+limit
cxl/core: Drop unused io-64-nonatomic-lo-hi.h
cxl/port: Scan single-target ports for decoders
cxl/hdm: Add more HDM decoder debug messages at startup
cxl/port: Fix port to pci device assumptions in read_cdat_data()
cxl/mbox: Deprecate poison commands
Merge branch 'for-6.4/cxl-poison' into for-6.4/cxl
Merge branch 'for-6.3/cxl-autodetect-fixes' into for-6.4/cxl

Dave Jiang (1):
cxl/pci: Simplify CDAT retrieval error path

Davidlohr Bueso (2):
cxl/mbox: Update CMD_RC_TABLE
cxl/test: Add mock test for set_timestamp

Lukas Wunner (10):
PCI/DOE: Provide synchronous API and use it internally
cxl/pci: Use synchronous API for DOE
PCI/DOE: Make asynchronous API private
PCI/DOE: Deduplicate mailbox flushing
PCI/DOE: Allow mailbox creation without devres management
PCI/DOE: Create mailboxes on device enumeration
cxl/pci: Use CDAT DOE mailbox created by PCI core
PCI/DOE: Make mailbox creation API private
PCI/DOE: Relax restrictions on request and response size
cxl/pci: Rightsize CDAT response allocation

.clang-format | 1 -
Documentation/ABI/testing/debugfs-cxl | 35 ++++
Documentation/ABI/testing/sysfs-bus-cxl | 14 ++
drivers/cxl/core/core.h | 11 ++
drivers/cxl/core/hdm.c | 52 +++--
drivers/cxl/core/mbox.c | 151 ++++++++++++++-
drivers/cxl/core/memdev.c | 227 ++++++++++++++++++++++
drivers/cxl/core/pci.c | 137 +++++--------
drivers/cxl/core/port.c | 1 -
drivers/cxl/core/region.c | 124 ++++++++++++
drivers/cxl/core/trace.c | 94 +++++++++
drivers/cxl/core/trace.h | 103 ++++++++++
drivers/cxl/cxlmem.h | 111 ++++++++++-
drivers/cxl/mem.c | 71 +++++++
drivers/cxl/pci.c | 53 +-----
drivers/cxl/port.c | 18 +-
drivers/pci/doe.c | 328 ++++++++++++++++++++++++--------
drivers/pci/pci.h | 11 ++
drivers/pci/probe.c | 1 +
drivers/pci/remove.c | 1 +
include/linux/pci-doe.h | 66 +------
include/linux/pci.h | 3 +
include/uapi/linux/cxl_mem.h | 35 +++-
tools/testing/cxl/config_check.c | 1 +
tools/testing/cxl/test/mem.c | 247 ++++++++++++++++++++++++
25 files changed, 1583 insertions(+), 313 deletions(-)
create mode 100644 Documentation/ABI/testing/debugfs-cxl