The Current State Of CXL Support On Linux
([Hardware] 114 Minutes Ago
Compute Express Link)
- Reference: 0001482146
- News link: https://www.phoronix.com/news/Linux-6.11-CXL
- Source link:
Immediately prior to the [1]Linux 6.11-rc1 kernel being released yesterday, a set of Compute Express Link (CXL) patches were merged for the Linux kernel. There is some more CXL feature work this cycle but also notable is a documentation update as it now provides a concise look at the current state of CXL support on Linux.
[2]CXL is the great, open standard for high-speed CPU to device and CPU to memory connections for high performance computing and servers. CXL enablement remains an ongoing affair given the multiple versions and different device types / sub-protocols.
With Linux 6.11 there is now a notifier handler to deal with newly-created CXL memory regions to have their abstract distance metrics calculated, which is needed for proper memory tiering with regards to performance capabilities. The CXL code in Linux 6.11 also has a number of fixes, XOR math is added to address the CXL DPA to SPA translation, and various other updates.
Documentation updates to the Linux kernel aren't usually too notable but this CXL pull request does bring an important one: a concise overview of the current Linux support for different CXL features. The "CXL Maturity Map" provides a look in detail at the current state of CXL enablement within the Linux kernel.
You can find the CXL Maturity Map via [3]the Linux kernel documentation that outlines the different state of various CXL features as well as a number of features that haven't yet been started. Among the features not yet implemented or where there's a "known gap" in functionality include various CXL window enumeration capabilities, Fabrics / G-FAM, Global Access Endpoint, various RAS features, some mailbox commands, various multi-host sharing and multi-host memory abilities, and a number of accelerator features.
The full list of CXL changes merged for Linux 6.11 can be found via [4]this Git commit .
[1] https://www.phoronix.com/news/Linux-6.11-rc1-Released
[2] https://www.phoronix.com/search/CXL
[3] https://github.com/torvalds/linux/blob/e62f81bbd24db746c9b1aa29e7b6423211262ac4/Documentation/driver-api/cxl/maturity-map.rst
[4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e62f81bbd24db746c9b1aa29e7b6423211262ac4
[2]CXL is the great, open standard for high-speed CPU to device and CPU to memory connections for high performance computing and servers. CXL enablement remains an ongoing affair given the multiple versions and different device types / sub-protocols.
With Linux 6.11 there is now a notifier handler to deal with newly-created CXL memory regions to have their abstract distance metrics calculated, which is needed for proper memory tiering with regards to performance capabilities. The CXL code in Linux 6.11 also has a number of fixes, XOR math is added to address the CXL DPA to SPA translation, and various other updates.
Documentation updates to the Linux kernel aren't usually too notable but this CXL pull request does bring an important one: a concise overview of the current Linux support for different CXL features. The "CXL Maturity Map" provides a look in detail at the current state of CXL enablement within the Linux kernel.
You can find the CXL Maturity Map via [3]the Linux kernel documentation that outlines the different state of various CXL features as well as a number of features that haven't yet been started. Among the features not yet implemented or where there's a "known gap" in functionality include various CXL window enumeration capabilities, Fabrics / G-FAM, Global Access Endpoint, various RAS features, some mailbox commands, various multi-host sharing and multi-host memory abilities, and a number of accelerator features.
The full list of CXL changes merged for Linux 6.11 can be found via [4]this Git commit .
[1] https://www.phoronix.com/news/Linux-6.11-rc1-Released
[2] https://www.phoronix.com/search/CXL
[3] https://github.com/torvalds/linux/blob/e62f81bbd24db746c9b1aa29e7b6423211262ac4/Documentation/driver-api/cxl/maturity-map.rst
[4] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e62f81bbd24db746c9b1aa29e7b6423211262ac4
phoronix