Documentation/driver-api/cxl/linux/overview.rst

Source file repositories/reference/linux-study-clean/Documentation/driver-api/cxl/linux/overview.rst

File Facts

System
Linux kernel
Corpus path
Documentation/driver-api/cxl/linux/overview.rst
Extension
.rst
Size
2626 bytes
Lines
104
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

.. SPDX-License-Identifier: GPL-2.0

========
Overview
========

This section presents the configuration process of a CXL Type-3 memory device,
and how it is ultimately exposed to users as either a :code:`DAX` device or
normal memory pages via the kernel's page allocator.

Portions marked with a bullet are points at which certain kernel objects
are generated.

1) Early Boot

  a) BIOS, Build, and Boot Parameters

    i) EFI_MEMORY_SP
    ii) CONFIG_EFI_SOFT_RESERVE
    iii) CONFIG_MHP_DEFAULT_ONLINE_TYPE
    iv) nosoftreserve

  b) Memory Map Creation

    i) EFI Memory Map / E820 Consulted for Soft-Reserved

      * CXL Memory is set aside to be handled by the CXL driver

      * Soft-Reserved IO Resource created for CFMWS entry

  c) NUMA Node Creation

    * Nodes created from ACPI CEDT CFMWS and SRAT Proximity domains (PXM)

  d) Memory Tier Creation

    * A default memory_tier is created with all nodes.

  e) Contiguous Memory Allocation

    * Any requested CMA is allocated from Online nodes

  f) Init Finishes, Drivers start probing

2) ACPI and PCI Drivers

  a) Detects PCI device is CXL, marking it for probe by CXL driver

3) CXL Driver Operation

  a) Base device creation

    * root, port, and memdev devices created
    * CEDT CFMWS IO Resource creation

  b) Decoder creation

    * root, switch, and endpoint decoders created

  c) Logical device creation

    * memory_region and endpoint devices created

  d) Devices are associated with each other

    * If auto-decoder (BIOS-programmed decoders), driver validates
      configurations, builds associations, and locks configs at probe time.

    * If user-configured, validation and associations are built at
      decoder-commit time.

Annotation

Implementation Notes