News: 0001482146

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

The Current State Of CXL Support On Linux

([Hardware] 114 Minutes Ago Compute Express 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



phoronix

A manager was about to be fired, but a programmer who worked for him
invented a new program that became popular and sold well. As a result, the
manager retained his job.
The manager tried to give the programmer a bonus, but the programmer
refused it, saying, "I wrote the program because I though it was an
interesting concept, and thus I expect no reward."
The manager, upon hearing this, remarked, "This programmer, though he
holds a position of small esteem, understands well the proper duty of an
employee. Lets promote him to the exalted position of management consultant!"
But when told this, the programmer once more refused, saying, "I exist
so that I can program. If I were promoted, I would do nothing but waste
everyone's time. Can I go now? I have a program that I'm working on."
-- Geoffrey James, "The Tao of Programming"