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

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

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

Release Highlights

Linux Kernel v6.18 includes 32 commits to the CXL and DAX subsystems:

CategoryCommits
New Features & Hardware1
Bug Fixes4
Refactoring & Cleanup5
Testing2
Other20

The v6.18 kernel cycle for CXL/DAX is defined by two architectural threads running in parallel: hardening the address-translation stack and untangling port initialization from topology discovery. On the translation side, the new SPA-to-DPA region mapping infrastructure lands alongside a dedicated root-decoder ops structure that formalizes how the host physical address space is projected into CXL’s device physical address space — including XOR-interleaving math that was previously implicit. These foundations make region geometry computable and auditable in ways that earlier releases left to convention.

Port and dport lifecycle management received significant rework. Register setup for switch ports is now deferred until the first downstream port actually appears, rather than being triggered speculatively at port creation time. A matching helper to delete dports and a topology-detection helper for the root of the CXL device tree give drivers cleaner primitives to reason about partially-populated fabrics. The SSLBIS handler was simultaneously narrowed to a single-dport model, removing ambiguity in how system locality information propagates through switches.

The HMAT coupling that previously forced CXL access-coordinate updates to travel through the ACPI HMAT path is gone. CXL now writes its access coordinates directly, which removes a layering dependency and eliminates the now-dead hmat_update_target_coordinates() helper. On the observability side, poison injection gains region-level offset addressing and locked variants of the inject/clear functions, while the cxl_poison trace event correctly subtracts to recover the hpa_alias0 — fixing a latent calculation error in the tracing path.

Key Changes

  • SPA-to-DPA address translation: A new region-level mapping between System Physical Addresses and Device Physical Addresses is introduced, giving the CXL subsystem a formal, queryable translation layer rather than relying on implicit arithmetic scattered across drivers.

  • Root decoder ops and XOR math: The hpa_to_spa callback is promoted into a structured cxl_root_decoder_ops, and a dedicated callback for XOR-based interleave math is wired in. This makes non-standard interleave topologies first-class citizens in the decoder model.

  • Deferred dport and port register setup: Switch port component registers are now set up only when the first downstream port is discovered, rather than at port creation. Combined with a new dport-deletion helper, this makes hot-plug and partial-topology scenarios substantially less error-prone.

  • Direct CXL access coordinate updates: CXL no longer routes access-coordinate data through HMAT; it writes coordinates directly. This removes an ACPI layering dependency and deletes hmat_update_target_coordinates(), which had become dead code.

  • Region-level poison injection: Poison can now be injected and cleared by region offset rather than only by raw device address. Locked variants of the inject/clear functions are also added so callers that already hold the region lock do not need to drop it.

  • SSLBIS single-dport enforcement: The system-locality-based bandwidth and latency information (SSLBIS) handler is restricted to operate on a single downstream port, fixing an implicit assumption that previously allowed multi-dport ambiguity to silently produce incorrect locality data.

  • ACPI and resource fixes: cxl_acpi_set_cache_size() had an incorrect memory resource setup that could misconfigure cache-capable regions; this is corrected. The CFMW coherency restriction fields are also renamed to match the current CXL specification terminology, reducing confusion when reading ACPI CEDT tables.

  • match_region_by_range() fix: The region-range matching function was not calling region_res_match_cxl_range(), meaning region lookups could silently return incorrect results for non-trivial interleave configurations. The fix ensures the correct range-comparison helper is always used.

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

How Much RAM Could a Vector Database Use If a Vector Database Could Use RAM

How Much RAM Could a Vector Database Use If a Vector Database Could Use RAM

Featured image generated by ChatGPT 4o model: “a low poly woodchuck by a serene lake, surrounded by mountains and a forest with tree leaves made from DDR memory modules. The woodchuck is munching on a memory DIMM. The only memory DIMM in the image should be the one being eaten.”

How Much RAM Could a Vector Database Use If a Vector Database Could Use RAM?

Although the title is a punn from the famous “woodchuck rhyme,” the question is serious for LLM applications using vector databases. As large language models (LLMs) continue to evolve, leveraging vector databases to store and search embeddings is critical. Understanding the memory usage of these systems is essential for maintaining performance, response times, and ensuring system scalability.

Read More
CXL Server Buyer's Guide: A Complete List of GA Platforms

CXL Server Buyer's Guide: A Complete List of GA Platforms

Last Updated: June 2, 2026

This quick-reference guide provides a definitive, up-to-date list of generally available (GA) Compute Express Link (CXL) servers from major OEMs including Dell, HPE, Lenovo, and Supermicro. It is designed for data center architects, engineers, and IT decision-makers who need to identify and compare server platforms that support CXL 1.1 and CXL 2.0 for memory expansion and pooling.

Compute Express Link (CXL) is an open-standard interconnect that enables high-speed, low-latency communication between processors and attached devices such as accelerators and memory expanders. CXL 2.0 adoption has accelerated significantly since 2025, with all major CPU platforms now supporting it natively and the first hyperscale cloud deployments validated in production.

Read More
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