Linux CXL
 help / color / mirror / Atom feed
* [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation
@ 2025-05-15  0:09 Dave Jiang
  2025-05-15  0:09 ` [PATCH v2 1/3] cxl: docs/platform/cdat reference documentation Dave Jiang
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Dave Jiang @ 2025-05-15  0:09 UTC (permalink / raw)
  To: linux-cxl
  Cc: dave, jonathan.cameron, alison.schofield, vishal.l.verma,
	ira.weiny, dan.j.williams, gourry

v2:
- Language clarifications (Gregory)
- Move all CDAT bits into single document. (Gregory)
- Define CDAT terms. (Gregory)

Add CXL access coordinates calculation documentation including CDAT details.


Dave Jiang (3):
  cxl: docs/platform/cdat reference documentation
  cxl: docs/platform/acpi/srat Add generic target documentation
  cxl: doc/linux/access-coordinates Update access coordinates
    calculation methods

 Documentation/driver-api/cxl/index.rst        |   1 +
 .../cxl/linux/access-coordinates.rst          |  86 +++++++++++++
 .../driver-api/cxl/platform/acpi/srat.rst     |  27 ++++
 .../driver-api/cxl/platform/cdat.rst          | 118 ++++++++++++++++++
 4 files changed, 232 insertions(+)
 create mode 100644 Documentation/driver-api/cxl/platform/cdat.rst


base-commit: 7855bc1362518673103bd9357827572207e6f6d9
-- 
2.49.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/3] cxl: docs/platform/cdat reference documentation
  2025-05-15  0:09 [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Dave Jiang
@ 2025-05-15  0:09 ` Dave Jiang
  2025-05-15  3:41   ` Gregory Price
  2025-05-15  0:09 ` [PATCH v2 2/3] cxl: docs/platform/acpi/srat Add generic target documentation Dave Jiang
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: Dave Jiang @ 2025-05-15  0:09 UTC (permalink / raw)
  To: linux-cxl
  Cc: dave, jonathan.cameron, alison.schofield, vishal.l.verma,
	ira.weiny, dan.j.williams, gourry

Add documentation for CDAT structures for CXL usages.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>

---
v2:
- Move everything into cdat.rst (Gregory)
- Update various languages in the doc for clarification (Gregory)
- Add a term definition section (Gregory)
---
 Documentation/driver-api/cxl/index.rst        |   1 +
 .../driver-api/cxl/platform/cdat.rst          | 118 ++++++++++++++++++
 2 files changed, 119 insertions(+)
 create mode 100644 Documentation/driver-api/cxl/platform/cdat.rst

diff --git a/Documentation/driver-api/cxl/index.rst b/Documentation/driver-api/cxl/index.rst
index 366faf851fc7..9e1414ad3357 100644
--- a/Documentation/driver-api/cxl/index.rst
+++ b/Documentation/driver-api/cxl/index.rst
@@ -27,6 +27,7 @@ that have impacts on each other.  The docs here break up configurations steps.
 
    platform/bios-and-efi
    platform/acpi
+   platform/cdat
    platform/example-configs
 
 .. toctree::
diff --git a/Documentation/driver-api/cxl/platform/cdat.rst b/Documentation/driver-api/cxl/platform/cdat.rst
new file mode 100644
index 000000000000..34bbe7264d71
--- /dev/null
+++ b/Documentation/driver-api/cxl/platform/cdat.rst
@@ -0,0 +1,118 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+======================================
+Coherent Device Attribute Table (CDAT)
+======================================
+
+The CDAT provides functional and performance attributes of devices such
+as CXL accelerators, switches, or endpoints.  The table formatting is
+similar to ACPI tables. CDAT data may be parsed by BIOS at boot or may
+be enumerated at runtime (after device hotplug, for example).
+
+Terminology:
+DPA - Device Physical Address, used by the CXL device to denote the address
+it supports for that device.
+
+DSMADHandle - A device unique handle that is associated with a DPA range
+defined by the DSMAS table.
+
+
+===============================================
+Device Scoped Memory Affinity Structure (DSMAS)
+===============================================
+
+The DSMAS contains information such as DSMADHandle, the DPA Base, and DPA
+Length.
+
+This table is used by Linux in conjunction with the Device Scoped Latency and
+Bandwidth Information Structure (DSLBIS) to determine the performance
+attributes of the CXL device itself.
+
+Example ::
+
+ Structure Type : 00 [DSMAS]
+       Reserved : 00
+         Length : 0018              <- 24d, size of structure
+    DSMADHandle : 01
+          Flags : 00
+       Reserved : 0000
+       DPA Base : 0000000040000000  <- 1GiB base
+     DPA Length : 0000000080000000  <- 2GiB size
+
+
+==================================================================
+Device Scoped Latency and Bandwidth Information Structure (DSLBIS)
+==================================================================
+
+This table is used by Linux in conjunction with DSMAS to determine the
+performance attributes of a CXL device.  The DSLBIS contains latency
+and bandwidth information based on DSMADHandle matching.
+
+Example ::
+
+   Structure Type : 01 [DSLBIS]
+         Reserved : 00
+           Length : 18                     <- 24d, size of structure
+           Handle : 0001                   <- DSMAS handle
+            Flags : 00                     <- Matches flag field for HMAT SLLBIS
+        Data Type : 00                     <- Latency
+ Entry Basee Unit : 0000000000001000       <- Entry Base Unit field in HMAT SSLBIS
+            Entry : 010000000000           <- First byte used here, CXL LTC
+         Reserved : 0000
+
+   Structure Type : 01 [DSLBIS]
+         Reserved : 00
+           Length : 18                     <- 24d, size of structure
+           Handle : 0001                   <- DSMAS handle
+            Flags : 00                     <- Matches flag field for HMAT SLLBIS
+        Data Type : 03                     <- Bandwidth
+ Entry Basee Unit : 0000000000001000       <- Entry Base Unit field in HMAT SSLBIS
+            Entry : 020000000000           <- First byte used here, CXL BW
+         Reserved : 0000
+
+
+==================================================================
+Switch Scoped Latency and Bandwidth Information Structure (SSLBIS)
+==================================================================
+
+The SSLBIS contains information about the latency and bandwidth of a switch.
+
+The table is used by Linux to compute the performance coordinates of a CXL path
+from the device to the root port where a switch is part of the path.
+
+Example ::
+
+  Structure Type : 05 [SSLBIS]
+        Reserved : 00
+          Length : 20                           <- 32d, length of record, including SSLB entries
+       Data Type : 00                           <- Latency
+        Reserved : 000000
+ Entry Base Unit : 00000000000000001000         <- Matches Entry Base Unit in HMAT SSLBIS
+
+                                                <- SSLB Entry 0
+       Port X ID : 0100                         <- First port, 0100h represents an upstream port
+       Port Y ID : 0000                         <- Second port, downstream port 0
+         Latency : 0100                         <- Port latency
+        Reserved : 0000
+                                                <- SSLB Entry 1
+       Port X ID : 0100
+       Port Y ID : 0001
+         Latency : 0100
+        Reserved : 0000
+
+
+  Structure Type : 05 [SSLBIS]
+        Reserved : 00
+          Length : 18                           <- 24d, length of record, including SSLB entry
+       Data Type : 03                           <- Bandwidth
+        Reserved : 000000
+ Entry Base Unit : 00000000000000001000         <- Matches Entry Base Unit in HMAT SSLBIS
+
+                                                <- SSLB Entry 0
+       Port X ID : 0100                         <- First port, 0100h represents an upstream port
+       Port Y ID : FFFF                         <- Second port, FFFFh indicates any port
+       Bandwidth : 1200                         <- Port bandwidth
+        Reserved : 0000
+
+The CXL driver uses a combination of CDAT, HMAT, SRAT, and other data to
+generate "whole path performance" data for a CXL device.
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/3] cxl: docs/platform/acpi/srat Add generic target documentation
  2025-05-15  0:09 [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Dave Jiang
  2025-05-15  0:09 ` [PATCH v2 1/3] cxl: docs/platform/cdat reference documentation Dave Jiang
@ 2025-05-15  0:09 ` Dave Jiang
  2025-05-15  0:09 ` [PATCH v2 3/3] cxl: doc/linux/access-coordinates Update access coordinates calculation methods Dave Jiang
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Dave Jiang @ 2025-05-15  0:09 UTC (permalink / raw)
  To: linux-cxl
  Cc: dave, jonathan.cameron, alison.schofield, vishal.l.verma,
	ira.weiny, dan.j.williams, gourry

Add description in the SRAT document to descript the Generic Port
Affinity sub-table.

Reviewed-by: Gregory Price <gourry@gourry.net>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
---
v2:
- Clarify sentence in usage description. (Gregory)
- Added association of SRAT to HMAT.
---
 .../driver-api/cxl/platform/acpi/srat.rst     | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/Documentation/driver-api/cxl/platform/acpi/srat.rst b/Documentation/driver-api/cxl/platform/acpi/srat.rst
index 56d7bbb18c3b..cc98ca0e508e 100644
--- a/Documentation/driver-api/cxl/platform/acpi/srat.rst
+++ b/Documentation/driver-api/cxl/platform/acpi/srat.rst
@@ -42,3 +42,30 @@ Example ::
               Enabled : 1
         Hot Pluggable : 1
          Non-Volatile : 0
+
+
+Generic Port Affinity
+=====================
+The Generic Port Affinity subtable provides an association between a proximity
+domain and a device handle representing a Generic Port such as a CXL host
+bridge. With the association, latency and bandwidth numbers can be retrieved
+from the SRAT for the path between CPU(s) (initiator) and the Generic Port.
+This is used to construct performance coordinates for hotplugged CXL DEVICES,
+which cannot be enumerated at boot by platform firmware.
+
+Example ::
+
+         Subtable Type : 06 [Generic Port Affinity]
+                Length : 20               <- 32d, length of table
+              Reserved : 00
+    Device Handle Type : 00               <- 0 - ACPI, 1 - PCI
+      Proximity Domain : 00000001
+         Device Handle : ACPI0016:01
+                 Flags : 00000001         <- Bit 0 (Enabled)
+              Reserved : 00000000
+
+The Proximity Domain is matched up to the :doc:`HMAT <hmat>` SSLBI Target
+Proximity Domain List for the related latency or bandwidth numbers. Those
+performance numbers are tied to a CXL host bridge via the Device Handle.
+The driver uses the association to retrieve the Generic Port performance
+numbers for the whole CXL path access coordinates calculation.
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 3/3] cxl: doc/linux/access-coordinates Update access coordinates calculation methods
  2025-05-15  0:09 [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Dave Jiang
  2025-05-15  0:09 ` [PATCH v2 1/3] cxl: docs/platform/cdat reference documentation Dave Jiang
  2025-05-15  0:09 ` [PATCH v2 2/3] cxl: docs/platform/acpi/srat Add generic target documentation Dave Jiang
@ 2025-05-15  0:09 ` Dave Jiang
  2025-05-15 17:15 ` [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Alison Schofield
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Dave Jiang @ 2025-05-15  0:09 UTC (permalink / raw)
  To: linux-cxl
  Cc: dave, jonathan.cameron, alison.schofield, vishal.l.verma,
	ira.weiny, dan.j.williams, gourry

Add documentation on how to calculate the access coordinates for a given
CXL region in detail.

Reviewed-by: Gregory Price <gourry@gourry.net>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
---
v2:
- Clarification of language. (Gregory)
---
 .../cxl/linux/access-coordinates.rst          | 86 +++++++++++++++++++
 1 file changed, 86 insertions(+)

diff --git a/Documentation/driver-api/cxl/linux/access-coordinates.rst b/Documentation/driver-api/cxl/linux/access-coordinates.rst
index 71024fa0f561..341a7c682043 100644
--- a/Documentation/driver-api/cxl/linux/access-coordinates.rst
+++ b/Documentation/driver-api/cxl/linux/access-coordinates.rst
@@ -5,6 +5,83 @@
 CXL Access Coordinates Computation
 ==================================
 
+Latency and Bandwidth Calculation
+=================================
+A memory region performance coordinates (latency and bandwidth) are typically
+provided via ACPI tables :doc:`SRAT <../platform/acpi/srat>` and
+:doc:`HMAT <../platform/acpi/hmat>`. However, the platform firmware (BIOS) is
+not able to annotate those for CXL devices that are hot-plugged since they do
+not exist during platform firmware initialization. The CXL driver can compute
+the performance coordinates by retrieving data from several components.
+
+The :doc:`SRAT <../platform/acpi/srat>` provides a Generic Port Affinity
+subtable that ties a proximity domain to a device handle, which in this case
+would be the CXL hostbridge. Using this association, the performance
+coordinates for the Generic Port can be retrieved from the
+:doc:`HMAT <../platform/acpi/hmat>` subtable. This piece represents the
+performance coordinates between a CPU and a Generic Port (CXL hostbridge).
+
+The :doc:`CDAT <../platform/cdat>` provides the performance coordinates for
+the CXL device itself. That is the bandwidth and latency to access that device's
+memory region. The DSMAS subtable provides a DSMADHandle that is tied to a
+Device Physical Address (DPA) range. The DSLBIS subtable provides the
+performance coordinates that's tied to a DSMADhandle and this ties the two
+table entries together to provide the performance coordinates for each DPA
+region. For example, if a device exports a DRAM region and a PMEM region,
+then there would be different performance characteristsics for each of those
+regions.
+
+If there's a CXL switch in the topology, then the performance coordinates for the
+switch is provided by SSLBIS subtable. This provides the bandwidth and latency
+for traversing the switch between the switch upstream port and the switch
+downstream port that points to the endpoint device.
+
+Simple topology example::
+
+ GP0/HB0/ACPI0016-0
+        RP0
+         |
+         | L0
+         |
+     SW 0 / USP0
+     SW 0 / DSP0
+         |
+         | L1
+         |
+        EP0
+
+In this example, there is a CXL switch between an endpoint and a root port.
+Latency in this example is calculated as such:
+L(EP0) - Latency from EP0 CDAT DSMAS+DSLBIS
+L(L1) - Link latency between EP0 and SW0DSP0
+L(SW0) - Latency for the switch from SW0 CDAT SSLBIS.
+L(L0) - Link latency between SW0 and RP0
+L(RP0) - Latency from root port to CPU via SRAT and HMAT (Generic Port).
+Total read and write latencies are the sum of all these parts.
+
+Bandwidth in this example is calculated as such:
+B(EP0) - Bandwidth from EP0 CDAT DSMAS+DSLBIS
+B(L1) - Link bandwidth between EP0 and SW0DSP0
+B(SW0) - Bandwidth for the switch from SW0 CDAT SSLBIS.
+B(L0) - Link bandwidth between SW0 and RP0
+B(RP0) - Bandwidth from root port to CPU via SRAT and HMAT (Generic Port).
+The total read and write bandwidth is the min() of all these parts.
+
+To calculate the link bandwidth:
+LinkOperatingFrequency (GT/s) is the current negotiated link speed.
+DataRatePerLink (MB/s) = LinkOperatingFrequency / 8
+Bandwidth (MB/s) = PCIeCurrentLinkWidth * DataRatePerLink
+Where PCIeCurrentLinkWidth is the number of lanes in the link.
+
+To calculate the link latency:
+LinkLatency (picoseconds) = FlitSize / LinkBandwidth (MB/s)
+
+See `CXL Memory Device SW Guide r1.0 <https://www.intel.com/content/www/us/en/content-details/643805/cxl-memory-device-software-guide.html>`_,
+section 2.11.3 and 2.11.4 for details.
+
+In the end, the access coordinates for a constructed memory region is calculated from one
+or more memory partitions from each of the CXL device(s).
+
 Shared Upstream Link Calculation
 ================================
 For certain CXL region construction with endpoints behind CXL switches (SW) or
@@ -90,3 +167,12 @@ under the same ACPI0017 device to form a new xarray.
 Finally, the cxl_region_update_bandwidth() is called and the aggregated
 bandwidth from all the members of the last xarray is updated for the
 access coordinates residing in the cxl region (cxlr) context.
+
+QTG ID
+======
+Each :doc:`CEDT <../platform/acpi/cedt>` has a QTG ID field. This field provides
+the ID that associates with a QoS Throttling Group (QTG) for the CFMWS window.
+Once the access coordinates are calculated, an ACPI Device Specific Method can
+be issued to the ACPI0016 device to retrieve the QTG ID depends on the access
+coordinates provided. The QTG ID for the device can be used as guidance to match
+to the CFMWS to setup the best Linux root decoder for the device performance.
-- 
2.49.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/3] cxl: docs/platform/cdat reference documentation
  2025-05-15  0:09 ` [PATCH v2 1/3] cxl: docs/platform/cdat reference documentation Dave Jiang
@ 2025-05-15  3:41   ` Gregory Price
  0 siblings, 0 replies; 9+ messages in thread
From: Gregory Price @ 2025-05-15  3:41 UTC (permalink / raw)
  To: Dave Jiang
  Cc: linux-cxl, dave, jonathan.cameron, alison.schofield,
	vishal.l.verma, ira.weiny, dan.j.williams

On Wed, May 14, 2025 at 05:09:21PM -0700, Dave Jiang wrote:
> Add documentation for CDAT structures for CXL usages.
> 
> Signed-off-by: Dave Jiang <dave.jiang@intel.com>
>

Reviewed-by: Gregory Price <gourry@gourry.net>

> ---
> v2:
> - Move everything into cdat.rst (Gregory)
> - Update various languages in the doc for clarification (Gregory)
> - Add a term definition section (Gregory)
> ---
>  Documentation/driver-api/cxl/index.rst        |   1 +
>  .../driver-api/cxl/platform/cdat.rst          | 118 ++++++++++++++++++
>  2 files changed, 119 insertions(+)
>  create mode 100644 Documentation/driver-api/cxl/platform/cdat.rst
> 
> diff --git a/Documentation/driver-api/cxl/index.rst b/Documentation/driver-api/cxl/index.rst
> index 366faf851fc7..9e1414ad3357 100644
> --- a/Documentation/driver-api/cxl/index.rst
> +++ b/Documentation/driver-api/cxl/index.rst
> @@ -27,6 +27,7 @@ that have impacts on each other.  The docs here break up configurations steps.
>  
>     platform/bios-and-efi
>     platform/acpi
> +   platform/cdat
>     platform/example-configs
>  
>  .. toctree::
> diff --git a/Documentation/driver-api/cxl/platform/cdat.rst b/Documentation/driver-api/cxl/platform/cdat.rst
> new file mode 100644
> index 000000000000..34bbe7264d71
> --- /dev/null
> +++ b/Documentation/driver-api/cxl/platform/cdat.rst
> @@ -0,0 +1,118 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +======================================
> +Coherent Device Attribute Table (CDAT)
> +======================================
> +
> +The CDAT provides functional and performance attributes of devices such
> +as CXL accelerators, switches, or endpoints.  The table formatting is
> +similar to ACPI tables. CDAT data may be parsed by BIOS at boot or may
> +be enumerated at runtime (after device hotplug, for example).
> +
> +Terminology:
> +DPA - Device Physical Address, used by the CXL device to denote the address
> +it supports for that device.
> +
> +DSMADHandle - A device unique handle that is associated with a DPA range
> +defined by the DSMAS table.
> +
> +
> +===============================================
> +Device Scoped Memory Affinity Structure (DSMAS)
> +===============================================
> +
> +The DSMAS contains information such as DSMADHandle, the DPA Base, and DPA
> +Length.
> +
> +This table is used by Linux in conjunction with the Device Scoped Latency and
> +Bandwidth Information Structure (DSLBIS) to determine the performance
> +attributes of the CXL device itself.
> +
> +Example ::
> +
> + Structure Type : 00 [DSMAS]
> +       Reserved : 00
> +         Length : 0018              <- 24d, size of structure
> +    DSMADHandle : 01
> +          Flags : 00
> +       Reserved : 0000
> +       DPA Base : 0000000040000000  <- 1GiB base
> +     DPA Length : 0000000080000000  <- 2GiB size
> +
> +
> +==================================================================
> +Device Scoped Latency and Bandwidth Information Structure (DSLBIS)
> +==================================================================
> +
> +This table is used by Linux in conjunction with DSMAS to determine the
> +performance attributes of a CXL device.  The DSLBIS contains latency
> +and bandwidth information based on DSMADHandle matching.
> +
> +Example ::
> +
> +   Structure Type : 01 [DSLBIS]
> +         Reserved : 00
> +           Length : 18                     <- 24d, size of structure
> +           Handle : 0001                   <- DSMAS handle
> +            Flags : 00                     <- Matches flag field for HMAT SLLBIS
> +        Data Type : 00                     <- Latency
> + Entry Basee Unit : 0000000000001000       <- Entry Base Unit field in HMAT SSLBIS
> +            Entry : 010000000000           <- First byte used here, CXL LTC
> +         Reserved : 0000
> +
> +   Structure Type : 01 [DSLBIS]
> +         Reserved : 00
> +           Length : 18                     <- 24d, size of structure
> +           Handle : 0001                   <- DSMAS handle
> +            Flags : 00                     <- Matches flag field for HMAT SLLBIS
> +        Data Type : 03                     <- Bandwidth
> + Entry Basee Unit : 0000000000001000       <- Entry Base Unit field in HMAT SSLBIS
> +            Entry : 020000000000           <- First byte used here, CXL BW
> +         Reserved : 0000
> +
> +
> +==================================================================
> +Switch Scoped Latency and Bandwidth Information Structure (SSLBIS)
> +==================================================================
> +
> +The SSLBIS contains information about the latency and bandwidth of a switch.
> +
> +The table is used by Linux to compute the performance coordinates of a CXL path
> +from the device to the root port where a switch is part of the path.
> +
> +Example ::
> +
> +  Structure Type : 05 [SSLBIS]
> +        Reserved : 00
> +          Length : 20                           <- 32d, length of record, including SSLB entries
> +       Data Type : 00                           <- Latency
> +        Reserved : 000000
> + Entry Base Unit : 00000000000000001000         <- Matches Entry Base Unit in HMAT SSLBIS
> +
> +                                                <- SSLB Entry 0
> +       Port X ID : 0100                         <- First port, 0100h represents an upstream port
> +       Port Y ID : 0000                         <- Second port, downstream port 0
> +         Latency : 0100                         <- Port latency
> +        Reserved : 0000
> +                                                <- SSLB Entry 1
> +       Port X ID : 0100
> +       Port Y ID : 0001
> +         Latency : 0100
> +        Reserved : 0000
> +
> +
> +  Structure Type : 05 [SSLBIS]
> +        Reserved : 00
> +          Length : 18                           <- 24d, length of record, including SSLB entry
> +       Data Type : 03                           <- Bandwidth
> +        Reserved : 000000
> + Entry Base Unit : 00000000000000001000         <- Matches Entry Base Unit in HMAT SSLBIS
> +
> +                                                <- SSLB Entry 0
> +       Port X ID : 0100                         <- First port, 0100h represents an upstream port
> +       Port Y ID : FFFF                         <- Second port, FFFFh indicates any port
> +       Bandwidth : 1200                         <- Port bandwidth
> +        Reserved : 0000
> +
> +The CXL driver uses a combination of CDAT, HMAT, SRAT, and other data to
> +generate "whole path performance" data for a CXL device.
> -- 
> 2.49.0
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation
  2025-05-15  0:09 [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Dave Jiang
                   ` (2 preceding siblings ...)
  2025-05-15  0:09 ` [PATCH v2 3/3] cxl: doc/linux/access-coordinates Update access coordinates calculation methods Dave Jiang
@ 2025-05-15 17:15 ` Alison Schofield
  2025-05-15 17:25   ` Dave Jiang
  2025-05-15 23:51 ` Dave Jiang
  2025-05-19 15:42 ` Jonathan Cameron
  5 siblings, 1 reply; 9+ messages in thread
From: Alison Schofield @ 2025-05-15 17:15 UTC (permalink / raw)
  To: Dave Jiang
  Cc: linux-cxl, dave, jonathan.cameron, vishal.l.verma, ira.weiny,
	dan.j.williams, gourry

On Wed, May 14, 2025 at 05:09:20PM -0700, Dave Jiang wrote:
> v2:
> - Language clarifications (Gregory)
> - Move all CDAT bits into single document. (Gregory)
> - Define CDAT terms. (Gregory)
> 
> Add CXL access coordinates calculation documentation including CDAT details.

I appreciate this documentation and it makes me half-smart on this
stuff which leads to my possibly annoying questions:

Say I have a BIOS defined region. Can I look at the result of these
calcs and see, or judge, whether BIOS set up the most efficient
region?

For a user created region where the topology offers some flexibility,
can a user predict these numbers before creating a region? Can the
user create a region, evaluate its 'perf characteristics', then destroy
it and try another flavor?

I realize this is internal docs on driver behavior and not user
space documentation. I'm looking for info to improve my understanding
not suggesting this info belongs in these docs.

Thanks - and, for the series:

Reviewed-by: Alison Schofield <alison.schofield@intel.com>

> 
> 
> Dave Jiang (3):
>   cxl: docs/platform/cdat reference documentation
>   cxl: docs/platform/acpi/srat Add generic target documentation
>   cxl: doc/linux/access-coordinates Update access coordinates
>     calculation methods
> 
>  Documentation/driver-api/cxl/index.rst        |   1 +
>  .../cxl/linux/access-coordinates.rst          |  86 +++++++++++++
>  .../driver-api/cxl/platform/acpi/srat.rst     |  27 ++++
>  .../driver-api/cxl/platform/cdat.rst          | 118 ++++++++++++++++++
>  4 files changed, 232 insertions(+)
>  create mode 100644 Documentation/driver-api/cxl/platform/cdat.rst
> 
> 
> base-commit: 7855bc1362518673103bd9357827572207e6f6d9
> -- 
> 2.49.0
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation
  2025-05-15 17:15 ` [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Alison Schofield
@ 2025-05-15 17:25   ` Dave Jiang
  0 siblings, 0 replies; 9+ messages in thread
From: Dave Jiang @ 2025-05-15 17:25 UTC (permalink / raw)
  To: Alison Schofield
  Cc: linux-cxl, dave, jonathan.cameron, vishal.l.verma, ira.weiny,
	dan.j.williams, gourry



On 5/15/25 10:15 AM, Alison Schofield wrote:
> On Wed, May 14, 2025 at 05:09:20PM -0700, Dave Jiang wrote:
>> v2:
>> - Language clarifications (Gregory)
>> - Move all CDAT bits into single document. (Gregory)
>> - Define CDAT terms. (Gregory)
>>
>> Add CXL access coordinates calculation documentation including CDAT details.
> 
> I appreciate this documentation and it makes me half-smart on this
> stuff which leads to my possibly annoying questions:
> 
> Say I have a BIOS defined region. Can I look at the result of these
> calcs and see, or judge, whether BIOS set up the most efficient
> region?

Yes I think you can, since we do the calculation for all devices, not just the hot-plugged ones.

> 
> For a user created region where the topology offers some flexibility,
> can a user predict these numbers before creating a region? Can the
> user create a region, evaluate its 'perf characteristics', then destroy
> it and try another flavor?

I think so. If the QOS class mismatches, I believe you'll get a warning from CXL CLI, but you can override.

> 
> I realize this is internal docs on driver behavior and not user
> space documentation. I'm looking for info to improve my understanding
> not suggesting this info belongs in these docs.
> 
> Thanks - and, for the series:
> 
> Reviewed-by: Alison Schofield <alison.schofield@intel.com>
> 
>>
>>
>> Dave Jiang (3):
>>   cxl: docs/platform/cdat reference documentation
>>   cxl: docs/platform/acpi/srat Add generic target documentation
>>   cxl: doc/linux/access-coordinates Update access coordinates
>>     calculation methods
>>
>>  Documentation/driver-api/cxl/index.rst        |   1 +
>>  .../cxl/linux/access-coordinates.rst          |  86 +++++++++++++
>>  .../driver-api/cxl/platform/acpi/srat.rst     |  27 ++++
>>  .../driver-api/cxl/platform/cdat.rst          | 118 ++++++++++++++++++
>>  4 files changed, 232 insertions(+)
>>  create mode 100644 Documentation/driver-api/cxl/platform/cdat.rst
>>
>>
>> base-commit: 7855bc1362518673103bd9357827572207e6f6d9
>> -- 
>> 2.49.0
>>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation
  2025-05-15  0:09 [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Dave Jiang
                   ` (3 preceding siblings ...)
  2025-05-15 17:15 ` [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Alison Schofield
@ 2025-05-15 23:51 ` Dave Jiang
  2025-05-19 15:42 ` Jonathan Cameron
  5 siblings, 0 replies; 9+ messages in thread
From: Dave Jiang @ 2025-05-15 23:51 UTC (permalink / raw)
  To: linux-cxl
  Cc: dave, jonathan.cameron, alison.schofield, vishal.l.verma,
	ira.weiny, dan.j.williams, gourry



On 5/14/25 5:09 PM, Dave Jiang wrote:
> v2:
> - Language clarifications (Gregory)
> - Move all CDAT bits into single document. (Gregory)
> - Define CDAT terms. (Gregory)
> 
> Add CXL access coordinates calculation documentation including CDAT details.
> 
> 
> Dave Jiang (3):
>   cxl: docs/platform/cdat reference documentation
>   cxl: docs/platform/acpi/srat Add generic target documentation
>   cxl: doc/linux/access-coordinates Update access coordinates
>     calculation methods
> 
>  Documentation/driver-api/cxl/index.rst        |   1 +
>  .../cxl/linux/access-coordinates.rst          |  86 +++++++++++++
>  .../driver-api/cxl/platform/acpi/srat.rst     |  27 ++++
>  .../driver-api/cxl/platform/cdat.rst          | 118 ++++++++++++++++++
>  4 files changed, 232 insertions(+)
>  create mode 100644 Documentation/driver-api/cxl/platform/cdat.rst
> 
> 
> base-commit: 7855bc1362518673103bd9357827572207e6f6d9

Applied to cxl/next

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation
  2025-05-15  0:09 [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Dave Jiang
                   ` (4 preceding siblings ...)
  2025-05-15 23:51 ` Dave Jiang
@ 2025-05-19 15:42 ` Jonathan Cameron
  5 siblings, 0 replies; 9+ messages in thread
From: Jonathan Cameron @ 2025-05-19 15:42 UTC (permalink / raw)
  To: Dave Jiang
  Cc: linux-cxl, dave, alison.schofield, vishal.l.verma, ira.weiny,
	dan.j.williams, gourry

On Wed, 14 May 2025 17:09:20 -0700
Dave Jiang <dave.jiang@intel.com> wrote:

> v2:
> - Language clarifications (Gregory)
> - Move all CDAT bits into single document. (Gregory)
> - Define CDAT terms. (Gregory)

Obviously I'm late to the game, but fwiw I looked through this
and it looks good to me as well.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> 
> Add CXL access coordinates calculation documentation including CDAT details.
> 
> 
> Dave Jiang (3):
>   cxl: docs/platform/cdat reference documentation
>   cxl: docs/platform/acpi/srat Add generic target documentation
>   cxl: doc/linux/access-coordinates Update access coordinates
>     calculation methods
> 
>  Documentation/driver-api/cxl/index.rst        |   1 +
>  .../cxl/linux/access-coordinates.rst          |  86 +++++++++++++
>  .../driver-api/cxl/platform/acpi/srat.rst     |  27 ++++
>  .../driver-api/cxl/platform/cdat.rst          | 118 ++++++++++++++++++
>  4 files changed, 232 insertions(+)
>  create mode 100644 Documentation/driver-api/cxl/platform/cdat.rst
> 
> 
> base-commit: 7855bc1362518673103bd9357827572207e6f6d9


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-05-19 15:42 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-15  0:09 [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Dave Jiang
2025-05-15  0:09 ` [PATCH v2 1/3] cxl: docs/platform/cdat reference documentation Dave Jiang
2025-05-15  3:41   ` Gregory Price
2025-05-15  0:09 ` [PATCH v2 2/3] cxl: docs/platform/acpi/srat Add generic target documentation Dave Jiang
2025-05-15  0:09 ` [PATCH v2 3/3] cxl: doc/linux/access-coordinates Update access coordinates calculation methods Dave Jiang
2025-05-15 17:15 ` [PATCH v2 0/3] cxl: Update CXL documentation for access coordinates calculation Alison Schofield
2025-05-15 17:25   ` Dave Jiang
2025-05-15 23:51 ` Dave Jiang
2025-05-19 15:42 ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox