From: Gregory Price <gourry@gourry.net>
To: Jonathan Cameron <jic23@kernel.org>
Cc: Ira Weiny <ira.weiny@intel.com>,
John Groves <john@jagalactic.com>,
Davidlohr Bueso <dave@stgolabs.net>,
Jonathan Cameron <jonathan.cameron@huawei.com>,
Dave Jiang <dave.jiang@intel.com>,
Alison Schofield <alison.schofield@intel.com>,
Vishal Verma <vishal.l.verma@intel.com>,
Dan Williams <djbw@kernel.org>, John Groves <John@groves.net>,
Fan Ni <fan.ni@samsung.com>, Anisa Su <anisa.su@samsung.com>,
Shiju Jose <shiju.jose@huawei.com>,
Robert Richter <rrichter@amd.com>,
"linux-cxl@vger.kernel.org" <linux-cxl@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"dev.srinivasulu@gmail.com" <dev.srinivasulu@gmail.com>,
"arramesh@micron.com" <arramesh@micron.com>,
"ajayjoshi@micron.com" <ajayjoshi@micron.com>
Subject: Re: [RFC PATCH 1/4] cxl/extent: Promote cxlr_dax->region_extent to an xarray
Date: Fri, 1 May 2026 11:56:01 +0100 [thread overview]
Message-ID: <afSGwTEBHgeqhyvy@gourry-fedora-PF4VCD3F> (raw)
In-Reply-To: <20260429115638.685c421d@jic23-huawei>
On Wed, Apr 29, 2026 at 11:56:38AM +0100, Jonathan Cameron wrote:
> On Mon, 27 Apr 2026 10:12:02 -0500
> Ira Weiny <ira.weiny@intel.com> wrote:
>
> > Jonathan Cameron wrote:
> > >
> > > > Look at the diagrams in this presentation:
> > > >
> > > > https://lpc.events/event/18/contributions/1826/attachments/1435/3335/LPC2024_CXL_DCD-v2.pdf
> > > >
> > > > 'DAX dev 1' covers memory from Extent A and Extent B. What yall will want
> > > > to do is ensure that the region extents which get surfaced are ordered
> > > > based on the sequence number _when_ _the_ _dax_ _device_ is created. The
> > > > order they come into the host does not really matter. Although yea the
> > > > spec has a bunch of rules... so whatever, follow those. But it is the
> > > > dax device which groups the extents into a contiguous HPA range and maps
> > >
> > > On this bit, HPA? Why would extents be contiguous in HPA? Contiguous
> > > in the DAX device mapping sure, but not HPA.
> >
> > I'm not saying the _extents_ are contiguous in HPA. I said they get
> > _mapped_ into a contiguous HPA _by_ the DAX device.
>
> That's not HPA at that point, it's a VA of some type.
> Now maybe it smells like HPA in some DAX interface but if it does
> we should think about any renames etc necessary to avoid it doing
> so! Or introduce DAXPA (not DPA for obvious reasons ;)
>
Dynamic Capacity Extent
Byte Offset Length Description
00h 08h Starting DPA
This is all we need to know what should happen in the rest of the path.
The device sends a set of DPA-extents that map into a host defined DCD
region (which has an HPA range).
The extents it sends may be laid out as such:
Extent0: Tag(A) Seq(0) DPA(0x0000.0000) Length(0x1000.0000)
Extent1: Tag(A) Seq(1) DPA(0xF000.0000) Length(0x1000.0000)
(start of device, end of device)
The CXL driver creates a DCD Region, which maps a *possible region of
memory* for extents, but this region *may be sparse*.
For example:
DCDRegion -> Base(0x5.0000.0000) Length(0x1.0000.0000)
Extent0 -> Base(0x5.0000.0000) Length(0x1000.0000) (start of region)
Extent1 -> Base(0x5.F000.0000) Length(0x1000.0000) (end of region)
This is a completely valid set of extents.
We use DAX to cobble these sparse extents into a "virtually contiguous"
region of memory - essentially base-0 + length.
DAX0.0: Base(0x0) Length(0x2000.0000)
Region List:
Base(0x0) -> Extent0
Base(0x1000.0000) -> Extent1
So in a single diagram:
[ device dc partition ]
[extent0] ... unalloc... [extent1] Device View
| Sparse! |
----------------------------------------
| Sparse! |
[extent0] ... unalloc... [extent1]
[ host dc region ] CXL Driver View
| |
----------------------------------------
| |
[ DAX0.0 ]
[ Extent0 ][ Extent1 ] DAX View
| NOT Sparse |
----------------------------------------
fd = open("/dev/dax0.0")
buf = mmap(fd, ...) Software View
buf[0]; -> DPA 0x0000.0000
buf[0x10000000]; -> DPA 0xF000.0000
~Gregory
next prev parent reply other threads:[~2026-05-01 10:56 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260423235108.3732424-1-john@jagalactic.com>
2026-04-23 23:51 ` [RFC PATCH 0/4] cxl/extent: Enable and validate multi-extent DCDs John Groves
2026-04-23 23:52 ` [RFC PATCH 1/4] cxl/extent: Promote cxlr_dax->region_extent to an xarray John Groves
2026-04-24 0:51 ` Dave Jiang
2026-04-24 22:01 ` Ira Weiny
2026-04-27 12:38 ` Jonathan Cameron
2026-04-27 15:12 ` Ira Weiny
2026-04-29 10:56 ` Jonathan Cameron
2026-05-01 10:56 ` Gregory Price [this message]
2026-04-27 18:32 ` Anisa Su
2026-04-23 23:52 ` [RFC PATCH 2/4] cxl/extent: Fix DCD add-capacity: per-tag assembly, ordering, and integrity John Groves
2026-04-23 23:52 ` [RFC PATCH 3/4] cxl/extent: Support extents in sharable CDAT regions John Groves
2026-04-23 23:52 ` [RFC PATCH 4/4] cxl/extent: Reject tagged extents that span DC partitions John Groves
2026-04-24 6:34 ` [RFC PATCH 0/4] cxl/extent: Enable and validate multi-extent DCDs Anisa Su
2026-05-01 22:00 ` Anisa Su
2026-05-02 10:48 ` Gregory Price
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=afSGwTEBHgeqhyvy@gourry-fedora-PF4VCD3F \
--to=gourry@gourry.net \
--cc=John@groves.net \
--cc=ajayjoshi@micron.com \
--cc=alison.schofield@intel.com \
--cc=anisa.su@samsung.com \
--cc=arramesh@micron.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=dev.srinivasulu@gmail.com \
--cc=djbw@kernel.org \
--cc=fan.ni@samsung.com \
--cc=ira.weiny@intel.com \
--cc=jic23@kernel.org \
--cc=john@jagalactic.com \
--cc=jonathan.cameron@huawei.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rrichter@amd.com \
--cc=shiju.jose@huawei.com \
--cc=vishal.l.verma@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox