On Thu, Jun 04, 2026 at 10:43:10PM -0700, Alison Schofield wrote:
> On Sat, May 23, 2026 at 02:50:35AM -0700, Anisa Su wrote:
> > CXL Dynamic Capacity Device (DCD) support has continued to evolve in the
> > upstream kernel since Ira's v5 posting [1].  The kernel side has settled
> > on a uuid-driven claim model for sparse DAX devices: dax_resources carry
> > the tag delivered with each extent, and userspace selects which ones to
> > claim by writing a UUID to the dax device's sysfs 'uuid' attribute (or
> > "0" to claim a single untagged resource).  Size on a sparse region is
> > determined by the claim, not requested up-front.
> > 
> > This series brings cxl-cli and daxctl in line with that model and
> > extends cxl_test to exercise the new paths end-to-end.
> 
> Hi Anisa,
> 
> I just now picked this up with the kernel side and took it for a quick
> test drive. Based on what's been touched, first meaningful finding is
> all the DAX unit tests pass, and then for CXL unit tests, all but these
> 2 pass: cxl-security.sh and cxl-dcd.sh
> 
> Please let me know if there are known problems with either of those
> before I explore further.

Oh hmm... I would expect cxl-dcd.sh to pass. Let me know what error you
saw? But it's totally possible that I mucked something up with some last
minute change. Let me try it again on my side...

For cxl-security.sh, sorry I was bad and didn't run all of the other CXL
unit tests. Pin of shame for me ;(◞‸ ◟)

Let me figure out how to get the NDCTL test runner working and it should
not be an issue moving forward
> 
> Question below about dependency....
> 
> > 
> > The corresponding kernel patchset is here:
> > https://lore.kernel.org/linux-cxl/[email protected]/T/#t
> > 
> > Picked up unchanged from v5 (Ira):
> > 
> >   libcxl: Add Dynamic RAM A partition mode support
> >   cxl/region: Add cxl-cli support for dynamic RAM A
> >   libcxl: Add extent functionality to DC regions
> >   cxl/region: Add extent output to region query
> > 
> > New in v6:
> > 
> >   daxctl: Add --uuid option to create-device for DC DAX regions
> >     - Plumbs writes to the new dax 'uuid' sysfs attribute through a new
> >       daxctl_dev_set_uuid() helper (LIBDAXCTL_11).
> >     - --uuid is mutually exclusive with --size; pass "0" to claim a
> >       single untagged dax_resource.  An unmatched UUID surfaces ENOENT
> >       from the kernel and leaves the device at size 0.
> >     - Documents the option in the man page.
> > 
> >   cxl/test: Add Dynamic Capacity tests (rewritten on top of Ira's
> >   original patch to track the post-redesign kernel)
> >     - Routes untagged claims via --uuid "0" so daxctl exercises the
> >       kernel uuid_store path; tagged claims use real UUID strings.
> >     - Asserts that for DC regions, size-grow returns -EOPNOTSUPP (real grow 
> > is
> >       --uuid only) and that tag reuse across More-chains is rejected
> >       by the cross-More uniqueness gate.
> >     - Adds coverage for the new validators: test_uuid_no_match,
> >       test_uuid_no_match_seed_intact, test_uuid_show,
> >       test_cross_more_uniqueness, test_alignment_rejection.
> >     - Sharable-partition coverage (test_shared_extent_inject,
> >       test_seq_integrity_gap) is routed at runtime to a dedicated mock
> >       memdev that tools/testing/cxl stamps with serial 0xDCDC, so a
> >       single cxl_test module load exercises both regimes.
> >     - Localizes positional-arg assignments in every helper so functions
> >       no longer clobber caller globals (the previous behavior leaked
> >       the sharable memdev into later tests).
> >     - test_reject_overlapping arithmetic now lands an actual overlap
> >       inside the DC region (the prior math landed past the end).
> > 
> > Depends on the kernel DCD/sparse-DAX series; without it the new tests
> > will skip and 'cxl list -r N -Nu' will simply report no extents.
> 
> What is this dependency- DCD/sparse-DAX series ?
> 
Sorry, I just meant the kernel support for DCD. Poorly worded here. 'sparse'
DAX is just the terminology for DAX regions backed by DCD.
Well, in the kernel patchset, I renamed it to
"DC DAX" to make the association clearer, but then forgot to reflect it
on this side (𖦹ᯅ_𖦹)

Thanks for testing!
Anisa
> > 
> > The branch is also available at:
> > 
> >   https://github.com/anisa-su993/anisa-ndctl/tree/dcd-2026-05-21
> > 
> > Based on pmem/pending commit:
> > 
> >   bbd403a test/cxl-sanitize: avoid sanitize submit/wait race
> > 
> > [1] 
> > https://lore.kernel.org/nvdimm/[email protected]/
> > 
> > ---
> > Changes in v6:
> > - anisa: New patch — daxctl --uuid option + daxctl_dev_set_uuid() helper
> > - anisa: Rewrite cxl/test DCD tests against the post-redesign kernel
> >          (uuid sysfs claim, tag-group atomic release, cross-More
> >          uniqueness, alignment rejection, DC size-grow refusal)
> > - anisa: Rebase onto bbd403a (pmem/pending)
> > - Link to v5: 
> > https://lore.kernel.org/nvdimm/[email protected]/
> > 
> > Changes in v5:
> > - iweiny: Adjust all code to view only the dynamic RAM A partition
> > - Alison: s/tag/uuid/ in region query extent output
> > - Link to v4: 
> > https://patch.msgid.link/[email protected]
> > 
> > Anisa Su (1):
> >   daxctl: Add --uuid option to create-device for DC regions
> > 
> > Ira Weiny (6):
> >   ndctl: Dynamic Capacity additions for cxl-cli
> >   libcxl: Add Dynamic RAM A partition mode support
> >   cxl/region: Add cxl-cli support for dynamic RAM A
> >   libcxl: Add extent functionality to DC regions
> >   cxl/region: Add extent output to region query
> >   cxl/test: Add Dynamic Capacity tests
> > 
> >  Documentation/cxl/cxl-list.txt                |   29 +
> >  Documentation/cxl/lib/libcxl.txt              |   33 +-
> >  Documentation/daxctl/daxctl-create-device.txt |   12 +
> >  cxl/filter.h                                  |    3 +
> >  cxl/json.c                                    |   67 +
> >  cxl/json.h                                    |    3 +
> >  cxl/lib/libcxl.c                              |  181 +++
> >  cxl/lib/libcxl.sym                            |    9 +
> >  cxl/lib/private.h                             |   14 +
> >  cxl/libcxl.h                                  |   21 +-
> >  cxl/list.c                                    |    3 +
> >  cxl/memdev.c                                  |    4 +-
> >  cxl/region.c                                  |   27 +-
> >  daxctl/device.c                               |   72 +-
> >  daxctl/lib/libdaxctl.c                        |   44 +
> >  daxctl/lib/libdaxctl.sym                      |    5 +
> >  daxctl/libdaxctl.h                            |    1 +
> >  test/cxl-dcd.sh                               | 1267 +++++++++++++++++
> >  test/meson.build                              |    2 +
> >  util/json.h                                   |    1 +
> >  20 files changed, 1771 insertions(+), 27 deletions(-)
> >  create mode 100644 test/cxl-dcd.sh
> > 
> > 
> > base-commit: bbd403a03fa2a1551c1a10bbf78f32027c718758
> > -- 
> > 2.43.0
> > 

Reply via email to