From: Dave Jiang <dave.jiang@intel.com>
To: Alison Schofield <alison.schofield@intel.com>,
nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org
Cc: Dan Williams <dan.j.williams@intel.com>
Subject: Re: [ndctl PATCH v2] test/cxl-dax-hmem.sh: validate dax_hmem vs CXL collisions
Date: Mon, 6 Apr 2026 08:22:13 -0700 [thread overview]
Message-ID: <afd0f7b1-77d9-424e-99d7-d2e4bd75ee79@intel.com> (raw)
In-Reply-To: <20260404025123.2967169-1-alison.schofield@intel.com>
On 4/3/26 7:51 PM, Alison Schofield wrote:
> From: Dan Williams <dan.j.williams@intel.com>
>
> Use the new "cxl_test.hmem_test" and "cxl_test.fail_autoassemble"
> module options to implement a new cxl-dax-hmem.sh test. The test
> checks dax_hmem takeover of Soft Reserve ranges that collide with
> autoassembled CXL regions. It depends on the cxl_mock_mem driver
> to launch multiple async probes before the dax_hmem driver attaches.
>
> [as: do_skip on missing params, explicit param usage, robust unload,
> check_dmesg, misc style]
>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
> Tested-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> ---
>
> Changes in v2:
> - Add delay (cxl-list) between modprobe and dax lookup
> In testing sometimes a daxctl right after modprobe fails to find
> the devices.
>
> test/cxl-dax-hmem.sh | 68 ++++++++++++++++++++++++++++++++++++++++++++
> test/meson.build | 2 ++
> 2 files changed, 70 insertions(+)
> create mode 100755 test/cxl-dax-hmem.sh
>
> diff --git a/test/cxl-dax-hmem.sh b/test/cxl-dax-hmem.sh
> new file mode 100755
> index 000000000000..6f4ed5076870
> --- /dev/null
> +++ b/test/cxl-dax-hmem.sh
> @@ -0,0 +1,68 @@
> +#!/bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (C) 2026 Intel Corporation
> +
> +. $(dirname $0)/common
> +
> +rc=77
> +
> +set -ex
> +
> +trap 'err $LINENO' ERR
> +
> +check_prereq "jq"
> +
> +modinfo cxl_test | grep -q '^parm:.*hmem_test' || \
> + do_skip "cxl_test hmem_test module param not available"
> +
> +modinfo cxl_test | grep -q '^parm:.*fail_autoassemble' || \
> + do_skip "cxl_test fail_autoassemble module param not available"
> +
> +rc=1
> +
> +unload()
> +{
> + modprobe -r dax_cxl 2>/dev/null || true
> + modprobe -r dax_hmem 2>/dev/null || true
> + modprobe -r cxl_mock_mem 2>/dev/null || true
> + modprobe -r cxl_test 2>/dev/null || true
> +}
> +
> +find_dax_cxl()
> +{
> + $DAXCTL list -R | jq -r \
> + '.[] | select(.path | contains("cxl_acpi.0")) | .path'
> +}
> +
> +find_dax_hmem()
> +{
> + $DAXCTL list -R | jq -r \
> + '.[] | select(.path | contains("hmem_platform.1")) | .path'
> +}
> +
> +unload
> +
> +# Verify CXL autoassembly claims the Soft Reserve range before dax_hmem
> +modprobe cxl_mock_mem
> +modprobe cxl_test hmem_test=1
> +$CXL list
> +
> +dax=$(find_dax_cxl)
> +[[ -z "$dax" ]] && err $LINENO
> +dax=$(find_dax_hmem)
> +[[ -n "$dax" ]] && err $LINENO
> +
> +unload
> +
> +# Verify dax_hmem claims the Soft Reserve range when CXL autoassembly fails
> +modprobe cxl_mock_mem
> +modprobe cxl_test hmem_test=1 fail_autoassemble=1
> +$CXL list
> +
> +dax=$(find_dax_cxl)
> +[[ -n "$dax" ]] && err $LINENO
> +dax=$(find_dax_hmem)
> +[[ -z "$dax" ]] && err $LINENO
> +
> +unload
> +check_dmesg "$LINENO"
> diff --git a/test/meson.build b/test/meson.build
> index 593edf552b36..4260a3fa4448 100644
> --- a/test/meson.build
> +++ b/test/meson.build
> @@ -169,6 +169,7 @@ cxl_destroy_region = find_program('cxl-destroy-region.sh')
> cxl_qos_class = find_program('cxl-qos-class.sh')
> cxl_translate = find_program('cxl-translate.sh')
> cxl_elc = find_program('cxl-elc.sh')
> +cxl_dax_hmem = find_program('cxl-dax-hmem.sh')
>
> tests = [
> [ 'libndctl', libndctl, 'ndctl' ],
> @@ -203,6 +204,7 @@ tests = [
> [ 'cxl-qos-class.sh', cxl_qos_class, 'cxl' ],
> [ 'cxl-translate.sh', cxl_translate, 'cxl' ],
> [ 'cxl-elc.sh', cxl_elc, 'cxl' ],
> + [ 'cxl-dax-hmem.sh', cxl_dax_hmem, 'cxl' ],
> ]
>
> if get_option('destructive').enabled()
prev parent reply other threads:[~2026-04-06 15:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-04 2:51 [ndctl PATCH v2] test/cxl-dax-hmem.sh: validate dax_hmem vs CXL collisions Alison Schofield
2026-04-06 15:22 ` Dave Jiang [this message]
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=afd0f7b1-77d9-424e-99d7-d2e4bd75ee79@intel.com \
--to=dave.jiang@intel.com \
--cc=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=nvdimm@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox