Documentation/driver-api/cxl/maturity-map.rst
.. SPDX-License-Identifier: GPL-2.0 .. include:: <isonum.txt>
The Linux CXL subsystem tracks the dynamic CXL specification <https://computeexpresslink.org/cxl-specification-landing-page>_ that
continues to respond to new use cases with new features, capability
updates and fixes. At any given point some aspects of the subsystem are
more mature than others. While the periodic pull requests summarize the
work being incorporated each merge window <https://lore.kernel.org/linux-cxl/?q=s%3APULL+s%3ACXL+tc%3Atorvalds+NOT+s%3ARe>_,
those do not always convey progress relative to a starting point and a
future end goal.
What follows is a coarse breakdown of the subsystem's major responsibilities along with a maturity score. The expectation is that the change-history of this document provides an overview summary of the subsystem maturation over time.
The maturity scores are:
[3] Mature: Work in this area is complete and no changes on the horizon. Note that this score can regress from one kernel release to the next based on new test results or end user reports.
[2] Stabilizing: Major functionality operational, common cases are mature, but known corner cases are still a work in progress.
[1] Initial: Capability that has exited the Proof of Concept phase, but may still have significant gaps to close and fixes to apply as real world testing occurs.
[0] Known gap: Feature is on a medium to long term horizon to implement. If the specification has a feature that does not even have a '0' score in this document, there is a good chance that no one in the [email protected] community has started to look at it.
X: Out of scope for kernel enabling, or kernel enabling not required
All of the fundamental enumeration an object model of the subsystem is in place, but there are several corner cases that are pending closure.
[2] CXL Window Enumeration
Extended-linear memory-side cache <extended-linear>[2] Switch Enumeration
[2] HDM Decoder Configuration
[2] Performance enumeration
[3] Endpoint CDAT
[3] Switch CDAT
[1] CDAT to Core-mm integration
[0] Shared link
[2] Hotplug (see CXL Window Enumeration)
[0] :ref:RCH link status <rch-link-status>
[0] Fabrics / G-FAM (chapter 7)
[0] Global Access Endpoint
In many ways CXL can be seen as a standardization of what would normally be handled by custom EDAC drivers. The open development here is mainly caused by the enumeration corner cases above.
[3] Component events (OS)
[2] Component events (FFM)
[1] Endpoint protocol errors (OS)
[1] Endpoint protocol errors (FFM)
[0] Switch protocol errors (OS)
[1] Switch protocol errors (FFM)
[2] DPA->HPA Address translation
[1] Memory Failure coordination
[0] Scrub control
[2] ACPI error injection EINJ
[2] Native error injection
[3] RCH error handling
[1] VH error handling
[0] PPR
[0] Sparing
[0] Device built in test
Background commands <background-commands>.. _extended-linear:
See the ECN <https://lore.kernel.org/linux-cxl/6650e4f835a0e_195e294a8@dwillia2-mobl3.amr.corp.intel.com.notmuch/>_
for more details:.. _rch-link-status:
.. _background-commands:
cancel on conflict <http://lore.kernel.org/r/[email protected]>_
facility is needed to make sure the kernel can ensure forward progress
of priority commands.