mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
Documentation/cxl: Document DPA partition layout and ordering rules
DC Partitions complicate DPA ordering. Add a DPA Partitions section to cxl-driver.rst describing spec-mandated and Linux requirements for the layout. maturity-map.rst breaks the DCD entry into sub-items so the map shows what this series lands: partition enumeration is [1], event handling and DC-backed DAX regions remain [0] until the follow-on series enables them. The parent stays [0]; nothing is usable yet. Suggested-by: Gregory Price <gourry@gourry.net> Signed-off-by: Anisa Su <anisa.su@samsung.com> Tested-by: Wonjae Lee <wj28.lee@samsung.com> Tested-by: Junhee Park <jh9934.park@samsung.com> Tested-by: Heesoo Kim <habil.kim@samsung.com> Reviewed-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com> Reviewed-by: Davidlohr Bueso <dave@stgolabs.net> Reviewed-by: Alison Schofield <alison.schofield@intel.com> Reviewed-by: Gregory Price (Meta) <gourry@gourry.net> Link: https://patch.msgid.link/20261010225852.10727-9-anisa.su@samsung.com Signed-off-by: Dave Jiang <dave.jiang@intel.com>
This commit is contained in:
parent
c801107605
commit
e4478834aa
|
|
@ -181,6 +181,41 @@ A Memory Device is a discrete base object that is not a port. While the
|
|||
physical device it belongs to may also host an `endpoint`, the relationship
|
||||
between an `endpoint` and a `memdev` is not captured in sysfs.
|
||||
|
||||
DPA Partitions
|
||||
~~~~~~~~~~~~~~
|
||||
A memory device presents its capacity as one flat `Device Physical Address`
|
||||
(DPA) space divided into `partitions`, which Linux lays out in a fixed
|
||||
order::
|
||||
|
||||
DPA 0 end
|
||||
+---------------+---------------+---------------------------+
|
||||
| ram | pmem | dynamic_ram_1 |
|
||||
+---------------+---------------+---------------------------+
|
||||
part[0] part[1] part[2]
|
||||
|
||||
Part of that order is required by the CXL specification and part of it is a
|
||||
Linux choice.
|
||||
|
||||
The `ram` and `pmem` order is mandated. CXL r4.0 section 8.2.10.9.2.1 "Get
|
||||
Partition Info" (4100h), Table 8-310, mandates that volatile capacity starts
|
||||
at DPA 0 and pmem starts at the DPA immediately following it.
|
||||
|
||||
Dynamic Capacity partitions only need to be 256MB aligned according to
|
||||
CXL r4.0 section 8.2.10.9.9.1 "Get Dynamic Capacity Configuration"
|
||||
(opcode 4800h), Table 8-347. So a device could leave a gap between ram/pmem
|
||||
(static) capacity and its first DC partition, or between one DC partition
|
||||
and the next.
|
||||
|
||||
Linux chooses not to support gaps between static and dynamic capacity: the
|
||||
first DC partition must begin at the DPA immediately following static
|
||||
capacity -- after pmem, after ram on a device with no pmem, or at DPA 0 on
|
||||
a device with no static capacity at all.
|
||||
|
||||
Currently, only one dynamic partition is supported. A device may report up
|
||||
to eight (CXL r4.0 Table 8-346); Linux configures the first as its
|
||||
`dynamic_ram_1` partition. Gaps between DC partitions are not checked, since
|
||||
only the first is used.
|
||||
|
||||
Port Relationships
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
In our example described above, there are four host bridges attached to the
|
||||
|
|
|
|||
|
|
@ -150,6 +150,10 @@ Memory-pooling
|
|||
* [1] Hotplug of LDs (via PCI hotplug)
|
||||
* [0] Dynamic Capacity Device (DCD) Support
|
||||
|
||||
* [1] DC partition enumeration / configuration (Get DC Config, CDAT DSMAS, event interrupts)
|
||||
* [0] Extent add / release event handling
|
||||
* [0] DC-backed DAX regions
|
||||
|
||||
Multi-host sharing
|
||||
------------------
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user