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.

On the reliability and platform integration side, v6.15 lands proper support for Global Persistent Flush (GPF), the CXL protocol mechanism that coordinates flush of dirty data across a fabric prior to power loss. The implementation introduces cxl_gpf_get_dvsec() to locate the GPF DVSEC capability block, and correctly gates port GPF timeout updates to only fire on first endpoint attachment — fixing a latent ordering issue caught during multi-device bringup. Separately, the first aliased address miscalculation in region setup is corrected, a bug that could produce incorrect DPA mappings in interleaved configurations.

The release also continues a sustained internal cleanup arc. The CXL_DECODER_MIXED decoder type — an acknowledged design mistake — is removed entirely. DPA partition accounting is restructured around two new types, cxl_dpa_partition and cxl_range_info, replacing ad-hoc fields with a coherent data model. The ioctl dispatch path is refactored from the MDS-specific path back to the generic mailbox layer, and several functions drop open-coded goto-based locking patterns in favor of the guard() macro, reducing the surface area for lock-imbalance bugs. The dax subsystem drops its last direct page->index access, continuing the ongoing page-folio migration.

Key Changes

  • FWCTL CXL Feature Command Interface: A new fwctl RPC framework exposes CXL get-feature and set-feature mailbox commands to userspace, enabling structured, privilege-controlled access to device feature registers without custom kernel code per device.

  • Global Persistent Flush (GPF) Support: cxl/pci now discovers and programs GPF capability via the DVSEC, coordinating fabric-wide dirty data flush on impending power loss. A fix ensures port GPF timeout is only updated on first endpoint attachment, preventing races during multi-device enumeration.

  • DPA Partition Data Model Refactor: struct cxl_dpa_partition and struct cxl_range_info replace scattered partition fields, giving the DPA allocator a cleaner type boundary and removing the stale unused values that were leaking into memdev logic.

  • Region Aliased Address Fix: An off-by-one in cxl/region caused the first aliased DPA address to be computed incorrectly in interleaved region setups, potentially producing wrong physical mappings. This is now corrected.

  • Dirty Shutdown Count via Sysfs: cxl/pmem exports the persistent dirty shutdown counter through sysfs, giving operators a direct path to inspect how many unclean shutdown events a persistent memory device has recorded — useful for wear tracking and RAS workflows.

  • CXL_DECODER_MIXED Removal: The mixed-type decoder variant, previously acknowledged as a design error in the decoder type enumeration, is fully excised. Code that depended on it is redirected to the correct typed decoders, tightening the state machine.

  • Ioctl Path Consolidation: The userspace ioctl dispatch is refactored away from the MDS-specific handler back to the shared mailbox path, reducing duplicated dispatch logic and making it easier to route new feature commands through a single entry point.

  • DAX page->index Access Removal: The final direct access to page->index in the DAX subsystem is removed, completing the incremental migration away from page-struct fields that are being repurposed during the folio conversion.

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

Design for Developers: Features, Flags, and the CLI

Design for Developers: Features, Flags, and the CLI

Series: Building lib3mf-rs

This post is part of a 5-part series on building a comprehensive 3MF library in Rust:

  1. Part 1: My Journey Building a 3MF Native Rust Library from Scratch
  2. Part 2: The Library Landscape - Why Build Another One?
  3. Part 3: Into the 3MF Specification Wilderness - Reading 1000+ Pages of Specifications
  4. Part 4: Design for Developers - Features, Flags, and the CLI
  5. Part 5: Reflections and What’s Next - Lessons from Building lib3mf-rs

Understanding the specifications was one thing. Designing a library that developers would actually want to use? That was another challenge entirely. I’ve worked on many libraries over the years, and I’ve learned a lot about what makes a good library, for example the Persistent Memory Development Kit . The difference is understanding how Rust does things.

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

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

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

Release Highlights

Linux Kernel v6.14 includes 13 commits to the CXL and DAX subsystems:

CategoryCommits
Bug Fixes1
Refactoring & Cleanup2
Other10

The dominant story in v6.14’s CXL changes is alignment with CXL specification revision 3.1 in the event subsystem. Five event record types — Common, General Media, DRAM, Memory Module, and Component Identifier — were updated to match the latest spec. These records are how CXL devices surface hardware faults, media errors, and performance anomalies to the host, so keeping them in sync with the specification is critical for accurate error classification and interoperability with newer hardware that implements the 3.1 format changes.

Read More
50 Generative AI Prompts I use as a Product Manager to Improve Efficiency and Product Quality

50 Generative AI Prompts I use as a Product Manager to Improve Efficiency and Product Quality

As a product manager, the success of our products depends on our ability to make informed, strategic decisions quickly and efficiently. In the fast-paced world of the IT industry, it’s crucial to stay ahead of trends, understand our customers deeply, and align our product development with our business goals. This is where generative AI and a well-crafted set of prompts have become invaluable tools in my daily workflow.

Why I Use These Prompts Daily

Every day, I’m faced with decisions that can significantly impact the trajectory of our product roadmap, customer satisfaction, and ultimately, our bottom line. The prompts I use are not just about generating ideas but about driving actionable insights that are tailored to our specific needs. These prompts cover a wide range of product management aspects—from prioritizing features based on customer feedback to crafting a go-to-market strategy that aligns with our business objectives.

Read More