[PATCH v3 00/17] CXL Boot to Bash Documentation

Gregory Price posted 17 patches 9 months ago
.../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%)
[PATCH v3 00/17] CXL Boot to Bash Documentation
Posted by Gregory Price 9 months ago
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
Re: [PATCH v3 00/17] CXL Boot to Bash Documentation
Posted by Dave Jiang 8 months, 4 weeks ago

On 5/12/25 9:21 AM, Gregory Price wrote:
> 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.

Applied to cxl/next

> 
> ---
> 
> 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%)
>