* [ndctl PATCH v2 0/3] Tidy-up, then expand, cxl-xor-region.sh
@ 2024-02-23 1:40 alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 1/3] cxl/test: replace spaces with tabs in cxl-xor-region.sh alison.schofield
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: alison.schofield @ 2024-02-23 1:40 UTC (permalink / raw
To: Vishal Verma; +Cc: Alison Schofield, nvdimm, linux-cxl
From: Alison Schofield <alison.schofield@intel.com>
This is labeled v2 because v1 of the 3rd patch in the set previuosly
appeared here:
https://lore.kernel.org/nvdimm/20240214071447.1918988-1-alison.schofield@intel.com/
Two cleanup patches are prepended to the original patch. There is no
functional change since v1, only cleanup and a rebase on the latest
ndctl pending branch.
Alison Schofield (3):
cxl/test: replace spaces with tabs in cxl-xor-region.sh
cxl/test: add double quotes in cxl-xor-region.sh
cxl/test: add 3-way HB interleave testcase to cxl-xor-region.sh
test/cxl-xor-region.sh | 112 +++++++++++++++++++++++++++--------------
1 file changed, 73 insertions(+), 39 deletions(-)
base-commit: 4d767c0c9b91d254e8ff0d7f0d3be04a498ad9f0
--
2.37.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ndctl PATCH v2 1/3] cxl/test: replace spaces with tabs in cxl-xor-region.sh
2024-02-23 1:40 [ndctl PATCH v2 0/3] Tidy-up, then expand, cxl-xor-region.sh alison.schofield
@ 2024-02-23 1:40 ` alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 2/3] cxl/test: add double quotes " alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 3/3] cxl/test: add 3-way HB interleave testcase to cxl-xor-region.sh alison.schofield
2 siblings, 0 replies; 4+ messages in thread
From: alison.schofield @ 2024-02-23 1:40 UTC (permalink / raw
To: Vishal Verma; +Cc: Alison Schofield, nvdimm, linux-cxl
From: Alison Schofield <alison.schofield@intel.com>
Clean up the whitespace to follow ndctl coding style.
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
---
test/cxl-xor-region.sh | 76 +++++++++++++++++++++---------------------
1 file changed, 38 insertions(+), 38 deletions(-)
diff --git a/test/cxl-xor-region.sh b/test/cxl-xor-region.sh
index 117e7a4bba61..5ab7ede11e56 100644
--- a/test/cxl-xor-region.sh
+++ b/test/cxl-xor-region.sh
@@ -35,55 +35,55 @@ create_and_destroy_region()
setup_x1()
{
- # Find an x1 decoder
- decoder=$($CXL list -b cxl_test -D -d root | jq -r ".[] |
- select(.pmem_capable == true) |
- select(.nr_targets == 1) |
- .decoder")
+ # Find an x1 decoder
+ decoder=$($CXL list -b cxl_test -D -d root | jq -r ".[] |
+ select(.pmem_capable == true) |
+ select(.nr_targets == 1) |
+ .decoder")
- # Find a memdev for this host-bridge
- port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
- .targets | .[] | select(.position == 0) | .target")
- mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
- memdevs="$mem0"
+ # Find a memdev for this host-bridge
+ port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
+ .targets | .[] | select(.position == 0) | .target")
+ mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
+ memdevs="$mem0"
}
setup_x2()
{
- # Find an x2 decoder
- decoder=$($CXL list -b cxl_test -D -d root | jq -r ".[] |
- select(.pmem_capable == true) |
- select(.nr_targets == 2) |
- .decoder")
+ # Find an x2 decoder
+ decoder=$($CXL list -b cxl_test -D -d root | jq -r ".[] |
+ select(.pmem_capable == true) |
+ select(.nr_targets == 2) |
+ .decoder")
- # Find a memdev for each host-bridge interleave position
- port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
- .targets | .[] | select(.position == 0) | .target")
- port_dev1=$($CXL list -T -d $decoder | jq -r ".[] |
- .targets | .[] | select(.position == 1) | .target")
- mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
- mem1=$($CXL list -M -p $port_dev1 | jq -r ".[0].memdev")
- memdevs="$mem0 $mem1"
+ # Find a memdev for each host-bridge interleave position
+ port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
+ .targets | .[] | select(.position == 0) | .target")
+ port_dev1=$($CXL list -T -d $decoder | jq -r ".[] |
+ .targets | .[] | select(.position == 1) | .target")
+ mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
+ mem1=$($CXL list -M -p $port_dev1 | jq -r ".[0].memdev")
+ memdevs="$mem0 $mem1"
}
setup_x4()
{
- # find an x2 decoder
- decoder=$($CXL list -b cxl_test -D -d root | jq -r ".[] |
- select(.pmem_capable == true) |
- select(.nr_targets == 2) |
- .decoder")
+ # find an x2 decoder
+ decoder=$($CXL list -b cxl_test -D -d root | jq -r ".[] |
+ select(.pmem_capable == true) |
+ select(.nr_targets == 2) |
+ .decoder")
- # Find a memdev for each host-bridge interleave position
- port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
- .targets | .[] | select(.position == 0) | .target")
- port_dev1=$($CXL list -T -d $decoder | jq -r ".[] |
- .targets | .[] | select(.position == 1) | .target")
- mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
- mem1=$($CXL list -M -p $port_dev1 | jq -r ".[0].memdev")
- mem2=$($CXL list -M -p $port_dev0 | jq -r ".[1].memdev")
- mem3=$($CXL list -M -p $port_dev1 | jq -r ".[1].memdev")
- memdevs="$mem0 $mem1 $mem2 $mem3"
+ # Find a memdev for each host-bridge interleave position
+ port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
+ .targets | .[] | select(.position == 0) | .target")
+ port_dev1=$($CXL list -T -d $decoder | jq -r ".[] |
+ .targets | .[] | select(.position == 1) | .target")
+ mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
+ mem1=$($CXL list -M -p $port_dev1 | jq -r ".[0].memdev")
+ mem2=$($CXL list -M -p $port_dev0 | jq -r ".[1].memdev")
+ mem3=$($CXL list -M -p $port_dev1 | jq -r ".[1].memdev")
+ memdevs="$mem0 $mem1 $mem2 $mem3"
}
setup_x1
--
2.37.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [ndctl PATCH v2 2/3] cxl/test: add double quotes in cxl-xor-region.sh
2024-02-23 1:40 [ndctl PATCH v2 0/3] Tidy-up, then expand, cxl-xor-region.sh alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 1/3] cxl/test: replace spaces with tabs in cxl-xor-region.sh alison.schofield
@ 2024-02-23 1:40 ` alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 3/3] cxl/test: add 3-way HB interleave testcase to cxl-xor-region.sh alison.schofield
2 siblings, 0 replies; 4+ messages in thread
From: alison.schofield @ 2024-02-23 1:40 UTC (permalink / raw
To: Vishal Verma; +Cc: Alison Schofield, nvdimm, linux-cxl
From: Alison Schofield <alison.schofield@intel.com>
Add double quotes to prevent globbing and word splitting.
Found using shellcheck.
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
---
test/cxl-xor-region.sh | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/test/cxl-xor-region.sh b/test/cxl-xor-region.sh
index 5ab7ede11e56..e536f0256202 100644
--- a/test/cxl-xor-region.sh
+++ b/test/cxl-xor-region.sh
@@ -23,7 +23,8 @@ rc=1
create_and_destroy_region()
{
- region=$($CXL create-region -d $decoder -m $memdevs | jq -r ".region")
+ region=$($CXL create-region -d "$decoder" -m "$memdevs" |
+ jq -r ".region")
if [[ ! $region ]]; then
echo "create-region failed for $decoder"
@@ -42,9 +43,9 @@ setup_x1()
.decoder")
# Find a memdev for this host-bridge
- port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
+ port_dev0=$($CXL list -T -d "$decoder" | jq -r ".[] |
.targets | .[] | select(.position == 0) | .target")
- mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
+ mem0=$($CXL list -M -p "$port_dev0" | jq -r ".[0].memdev")
memdevs="$mem0"
}
@@ -57,12 +58,12 @@ setup_x2()
.decoder")
# Find a memdev for each host-bridge interleave position
- port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
+ port_dev0=$($CXL list -T -d "$decoder" | jq -r ".[] |
.targets | .[] | select(.position == 0) | .target")
- port_dev1=$($CXL list -T -d $decoder | jq -r ".[] |
+ port_dev1=$($CXL list -T -d "$decoder" | jq -r ".[] |
.targets | .[] | select(.position == 1) | .target")
- mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
- mem1=$($CXL list -M -p $port_dev1 | jq -r ".[0].memdev")
+ mem0=$($CXL list -M -p "$port_dev0" | jq -r ".[0].memdev")
+ mem1=$($CXL list -M -p "$port_dev1" | jq -r ".[0].memdev")
memdevs="$mem0 $mem1"
}
@@ -75,14 +76,14 @@ setup_x4()
.decoder")
# Find a memdev for each host-bridge interleave position
- port_dev0=$($CXL list -T -d $decoder | jq -r ".[] |
+ port_dev0=$($CXL list -T -d "$decoder" | jq -r ".[] |
.targets | .[] | select(.position == 0) | .target")
- port_dev1=$($CXL list -T -d $decoder | jq -r ".[] |
+ port_dev1=$($CXL list -T -d "$decoder" | jq -r ".[] |
.targets | .[] | select(.position == 1) | .target")
- mem0=$($CXL list -M -p $port_dev0 | jq -r ".[0].memdev")
- mem1=$($CXL list -M -p $port_dev1 | jq -r ".[0].memdev")
- mem2=$($CXL list -M -p $port_dev0 | jq -r ".[1].memdev")
- mem3=$($CXL list -M -p $port_dev1 | jq -r ".[1].memdev")
+ mem0=$($CXL list -M -p "$port_dev0" | jq -r ".[0].memdev")
+ mem1=$($CXL list -M -p "$port_dev1" | jq -r ".[0].memdev")
+ mem2=$($CXL list -M -p "$port_dev0" | jq -r ".[1].memdev")
+ mem3=$($CXL list -M -p "$port_dev1" | jq -r ".[1].memdev")
memdevs="$mem0 $mem1 $mem2 $mem3"
}
--
2.37.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [ndctl PATCH v2 3/3] cxl/test: add 3-way HB interleave testcase to cxl-xor-region.sh
2024-02-23 1:40 [ndctl PATCH v2 0/3] Tidy-up, then expand, cxl-xor-region.sh alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 1/3] cxl/test: replace spaces with tabs in cxl-xor-region.sh alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 2/3] cxl/test: add double quotes " alison.schofield
@ 2024-02-23 1:40 ` alison.schofield
2 siblings, 0 replies; 4+ messages in thread
From: alison.schofield @ 2024-02-23 1:40 UTC (permalink / raw
To: Vishal Verma; +Cc: Alison Schofield, nvdimm, linux-cxl
From: Alison Schofield <alison.schofield@intel.com>
cxl-xor-region.sh includes test cases for 1 & 2 way host bridge
interleaves. Add a new test case to exercise the modulo math
function the CXL driver uses to find positions in a 3-way host
bridge interleave.
Skip this test case, don't fail, if the new 3-way XOR decoder
is not present in cxl/test.
Add the missing check_dmesg helper before exiting this test.
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
---
test/cxl-xor-region.sh | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/test/cxl-xor-region.sh b/test/cxl-xor-region.sh
index e536f0256202..b9e1d79212d3 100644
--- a/test/cxl-xor-region.sh
+++ b/test/cxl-xor-region.sh
@@ -87,11 +87,44 @@ setup_x4()
memdevs="$mem0 $mem1 $mem2 $mem3"
}
+setup_x3()
+{
+ # find an x3 decoder
+ decoder=$($CXL list -b cxl_test -D -d root | jq -r ".[] |
+ select(.pmem_capable == true) |
+ select(.nr_targets == 3) |
+ .decoder")
+
+ if [[ ! $decoder ]]; then
+ echo "no x3 decoder found, skipping xor-x3 test"
+ return
+ fi
+
+ # Find a memdev for each host-bridge interleave position
+ port_dev0=$($CXL list -T -d "$decoder" | jq -r ".[] |
+ .targets | .[] | select(.position == 0) | .target")
+ port_dev1=$($CXL list -T -d "$decoder" | jq -r ".[] |
+ .targets | .[] | select(.position == 1) | .target")
+ port_dev2=$($CXL list -T -d "$decoder" | jq -r ".[] |
+ .targets | .[] | select(.position == 2) | .target")
+ mem0=$($CXL list -M -p "$port_dev0" | jq -r ".[0].memdev")
+ mem1=$($CXL list -M -p "$port_dev1" | jq -r ".[0].memdev")
+ mem2=$($CXL list -M -p "$port_dev2" | jq -r ".[0].memdev")
+ memdevs="$mem0 $mem1 $mem2"
+}
+
setup_x1
create_and_destroy_region
setup_x2
create_and_destroy_region
setup_x4
create_and_destroy_region
+# x3 decoder may not be available in cxl/test topo yet
+setup_x3
+if [[ $decoder ]]; then
+ create_and_destroy_region
+fi
+
+check_dmesg "$LINENO"
modprobe -r cxl_test
--
2.37.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-02-23 1:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-23 1:40 [ndctl PATCH v2 0/3] Tidy-up, then expand, cxl-xor-region.sh alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 1/3] cxl/test: replace spaces with tabs in cxl-xor-region.sh alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 2/3] cxl/test: add double quotes " alison.schofield
2024-02-23 1:40 ` [ndctl PATCH v2 3/3] cxl/test: add 3-way HB interleave testcase to cxl-xor-region.sh alison.schofield
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).