From: Anisa Su <anisa.su887@gmail.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: Anisa Su <anisa.su887@gmail.com>,
sashiko-bot@kernel.org, sashiko-reviews@lists.linux.dev,
nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org
Subject: Re: [PATCH v12 3/8] cxl/cdat: Gather DSMAS data for DCD partitions
Date: Wed, 23 Sep 2026 21:29:58 -0700 [thread overview]
Message-ID: <arSnRvG0VGSMHSBM@4470NRD-ASU.ssi.samsung.com> (raw)
In-Reply-To: <20260922003402.5134db4a@jic23-hlaptop>
On Tue, Sep 22, 2026 at 12:34:02AM +0100, Jonathan Cameron wrote:
> On Wed, 5 Aug 2026 01:30:16 -0700
> Anisa Su <anisa.su887@gmail.com> wrote:
>
> > On Tue, Aug 04, 2026 at 01:07:48AM +0100, Jonathan Cameron wrote:
> > > On Fri, 31 Jul 2026 09:02:49 +0000
> > > sashiko-bot@kernel.org wrote:
> > >
> > > > Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> > > > - [Medium] The commit message claims to extract and store the 'read only' attribute from DSMAS tables, but this logic is completely missing from the code.
> > >
> > > Given it will make a lot of difference to a user if they think they have writeable
> > > memory that isn't - I think we probably do want to have readonly here.
> > >
> > I did some digging: it seems in v8, the read only flag was gathered and
> > exposed in sysfs, but dropped during the region -> partition rework.
> >
> > v8 of this commit used to do:
> > dent->read_only = dsmas->flags & ACPI_CDAT_DSMAS_READ_ONLY;
> > ...
> > mds->dc_region[i].read_only = dent->read_only;
> >
> > https://lore.kernel.org/all/20241210-dcd-type2-upstream-v8-6-812852504400@intel.com/
> >
> > and a following patch exposed it, with a documented ABI:
> >
> > https://lore.kernel.org/all/20241210-dcd-type2-upstream-v8-7-812852504400@intel.com/
> >
> > /sys/bus/cxl/devices/memX/dcY/size
> > /sys/bus/cxl/devices/memX/dcY/read_only
> > /sys/bus/cxl/devices/memX/dcY/shareable
> > /sys/bus/cxl/devices/memX/dcY/qos_class
> >
> > In v9 dynamic capacity moved from its own dc_region[] array and dcY/
> > sysfs directory to the generic partition model:
> >
> > https://lore.kernel.org/all/20250413-dcd-type2-upstream-v9-3-1d4911a0b365@intel.com/
> >
> > size and qos_class survived that move because ram and pmem already have
> > them. read_only and shareable did not, because the generic partition
> > model had nowhere to put attributes that only dynamic capacity has, but
> > the commit message survived the rework.
> >
> > More specifically, read_only was dropped from both the sysfs commit and
> > this commit. shareable was dropped only from the sysfs commit, but still
> > read from the DSMAS entry in v9 of this commit. Not sure why though; I
> > didn't see any consumers of the attribute. Oh well... We use it now
> > since shared extents are supported to check if an extent marked shared
> > is actually in a shared partition.
> >
> > So TLDR; I've removed the "read only" part from the commit message. But
> > let me know if you think it should be re-introduced?
> >
> > I agree with what you said about it being important for a user to know
> > whether a partition is read only. Some things to consider:
> >
> > - The partition model has no precedent for a DC only attribute.
> > dynamic_ram_1/ currently exposes size and qos_class, the same two that
> > ram/ and pmem/ expose. Adding read_only there would be the first
> > attribute that exists for one partition mode and not the others.
> >
> > - shareable is in exactly the same position. It is gathered and used
> > internally but not exposed anywhere, so if we are adding one of these
> > back we should probably decide about both.
>
> I vaguely recall the discussion on this ending up with we'd call the
> partition something different to reflect the extra property.
>
> dynamic_readonly_1 / dynamic_sharedram_1 maybe? Argument being
> that these properties are as different from normal RAM as persistent
> memory is.
>
Yeah I think we discussed making it its own partition mode but I don't think there
was a strong consensus, just that we agreed it should be exposed somewhere,
somehow...
I am leaning towards just putting it under dynamic_ram_1 even though
these attributes would only exist for dynamic_ram mode:
/sys/bus/cxl/devices/memX/dynamic_ram_1/shareable
/sys/bus/cxl/devices/memX/dynamic_ram_1/read_only
Mainly because if we go up to 8 partitions, we would have
(dynamic_ram, dynamic_shared, dynamic_readonly, dynamic_shared_readonly) * 8.
And NDCTL would have to know how to handle creating each type.
I also don't see anything in the code that makes it terrible:
- each partition mode has its own attribute array and visibility callback
function, so it doesn't affect ram/pmem modes
I brought it up because I wasn't sure if there was a specific reason why
shareable and read_only weren't carried over after the partition
rework. From a code standpoint, it seems fine to me?
I assumed it was so all partitions would share common sub-attributes
but I guess I shouldn't have assumed...
> >
> > - I don't think the DSMAS Flags bit 6 (read only) is specific to DCD?
>
> In theory yes, in practice there isn't a path for non DCD to actually
> get the data in place and transtion to read only so maybe an expensive
> source of zeros? So yes allowed but not much use to anyone so we
> won't see it.
>
Mmm very true. You might just clarifying this point here but just to make
sure we're on the same page: I dropped the R_O part of the series and deferred
it for the future because it includes implementing write rejection for
r_o partitions which IMO can be done after the core functionality is in.
Thanks,
Anisa
> > It describes any device scoped memory range, so a read only ram or pmem
> > partition is expressible in CDAT today and the driver ignores it.
> > Maybe it should be exposed in sysfs for every partition
> > rather than only on dynamic_ram_1? Which probably makes it a generic CDAT/partition
> > patch rather than something for this series.
> >
> Jonathan
>
next prev parent reply other threads:[~2026-09-24 4:30 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-31 8:48 [PATCH v12 0/8] DCD Prep Series Anisa Su
2026-07-31 8:48 ` [PATCH v12 1/8] cxl/mbox: Flag support for Dynamic Capacity Devices (DCD) Anisa Su
2026-08-03 18:03 ` Dave Jiang
2026-08-03 21:30 ` Alison Schofield
2026-08-03 23:12 ` Jonathan Cameron
2026-08-04 15:45 ` Gregory Price
2026-08-04 15:45 ` Gregory Price
2026-08-04 18:10 ` Anisa Su
2026-08-04 16:55 ` Alison Schofield
2026-08-04 18:13 ` Anisa Su
2026-07-31 8:48 ` [PATCH v12 2/8] cxl/mem: Read dynamic capacity configuration from the device Anisa Su
2026-07-31 9:01 ` sashiko-bot
2026-08-04 20:30 ` Anisa Su
2026-08-03 14:33 ` Richard Cheng
2026-08-03 22:11 ` Anisa Su
2026-08-03 21:52 ` Alison Schofield
2026-08-04 9:12 ` Anisa Su
2026-08-04 16:00 ` Gregory Price
2026-08-21 18:55 ` Alison Schofield
2026-08-03 23:55 ` Jonathan Cameron
2026-08-04 9:54 ` Anisa Su
2026-07-31 8:48 ` [PATCH v12 3/8] cxl/cdat: Gather DSMAS data for DCD partitions Anisa Su
2026-07-31 9:02 ` sashiko-bot
2026-08-04 0:07 ` Jonathan Cameron
2026-08-05 8:30 ` Anisa Su
2026-09-21 23:34 ` Jonathan Cameron
2026-09-24 4:29 ` Anisa Su [this message]
2026-09-25 19:19 ` Jonathan Cameron
2026-09-28 23:46 ` Anisa Su
2026-08-03 22:56 ` Alison Schofield
2026-08-05 6:58 ` Anisa Su
2026-07-31 8:48 ` [PATCH v12 4/8] cxl/events: Split event msgnum configuration from irq setup Anisa Su
2026-08-03 23:01 ` Alison Schofield
2026-07-31 8:48 ` [PATCH v12 5/8] cxl/pci: Factor out interrupt policy check Anisa Su
2026-08-03 23:55 ` Alison Schofield
2026-08-06 12:27 ` Anisa Su
2026-07-31 8:48 ` [PATCH v12 6/8] cxl/mem: Configure dynamic capacity interrupts Anisa Su
2026-07-31 9:04 ` sashiko-bot
2026-08-01 9:30 ` Anisa Su
2026-08-04 0:25 ` Alison Schofield
2026-08-06 23:27 ` Anisa Su
2026-08-04 0:13 ` Jonathan Cameron
2026-08-04 0:34 ` Alison Schofield
2026-08-06 22:11 ` Anisa Su
2026-07-31 8:48 ` [PATCH v12 7/8] cxl/core: Return endpoint decoder information from region search Anisa Su
2026-07-31 9:01 ` sashiko-bot
2026-08-04 1:02 ` Alison Schofield
2026-07-31 8:48 ` [PATCH v12 8/8] cxl/core: Enforce partition order/simplify partition calls Anisa Su
2026-08-04 0:16 ` Jonathan Cameron
2026-08-04 1:37 ` Alison Schofield
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=arSnRvG0VGSMHSBM@4470NRD-ASU.ssi.samsung.com \
--to=anisa.su887@gmail.com \
--cc=jic23@kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
--cc=sashiko-bot@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.