forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'cxl-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel…
…/git/cxl/cxl Pull CXL (Compute Express Link) updates from Dan Williams: "This development cycle extends the subsystem to discover CXL resources throughout a CXL/PCIe switch topology and respond to hot add/remove events anywhere in that topology. This is more foundational infrastructure in preparation for dynamic memory region provisioning support. Recall that CXL memory regions, as the new "Theory of Operation" section of Documentation/driver-api/cxl/memory-devices.rst describes, bring storage volume striping semantics to memory. The hot add/remove behavior is validated with extensions to the cxl_test unit test environment and this test in the cxl-cli test suite: https://github.com/pmem/ndctl/blob/djbw/for-74/cxl/test/cxl-topology.sh Summary: - Add a driver for 'struct cxl_memdev' objects responsible for CXL.mem operation as distinct from 'cxl_pci' mailbox operations. Its primary responsibility is enumerating an endpoint 'struct cxl_port' and all the 'struct cxl_port' instances between an endpoint and the CXL platform root. - Add a driver for 'struct cxl_port' objects responsible for enumerating and operating all Host-managed Device Memory (HDM) decoder resources between the platform-level CXL memory description, all intervening host bridges / switches, and the HDM resources in endpoints. - Update the cxl_pci driver to validate CXL.mem operation precursors to HDM decoder operation like ready-polling, and legacy CXL 1.1 DVSEC based CXL.mem configuration. - Add basic lockdep coverage for usage of device_lock() on CXL subsystem objects similar to what exists for LIBNVDIMM. Include a compile-time switch for which subsystem to validate at run-time. - Update cxl_test to emulate a one level switch topology. - Document a "Theory of Operation" for the subsystem. - Add 'numa_node' and 'serial' attributes to cxl_memdev sysfs - Include miscellaneous fixes for spec / QEMU CXL emulation compatibility and static analysis reports" * tag 'cxl-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (48 commits) cxl/core/port: Fix NULL but dereferenced coccicheck error cxl/port: Hold port reference until decoder release cxl/port: Fix endpoint refcount leak cxl/core: Fix cxl_device_lock() class detection cxl/core/port: Fix unregister_port() lock assertion cxl/regs: Fix size of CXL Capability Header Register cxl/core/port: Handle invalid decoders cxl/core/port: Fix / relax decoder target enumeration tools/testing/cxl: Add a physical_node link tools/testing/cxl: Enumerate mock decoders tools/testing/cxl: Mock one level of switches tools/testing/cxl: Fix root port to host bridge assignment tools/testing/cxl: Mock dvsec_ranges() cxl/core/port: Add endpoint decoders cxl/core: Move target_list out of base decoder attributes cxl/mem: Add the cxl_mem driver cxl/core/port: Add switch port enumeration cxl/memdev: Add numa_node attribute cxl/pci: Emit device serial number cxl/pci: Implement wait for media active ...
- Loading branch information
Showing
32 changed files
with
3,725 additions
and
1,225 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,12 @@ | ||
What: /sys/bus/cxl/flush | ||
Date: Januarry, 2022 | ||
KernelVersion: v5.18 | ||
Contact: [email protected] | ||
Description: | ||
(WO) If userspace manually unbinds a port the kernel schedules | ||
all descendant memdevs for unbind. Writing '1' to this attribute | ||
flushes that work. | ||
|
||
What: /sys/bus/cxl/devices/memX/firmware_version | ||
Date: December, 2020 | ||
KernelVersion: v5.12 | ||
|
@@ -25,6 +34,24 @@ Description: | |
identically named field in the Identify Memory Device Output | ||
Payload in the CXL-2.0 specification. | ||
|
||
What: /sys/bus/cxl/devices/memX/serial | ||
Date: January, 2022 | ||
KernelVersion: v5.18 | ||
Contact: [email protected] | ||
Description: | ||
(RO) 64-bit serial number per the PCIe Device Serial Number | ||
capability. Mandatory for CXL devices, see CXL 2.0 8.1.12.2 | ||
Memory Device PCIe Capabilities and Extended Capabilities. | ||
|
||
What: /sys/bus/cxl/devices/memX/numa_node | ||
Date: January, 2022 | ||
KernelVersion: v5.18 | ||
Contact: [email protected] | ||
Description: | ||
(RO) If NUMA is enabled and the platform has affinitized the | ||
host PCI device for this memory device, emit the CPU node | ||
affinity for this device. | ||
|
||
What: /sys/bus/cxl/devices/*/devtype | ||
Date: June, 2021 | ||
KernelVersion: v5.14 | ||
|
@@ -34,6 +61,15 @@ Description: | |
the same value communicated in the DEVTYPE environment variable | ||
for uevents for devices on the "cxl" bus. | ||
|
||
What: /sys/bus/cxl/devices/*/modalias | ||
Date: December, 2021 | ||
KernelVersion: v5.18 | ||
Contact: [email protected] | ||
Description: | ||
CXL device objects export the modalias attribute which mirrors | ||
the same value communicated in the MODALIAS environment variable | ||
for uevents for devices on the "cxl" bus. | ||
|
||
What: /sys/bus/cxl/devices/portX/uport | ||
Date: June, 2021 | ||
KernelVersion: v5.14 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.