Linux Kernel v6.16 is Released: This is What's New for Compute Express Link (CXL)

Linux Kernel v6.16 is Released: This is What's New for Compute Express Link (CXL)

The Linux Kernel v6.16 release brings several improvements and additions related to Compute Express Link (CXL) technology.

Release Highlights

Linux Kernel v6.16 includes 37 commits to the CXL and DAX subsystems:

CategoryCommits
New Features & Hardware2
Bug Fixes6
Refactoring & Cleanup8
Documentation3
Other18

The Linux v6.16 kernel cycle is dominated by one clear theme: hardening CXL memory device reliability and serviceability through the EDAC subsystem. Four new control features land in this release — patrol scrub, Error Check Scrub (ECS), soft Post Package Repair (PPR), and memory sparing — each exposing a distinct class of CXL 3.0 memory maintenance operations to userspace through a consistent sysfs interface. Alongside these, support for the PERFORM_MAINTENANCE command provides the underlying mechanism that drives scrub and repair operations on compliant devices. Taken together, this work moves CXL from a device class that Linux can merely enumerate and map to one where the kernel actively participates in proactive memory health management.

The EDAC additions are not without rough edges that needed immediate attention. Several fixes accompany the new code: a wrong repair type being passed when checking DRAM event records, a miscalculation in the minimum scrub cycle for a region, memory leaks in error paths, and a return value bug in cxlctl_validate_set_features(). This pattern of feature-plus-fixes in the same release reflects the pace at which CXL 3.0 RAS infrastructure is being built out — the plumbing is going in fast, and correctness gaps are being closed in the same merge window. The cxl/ras CPER handler also received a fix for device confusion, where error records were being attributed to the wrong device under certain topologies.

Outside of EDAC, the cxl/region code saw meaningful internal restructuring. Decoder lookup logic was factored into dedicated helpers (cxl_port_pick_region_decoder(), a new function to find a switch decoder by range, and root decoder extraction routines), reducing duplication and making the region assembly path easier to reason about. A correctness fix eliminates unnecessary interleave granularity constraints when ways=1, and the ACPI path now validates CHBS structure length for CXL 2.0 hosts. The CXL Maturity Map documentation was also updated, reflecting the growing breadth of what the driver actually implements.

Key Changes

  • Patrol scrub and ECS control features: New sysfs-exposed interfaces allow userspace to configure and trigger patrol scrub and Error Check Scrub on CXL memory devices, enabling scheduled background error detection without requiring a reboot or vendor-specific tooling.

  • Soft PPR and memory sparing control: Soft Post Package Repair and memory sparing can now be initiated through the kernel’s EDAC interface, giving RAS frameworks the ability to retire faulty DRAM rows or activate spare banks on CXL 3.0 devices in response to correctable error thresholds.

  • PERFORM_MAINTENANCE command support: The CXL mailbox command that drives scrub and repair operations is now wired up in cxl/edac, providing the execution path that the patrol scrub and PPR control features depend on.

  • Memory operation attribute discovery: The driver can now query a device’s current-boot memory operation attributes, allowing it to reconcile in-flight maintenance state across a kexec or driver reload rather than starting blind.

  • CPER handler device confusion fix: The cxl/ras CPER error record handler was misidentifying the target device under multi-device topologies; the fix ensures correctable and uncorrectable errors are charged to the correct CXL endpoint.

  • Region decoder lookup refactoring: Root and switch decoder selection logic in cxl/region has been extracted into named helpers and deduplicated, removing a redundant call to cxl_port_pick_region_decoder() that could produce incorrect results during region assembly.

  • Interleave granularity relaxed for single-way regions: When a CXL region uses only one interleave way, granularity constraints are now ignored during validation, unblocking configurations that were incorrectly rejected.

  • DAX kmem truncation warning: The DAX subsystem now emits a warning when a kmem region must be truncated to align with memory block boundaries, making a previously silent data-availability reduction visible to system administrators.

Here is the detailed list of all commits merged into the 6.16 Kernel for CXL and DAX. This list was generated by the Linux Kernel CXL Feature Tracker .

Using ltrace to see what ipmctl and ndctl are doing

Occasionally, it is necessary to debug commands that are slow. Or you may simply be interested in learning how the tools work. While there are many strategies, here are some simple methods that show code flow and timing information.

To show a high-level view of where the time is being spent within libipmctl, use:

# ltrace -c -o ltrace_library_count.out -l '*ipmctl*' ipmctl show -memoryresources

To show a high-level view of where the time is being spent within libndctl, use:

Read More
Fastfetch: The Speedy Successor Neofetch Replacement Your Ubuntu Terminal Needs

Fastfetch: The Speedy Successor Neofetch Replacement Your Ubuntu Terminal Needs

If you love customizing your Linux terminal and getting a quick, visually appealing overview of your system specs, you might have used neofetch in the past. However, neofetch is now deprecated and no longer actively maintained. A fantastic, actively maintained alternative is Fastfetch – known for its speed, extensive customization options, and feature set.

While you might be able to install Fastfetch on Ubuntu 22.04 (Jammy Jellyfish) using the standard sudo apt install fastfetch, the version available in the default Ubuntu repositories is often outdated. To get the latest features, bug fixes, and performance improvements, you’ll want to use a different method.

Read More
Linux Kernel v6.15 is Released: This is What's New for Compute Express Link (CXL)

Linux Kernel v6.15 is Released: This is What's New for Compute Express Link (CXL)

The Linux Kernel v6.15 release brings several improvements and additions related to Compute Express Link (CXL) technology.

Release Highlights

Linux Kernel v6.15 includes 55 commits to the CXL and DAX subsystems:

CategoryCommits
New Features & Hardware6
Bug Fixes4
Performance1
Refactoring & Cleanup9
Other35

The Linux v6.15 kernel marks a meaningful expansion of CXL’s userspace interface story. The headline addition is FWCTL support: CXL devices can now expose get-feature and set-feature mailbox commands to userspace through the fwctl subsystem, giving operators and tooling a standardized RPC path to query and configure device-specific feature registers without requiring bespoke kernel drivers for each capability. This is the groundwork that enables feature negotiation at the management layer — expect CXL tooling to start consuming these interfaces quickly.

Read More