NVDIMM Device and Persistent Memory development
 help / color / mirror / Atom feed
* [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).