CXL Boot to Bash Documentation
From: | Gregory Price <gourry-AT-gourry.net> | |
To: | linux-cxl-AT-vger.kernel.org | |
Subject: | [PATCH v3 00/17] CXL Boot to Bash Documentation | |
Date: | Mon, 12 May 2025 12:21:17 -0400 | |
Message-ID: | <20250512162134.3596150-1-gourry@gourry.net> | |
Cc: | linux-doc-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, kernel-team-AT-meta.com, dave-AT-stgolabs.net, jonathan.cameron-AT-huawei.com, dave.jiang-AT-intel.com, alison.schofield-AT-intel.com, vishal.l.verma-AT-intel.com, ira.weiny-AT-intel.com, dan.j.williams-AT-intel.com, corbet-AT-lwn.net, Joshua Hahn <joshua.hahnjy-AT-gmail.com> | |
Archive-link: | Article |
v3: - Cross-links (Bagas) - Grammar and spelling (Randy) - added fixups to access-coordinates (Bagas) - Drop TODO sections (use-case, memory-tiering, CDAT/UEFI, SRAT Genport) I unfortunately won't be able to come back around to this for a while, so I'd rather not let this rot. --- This series converts CXL Boot to Bash Docs from LSFMM '25 to Linux Kernel Docs. In brief, this document covers (almost) everything Linux expects from platforms to successfully bring volatile CXL memory capacity online as a DAX device and/or SystemRAM. It covers: - Platform configuration data (ACPI Tables, EFI Memory Map, EFI Configs) - Linux Build and Boot Parameters - Linux consumption of Platform, Build, and Boot params - Linux creation of base resources (NUMA nodes, memory tiers, etc) - CXL Driver probe process and sysfs structure - DAX Driver interactions between the CXL driver and memory hotplug - Memory hotplug interactions - Page allocator interactions (NUMA nodes, Memory Zones, Reclaim, etc). Included are example platform configurations (ACPI tables) and cxl decoder configurations to guide platform developers on expected configurations (which may be more strict than the CXL spec). Co-developed-by: Joshua Hahn <joshua.hahnjy@gmail.com> Signed-off-by: Joshua Hahn <joshua.hahnjy@gmail.com> Signed-off-by: Gregory Price <gourry@gourry.net> Gregory Price (17): cxl: update documentation structure in prep for new docs cxl: docs - access-coordinates doc fixups cxl: docs/devices - add cxl device and protocol reference cxl: docs/platform/bios-and-efi documentation cxl: docs/platform/acpi reference documentation cxl: docs/platform/example-configs documentation cxl: docs/linux - overview cxl: docs/linux - early boot configuration cxl: docs/linux - add cxl-driver theory of operation cxl: docs/linux/cxl-driver - add example configurations cxl: docs/linux/dax-driver documentation cxl: docs/linux/memory-hotplug cxl: docs/allocation/dax cxl: docs/allocation/page-allocator cxl: docs/allocation/reclaim cxl: docs/allocation/hugepages cxl: docs - add self-referencing cross-links .../driver-api/cxl/allocation/dax.rst | 60 ++ .../driver-api/cxl/allocation/hugepages.rst | 32 + .../cxl/allocation/page-allocator.rst | 85 +++ .../driver-api/cxl/allocation/reclaim.rst | 51 ++ .../driver-api/cxl/devices/device-types.rst | 165 +++++ Documentation/driver-api/cxl/index.rst | 45 +- .../cxl/{ => linux}/access-coordinates.rst | 35 +- .../driver-api/cxl/linux/cxl-driver.rst | 630 ++++++++++++++++++ .../driver-api/cxl/linux/dax-driver.rst | 43 ++ .../driver-api/cxl/linux/early-boot.rst | 137 ++++ .../example-configurations/hb-interleave.rst | 314 +++++++++ .../intra-hb-interleave.rst | 291 ++++++++ .../multi-interleave.rst | 401 +++++++++++ .../example-configurations/single-device.rst | 246 +++++++ .../driver-api/cxl/linux/memory-hotplug.rst | 78 +++ .../driver-api/cxl/linux/overview.rst | 103 +++ .../driver-api/cxl/platform/acpi.rst | 76 +++ .../driver-api/cxl/platform/acpi/cedt.rst | 62 ++ .../driver-api/cxl/platform/acpi/dsdt.rst | 28 + .../driver-api/cxl/platform/acpi/hmat.rst | 32 + .../driver-api/cxl/platform/acpi/slit.rst | 21 + .../driver-api/cxl/platform/acpi/srat.rst | 44 ++ .../driver-api/cxl/platform/bios-and-efi.rst | 262 ++++++++ .../cxl/platform/example-configs.rst | 13 + .../example-configurations/flexible.rst | 296 ++++++++ .../example-configurations/hb-interleave.rst | 107 +++ .../multi-dev-per-hb.rst | 90 +++ .../example-configurations/one-dev-per-hb.rst | 136 ++++ ...ry-devices.rst => theory-of-operation.rst} | 10 +- 29 files changed, 3867 insertions(+), 26 deletions(-) create mode 100644 Documentation/driver-api/cxl/allocation/dax.rst create mode 100644 Documentation/driver-api/cxl/allocation/hugepages.rst create mode 100644 Documentation/driver-api/cxl/allocation/page-allocator.rst create mode 100644 Documentation/driver-api/cxl/allocation/reclaim.rst create mode 100644 Documentation/driver-api/cxl/devices/device-types.rst rename Documentation/driver-api/cxl/{ => linux}/access-coordinates.rst (84%) create mode 100644 Documentation/driver-api/cxl/linux/cxl-driver.rst create mode 100644 Documentation/driver-api/cxl/linux/dax-driver.rst create mode 100644 Documentation/driver-api/cxl/linux/early-boot.rst create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/hb-interleave.rst create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/intra-hb-interleave.rst create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/multi-interleave.rst create mode 100644 Documentation/driver-api/cxl/linux/example-configurations/single-device.rst create mode 100644 Documentation/driver-api/cxl/linux/memory-hotplug.rst create mode 100644 Documentation/driver-api/cxl/linux/overview.rst create mode 100644 Documentation/driver-api/cxl/platform/acpi.rst create mode 100644 Documentation/driver-api/cxl/platform/acpi/cedt.rst create mode 100644 Documentation/driver-api/cxl/platform/acpi/dsdt.rst create mode 100644 Documentation/driver-api/cxl/platform/acpi/hmat.rst create mode 100644 Documentation/driver-api/cxl/platform/acpi/slit.rst create mode 100644 Documentation/driver-api/cxl/platform/acpi/srat.rst create mode 100644 Documentation/driver-api/cxl/platform/bios-and-efi.rst create mode 100644 Documentation/driver-api/cxl/platform/example-configs.rst create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/flexible.rst create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/hb-interleave.rst create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/multi-dev-per-hb.rst create mode 100644 Documentation/driver-api/cxl/platform/example-configurations/one-dev-per-hb.rst rename Documentation/driver-api/cxl/{memory-devices.rst => theory-of-operation.rst} (98%) -- 2.49.0