From: Dave Jiang <dave.jiang@intel.com>
To: linux-cxl@vger.kernel.org, nvdimm@lists.linux.dev
Cc: dave@stgolabs.net, jonathan.cameron@huawei.com,
alison.schofield@intel.com, vishal.l.verma@intel.com,
ira.weiny@intel.com, dan.j.williams@intel.com
Subject: [NDCTL PATCH v2 2/2] cxl/test: Add support for poison test for ELC
Date: Thu, 20 Nov 2025 17:20:18 -0700 [thread overview]
Message-ID: <20251121002018.4136006-3-dave.jiang@intel.com> (raw)
In-Reply-To: <20251121002018.4136006-1-dave.jiang@intel.com>
Expand cxl-poison.sh test to include extended linear cache testing.
Additional adjustments are needed for test_poison_by_region_offset()
to test ELC functionality.
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
---
test/cxl-poison.sh | 61 +++++++++++++++++++++++++++++-----------------
1 file changed, 39 insertions(+), 22 deletions(-)
diff --git a/test/cxl-poison.sh b/test/cxl-poison.sh
index 8dfed1877907..0cb7bc77b814 100644
--- a/test/cxl-poison.sh
+++ b/test/cxl-poison.sh
@@ -13,11 +13,6 @@ trap 'err $LINENO' ERR
check_prereq "jq"
-modprobe -r cxl_test
-modprobe cxl_test
-
-rc=1
-
# THEORY OF OPERATION: Exercise cxl-cli and cxl driver ability to
# inject, clear, and get the poison list. Do it by memdev and by region.
@@ -150,9 +145,18 @@ test_poison_by_region_by_dpa()
test_poison_by_region_offset()
{
- local base gran hpa1 hpa2
+ local base gran hpa1 hpa2 cache_size
base=$(cat /sys/bus/cxl/devices/"$region"/resource)
gran=$(cat /sys/bus/cxl/devices/"$region"/interleave_granularity)
+ cache_size=0
+
+ if [ -f "/sys/bus/cxl/devices/$region/extended_linear_cache_size" ]; then
+ cache_size=$(cat /sys/bus/cxl/devices/"$region"/extended_linear_cache_size)
+ fi
+
+ if [[ $cache_size -gt 0 ]]; then
+ base=$((base + cache_size))
+ fi
# Test two HPA addresses: base and base + granularity
# This hits the two memdevs in the region interleave.
@@ -162,15 +166,15 @@ test_poison_by_region_offset()
# Inject at the offset and check result using the hpa
# ABI takes an offset, but recall the hpa to check trace event
- inject_poison_sysfs "$region" 0
+ inject_poison_sysfs "$region" "$cache_size"
check_trace_entry "$region" "$hpa1"
- inject_poison_sysfs "$region" "$gran"
+ inject_poison_sysfs "$region" "$((gran + cache_size))"
check_trace_entry "$region" "$hpa2"
validate_poison_found "-r $region" 2
- clear_poison_sysfs "$region" 0
+ clear_poison_sysfs "$region" "$cache_size"
check_trace_entry "$region" "$hpa1"
- clear_poison_sysfs "$region" "$gran"
+ clear_poison_sysfs "$region" "$((gran + cache_size))"
check_trace_entry "$region" "$hpa2"
validate_poison_found "-r $region" 0
}
@@ -207,19 +211,32 @@ test_poison_by_region_offset_negative()
clear_poison_sysfs "$region" "$large_offset" true
}
-# Clear old trace events, enable cxl_poison, enable global tracing
-echo "" > /sys/kernel/tracing/trace
-echo 1 > /sys/kernel/tracing/events/cxl/cxl_poison/enable
-echo 1 > /sys/kernel/tracing/tracing_on
+run_poison_test()
+{
+ # Clear old trace events, enable cxl_poison, enable global tracing
+ echo "" > /sys/kernel/tracing/trace
+ echo 1 > /sys/kernel/tracing/events/cxl/cxl_poison/enable
+ echo 1 > /sys/kernel/tracing/tracing_on
-test_poison_by_memdev_by_dpa
-find_auto_region
-test_poison_by_region_by_dpa
-[ -f "/sys/kernel/debug/cxl/$region/inject_poison" ] ||
- do_skip "test cases requires inject by region kernel support"
-test_poison_by_region_offset
-test_poison_by_region_offset_negative
+ test_poison_by_memdev_by_dpa
+ find_auto_region
+ test_poison_by_region_by_dpa
+ [ -f "/sys/kernel/debug/cxl/$region/inject_poison" ] ||
+ do_skip "test cases requires inject by region kernel support"
+ test_poison_by_region_offset
+ test_poison_by_region_offset_negative
-check_dmesg "$LINENO"
+ check_dmesg "$LINENO"
+}
+
+modprobe -r cxl_test
+modprobe cxl_test
+rc=1
+run_poison_test
modprobe -r cxl-test
+modprobe cxl_test extended_linear_cache=1
+rc=1
+run_poison_test
+
+modprobe -r cxl_test
--
2.51.1
next prev parent reply other threads:[~2025-11-21 0:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-21 0:20 [NDCTL PATCH v2 0/2] cxl: Add tests for extended linear cache support Dave Jiang
2025-11-21 0:20 ` [NDCTL PATCH v2 1/2] cxl/test: Add test " Dave Jiang
2025-12-02 22:15 ` Alison Schofield
2025-12-02 22:22 ` Alison Schofield
2025-11-21 0:20 ` Dave Jiang [this message]
2025-12-02 22:21 ` [NDCTL PATCH v2 2/2] cxl/test: Add support for poison test for ELC 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=20251121002018.4136006-3-dave.jiang@intel.com \
--to=dave.jiang@intel.com \
--cc=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave@stgolabs.net \
--cc=ira.weiny@intel.com \
--cc=jonathan.cameron@huawei.com \
--cc=linux-cxl@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
--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