Linux CXL
 help / color / mirror / Atom feed
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

  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