linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization
@ 2023-04-21  6:04 Daniel Wagner
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info Daniel Wagner
                   ` (8 more replies)
  0 siblings, 9 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:04 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Refactored v1 into more smaller bits and fixed a bunch of bugs alongside. For
example the fio jobs size for rand rw used --jobs=$(nproc) which needs to fit
with the test device size.

The loop transport runs a few more test but the largest contributer why it runs
so much longer are the iteratons in 002. So I made them also configurable.

nvme_num_iter=100 nvme_img_size=350M (new defaults)

loop
  real    4m3.524s
  user    0m7.931s
  sys     1m35.871s

rdma
  real    4m20.559s
  user    0m8.895s
  sys     1m5.714s

tcp
  real    3m55.292s
  user    0m8.654s
  sys     1m15.314s

fc
  real    3m18.977s
  user    0m8.868s
  sys     0m58.655s

nvme_num_iter=1000 nvme_img_size=1G (previous/ defaults)

loop
  real    8m22.109s
  user    0m27.582s
  sys     3m0.484s

rdma
  real    9m1.784s
  user    0m14.274s
  sys     2m5.479s

tcp
  real    8m28.443s
  user    0m13.952s
  sys     2m55.544s

fc
  real    6m24.426s
  user    0m13.944s
  sys     2m2.489s

The fc tests are bit faster because some of them are failing.

changes:
v2:
  - made image size configurable via nvme_img_size env
  - make number of iteration configurable via nvme_num_iter
	- do not hard code test values
  - calculate job size
	- use runtime for fio background jobs

v1:
  - initial version
  - https://lore.kernel.org/linux-nvme/20230419085643.25714-1-dwagner@suse.de/

Daniel Wagner (9):
  nvme-rc: Auto convert test device size info
  nvme: Do not hard code device size for dd test
  common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  nvme: Use runtime fio background jobs
  nvme: Make test image size configurable
  nvme-rc: Add minimal test image size requirement
  nvme-rc: Calculate IO size for fio jobs
  nvme-rc: Move discovery generation counter code to rc
  nvme: Make the number iterations configurable

 common/rc          |   30 +-
 common/xfs         |    6 +
 tests/nvme/002     |    6 +-
 tests/nvme/002.out | 3004 --------------------------------------------
 tests/nvme/004     |    2 +-
 tests/nvme/005     |    2 +-
 tests/nvme/006     |    2 +-
 tests/nvme/007     |    2 +-
 tests/nvme/008     |    2 +-
 tests/nvme/009     |    2 +-
 tests/nvme/010     |    6 +-
 tests/nvme/011     |    6 +-
 tests/nvme/012     |    5 +-
 tests/nvme/013     |    5 +-
 tests/nvme/014     |   12 +-
 tests/nvme/015     |   12 +-
 tests/nvme/016     |    2 +-
 tests/nvme/017     |    4 +-
 tests/nvme/018     |    2 +-
 tests/nvme/019     |    2 +-
 tests/nvme/020     |    2 +-
 tests/nvme/021     |    2 +-
 tests/nvme/022     |    2 +-
 tests/nvme/023     |    2 +-
 tests/nvme/024     |    2 +-
 tests/nvme/025     |    2 +-
 tests/nvme/026     |    2 +-
 tests/nvme/027     |    2 +-
 tests/nvme/028     |    2 +-
 tests/nvme/029     |    2 +-
 tests/nvme/030     |   22 +-
 tests/nvme/031     |    2 +-
 tests/nvme/032     |    6 +-
 tests/nvme/034     |    4 +-
 tests/nvme/035     |    4 +-
 tests/nvme/040     |    9 +-
 tests/nvme/041     |    2 +-
 tests/nvme/042     |    2 +-
 tests/nvme/043     |    2 +-
 tests/nvme/044     |    2 +-
 tests/nvme/045     |    6 +-
 tests/nvme/047     |    8 +-
 tests/nvme/048     |    2 +-
 tests/nvme/rc      |   50 +
 44 files changed, 176 insertions(+), 3079 deletions(-)

-- 
2.40.0


^ permalink raw reply	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
@ 2023-04-21  6:04 ` Daniel Wagner
  2023-04-21  6:40   ` Hannes Reinecke
  2023-04-28  2:39   ` Shinichiro Kawasaki
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test Daniel Wagner
                   ` (7 subsequent siblings)
  8 siblings, 2 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:04 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Introduce a convert_to_mb() helper which converts the size argument
to MBytes and use in test device require function. This makes it
possible to use user input strings in future.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 common/rc      | 30 +++++++++++++++++++++++++++---
 tests/nvme/035 |  2 +-
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/common/rc b/common/rc
index af4c0b1cab22..dd0afda3d821 100644
--- a/common/rc
+++ b/common/rc
@@ -324,9 +324,12 @@ _get_pci_parent_from_blkdev() {
 		tail -2 | head -1
 }
 
-_require_test_dev_size_mb() {
-	local require_sz_mb=$1
-	local test_dev_sz_mb=$(($(blockdev --getsize64 "$TEST_DEV")/1024/1024))
+_require_test_dev_size() {
+	local require_sz_mb
+	local test_dev_sz_mb
+
+	require_sz_mb="$(convert_to_mb "$1")"
+	test_dev_sz_mb="$(($(blockdev --getsize64 "$TEST_DEV")/1024/1024))"
 
 	if (( "$test_dev_sz_mb" < "$require_sz_mb" )); then
 		SKIP_REASONS+=("${TEST_DEV} required at least ${require_sz_mb}m")
@@ -422,3 +425,24 @@ _have_writeable_kmsg() {
 _run_user() {
 	su "$NORMAL_USER" -c "$1"
 }
+
+convert_to_mb()
+{
+    local str=$1
+    local res
+
+    res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)$/\1/p')
+    if [[ -n "${res}" ]]; then
+        echo "$((res / 1024 / 1024))"
+    fi
+
+    res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)[mM]$/\1/p')
+    if [[ -n "${res}" ]]; then
+        echo "$((res))"
+    fi
+
+    res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)[gG]$/\1/p')
+    if [[ -n "${res}" ]]; then
+        echo "$((res * 1024))"
+    fi
+}
diff --git a/tests/nvme/035 b/tests/nvme/035
index d169e351e3d0..eb1024edddbf 100755
--- a/tests/nvme/035
+++ b/tests/nvme/035
@@ -17,7 +17,7 @@ requires() {
 }
 
 device_requires() {
-	_require_test_dev_size_mb 1024
+	_require_test_dev_size 1024m
 }
 
 test_device() {
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info Daniel Wagner
@ 2023-04-21  6:04 ` Daniel Wagner
  2023-04-21  6:23   ` Hannes Reinecke
  2023-04-28  2:44   ` Shinichiro Kawasaki
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io Daniel Wagner
                   ` (6 subsequent siblings)
  8 siblings, 2 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:04 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Read the block device sizes instead hard coding them.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/014 | 10 +++++++++-
 tests/nvme/015 | 10 +++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/tests/nvme/014 b/tests/nvme/014
index d13cff7921da..28913641ae40 100755
--- a/tests/nvme/014
+++ b/tests/nvme/014
@@ -23,6 +23,9 @@ test() {
 	local port
 	local nvmedev
 	local loop_dev
+	local size
+	local bs
+	local count
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
@@ -41,7 +44,12 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	dd if=/dev/urandom of="/dev/${nvmedev}n1" count=128000 bs=4k status=none
+	size="$(blockdev --getsize64 "/dev/${nvmedev}n1")"
+	bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
+	count=$((size / bs - 1))
+
+	dd if=/dev/urandom of="/dev/${nvmedev}n1" \
+		count="${count}" bs="${bs}" status=none
 
 	nvme flush "/dev/${nvmedev}" -n 1
 
diff --git a/tests/nvme/015 b/tests/nvme/015
index bb52ba2598db..2f7957caac88 100755
--- a/tests/nvme/015
+++ b/tests/nvme/015
@@ -22,6 +22,9 @@ test() {
 
 	local port
 	local nvmedev
+	local size
+	local bs
+	local count
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
@@ -38,7 +41,12 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	dd if=/dev/urandom of="/dev/${nvmedev}n1" count=128000 bs=4k status=none
+	size="$(blockdev --getsize64 "/dev/${nvmedev}n1")"
+	bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
+	count=$((size / bs - 1))
+
+	dd if=/dev/urandom of="/dev/${nvmedev}n1" \
+		count="${count}" bs="${bs}" status=none
 
 	nvme flush "/dev/${nvmedev}n1" -n 1
 
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info Daniel Wagner
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test Daniel Wagner
@ 2023-04-21  6:04 ` Daniel Wagner
  2023-04-21  6:27   ` Hannes Reinecke
  2023-04-28  2:59   ` Shinichiro Kawasaki
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs Daniel Wagner
                   ` (5 subsequent siblings)
  8 siblings, 2 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:04 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Make the size argument optional by reading the filesystem info. The
caller doesn't have to guess (or calculate) how big the max IO size.
The log data structure of XFS is reducing the capacity.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 common/xfs     | 6 ++++++
 tests/nvme/012 | 2 +-
 tests/nvme/013 | 2 +-
 tests/nvme/035 | 2 +-
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/common/xfs b/common/xfs
index 2c5d96164ac1..ec35599e017b 100644
--- a/common/xfs
+++ b/common/xfs
@@ -27,6 +27,12 @@ _xfs_run_fio_verify_io() {
 
 	_xfs_mkfs_and_mount "${bdev}" "${mount_dir}" >> "${FULL}" 2>&1
 
+	if [[ -z "${sz}" ]]; then
+		local avail
+		avail="$(df --output=avail "${mount_dir}" | awk 'NR==2 {print $1}')"
+		sz="$(printf "%d" $((avail / 1024 - 1 )))m"
+	fi
+
 	_run_fio_verify_io --size="$sz" --directory="${mount_dir}/"
 
 	umount "${mount_dir}" >> "${FULL}" 2>&1
diff --git a/tests/nvme/012 b/tests/nvme/012
index e60082c2e751..c9d24388306d 100755
--- a/tests/nvme/012
+++ b/tests/nvme/012
@@ -44,7 +44,7 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	_xfs_run_fio_verify_io "/dev/${nvmedev}n1" "900m"
+	_xfs_run_fio_verify_io "/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/013 b/tests/nvme/013
index 9d60a7df4577..265b6968fd34 100755
--- a/tests/nvme/013
+++ b/tests/nvme/013
@@ -41,7 +41,7 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	_xfs_run_fio_verify_io "/dev/${nvmedev}n1" "900m"
+	_xfs_run_fio_verify_io "/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/035 b/tests/nvme/035
index eb1024edddbf..8b485bc8e682 100755
--- a/tests/nvme/035
+++ b/tests/nvme/035
@@ -32,7 +32,7 @@ test_device() {
 	port=$(_nvmet_passthru_target_setup "${subsys}")
 	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
 
-	_xfs_run_fio_verify_io "${nsdev}" "900m"
+	_xfs_run_fio_verify_io "${nsdev}"
 
 	_nvme_disconnect_subsys "${subsys}"
 	_nvmet_passthru_target_cleanup "${port}" "${subsys}"
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
                   ` (2 preceding siblings ...)
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io Daniel Wagner
@ 2023-04-21  6:05 ` Daniel Wagner
  2023-04-21  6:29   ` Hannes Reinecke
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable Daniel Wagner
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:05 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

The fio jobs are supposed to run long in background during the test.
Instead relying on a job size use explicit runtime for this.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/032 | 2 +-
 tests/nvme/040 | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/tests/nvme/032 b/tests/nvme/032
index 017d4a339971..81e074cc11bc 100755
--- a/tests/nvme/032
+++ b/tests/nvme/032
@@ -39,7 +39,7 @@ test_device() {
 
 	# start fio job
 	_run_fio_rand_io --filename="$TEST_DEV" --size=1g \
-		--group_reporting  &> /dev/null &
+		--group_reporting --time_based --runtime=1m &> /dev/null &
 
 	sleep 5
 
diff --git a/tests/nvme/040 b/tests/nvme/040
index 04bd726cd309..8d29f905adb5 100755
--- a/tests/nvme/040
+++ b/tests/nvme/040
@@ -38,7 +38,8 @@ test() {
 	# start fio job
 	echo "starting background fio"
 	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
-		--group_reporting --ramp_time=5  &> /dev/null &
+		--group_reporting --ramp_time=5 \
+		--time_based --runtime=1m &> /dev/null &
 	sleep 5
 
 	# do reset/remove operation
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
                   ` (3 preceding siblings ...)
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs Daniel Wagner
@ 2023-04-21  6:05 ` Daniel Wagner
  2023-04-21  6:31   ` Hannes Reinecke
  2023-04-28  3:08   ` Shinichiro Kawasaki
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 6/9] nvme-rc: Add minimal test image size requirement Daniel Wagner
                   ` (3 subsequent siblings)
  8 siblings, 2 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:05 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

The reduce the overall runtime of the testsuite by making the default
size of the test image small. For verification jobs, the default can be
overwriten via the newly introduced nvme_img_size environment variable.

The default size of 350M is the minimum requirement of nvme/012 and
nvme/013. These tests rely on an xfs filesystem which requires this
minimum size.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/004 | 2 +-
 tests/nvme/005 | 2 +-
 tests/nvme/006 | 2 +-
 tests/nvme/007 | 2 +-
 tests/nvme/008 | 2 +-
 tests/nvme/009 | 2 +-
 tests/nvme/010 | 5 +++--
 tests/nvme/011 | 5 +++--
 tests/nvme/012 | 2 +-
 tests/nvme/013 | 2 +-
 tests/nvme/014 | 2 +-
 tests/nvme/015 | 2 +-
 tests/nvme/017 | 2 +-
 tests/nvme/018 | 2 +-
 tests/nvme/019 | 2 +-
 tests/nvme/020 | 2 +-
 tests/nvme/021 | 2 +-
 tests/nvme/022 | 2 +-
 tests/nvme/023 | 2 +-
 tests/nvme/024 | 2 +-
 tests/nvme/025 | 2 +-
 tests/nvme/026 | 2 +-
 tests/nvme/027 | 2 +-
 tests/nvme/028 | 2 +-
 tests/nvme/029 | 3 ++-
 tests/nvme/031 | 2 +-
 tests/nvme/032 | 2 +-
 tests/nvme/034 | 2 +-
 tests/nvme/035 | 2 +-
 tests/nvme/040 | 4 ++--
 tests/nvme/041 | 2 +-
 tests/nvme/042 | 2 +-
 tests/nvme/043 | 2 +-
 tests/nvme/044 | 2 +-
 tests/nvme/045 | 2 +-
 tests/nvme/047 | 2 +-
 tests/nvme/048 | 2 +-
 tests/nvme/rc  | 1 +
 38 files changed, 44 insertions(+), 40 deletions(-)

diff --git a/tests/nvme/004 b/tests/nvme/004
index 9dda538b1ac0..cab98ff44326 100755
--- a/tests/nvme/004
+++ b/tests/nvme/004
@@ -25,7 +25,7 @@ test() {
 	local port
 	port="$(_create_nvmet_port "${nvme_trtype}")"
 
-	truncate -s 1G "$TMPDIR/img"
+	truncate -s "${nvme_img_size}" "$TMPDIR/img"
 
 	local loop_dev
 	loop_dev="$(losetup -f --show "$TMPDIR/img")"
diff --git a/tests/nvme/005 b/tests/nvme/005
index de567a74a891..8e15a13f3794 100755
--- a/tests/nvme/005
+++ b/tests/nvme/005
@@ -24,7 +24,7 @@ test() {
 	local port
 	port="$(_create_nvmet_port "${nvme_trtype}")"
 
-	truncate -s 1G "$TMPDIR/img"
+	truncate -s "${nvme_img_size}" "$TMPDIR/img"
 
 	local loop_dev
 	loop_dev="$(losetup -f --show "$TMPDIR/img")"
diff --git a/tests/nvme/006 b/tests/nvme/006
index d993861c06ba..ea0db93791a7 100755
--- a/tests/nvme/006
+++ b/tests/nvme/006
@@ -24,7 +24,7 @@ test() {
 
 	_setup_nvmet
 
-	truncate -s 1G "$TMPDIR/img"
+	truncate -s "${nvme_img_size}" "$TMPDIR/img"
 
 	loop_dev="$(losetup -f --show "$TMPDIR/img")"
 
diff --git a/tests/nvme/007 b/tests/nvme/007
index d53100f3ff7b..243a79f5a254 100755
--- a/tests/nvme/007
+++ b/tests/nvme/007
@@ -25,7 +25,7 @@ test() {
 
 	file_path="${TMPDIR}/img"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/008 b/tests/nvme/008
index 5568fe46e463..5abc4240ca46 100755
--- a/tests/nvme/008
+++ b/tests/nvme/008
@@ -26,7 +26,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
diff --git a/tests/nvme/009 b/tests/nvme/009
index 2814c79164ee..491d3c809ab0 100755
--- a/tests/nvme/009
+++ b/tests/nvme/009
@@ -24,7 +24,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/010 b/tests/nvme/010
index b7b1d5188e9b..805f80d40620 100755
--- a/tests/nvme/010
+++ b/tests/nvme/010
@@ -26,7 +26,7 @@ test() {
 	local file_path="${TMPDIR}/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
@@ -41,7 +41,8 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	_run_fio_verify_io --size=950m --filename="/dev/${nvmedev}n1"
+	_run_fio_verify_io --size=${nvme_img_size} \
+		--filename="/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/011 b/tests/nvme/011
index 4bfe9af084e4..da8cbac11124 100755
--- a/tests/nvme/011
+++ b/tests/nvme/011
@@ -26,7 +26,7 @@ test() {
 	local file_path="${TMPDIR}/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
@@ -39,7 +39,8 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	_run_fio_verify_io --size=950m --filename="/dev/${nvmedev}n1"
+	_run_fio_verify_io --size="${nvme_img_size}" \
+		--filename="/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/012 b/tests/nvme/012
index c9d24388306d..ecf44fcb5a51 100755
--- a/tests/nvme/012
+++ b/tests/nvme/012
@@ -29,7 +29,7 @@ test() {
 	local file_path="${TMPDIR}/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
diff --git a/tests/nvme/013 b/tests/nvme/013
index 265b6968fd34..e249add46295 100755
--- a/tests/nvme/013
+++ b/tests/nvme/013
@@ -28,7 +28,7 @@ test() {
 
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/014 b/tests/nvme/014
index 28913641ae40..2d00ed392ea8 100755
--- a/tests/nvme/014
+++ b/tests/nvme/014
@@ -29,7 +29,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
diff --git a/tests/nvme/015 b/tests/nvme/015
index 2f7957caac88..3755cdee00c9 100755
--- a/tests/nvme/015
+++ b/tests/nvme/015
@@ -28,7 +28,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		 "91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/017 b/tests/nvme/017
index f2a95cf276cb..0248aee9bc41 100755
--- a/tests/nvme/017
+++ b/tests/nvme/017
@@ -25,7 +25,7 @@ test() {
 
 	file_path="${TMPDIR}/img"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/018 b/tests/nvme/018
index 315e79534348..78e9b2bb94d8 100755
--- a/tests/nvme/018
+++ b/tests/nvme/018
@@ -26,7 +26,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		 "91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/019 b/tests/nvme/019
index 4cb3509a12b2..9fff8ccaac9c 100755
--- a/tests/nvme/019
+++ b/tests/nvme/019
@@ -28,7 +28,7 @@ test() {
 	local nblk_range="10,10,10,10,10,10,10,10,10,10"
 	local sblk_range="100,200,300,400,500,600,700,800,900,1000"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
diff --git a/tests/nvme/020 b/tests/nvme/020
index 16fdfcc94918..1966d5925213 100755
--- a/tests/nvme/020
+++ b/tests/nvme/020
@@ -26,7 +26,7 @@ test() {
 	local nblk_range="10,10,10,10,10,10,10,10,10,10"
 	local sblk_range="100,200,300,400,500,600,700,800,900,1000"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/021 b/tests/nvme/021
index 6ee0af1fe158..1fefc0fbca00 100755
--- a/tests/nvme/021
+++ b/tests/nvme/021
@@ -25,7 +25,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/022 b/tests/nvme/022
index 1d76ffa44178..1ff915786f86 100755
--- a/tests/nvme/022
+++ b/tests/nvme/022
@@ -25,7 +25,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/023 b/tests/nvme/023
index b65be07edc38..90316230a3d7 100755
--- a/tests/nvme/023
+++ b/tests/nvme/023
@@ -26,7 +26,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
diff --git a/tests/nvme/024 b/tests/nvme/024
index f756797d6f29..384a8266e741 100755
--- a/tests/nvme/024
+++ b/tests/nvme/024
@@ -25,7 +25,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/025 b/tests/nvme/025
index 941bf36f67fb..815223d1c28d 100755
--- a/tests/nvme/025
+++ b/tests/nvme/025
@@ -25,7 +25,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/026 b/tests/nvme/026
index c3f06c2a377c..d2203f19f026 100755
--- a/tests/nvme/026
+++ b/tests/nvme/026
@@ -25,7 +25,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/027 b/tests/nvme/027
index 0ad663ace811..97fe70e78344 100755
--- a/tests/nvme/027
+++ b/tests/nvme/027
@@ -25,7 +25,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/028 b/tests/nvme/028
index 7de977a81213..c539620bee28 100755
--- a/tests/nvme/028
+++ b/tests/nvme/028
@@ -25,7 +25,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
diff --git a/tests/nvme/029 b/tests/nvme/029
index f8b4cbbb9156..1808b7b0edf1 100755
--- a/tests/nvme/029
+++ b/tests/nvme/029
@@ -14,6 +14,7 @@ requires() {
 	_nvme_requires
 	_have_loop
 	_require_nvme_trtype_is_fabrics
+	_require_test_dev_size 1M
 }
 
 test_user_io()
@@ -59,7 +60,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 1G "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
diff --git a/tests/nvme/031 b/tests/nvme/031
index 4e1798246db1..e70898819a86 100755
--- a/tests/nvme/031
+++ b/tests/nvme/031
@@ -33,7 +33,7 @@ test() {
 
 	_setup_nvmet
 
-	truncate -s 1G "$TMPDIR/img"
+	truncate -s "${nvme_img_size}" "$TMPDIR/img"
 
 	loop_dev="$(losetup -f --show "$TMPDIR/img")"
 
diff --git a/tests/nvme/032 b/tests/nvme/032
index 81e074cc11bc..9f9756b0f959 100755
--- a/tests/nvme/032
+++ b/tests/nvme/032
@@ -38,7 +38,7 @@ test_device() {
 	sysfs="/sys/bus/pci/devices/${pdev}"
 
 	# start fio job
-	_run_fio_rand_io --filename="$TEST_DEV" --size=1g \
+	_run_fio_rand_io --filename="$TEST_DEV" --size="${nvme_img_size}" \
 		--group_reporting --time_based --runtime=1m &> /dev/null &
 
 	sleep 5
diff --git a/tests/nvme/034 b/tests/nvme/034
index f92e5e20865b..e0ede717c373 100755
--- a/tests/nvme/034
+++ b/tests/nvme/034
@@ -26,7 +26,7 @@ test_device() {
 	port=$(_nvmet_passthru_target_setup "${subsys}")
 	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
 
-	_run_fio_verify_io --size=950m --filename="${nsdev}"
+	_run_fio_verify_io --size="${nvme_img_size}" --filename="${nsdev}"
 
 	_nvme_disconnect_subsys "${subsys}"
 	_nvmet_passthru_target_cleanup "${port}" "${subsys}"
diff --git a/tests/nvme/035 b/tests/nvme/035
index 8b485bc8e682..2c4a25f82937 100755
--- a/tests/nvme/035
+++ b/tests/nvme/035
@@ -17,7 +17,7 @@ requires() {
 }
 
 device_requires() {
-	_require_test_dev_size 1024m
+	_require_test_dev_size "${nvme_img_size}"
 }
 
 test_device() {
diff --git a/tests/nvme/040 b/tests/nvme/040
index 8d29f905adb5..31b7cafef4be 100755
--- a/tests/nvme/040
+++ b/tests/nvme/040
@@ -25,7 +25,7 @@ test() {
 	echo "Running ${TEST_NAME}"
 
 	_setup_nvmet
-	truncate -s 1G "$TMPDIR/img"
+	truncate -s "${nvme_img_size}" "$TMPDIR/img"
 	loop_dev="$(losetup -f --show "$TMPDIR/img")"
 
 	port="$(_create_nvmet_port "${nvme_trtype}")"
@@ -37,7 +37,7 @@ test() {
 
 	# start fio job
 	echo "starting background fio"
-	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
+	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${nvme_img_size}" \
 		--group_reporting --ramp_time=5 \
 		--time_based --runtime=1m &> /dev/null &
 	sleep 5
diff --git a/tests/nvme/041 b/tests/nvme/041
index 03e2dab25918..308655dd6090 100755
--- a/tests/nvme/041
+++ b/tests/nvme/041
@@ -44,7 +44,7 @@ test() {
 
 	_setup_nvmet
 
-	truncate -s 512M "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"b92842df-a394-44b1-84a4-92ae7d112861"
diff --git a/tests/nvme/042 b/tests/nvme/042
index 4ad726f72f5a..fed2efead013 100755
--- a/tests/nvme/042
+++ b/tests/nvme/042
@@ -41,7 +41,7 @@ test() {
 
 	_setup_nvmet
 
-	truncate -s 512M "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
 	port="$(_create_nvmet_port "${nvme_trtype}")"
diff --git a/tests/nvme/043 b/tests/nvme/043
index c031cecf34a5..a030884aa4ed 100755
--- a/tests/nvme/043
+++ b/tests/nvme/043
@@ -42,7 +42,7 @@ test() {
 
 	_setup_nvmet
 
-	truncate -s 512M "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
 	port="$(_create_nvmet_port "${nvme_trtype}")"
diff --git a/tests/nvme/044 b/tests/nvme/044
index f2406ecadf7d..9928bcc55397 100755
--- a/tests/nvme/044
+++ b/tests/nvme/044
@@ -53,7 +53,7 @@ test() {
 
 	_setup_nvmet
 
-	truncate -s 512M "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
 	port="$(_create_nvmet_port "${nvme_trtype}")"
diff --git a/tests/nvme/045 b/tests/nvme/045
index 612e5f168e3c..7c51da27b5f1 100755
--- a/tests/nvme/045
+++ b/tests/nvme/045
@@ -55,7 +55,7 @@ test() {
 
 	_setup_nvmet
 
-	truncate -s 512M "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
 	port="$(_create_nvmet_port "${nvme_trtype}")"
diff --git a/tests/nvme/047 b/tests/nvme/047
index d56d3be185b0..b5a8d469a983 100755
--- a/tests/nvme/047
+++ b/tests/nvme/047
@@ -28,7 +28,7 @@ test() {
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
-	truncate -s 512M "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	loop_dev="$(losetup -f --show "${file_path}")"
 
diff --git a/tests/nvme/048 b/tests/nvme/048
index b4ee7371eb68..08fdee16c811 100755
--- a/tests/nvme/048
+++ b/tests/nvme/048
@@ -84,7 +84,7 @@ test() {
 	fi
 	hostnqn="nqn.2014-08.org.nvmexpress:uuid:${hostid}"
 
-	truncate -s 512M "${file_path}"
+	truncate -s "${nvme_img_size}" "${file_path}"
 
 	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
 		"b92842df-a394-44b1-84a4-92ae7d112861"
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 41f196b037d6..e5ba9a6d5f54 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -17,6 +17,7 @@ def_local_wwpn="0x20001100aa000002"
 def_hostnqn="$(cat /etc/nvme/hostnqn 2> /dev/null)"
 def_hostid="$(cat /etc/nvme/hostid 2> /dev/null)"
 nvme_trtype=${nvme_trtype:-"loop"}
+nvme_img_size=${nvme_img_size:-"350M"}
 
 _nvme_requires() {
 	_have_program nvme
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 6/9] nvme-rc: Add minimal test image size requirement
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
                   ` (4 preceding siblings ...)
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable Daniel Wagner
@ 2023-04-21  6:05 ` Daniel Wagner
  2023-04-21  6:31   ` Hannes Reinecke
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs Daniel Wagner
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:05 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Some tests need a minimal test image size to work correctly. Thus add a
helper to check the size and update these tests accordingly.

The image minimum is 4M because some of the test have hard coded values.
All tests which use the xfs fio verification job have a minimum
requirement of 350M impossed by the xfs filesystem.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/012 |  1 +
 tests/nvme/013 |  1 +
 tests/nvme/029 |  1 -
 tests/nvme/045 |  2 +-
 tests/nvme/rc  | 15 +++++++++++++++
 5 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/tests/nvme/012 b/tests/nvme/012
index ecf44fcb5a51..efe227538c57 100755
--- a/tests/nvme/012
+++ b/tests/nvme/012
@@ -16,6 +16,7 @@ requires() {
 	_have_fio
 	_have_loop
 	_require_nvme_trtype_is_fabrics
+	_require_nvme_test_img_size 350m
 }
 
 test() {
diff --git a/tests/nvme/013 b/tests/nvme/013
index e249add46295..14e646a19c47 100755
--- a/tests/nvme/013
+++ b/tests/nvme/013
@@ -15,6 +15,7 @@ requires() {
 	_have_xfs
 	_have_fio
 	_require_nvme_trtype_is_fabrics
+	_require_nvme_test_img_size 350m
 }
 
 test() {
diff --git a/tests/nvme/029 b/tests/nvme/029
index 1808b7b0edf1..c6d38b42af70 100755
--- a/tests/nvme/029
+++ b/tests/nvme/029
@@ -14,7 +14,6 @@ requires() {
 	_nvme_requires
 	_have_loop
 	_require_nvme_trtype_is_fabrics
-	_require_test_dev_size 1M
 }
 
 test_user_io()
diff --git a/tests/nvme/045 b/tests/nvme/045
index 7c51da27b5f1..99012f6bed8f 100755
--- a/tests/nvme/045
+++ b/tests/nvme/045
@@ -120,7 +120,7 @@ test() {
 
 	nvmedev=$(_find_nvme_dev "${subsys_name}")
 
-	_run_fio_rand_io --size=8m --filename="/dev/${nvmedev}n1"
+	_run_fio_rand_io --size=4m --filename="/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/rc b/tests/nvme/rc
index e5ba9a6d5f54..b1f2dacae125 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -21,6 +21,7 @@ nvme_img_size=${nvme_img_size:-"350M"}
 
 _nvme_requires() {
 	_have_program nvme
+	_require_nvme_test_img_size 4m
 	case ${nvme_trtype} in
 	loop)
 		_have_driver nvme-loop
@@ -94,6 +95,20 @@ _require_test_dev_is_nvme() {
 	return 0
 }
 
+_require_nvme_test_img_size() {
+	local require_sz_mb
+	local nvme_img_size_mb
+
+	require_sz_mb="$(convert_to_mb "$1")"
+	nvme_img_size_mb="$(convert_to_mb "${nvme_img_size}")"
+
+	if (( "${nvme_img_size_mb}" < "$require_sz_mb" )); then
+		SKIP_REASONS+=("nvme_img_size must be at least ${require_sz_mb}m")
+		return 1
+	fi
+	return 0
+}
+
 _require_nvme_trtype() {
 	local trtype
 	for trtype in "$@"; do
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
                   ` (5 preceding siblings ...)
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 6/9] nvme-rc: Add minimal test image size requirement Daniel Wagner
@ 2023-04-21  6:05 ` Daniel Wagner
  2023-04-21  6:33   ` Hannes Reinecke
  2023-04-28  4:00   ` Shinichiro Kawasaki
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc Daniel Wagner
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable Daniel Wagner
  8 siblings, 2 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:05 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Introduce two new function to calculate the IO size for fio jobs.

_nvme_calc_io_size() returns the jobs size for _run_fio_verify_io()
function. Reduce the max size of the job by one megabyte to make the
test more robust not to run out of space by accident. Note these fio
calls run with just one jobs.

_nvme_calc_run_io_size() returns the jobs size for _run_fio_rand_io()
function. Again, the jobs size is not maxing out the space and most
important it takes the number of jobs into account which are
created (number of CPUs).

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/010 |  5 +++--
 tests/nvme/011 |  5 +++--
 tests/nvme/032 |  6 ++++--
 tests/nvme/034 |  4 +++-
 tests/nvme/040 |  4 +++-
 tests/nvme/045 |  4 +++-
 tests/nvme/047 |  6 ++++--
 tests/nvme/rc  | 20 ++++++++++++++++++++
 8 files changed, 43 insertions(+), 11 deletions(-)

diff --git a/tests/nvme/010 b/tests/nvme/010
index 805f80d40620..d209335c2158 100755
--- a/tests/nvme/010
+++ b/tests/nvme/010
@@ -25,6 +25,7 @@ test() {
 	local loop_dev
 	local file_path="${TMPDIR}/img"
 	local subsys_name="blktests-subsystem-1"
+	local io_size
 
 	truncate -s "${nvme_img_size}" "${file_path}"
 
@@ -41,8 +42,8 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	_run_fio_verify_io --size=${nvme_img_size} \
-		--filename="/dev/${nvmedev}n1"
+	io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
+	_run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/011 b/tests/nvme/011
index da8cbac11124..294ba4333aff 100755
--- a/tests/nvme/011
+++ b/tests/nvme/011
@@ -25,6 +25,7 @@ test() {
 	local file_path
 	local file_path="${TMPDIR}/img"
 	local subsys_name="blktests-subsystem-1"
+	local io_size
 
 	truncate -s "${nvme_img_size}" "${file_path}"
 
@@ -39,8 +40,8 @@ test() {
 	cat "/sys/block/${nvmedev}n1/uuid"
 	cat "/sys/block/${nvmedev}n1/wwid"
 
-	_run_fio_verify_io --size="${nvme_img_size}" \
-		--filename="/dev/${nvmedev}n1"
+	io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
+	_run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/032 b/tests/nvme/032
index 9f9756b0f959..ad701cea877d 100755
--- a/tests/nvme/032
+++ b/tests/nvme/032
@@ -33,13 +33,15 @@ test_device() {
 	local sysfs
 	local attr
 	local m
+	local rand_io_size
 
 	pdev="$(_get_pci_dev_from_blkdev)"
 	sysfs="/sys/bus/pci/devices/${pdev}"
 
 	# start fio job
-	_run_fio_rand_io --filename="$TEST_DEV" --size="${nvme_img_size}" \
-		--group_reporting --time_based --runtime=1m &> /dev/null &
+	rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")"
+	_run_fio_rand_io --filename="$TEST_DEV" --size="${rand_io_size}" \
+		--group_reporting --time_based --runtime=1m > /dev/null &
 
 	sleep 5
 
diff --git a/tests/nvme/034 b/tests/nvme/034
index e0ede717c373..0df8bef98e5e 100755
--- a/tests/nvme/034
+++ b/tests/nvme/034
@@ -19,6 +19,7 @@ test_device() {
 	local ctrldev
 	local nsdev
 	local port
+	local io_size
 
 	echo "Running ${TEST_NAME}"
 
@@ -26,7 +27,8 @@ test_device() {
 	port=$(_nvmet_passthru_target_setup "${subsys}")
 	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
 
-	_run_fio_verify_io --size="${nvme_img_size}" --filename="${nsdev}"
+	io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
+	_run_fio_verify_io --size="${io_size}" --filename="${nsdev}"
 
 	_nvme_disconnect_subsys "${subsys}"
 	_nvmet_passthru_target_cleanup "${port}" "${subsys}"
diff --git a/tests/nvme/040 b/tests/nvme/040
index 31b7cafef4be..b033a2a866f2 100755
--- a/tests/nvme/040
+++ b/tests/nvme/040
@@ -21,6 +21,7 @@ test() {
 	local port
 	local loop_dev
 	local nvmedev
+	local rand_io_size
 
 	echo "Running ${TEST_NAME}"
 
@@ -37,7 +38,8 @@ test() {
 
 	# start fio job
 	echo "starting background fio"
-	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${nvme_img_size}" \
+	rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")"
+	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}" \
 		--group_reporting --ramp_time=5 \
 		--time_based --runtime=1m &> /dev/null &
 	sleep 5
diff --git a/tests/nvme/045 b/tests/nvme/045
index 99012f6bed8f..f50087cccb6a 100755
--- a/tests/nvme/045
+++ b/tests/nvme/045
@@ -31,6 +31,7 @@ test() {
 	local ctrlkey
 	local new_ctrlkey
 	local ctrldev
+	local rand_io_size
 
 	echo "Running ${TEST_NAME}"
 
@@ -120,7 +121,8 @@ test() {
 
 	nvmedev=$(_find_nvme_dev "${subsys_name}")
 
-	_run_fio_rand_io --size=4m --filename="/dev/${nvmedev}n1"
+	rand_io_size="$(_nvme_calc_rand_io_size 4m)"
+	_run_fio_rand_io --size="${rand_io_size}" --filename="/dev/${nvmedev}n1"
 
 	_nvme_disconnect_subsys "${subsys_name}"
 
diff --git a/tests/nvme/047 b/tests/nvme/047
index b5a8d469a983..6a7599bc2e91 100755
--- a/tests/nvme/047
+++ b/tests/nvme/047
@@ -25,6 +25,7 @@ test() {
 	local port
 	local nvmedev
 	local loop_dev
+	local rand_io_size
 	local file_path="$TMPDIR/img"
 	local subsys_name="blktests-subsystem-1"
 
@@ -42,7 +43,8 @@ test() {
 
 	nvmedev=$(_find_nvme_dev "${subsys_name}")
 
-	_xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL
+	rand_io_size="$(_nvme_calc_rand_io_size 4M)"
+	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
 
 	_nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1
 
@@ -50,7 +52,7 @@ test() {
 		--nr-write-queues 1 \
 		--nr-poll-queues 1 || echo FAIL
 
-	_xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL
+	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
 
 	_nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1
 
diff --git a/tests/nvme/rc b/tests/nvme/rc
index b1f2dacae125..172f510527ed 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -150,6 +150,26 @@ _test_dev_nvme_nsid() {
 	cat "${TEST_DEV_SYSFS}/nsid"
 }
 
+_nvme_calc_io_size() {
+	local img_size_mb
+	local io_size_mb
+
+	img_size_mb="$(convert_to_mb "$1")"
+	io_size_mb="$((img_size_mb - 1))"
+
+	echo "${io_size_mb}m"
+}
+
+_nvme_calc_rand_io_size() {
+	local img_size_mb
+	local io_size_mb
+
+	img_size_mb="$(convert_to_mb "$1")"
+	io_size_mb="$(printf "%d" $((((img_size_mb * 1024 * 1024) / $(nproc) - 1) / 1024)))"
+
+	echo "${io_size_mb}k"
+}
+
 _nvme_fcloop_add_rport() {
 	local local_wwnn="$1"
 	local local_wwpn="$2"
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
                   ` (6 preceding siblings ...)
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs Daniel Wagner
@ 2023-04-21  6:05 ` Daniel Wagner
  2023-04-21  6:38   ` Hannes Reinecke
  2023-04-28  4:23   ` Shinichiro Kawasaki
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable Daniel Wagner
  8 siblings, 2 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:05 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Move the discovery generation counter code to rc so that we can reuse
it in 002.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/002     |    4 +-
 tests/nvme/002.out | 3004 --------------------------------------------
 tests/nvme/030     |   22 +-
 tests/nvme/rc      |   13 +
 4 files changed, 20 insertions(+), 3023 deletions(-)

diff --git a/tests/nvme/002 b/tests/nvme/002
index 6c6ae5fea89b..6b8484844b4d 100755
--- a/tests/nvme/002
+++ b/tests/nvme/002
@@ -27,12 +27,14 @@ test() {
 	local loop_dev
 	loop_dev="$(losetup -f)"
 
+	local genctr=1
+
 	for ((i = 0; i < iterations; i++)); do
 		_create_nvmet_subsystem "blktests-subsystem-$i" "${loop_dev}"
 		_add_nvmet_subsys_to_port "${port}" "blktests-subsystem-$i"
 	done
 
-	_nvme_discover "${nvme_trtype}" | _filter_discovery
+	genctr=$(_check_genctr "${genctr}" "adding a subsystem to a port")
 
 	for ((i = iterations - 1; i >= 0; i--)); do
 		_remove_nvmet_subsystem_from_port "${port}" "blktests-subsystem-$i"
diff --git a/tests/nvme/002.out b/tests/nvme/002.out
index c33d7d306ed2..98554ddb0ca6 100644
--- a/tests/nvme/002.out
+++ b/tests/nvme/002.out
@@ -1,3006 +1,2 @@
 Running nvme/002
-Discovery Log Number of Records 1001, Generation counter X
-=====Discovery Log Entry 0======
-trtype:  loop
-subnqn:  nqn.2014-08.org.nvmexpress.discovery
-=====Discovery Log Entry 1======
-trtype:  loop
-subnqn:  blktests-subsystem-0
-=====Discovery Log Entry 2======
-trtype:  loop
-subnqn:  blktests-subsystem-1
-=====Discovery Log Entry 3======
-trtype:  loop
-subnqn:  blktests-subsystem-2
-=====Discovery Log Entry 4======
-trtype:  loop
-subnqn:  blktests-subsystem-3
-=====Discovery Log Entry 5======
-trtype:  loop
-subnqn:  blktests-subsystem-4
-=====Discovery Log Entry 6======
-trtype:  loop
-subnqn:  blktests-subsystem-5
-=====Discovery Log Entry 7======
-trtype:  loop
-subnqn:  blktests-subsystem-6
-=====Discovery Log Entry 8======
-trtype:  loop
-subnqn:  blktests-subsystem-7
-=====Discovery Log Entry 9======
-trtype:  loop
-subnqn:  blktests-subsystem-8
-=====Discovery Log Entry 10======
-trtype:  loop
-subnqn:  blktests-subsystem-9
-=====Discovery Log Entry 11======
-trtype:  loop
-subnqn:  blktests-subsystem-10
-=====Discovery Log Entry 12======
-trtype:  loop
-subnqn:  blktests-subsystem-11
-=====Discovery Log Entry 13======
-trtype:  loop
-subnqn:  blktests-subsystem-12
-=====Discovery Log Entry 14======
-trtype:  loop
-subnqn:  blktests-subsystem-13
-=====Discovery Log Entry 15======
-trtype:  loop
-subnqn:  blktests-subsystem-14
-=====Discovery Log Entry 16======
-trtype:  loop
-subnqn:  blktests-subsystem-15
-=====Discovery Log Entry 17======
-trtype:  loop
-subnqn:  blktests-subsystem-16
-=====Discovery Log Entry 18======
-trtype:  loop
-subnqn:  blktests-subsystem-17
-=====Discovery Log Entry 19======
-trtype:  loop
-subnqn:  blktests-subsystem-18
-=====Discovery Log Entry 20======
-trtype:  loop
-subnqn:  blktests-subsystem-19
-=====Discovery Log Entry 21======
-trtype:  loop
-subnqn:  blktests-subsystem-20
-=====Discovery Log Entry 22======
-trtype:  loop
-subnqn:  blktests-subsystem-21
-=====Discovery Log Entry 23======
-trtype:  loop
-subnqn:  blktests-subsystem-22
-=====Discovery Log Entry 24======
-trtype:  loop
-subnqn:  blktests-subsystem-23
-=====Discovery Log Entry 25======
-trtype:  loop
-subnqn:  blktests-subsystem-24
-=====Discovery Log Entry 26======
-trtype:  loop
-subnqn:  blktests-subsystem-25
-=====Discovery Log Entry 27======
-trtype:  loop
-subnqn:  blktests-subsystem-26
-=====Discovery Log Entry 28======
-trtype:  loop
-subnqn:  blktests-subsystem-27
-=====Discovery Log Entry 29======
-trtype:  loop
-subnqn:  blktests-subsystem-28
-=====Discovery Log Entry 30======
-trtype:  loop
-subnqn:  blktests-subsystem-29
-=====Discovery Log Entry 31======
-trtype:  loop
-subnqn:  blktests-subsystem-30
-=====Discovery Log Entry 32======
-trtype:  loop
-subnqn:  blktests-subsystem-31
-=====Discovery Log Entry 33======
-trtype:  loop
-subnqn:  blktests-subsystem-32
-=====Discovery Log Entry 34======
-trtype:  loop
-subnqn:  blktests-subsystem-33
-=====Discovery Log Entry 35======
-trtype:  loop
-subnqn:  blktests-subsystem-34
-=====Discovery Log Entry 36======
-trtype:  loop
-subnqn:  blktests-subsystem-35
-=====Discovery Log Entry 37======
-trtype:  loop
-subnqn:  blktests-subsystem-36
-=====Discovery Log Entry 38======
-trtype:  loop
-subnqn:  blktests-subsystem-37
-=====Discovery Log Entry 39======
-trtype:  loop
-subnqn:  blktests-subsystem-38
-=====Discovery Log Entry 40======
-trtype:  loop
-subnqn:  blktests-subsystem-39
-=====Discovery Log Entry 41======
-trtype:  loop
-subnqn:  blktests-subsystem-40
-=====Discovery Log Entry 42======
-trtype:  loop
-subnqn:  blktests-subsystem-41
-=====Discovery Log Entry 43======
-trtype:  loop
-subnqn:  blktests-subsystem-42
-=====Discovery Log Entry 44======
-trtype:  loop
-subnqn:  blktests-subsystem-43
-=====Discovery Log Entry 45======
-trtype:  loop
-subnqn:  blktests-subsystem-44
-=====Discovery Log Entry 46======
-trtype:  loop
-subnqn:  blktests-subsystem-45
-=====Discovery Log Entry 47======
-trtype:  loop
-subnqn:  blktests-subsystem-46
-=====Discovery Log Entry 48======
-trtype:  loop
-subnqn:  blktests-subsystem-47
-=====Discovery Log Entry 49======
-trtype:  loop
-subnqn:  blktests-subsystem-48
-=====Discovery Log Entry 50======
-trtype:  loop
-subnqn:  blktests-subsystem-49
-=====Discovery Log Entry 51======
-trtype:  loop
-subnqn:  blktests-subsystem-50
-=====Discovery Log Entry 52======
-trtype:  loop
-subnqn:  blktests-subsystem-51
-=====Discovery Log Entry 53======
-trtype:  loop
-subnqn:  blktests-subsystem-52
-=====Discovery Log Entry 54======
-trtype:  loop
-subnqn:  blktests-subsystem-53
-=====Discovery Log Entry 55======
-trtype:  loop
-subnqn:  blktests-subsystem-54
-=====Discovery Log Entry 56======
-trtype:  loop
-subnqn:  blktests-subsystem-55
-=====Discovery Log Entry 57======
-trtype:  loop
-subnqn:  blktests-subsystem-56
-=====Discovery Log Entry 58======
-trtype:  loop
-subnqn:  blktests-subsystem-57
-=====Discovery Log Entry 59======
-trtype:  loop
-subnqn:  blktests-subsystem-58
-=====Discovery Log Entry 60======
-trtype:  loop
-subnqn:  blktests-subsystem-59
-=====Discovery Log Entry 61======
-trtype:  loop
-subnqn:  blktests-subsystem-60
-=====Discovery Log Entry 62======
-trtype:  loop
-subnqn:  blktests-subsystem-61
-=====Discovery Log Entry 63======
-trtype:  loop
-subnqn:  blktests-subsystem-62
-=====Discovery Log Entry 64======
-trtype:  loop
-subnqn:  blktests-subsystem-63
-=====Discovery Log Entry 65======
-trtype:  loop
-subnqn:  blktests-subsystem-64
-=====Discovery Log Entry 66======
-trtype:  loop
-subnqn:  blktests-subsystem-65
-=====Discovery Log Entry 67======
-trtype:  loop
-subnqn:  blktests-subsystem-66
-=====Discovery Log Entry 68======
-trtype:  loop
-subnqn:  blktests-subsystem-67
-=====Discovery Log Entry 69======
-trtype:  loop
-subnqn:  blktests-subsystem-68
-=====Discovery Log Entry 70======
-trtype:  loop
-subnqn:  blktests-subsystem-69
-=====Discovery Log Entry 71======
-trtype:  loop
-subnqn:  blktests-subsystem-70
-=====Discovery Log Entry 72======
-trtype:  loop
-subnqn:  blktests-subsystem-71
-=====Discovery Log Entry 73======
-trtype:  loop
-subnqn:  blktests-subsystem-72
-=====Discovery Log Entry 74======
-trtype:  loop
-subnqn:  blktests-subsystem-73
-=====Discovery Log Entry 75======
-trtype:  loop
-subnqn:  blktests-subsystem-74
-=====Discovery Log Entry 76======
-trtype:  loop
-subnqn:  blktests-subsystem-75
-=====Discovery Log Entry 77======
-trtype:  loop
-subnqn:  blktests-subsystem-76
-=====Discovery Log Entry 78======
-trtype:  loop
-subnqn:  blktests-subsystem-77
-=====Discovery Log Entry 79======
-trtype:  loop
-subnqn:  blktests-subsystem-78
-=====Discovery Log Entry 80======
-trtype:  loop
-subnqn:  blktests-subsystem-79
-=====Discovery Log Entry 81======
-trtype:  loop
-subnqn:  blktests-subsystem-80
-=====Discovery Log Entry 82======
-trtype:  loop
-subnqn:  blktests-subsystem-81
-=====Discovery Log Entry 83======
-trtype:  loop
-subnqn:  blktests-subsystem-82
-=====Discovery Log Entry 84======
-trtype:  loop
-subnqn:  blktests-subsystem-83
-=====Discovery Log Entry 85======
-trtype:  loop
-subnqn:  blktests-subsystem-84
-=====Discovery Log Entry 86======
-trtype:  loop
-subnqn:  blktests-subsystem-85
-=====Discovery Log Entry 87======
-trtype:  loop
-subnqn:  blktests-subsystem-86
-=====Discovery Log Entry 88======
-trtype:  loop
-subnqn:  blktests-subsystem-87
-=====Discovery Log Entry 89======
-trtype:  loop
-subnqn:  blktests-subsystem-88
-=====Discovery Log Entry 90======
-trtype:  loop
-subnqn:  blktests-subsystem-89
-=====Discovery Log Entry 91======
-trtype:  loop
-subnqn:  blktests-subsystem-90
-=====Discovery Log Entry 92======
-trtype:  loop
-subnqn:  blktests-subsystem-91
-=====Discovery Log Entry 93======
-trtype:  loop
-subnqn:  blktests-subsystem-92
-=====Discovery Log Entry 94======
-trtype:  loop
-subnqn:  blktests-subsystem-93
-=====Discovery Log Entry 95======
-trtype:  loop
-subnqn:  blktests-subsystem-94
-=====Discovery Log Entry 96======
-trtype:  loop
-subnqn:  blktests-subsystem-95
-=====Discovery Log Entry 97======
-trtype:  loop
-subnqn:  blktests-subsystem-96
-=====Discovery Log Entry 98======
-trtype:  loop
-subnqn:  blktests-subsystem-97
-=====Discovery Log Entry 99======
-trtype:  loop
-subnqn:  blktests-subsystem-98
-=====Discovery Log Entry 100======
-trtype:  loop
-subnqn:  blktests-subsystem-99
-=====Discovery Log Entry 101======
-trtype:  loop
-subnqn:  blktests-subsystem-100
-=====Discovery Log Entry 102======
-trtype:  loop
-subnqn:  blktests-subsystem-101
-=====Discovery Log Entry 103======
-trtype:  loop
-subnqn:  blktests-subsystem-102
-=====Discovery Log Entry 104======
-trtype:  loop
-subnqn:  blktests-subsystem-103
-=====Discovery Log Entry 105======
-trtype:  loop
-subnqn:  blktests-subsystem-104
-=====Discovery Log Entry 106======
-trtype:  loop
-subnqn:  blktests-subsystem-105
-=====Discovery Log Entry 107======
-trtype:  loop
-subnqn:  blktests-subsystem-106
-=====Discovery Log Entry 108======
-trtype:  loop
-subnqn:  blktests-subsystem-107
-=====Discovery Log Entry 109======
-trtype:  loop
-subnqn:  blktests-subsystem-108
-=====Discovery Log Entry 110======
-trtype:  loop
-subnqn:  blktests-subsystem-109
-=====Discovery Log Entry 111======
-trtype:  loop
-subnqn:  blktests-subsystem-110
-=====Discovery Log Entry 112======
-trtype:  loop
-subnqn:  blktests-subsystem-111
-=====Discovery Log Entry 113======
-trtype:  loop
-subnqn:  blktests-subsystem-112
-=====Discovery Log Entry 114======
-trtype:  loop
-subnqn:  blktests-subsystem-113
-=====Discovery Log Entry 115======
-trtype:  loop
-subnqn:  blktests-subsystem-114
-=====Discovery Log Entry 116======
-trtype:  loop
-subnqn:  blktests-subsystem-115
-=====Discovery Log Entry 117======
-trtype:  loop
-subnqn:  blktests-subsystem-116
-=====Discovery Log Entry 118======
-trtype:  loop
-subnqn:  blktests-subsystem-117
-=====Discovery Log Entry 119======
-trtype:  loop
-subnqn:  blktests-subsystem-118
-=====Discovery Log Entry 120======
-trtype:  loop
-subnqn:  blktests-subsystem-119
-=====Discovery Log Entry 121======
-trtype:  loop
-subnqn:  blktests-subsystem-120
-=====Discovery Log Entry 122======
-trtype:  loop
-subnqn:  blktests-subsystem-121
-=====Discovery Log Entry 123======
-trtype:  loop
-subnqn:  blktests-subsystem-122
-=====Discovery Log Entry 124======
-trtype:  loop
-subnqn:  blktests-subsystem-123
-=====Discovery Log Entry 125======
-trtype:  loop
-subnqn:  blktests-subsystem-124
-=====Discovery Log Entry 126======
-trtype:  loop
-subnqn:  blktests-subsystem-125
-=====Discovery Log Entry 127======
-trtype:  loop
-subnqn:  blktests-subsystem-126
-=====Discovery Log Entry 128======
-trtype:  loop
-subnqn:  blktests-subsystem-127
-=====Discovery Log Entry 129======
-trtype:  loop
-subnqn:  blktests-subsystem-128
-=====Discovery Log Entry 130======
-trtype:  loop
-subnqn:  blktests-subsystem-129
-=====Discovery Log Entry 131======
-trtype:  loop
-subnqn:  blktests-subsystem-130
-=====Discovery Log Entry 132======
-trtype:  loop
-subnqn:  blktests-subsystem-131
-=====Discovery Log Entry 133======
-trtype:  loop
-subnqn:  blktests-subsystem-132
-=====Discovery Log Entry 134======
-trtype:  loop
-subnqn:  blktests-subsystem-133
-=====Discovery Log Entry 135======
-trtype:  loop
-subnqn:  blktests-subsystem-134
-=====Discovery Log Entry 136======
-trtype:  loop
-subnqn:  blktests-subsystem-135
-=====Discovery Log Entry 137======
-trtype:  loop
-subnqn:  blktests-subsystem-136
-=====Discovery Log Entry 138======
-trtype:  loop
-subnqn:  blktests-subsystem-137
-=====Discovery Log Entry 139======
-trtype:  loop
-subnqn:  blktests-subsystem-138
-=====Discovery Log Entry 140======
-trtype:  loop
-subnqn:  blktests-subsystem-139
-=====Discovery Log Entry 141======
-trtype:  loop
-subnqn:  blktests-subsystem-140
-=====Discovery Log Entry 142======
-trtype:  loop
-subnqn:  blktests-subsystem-141
-=====Discovery Log Entry 143======
-trtype:  loop
-subnqn:  blktests-subsystem-142
-=====Discovery Log Entry 144======
-trtype:  loop
-subnqn:  blktests-subsystem-143
-=====Discovery Log Entry 145======
-trtype:  loop
-subnqn:  blktests-subsystem-144
-=====Discovery Log Entry 146======
-trtype:  loop
-subnqn:  blktests-subsystem-145
-=====Discovery Log Entry 147======
-trtype:  loop
-subnqn:  blktests-subsystem-146
-=====Discovery Log Entry 148======
-trtype:  loop
-subnqn:  blktests-subsystem-147
-=====Discovery Log Entry 149======
-trtype:  loop
-subnqn:  blktests-subsystem-148
-=====Discovery Log Entry 150======
-trtype:  loop
-subnqn:  blktests-subsystem-149
-=====Discovery Log Entry 151======
-trtype:  loop
-subnqn:  blktests-subsystem-150
-=====Discovery Log Entry 152======
-trtype:  loop
-subnqn:  blktests-subsystem-151
-=====Discovery Log Entry 153======
-trtype:  loop
-subnqn:  blktests-subsystem-152
-=====Discovery Log Entry 154======
-trtype:  loop
-subnqn:  blktests-subsystem-153
-=====Discovery Log Entry 155======
-trtype:  loop
-subnqn:  blktests-subsystem-154
-=====Discovery Log Entry 156======
-trtype:  loop
-subnqn:  blktests-subsystem-155
-=====Discovery Log Entry 157======
-trtype:  loop
-subnqn:  blktests-subsystem-156
-=====Discovery Log Entry 158======
-trtype:  loop
-subnqn:  blktests-subsystem-157
-=====Discovery Log Entry 159======
-trtype:  loop
-subnqn:  blktests-subsystem-158
-=====Discovery Log Entry 160======
-trtype:  loop
-subnqn:  blktests-subsystem-159
-=====Discovery Log Entry 161======
-trtype:  loop
-subnqn:  blktests-subsystem-160
-=====Discovery Log Entry 162======
-trtype:  loop
-subnqn:  blktests-subsystem-161
-=====Discovery Log Entry 163======
-trtype:  loop
-subnqn:  blktests-subsystem-162
-=====Discovery Log Entry 164======
-trtype:  loop
-subnqn:  blktests-subsystem-163
-=====Discovery Log Entry 165======
-trtype:  loop
-subnqn:  blktests-subsystem-164
-=====Discovery Log Entry 166======
-trtype:  loop
-subnqn:  blktests-subsystem-165
-=====Discovery Log Entry 167======
-trtype:  loop
-subnqn:  blktests-subsystem-166
-=====Discovery Log Entry 168======
-trtype:  loop
-subnqn:  blktests-subsystem-167
-=====Discovery Log Entry 169======
-trtype:  loop
-subnqn:  blktests-subsystem-168
-=====Discovery Log Entry 170======
-trtype:  loop
-subnqn:  blktests-subsystem-169
-=====Discovery Log Entry 171======
-trtype:  loop
-subnqn:  blktests-subsystem-170
-=====Discovery Log Entry 172======
-trtype:  loop
-subnqn:  blktests-subsystem-171
-=====Discovery Log Entry 173======
-trtype:  loop
-subnqn:  blktests-subsystem-172
-=====Discovery Log Entry 174======
-trtype:  loop
-subnqn:  blktests-subsystem-173
-=====Discovery Log Entry 175======
-trtype:  loop
-subnqn:  blktests-subsystem-174
-=====Discovery Log Entry 176======
-trtype:  loop
-subnqn:  blktests-subsystem-175
-=====Discovery Log Entry 177======
-trtype:  loop
-subnqn:  blktests-subsystem-176
-=====Discovery Log Entry 178======
-trtype:  loop
-subnqn:  blktests-subsystem-177
-=====Discovery Log Entry 179======
-trtype:  loop
-subnqn:  blktests-subsystem-178
-=====Discovery Log Entry 180======
-trtype:  loop
-subnqn:  blktests-subsystem-179
-=====Discovery Log Entry 181======
-trtype:  loop
-subnqn:  blktests-subsystem-180
-=====Discovery Log Entry 182======
-trtype:  loop
-subnqn:  blktests-subsystem-181
-=====Discovery Log Entry 183======
-trtype:  loop
-subnqn:  blktests-subsystem-182
-=====Discovery Log Entry 184======
-trtype:  loop
-subnqn:  blktests-subsystem-183
-=====Discovery Log Entry 185======
-trtype:  loop
-subnqn:  blktests-subsystem-184
-=====Discovery Log Entry 186======
-trtype:  loop
-subnqn:  blktests-subsystem-185
-=====Discovery Log Entry 187======
-trtype:  loop
-subnqn:  blktests-subsystem-186
-=====Discovery Log Entry 188======
-trtype:  loop
-subnqn:  blktests-subsystem-187
-=====Discovery Log Entry 189======
-trtype:  loop
-subnqn:  blktests-subsystem-188
-=====Discovery Log Entry 190======
-trtype:  loop
-subnqn:  blktests-subsystem-189
-=====Discovery Log Entry 191======
-trtype:  loop
-subnqn:  blktests-subsystem-190
-=====Discovery Log Entry 192======
-trtype:  loop
-subnqn:  blktests-subsystem-191
-=====Discovery Log Entry 193======
-trtype:  loop
-subnqn:  blktests-subsystem-192
-=====Discovery Log Entry 194======
-trtype:  loop
-subnqn:  blktests-subsystem-193
-=====Discovery Log Entry 195======
-trtype:  loop
-subnqn:  blktests-subsystem-194
-=====Discovery Log Entry 196======
-trtype:  loop
-subnqn:  blktests-subsystem-195
-=====Discovery Log Entry 197======
-trtype:  loop
-subnqn:  blktests-subsystem-196
-=====Discovery Log Entry 198======
-trtype:  loop
-subnqn:  blktests-subsystem-197
-=====Discovery Log Entry 199======
-trtype:  loop
-subnqn:  blktests-subsystem-198
-=====Discovery Log Entry 200======
-trtype:  loop
-subnqn:  blktests-subsystem-199
-=====Discovery Log Entry 201======
-trtype:  loop
-subnqn:  blktests-subsystem-200
-=====Discovery Log Entry 202======
-trtype:  loop
-subnqn:  blktests-subsystem-201
-=====Discovery Log Entry 203======
-trtype:  loop
-subnqn:  blktests-subsystem-202
-=====Discovery Log Entry 204======
-trtype:  loop
-subnqn:  blktests-subsystem-203
-=====Discovery Log Entry 205======
-trtype:  loop
-subnqn:  blktests-subsystem-204
-=====Discovery Log Entry 206======
-trtype:  loop
-subnqn:  blktests-subsystem-205
-=====Discovery Log Entry 207======
-trtype:  loop
-subnqn:  blktests-subsystem-206
-=====Discovery Log Entry 208======
-trtype:  loop
-subnqn:  blktests-subsystem-207
-=====Discovery Log Entry 209======
-trtype:  loop
-subnqn:  blktests-subsystem-208
-=====Discovery Log Entry 210======
-trtype:  loop
-subnqn:  blktests-subsystem-209
-=====Discovery Log Entry 211======
-trtype:  loop
-subnqn:  blktests-subsystem-210
-=====Discovery Log Entry 212======
-trtype:  loop
-subnqn:  blktests-subsystem-211
-=====Discovery Log Entry 213======
-trtype:  loop
-subnqn:  blktests-subsystem-212
-=====Discovery Log Entry 214======
-trtype:  loop
-subnqn:  blktests-subsystem-213
-=====Discovery Log Entry 215======
-trtype:  loop
-subnqn:  blktests-subsystem-214
-=====Discovery Log Entry 216======
-trtype:  loop
-subnqn:  blktests-subsystem-215
-=====Discovery Log Entry 217======
-trtype:  loop
-subnqn:  blktests-subsystem-216
-=====Discovery Log Entry 218======
-trtype:  loop
-subnqn:  blktests-subsystem-217
-=====Discovery Log Entry 219======
-trtype:  loop
-subnqn:  blktests-subsystem-218
-=====Discovery Log Entry 220======
-trtype:  loop
-subnqn:  blktests-subsystem-219
-=====Discovery Log Entry 221======
-trtype:  loop
-subnqn:  blktests-subsystem-220
-=====Discovery Log Entry 222======
-trtype:  loop
-subnqn:  blktests-subsystem-221
-=====Discovery Log Entry 223======
-trtype:  loop
-subnqn:  blktests-subsystem-222
-=====Discovery Log Entry 224======
-trtype:  loop
-subnqn:  blktests-subsystem-223
-=====Discovery Log Entry 225======
-trtype:  loop
-subnqn:  blktests-subsystem-224
-=====Discovery Log Entry 226======
-trtype:  loop
-subnqn:  blktests-subsystem-225
-=====Discovery Log Entry 227======
-trtype:  loop
-subnqn:  blktests-subsystem-226
-=====Discovery Log Entry 228======
-trtype:  loop
-subnqn:  blktests-subsystem-227
-=====Discovery Log Entry 229======
-trtype:  loop
-subnqn:  blktests-subsystem-228
-=====Discovery Log Entry 230======
-trtype:  loop
-subnqn:  blktests-subsystem-229
-=====Discovery Log Entry 231======
-trtype:  loop
-subnqn:  blktests-subsystem-230
-=====Discovery Log Entry 232======
-trtype:  loop
-subnqn:  blktests-subsystem-231
-=====Discovery Log Entry 233======
-trtype:  loop
-subnqn:  blktests-subsystem-232
-=====Discovery Log Entry 234======
-trtype:  loop
-subnqn:  blktests-subsystem-233
-=====Discovery Log Entry 235======
-trtype:  loop
-subnqn:  blktests-subsystem-234
-=====Discovery Log Entry 236======
-trtype:  loop
-subnqn:  blktests-subsystem-235
-=====Discovery Log Entry 237======
-trtype:  loop
-subnqn:  blktests-subsystem-236
-=====Discovery Log Entry 238======
-trtype:  loop
-subnqn:  blktests-subsystem-237
-=====Discovery Log Entry 239======
-trtype:  loop
-subnqn:  blktests-subsystem-238
-=====Discovery Log Entry 240======
-trtype:  loop
-subnqn:  blktests-subsystem-239
-=====Discovery Log Entry 241======
-trtype:  loop
-subnqn:  blktests-subsystem-240
-=====Discovery Log Entry 242======
-trtype:  loop
-subnqn:  blktests-subsystem-241
-=====Discovery Log Entry 243======
-trtype:  loop
-subnqn:  blktests-subsystem-242
-=====Discovery Log Entry 244======
-trtype:  loop
-subnqn:  blktests-subsystem-243
-=====Discovery Log Entry 245======
-trtype:  loop
-subnqn:  blktests-subsystem-244
-=====Discovery Log Entry 246======
-trtype:  loop
-subnqn:  blktests-subsystem-245
-=====Discovery Log Entry 247======
-trtype:  loop
-subnqn:  blktests-subsystem-246
-=====Discovery Log Entry 248======
-trtype:  loop
-subnqn:  blktests-subsystem-247
-=====Discovery Log Entry 249======
-trtype:  loop
-subnqn:  blktests-subsystem-248
-=====Discovery Log Entry 250======
-trtype:  loop
-subnqn:  blktests-subsystem-249
-=====Discovery Log Entry 251======
-trtype:  loop
-subnqn:  blktests-subsystem-250
-=====Discovery Log Entry 252======
-trtype:  loop
-subnqn:  blktests-subsystem-251
-=====Discovery Log Entry 253======
-trtype:  loop
-subnqn:  blktests-subsystem-252
-=====Discovery Log Entry 254======
-trtype:  loop
-subnqn:  blktests-subsystem-253
-=====Discovery Log Entry 255======
-trtype:  loop
-subnqn:  blktests-subsystem-254
-=====Discovery Log Entry 256======
-trtype:  loop
-subnqn:  blktests-subsystem-255
-=====Discovery Log Entry 257======
-trtype:  loop
-subnqn:  blktests-subsystem-256
-=====Discovery Log Entry 258======
-trtype:  loop
-subnqn:  blktests-subsystem-257
-=====Discovery Log Entry 259======
-trtype:  loop
-subnqn:  blktests-subsystem-258
-=====Discovery Log Entry 260======
-trtype:  loop
-subnqn:  blktests-subsystem-259
-=====Discovery Log Entry 261======
-trtype:  loop
-subnqn:  blktests-subsystem-260
-=====Discovery Log Entry 262======
-trtype:  loop
-subnqn:  blktests-subsystem-261
-=====Discovery Log Entry 263======
-trtype:  loop
-subnqn:  blktests-subsystem-262
-=====Discovery Log Entry 264======
-trtype:  loop
-subnqn:  blktests-subsystem-263
-=====Discovery Log Entry 265======
-trtype:  loop
-subnqn:  blktests-subsystem-264
-=====Discovery Log Entry 266======
-trtype:  loop
-subnqn:  blktests-subsystem-265
-=====Discovery Log Entry 267======
-trtype:  loop
-subnqn:  blktests-subsystem-266
-=====Discovery Log Entry 268======
-trtype:  loop
-subnqn:  blktests-subsystem-267
-=====Discovery Log Entry 269======
-trtype:  loop
-subnqn:  blktests-subsystem-268
-=====Discovery Log Entry 270======
-trtype:  loop
-subnqn:  blktests-subsystem-269
-=====Discovery Log Entry 271======
-trtype:  loop
-subnqn:  blktests-subsystem-270
-=====Discovery Log Entry 272======
-trtype:  loop
-subnqn:  blktests-subsystem-271
-=====Discovery Log Entry 273======
-trtype:  loop
-subnqn:  blktests-subsystem-272
-=====Discovery Log Entry 274======
-trtype:  loop
-subnqn:  blktests-subsystem-273
-=====Discovery Log Entry 275======
-trtype:  loop
-subnqn:  blktests-subsystem-274
-=====Discovery Log Entry 276======
-trtype:  loop
-subnqn:  blktests-subsystem-275
-=====Discovery Log Entry 277======
-trtype:  loop
-subnqn:  blktests-subsystem-276
-=====Discovery Log Entry 278======
-trtype:  loop
-subnqn:  blktests-subsystem-277
-=====Discovery Log Entry 279======
-trtype:  loop
-subnqn:  blktests-subsystem-278
-=====Discovery Log Entry 280======
-trtype:  loop
-subnqn:  blktests-subsystem-279
-=====Discovery Log Entry 281======
-trtype:  loop
-subnqn:  blktests-subsystem-280
-=====Discovery Log Entry 282======
-trtype:  loop
-subnqn:  blktests-subsystem-281
-=====Discovery Log Entry 283======
-trtype:  loop
-subnqn:  blktests-subsystem-282
-=====Discovery Log Entry 284======
-trtype:  loop
-subnqn:  blktests-subsystem-283
-=====Discovery Log Entry 285======
-trtype:  loop
-subnqn:  blktests-subsystem-284
-=====Discovery Log Entry 286======
-trtype:  loop
-subnqn:  blktests-subsystem-285
-=====Discovery Log Entry 287======
-trtype:  loop
-subnqn:  blktests-subsystem-286
-=====Discovery Log Entry 288======
-trtype:  loop
-subnqn:  blktests-subsystem-287
-=====Discovery Log Entry 289======
-trtype:  loop
-subnqn:  blktests-subsystem-288
-=====Discovery Log Entry 290======
-trtype:  loop
-subnqn:  blktests-subsystem-289
-=====Discovery Log Entry 291======
-trtype:  loop
-subnqn:  blktests-subsystem-290
-=====Discovery Log Entry 292======
-trtype:  loop
-subnqn:  blktests-subsystem-291
-=====Discovery Log Entry 293======
-trtype:  loop
-subnqn:  blktests-subsystem-292
-=====Discovery Log Entry 294======
-trtype:  loop
-subnqn:  blktests-subsystem-293
-=====Discovery Log Entry 295======
-trtype:  loop
-subnqn:  blktests-subsystem-294
-=====Discovery Log Entry 296======
-trtype:  loop
-subnqn:  blktests-subsystem-295
-=====Discovery Log Entry 297======
-trtype:  loop
-subnqn:  blktests-subsystem-296
-=====Discovery Log Entry 298======
-trtype:  loop
-subnqn:  blktests-subsystem-297
-=====Discovery Log Entry 299======
-trtype:  loop
-subnqn:  blktests-subsystem-298
-=====Discovery Log Entry 300======
-trtype:  loop
-subnqn:  blktests-subsystem-299
-=====Discovery Log Entry 301======
-trtype:  loop
-subnqn:  blktests-subsystem-300
-=====Discovery Log Entry 302======
-trtype:  loop
-subnqn:  blktests-subsystem-301
-=====Discovery Log Entry 303======
-trtype:  loop
-subnqn:  blktests-subsystem-302
-=====Discovery Log Entry 304======
-trtype:  loop
-subnqn:  blktests-subsystem-303
-=====Discovery Log Entry 305======
-trtype:  loop
-subnqn:  blktests-subsystem-304
-=====Discovery Log Entry 306======
-trtype:  loop
-subnqn:  blktests-subsystem-305
-=====Discovery Log Entry 307======
-trtype:  loop
-subnqn:  blktests-subsystem-306
-=====Discovery Log Entry 308======
-trtype:  loop
-subnqn:  blktests-subsystem-307
-=====Discovery Log Entry 309======
-trtype:  loop
-subnqn:  blktests-subsystem-308
-=====Discovery Log Entry 310======
-trtype:  loop
-subnqn:  blktests-subsystem-309
-=====Discovery Log Entry 311======
-trtype:  loop
-subnqn:  blktests-subsystem-310
-=====Discovery Log Entry 312======
-trtype:  loop
-subnqn:  blktests-subsystem-311
-=====Discovery Log Entry 313======
-trtype:  loop
-subnqn:  blktests-subsystem-312
-=====Discovery Log Entry 314======
-trtype:  loop
-subnqn:  blktests-subsystem-313
-=====Discovery Log Entry 315======
-trtype:  loop
-subnqn:  blktests-subsystem-314
-=====Discovery Log Entry 316======
-trtype:  loop
-subnqn:  blktests-subsystem-315
-=====Discovery Log Entry 317======
-trtype:  loop
-subnqn:  blktests-subsystem-316
-=====Discovery Log Entry 318======
-trtype:  loop
-subnqn:  blktests-subsystem-317
-=====Discovery Log Entry 319======
-trtype:  loop
-subnqn:  blktests-subsystem-318
-=====Discovery Log Entry 320======
-trtype:  loop
-subnqn:  blktests-subsystem-319
-=====Discovery Log Entry 321======
-trtype:  loop
-subnqn:  blktests-subsystem-320
-=====Discovery Log Entry 322======
-trtype:  loop
-subnqn:  blktests-subsystem-321
-=====Discovery Log Entry 323======
-trtype:  loop
-subnqn:  blktests-subsystem-322
-=====Discovery Log Entry 324======
-trtype:  loop
-subnqn:  blktests-subsystem-323
-=====Discovery Log Entry 325======
-trtype:  loop
-subnqn:  blktests-subsystem-324
-=====Discovery Log Entry 326======
-trtype:  loop
-subnqn:  blktests-subsystem-325
-=====Discovery Log Entry 327======
-trtype:  loop
-subnqn:  blktests-subsystem-326
-=====Discovery Log Entry 328======
-trtype:  loop
-subnqn:  blktests-subsystem-327
-=====Discovery Log Entry 329======
-trtype:  loop
-subnqn:  blktests-subsystem-328
-=====Discovery Log Entry 330======
-trtype:  loop
-subnqn:  blktests-subsystem-329
-=====Discovery Log Entry 331======
-trtype:  loop
-subnqn:  blktests-subsystem-330
-=====Discovery Log Entry 332======
-trtype:  loop
-subnqn:  blktests-subsystem-331
-=====Discovery Log Entry 333======
-trtype:  loop
-subnqn:  blktests-subsystem-332
-=====Discovery Log Entry 334======
-trtype:  loop
-subnqn:  blktests-subsystem-333
-=====Discovery Log Entry 335======
-trtype:  loop
-subnqn:  blktests-subsystem-334
-=====Discovery Log Entry 336======
-trtype:  loop
-subnqn:  blktests-subsystem-335
-=====Discovery Log Entry 337======
-trtype:  loop
-subnqn:  blktests-subsystem-336
-=====Discovery Log Entry 338======
-trtype:  loop
-subnqn:  blktests-subsystem-337
-=====Discovery Log Entry 339======
-trtype:  loop
-subnqn:  blktests-subsystem-338
-=====Discovery Log Entry 340======
-trtype:  loop
-subnqn:  blktests-subsystem-339
-=====Discovery Log Entry 341======
-trtype:  loop
-subnqn:  blktests-subsystem-340
-=====Discovery Log Entry 342======
-trtype:  loop
-subnqn:  blktests-subsystem-341
-=====Discovery Log Entry 343======
-trtype:  loop
-subnqn:  blktests-subsystem-342
-=====Discovery Log Entry 344======
-trtype:  loop
-subnqn:  blktests-subsystem-343
-=====Discovery Log Entry 345======
-trtype:  loop
-subnqn:  blktests-subsystem-344
-=====Discovery Log Entry 346======
-trtype:  loop
-subnqn:  blktests-subsystem-345
-=====Discovery Log Entry 347======
-trtype:  loop
-subnqn:  blktests-subsystem-346
-=====Discovery Log Entry 348======
-trtype:  loop
-subnqn:  blktests-subsystem-347
-=====Discovery Log Entry 349======
-trtype:  loop
-subnqn:  blktests-subsystem-348
-=====Discovery Log Entry 350======
-trtype:  loop
-subnqn:  blktests-subsystem-349
-=====Discovery Log Entry 351======
-trtype:  loop
-subnqn:  blktests-subsystem-350
-=====Discovery Log Entry 352======
-trtype:  loop
-subnqn:  blktests-subsystem-351
-=====Discovery Log Entry 353======
-trtype:  loop
-subnqn:  blktests-subsystem-352
-=====Discovery Log Entry 354======
-trtype:  loop
-subnqn:  blktests-subsystem-353
-=====Discovery Log Entry 355======
-trtype:  loop
-subnqn:  blktests-subsystem-354
-=====Discovery Log Entry 356======
-trtype:  loop
-subnqn:  blktests-subsystem-355
-=====Discovery Log Entry 357======
-trtype:  loop
-subnqn:  blktests-subsystem-356
-=====Discovery Log Entry 358======
-trtype:  loop
-subnqn:  blktests-subsystem-357
-=====Discovery Log Entry 359======
-trtype:  loop
-subnqn:  blktests-subsystem-358
-=====Discovery Log Entry 360======
-trtype:  loop
-subnqn:  blktests-subsystem-359
-=====Discovery Log Entry 361======
-trtype:  loop
-subnqn:  blktests-subsystem-360
-=====Discovery Log Entry 362======
-trtype:  loop
-subnqn:  blktests-subsystem-361
-=====Discovery Log Entry 363======
-trtype:  loop
-subnqn:  blktests-subsystem-362
-=====Discovery Log Entry 364======
-trtype:  loop
-subnqn:  blktests-subsystem-363
-=====Discovery Log Entry 365======
-trtype:  loop
-subnqn:  blktests-subsystem-364
-=====Discovery Log Entry 366======
-trtype:  loop
-subnqn:  blktests-subsystem-365
-=====Discovery Log Entry 367======
-trtype:  loop
-subnqn:  blktests-subsystem-366
-=====Discovery Log Entry 368======
-trtype:  loop
-subnqn:  blktests-subsystem-367
-=====Discovery Log Entry 369======
-trtype:  loop
-subnqn:  blktests-subsystem-368
-=====Discovery Log Entry 370======
-trtype:  loop
-subnqn:  blktests-subsystem-369
-=====Discovery Log Entry 371======
-trtype:  loop
-subnqn:  blktests-subsystem-370
-=====Discovery Log Entry 372======
-trtype:  loop
-subnqn:  blktests-subsystem-371
-=====Discovery Log Entry 373======
-trtype:  loop
-subnqn:  blktests-subsystem-372
-=====Discovery Log Entry 374======
-trtype:  loop
-subnqn:  blktests-subsystem-373
-=====Discovery Log Entry 375======
-trtype:  loop
-subnqn:  blktests-subsystem-374
-=====Discovery Log Entry 376======
-trtype:  loop
-subnqn:  blktests-subsystem-375
-=====Discovery Log Entry 377======
-trtype:  loop
-subnqn:  blktests-subsystem-376
-=====Discovery Log Entry 378======
-trtype:  loop
-subnqn:  blktests-subsystem-377
-=====Discovery Log Entry 379======
-trtype:  loop
-subnqn:  blktests-subsystem-378
-=====Discovery Log Entry 380======
-trtype:  loop
-subnqn:  blktests-subsystem-379
-=====Discovery Log Entry 381======
-trtype:  loop
-subnqn:  blktests-subsystem-380
-=====Discovery Log Entry 382======
-trtype:  loop
-subnqn:  blktests-subsystem-381
-=====Discovery Log Entry 383======
-trtype:  loop
-subnqn:  blktests-subsystem-382
-=====Discovery Log Entry 384======
-trtype:  loop
-subnqn:  blktests-subsystem-383
-=====Discovery Log Entry 385======
-trtype:  loop
-subnqn:  blktests-subsystem-384
-=====Discovery Log Entry 386======
-trtype:  loop
-subnqn:  blktests-subsystem-385
-=====Discovery Log Entry 387======
-trtype:  loop
-subnqn:  blktests-subsystem-386
-=====Discovery Log Entry 388======
-trtype:  loop
-subnqn:  blktests-subsystem-387
-=====Discovery Log Entry 389======
-trtype:  loop
-subnqn:  blktests-subsystem-388
-=====Discovery Log Entry 390======
-trtype:  loop
-subnqn:  blktests-subsystem-389
-=====Discovery Log Entry 391======
-trtype:  loop
-subnqn:  blktests-subsystem-390
-=====Discovery Log Entry 392======
-trtype:  loop
-subnqn:  blktests-subsystem-391
-=====Discovery Log Entry 393======
-trtype:  loop
-subnqn:  blktests-subsystem-392
-=====Discovery Log Entry 394======
-trtype:  loop
-subnqn:  blktests-subsystem-393
-=====Discovery Log Entry 395======
-trtype:  loop
-subnqn:  blktests-subsystem-394
-=====Discovery Log Entry 396======
-trtype:  loop
-subnqn:  blktests-subsystem-395
-=====Discovery Log Entry 397======
-trtype:  loop
-subnqn:  blktests-subsystem-396
-=====Discovery Log Entry 398======
-trtype:  loop
-subnqn:  blktests-subsystem-397
-=====Discovery Log Entry 399======
-trtype:  loop
-subnqn:  blktests-subsystem-398
-=====Discovery Log Entry 400======
-trtype:  loop
-subnqn:  blktests-subsystem-399
-=====Discovery Log Entry 401======
-trtype:  loop
-subnqn:  blktests-subsystem-400
-=====Discovery Log Entry 402======
-trtype:  loop
-subnqn:  blktests-subsystem-401
-=====Discovery Log Entry 403======
-trtype:  loop
-subnqn:  blktests-subsystem-402
-=====Discovery Log Entry 404======
-trtype:  loop
-subnqn:  blktests-subsystem-403
-=====Discovery Log Entry 405======
-trtype:  loop
-subnqn:  blktests-subsystem-404
-=====Discovery Log Entry 406======
-trtype:  loop
-subnqn:  blktests-subsystem-405
-=====Discovery Log Entry 407======
-trtype:  loop
-subnqn:  blktests-subsystem-406
-=====Discovery Log Entry 408======
-trtype:  loop
-subnqn:  blktests-subsystem-407
-=====Discovery Log Entry 409======
-trtype:  loop
-subnqn:  blktests-subsystem-408
-=====Discovery Log Entry 410======
-trtype:  loop
-subnqn:  blktests-subsystem-409
-=====Discovery Log Entry 411======
-trtype:  loop
-subnqn:  blktests-subsystem-410
-=====Discovery Log Entry 412======
-trtype:  loop
-subnqn:  blktests-subsystem-411
-=====Discovery Log Entry 413======
-trtype:  loop
-subnqn:  blktests-subsystem-412
-=====Discovery Log Entry 414======
-trtype:  loop
-subnqn:  blktests-subsystem-413
-=====Discovery Log Entry 415======
-trtype:  loop
-subnqn:  blktests-subsystem-414
-=====Discovery Log Entry 416======
-trtype:  loop
-subnqn:  blktests-subsystem-415
-=====Discovery Log Entry 417======
-trtype:  loop
-subnqn:  blktests-subsystem-416
-=====Discovery Log Entry 418======
-trtype:  loop
-subnqn:  blktests-subsystem-417
-=====Discovery Log Entry 419======
-trtype:  loop
-subnqn:  blktests-subsystem-418
-=====Discovery Log Entry 420======
-trtype:  loop
-subnqn:  blktests-subsystem-419
-=====Discovery Log Entry 421======
-trtype:  loop
-subnqn:  blktests-subsystem-420
-=====Discovery Log Entry 422======
-trtype:  loop
-subnqn:  blktests-subsystem-421
-=====Discovery Log Entry 423======
-trtype:  loop
-subnqn:  blktests-subsystem-422
-=====Discovery Log Entry 424======
-trtype:  loop
-subnqn:  blktests-subsystem-423
-=====Discovery Log Entry 425======
-trtype:  loop
-subnqn:  blktests-subsystem-424
-=====Discovery Log Entry 426======
-trtype:  loop
-subnqn:  blktests-subsystem-425
-=====Discovery Log Entry 427======
-trtype:  loop
-subnqn:  blktests-subsystem-426
-=====Discovery Log Entry 428======
-trtype:  loop
-subnqn:  blktests-subsystem-427
-=====Discovery Log Entry 429======
-trtype:  loop
-subnqn:  blktests-subsystem-428
-=====Discovery Log Entry 430======
-trtype:  loop
-subnqn:  blktests-subsystem-429
-=====Discovery Log Entry 431======
-trtype:  loop
-subnqn:  blktests-subsystem-430
-=====Discovery Log Entry 432======
-trtype:  loop
-subnqn:  blktests-subsystem-431
-=====Discovery Log Entry 433======
-trtype:  loop
-subnqn:  blktests-subsystem-432
-=====Discovery Log Entry 434======
-trtype:  loop
-subnqn:  blktests-subsystem-433
-=====Discovery Log Entry 435======
-trtype:  loop
-subnqn:  blktests-subsystem-434
-=====Discovery Log Entry 436======
-trtype:  loop
-subnqn:  blktests-subsystem-435
-=====Discovery Log Entry 437======
-trtype:  loop
-subnqn:  blktests-subsystem-436
-=====Discovery Log Entry 438======
-trtype:  loop
-subnqn:  blktests-subsystem-437
-=====Discovery Log Entry 439======
-trtype:  loop
-subnqn:  blktests-subsystem-438
-=====Discovery Log Entry 440======
-trtype:  loop
-subnqn:  blktests-subsystem-439
-=====Discovery Log Entry 441======
-trtype:  loop
-subnqn:  blktests-subsystem-440
-=====Discovery Log Entry 442======
-trtype:  loop
-subnqn:  blktests-subsystem-441
-=====Discovery Log Entry 443======
-trtype:  loop
-subnqn:  blktests-subsystem-442
-=====Discovery Log Entry 444======
-trtype:  loop
-subnqn:  blktests-subsystem-443
-=====Discovery Log Entry 445======
-trtype:  loop
-subnqn:  blktests-subsystem-444
-=====Discovery Log Entry 446======
-trtype:  loop
-subnqn:  blktests-subsystem-445
-=====Discovery Log Entry 447======
-trtype:  loop
-subnqn:  blktests-subsystem-446
-=====Discovery Log Entry 448======
-trtype:  loop
-subnqn:  blktests-subsystem-447
-=====Discovery Log Entry 449======
-trtype:  loop
-subnqn:  blktests-subsystem-448
-=====Discovery Log Entry 450======
-trtype:  loop
-subnqn:  blktests-subsystem-449
-=====Discovery Log Entry 451======
-trtype:  loop
-subnqn:  blktests-subsystem-450
-=====Discovery Log Entry 452======
-trtype:  loop
-subnqn:  blktests-subsystem-451
-=====Discovery Log Entry 453======
-trtype:  loop
-subnqn:  blktests-subsystem-452
-=====Discovery Log Entry 454======
-trtype:  loop
-subnqn:  blktests-subsystem-453
-=====Discovery Log Entry 455======
-trtype:  loop
-subnqn:  blktests-subsystem-454
-=====Discovery Log Entry 456======
-trtype:  loop
-subnqn:  blktests-subsystem-455
-=====Discovery Log Entry 457======
-trtype:  loop
-subnqn:  blktests-subsystem-456
-=====Discovery Log Entry 458======
-trtype:  loop
-subnqn:  blktests-subsystem-457
-=====Discovery Log Entry 459======
-trtype:  loop
-subnqn:  blktests-subsystem-458
-=====Discovery Log Entry 460======
-trtype:  loop
-subnqn:  blktests-subsystem-459
-=====Discovery Log Entry 461======
-trtype:  loop
-subnqn:  blktests-subsystem-460
-=====Discovery Log Entry 462======
-trtype:  loop
-subnqn:  blktests-subsystem-461
-=====Discovery Log Entry 463======
-trtype:  loop
-subnqn:  blktests-subsystem-462
-=====Discovery Log Entry 464======
-trtype:  loop
-subnqn:  blktests-subsystem-463
-=====Discovery Log Entry 465======
-trtype:  loop
-subnqn:  blktests-subsystem-464
-=====Discovery Log Entry 466======
-trtype:  loop
-subnqn:  blktests-subsystem-465
-=====Discovery Log Entry 467======
-trtype:  loop
-subnqn:  blktests-subsystem-466
-=====Discovery Log Entry 468======
-trtype:  loop
-subnqn:  blktests-subsystem-467
-=====Discovery Log Entry 469======
-trtype:  loop
-subnqn:  blktests-subsystem-468
-=====Discovery Log Entry 470======
-trtype:  loop
-subnqn:  blktests-subsystem-469
-=====Discovery Log Entry 471======
-trtype:  loop
-subnqn:  blktests-subsystem-470
-=====Discovery Log Entry 472======
-trtype:  loop
-subnqn:  blktests-subsystem-471
-=====Discovery Log Entry 473======
-trtype:  loop
-subnqn:  blktests-subsystem-472
-=====Discovery Log Entry 474======
-trtype:  loop
-subnqn:  blktests-subsystem-473
-=====Discovery Log Entry 475======
-trtype:  loop
-subnqn:  blktests-subsystem-474
-=====Discovery Log Entry 476======
-trtype:  loop
-subnqn:  blktests-subsystem-475
-=====Discovery Log Entry 477======
-trtype:  loop
-subnqn:  blktests-subsystem-476
-=====Discovery Log Entry 478======
-trtype:  loop
-subnqn:  blktests-subsystem-477
-=====Discovery Log Entry 479======
-trtype:  loop
-subnqn:  blktests-subsystem-478
-=====Discovery Log Entry 480======
-trtype:  loop
-subnqn:  blktests-subsystem-479
-=====Discovery Log Entry 481======
-trtype:  loop
-subnqn:  blktests-subsystem-480
-=====Discovery Log Entry 482======
-trtype:  loop
-subnqn:  blktests-subsystem-481
-=====Discovery Log Entry 483======
-trtype:  loop
-subnqn:  blktests-subsystem-482
-=====Discovery Log Entry 484======
-trtype:  loop
-subnqn:  blktests-subsystem-483
-=====Discovery Log Entry 485======
-trtype:  loop
-subnqn:  blktests-subsystem-484
-=====Discovery Log Entry 486======
-trtype:  loop
-subnqn:  blktests-subsystem-485
-=====Discovery Log Entry 487======
-trtype:  loop
-subnqn:  blktests-subsystem-486
-=====Discovery Log Entry 488======
-trtype:  loop
-subnqn:  blktests-subsystem-487
-=====Discovery Log Entry 489======
-trtype:  loop
-subnqn:  blktests-subsystem-488
-=====Discovery Log Entry 490======
-trtype:  loop
-subnqn:  blktests-subsystem-489
-=====Discovery Log Entry 491======
-trtype:  loop
-subnqn:  blktests-subsystem-490
-=====Discovery Log Entry 492======
-trtype:  loop
-subnqn:  blktests-subsystem-491
-=====Discovery Log Entry 493======
-trtype:  loop
-subnqn:  blktests-subsystem-492
-=====Discovery Log Entry 494======
-trtype:  loop
-subnqn:  blktests-subsystem-493
-=====Discovery Log Entry 495======
-trtype:  loop
-subnqn:  blktests-subsystem-494
-=====Discovery Log Entry 496======
-trtype:  loop
-subnqn:  blktests-subsystem-495
-=====Discovery Log Entry 497======
-trtype:  loop
-subnqn:  blktests-subsystem-496
-=====Discovery Log Entry 498======
-trtype:  loop
-subnqn:  blktests-subsystem-497
-=====Discovery Log Entry 499======
-trtype:  loop
-subnqn:  blktests-subsystem-498
-=====Discovery Log Entry 500======
-trtype:  loop
-subnqn:  blktests-subsystem-499
-=====Discovery Log Entry 501======
-trtype:  loop
-subnqn:  blktests-subsystem-500
-=====Discovery Log Entry 502======
-trtype:  loop
-subnqn:  blktests-subsystem-501
-=====Discovery Log Entry 503======
-trtype:  loop
-subnqn:  blktests-subsystem-502
-=====Discovery Log Entry 504======
-trtype:  loop
-subnqn:  blktests-subsystem-503
-=====Discovery Log Entry 505======
-trtype:  loop
-subnqn:  blktests-subsystem-504
-=====Discovery Log Entry 506======
-trtype:  loop
-subnqn:  blktests-subsystem-505
-=====Discovery Log Entry 507======
-trtype:  loop
-subnqn:  blktests-subsystem-506
-=====Discovery Log Entry 508======
-trtype:  loop
-subnqn:  blktests-subsystem-507
-=====Discovery Log Entry 509======
-trtype:  loop
-subnqn:  blktests-subsystem-508
-=====Discovery Log Entry 510======
-trtype:  loop
-subnqn:  blktests-subsystem-509
-=====Discovery Log Entry 511======
-trtype:  loop
-subnqn:  blktests-subsystem-510
-=====Discovery Log Entry 512======
-trtype:  loop
-subnqn:  blktests-subsystem-511
-=====Discovery Log Entry 513======
-trtype:  loop
-subnqn:  blktests-subsystem-512
-=====Discovery Log Entry 514======
-trtype:  loop
-subnqn:  blktests-subsystem-513
-=====Discovery Log Entry 515======
-trtype:  loop
-subnqn:  blktests-subsystem-514
-=====Discovery Log Entry 516======
-trtype:  loop
-subnqn:  blktests-subsystem-515
-=====Discovery Log Entry 517======
-trtype:  loop
-subnqn:  blktests-subsystem-516
-=====Discovery Log Entry 518======
-trtype:  loop
-subnqn:  blktests-subsystem-517
-=====Discovery Log Entry 519======
-trtype:  loop
-subnqn:  blktests-subsystem-518
-=====Discovery Log Entry 520======
-trtype:  loop
-subnqn:  blktests-subsystem-519
-=====Discovery Log Entry 521======
-trtype:  loop
-subnqn:  blktests-subsystem-520
-=====Discovery Log Entry 522======
-trtype:  loop
-subnqn:  blktests-subsystem-521
-=====Discovery Log Entry 523======
-trtype:  loop
-subnqn:  blktests-subsystem-522
-=====Discovery Log Entry 524======
-trtype:  loop
-subnqn:  blktests-subsystem-523
-=====Discovery Log Entry 525======
-trtype:  loop
-subnqn:  blktests-subsystem-524
-=====Discovery Log Entry 526======
-trtype:  loop
-subnqn:  blktests-subsystem-525
-=====Discovery Log Entry 527======
-trtype:  loop
-subnqn:  blktests-subsystem-526
-=====Discovery Log Entry 528======
-trtype:  loop
-subnqn:  blktests-subsystem-527
-=====Discovery Log Entry 529======
-trtype:  loop
-subnqn:  blktests-subsystem-528
-=====Discovery Log Entry 530======
-trtype:  loop
-subnqn:  blktests-subsystem-529
-=====Discovery Log Entry 531======
-trtype:  loop
-subnqn:  blktests-subsystem-530
-=====Discovery Log Entry 532======
-trtype:  loop
-subnqn:  blktests-subsystem-531
-=====Discovery Log Entry 533======
-trtype:  loop
-subnqn:  blktests-subsystem-532
-=====Discovery Log Entry 534======
-trtype:  loop
-subnqn:  blktests-subsystem-533
-=====Discovery Log Entry 535======
-trtype:  loop
-subnqn:  blktests-subsystem-534
-=====Discovery Log Entry 536======
-trtype:  loop
-subnqn:  blktests-subsystem-535
-=====Discovery Log Entry 537======
-trtype:  loop
-subnqn:  blktests-subsystem-536
-=====Discovery Log Entry 538======
-trtype:  loop
-subnqn:  blktests-subsystem-537
-=====Discovery Log Entry 539======
-trtype:  loop
-subnqn:  blktests-subsystem-538
-=====Discovery Log Entry 540======
-trtype:  loop
-subnqn:  blktests-subsystem-539
-=====Discovery Log Entry 541======
-trtype:  loop
-subnqn:  blktests-subsystem-540
-=====Discovery Log Entry 542======
-trtype:  loop
-subnqn:  blktests-subsystem-541
-=====Discovery Log Entry 543======
-trtype:  loop
-subnqn:  blktests-subsystem-542
-=====Discovery Log Entry 544======
-trtype:  loop
-subnqn:  blktests-subsystem-543
-=====Discovery Log Entry 545======
-trtype:  loop
-subnqn:  blktests-subsystem-544
-=====Discovery Log Entry 546======
-trtype:  loop
-subnqn:  blktests-subsystem-545
-=====Discovery Log Entry 547======
-trtype:  loop
-subnqn:  blktests-subsystem-546
-=====Discovery Log Entry 548======
-trtype:  loop
-subnqn:  blktests-subsystem-547
-=====Discovery Log Entry 549======
-trtype:  loop
-subnqn:  blktests-subsystem-548
-=====Discovery Log Entry 550======
-trtype:  loop
-subnqn:  blktests-subsystem-549
-=====Discovery Log Entry 551======
-trtype:  loop
-subnqn:  blktests-subsystem-550
-=====Discovery Log Entry 552======
-trtype:  loop
-subnqn:  blktests-subsystem-551
-=====Discovery Log Entry 553======
-trtype:  loop
-subnqn:  blktests-subsystem-552
-=====Discovery Log Entry 554======
-trtype:  loop
-subnqn:  blktests-subsystem-553
-=====Discovery Log Entry 555======
-trtype:  loop
-subnqn:  blktests-subsystem-554
-=====Discovery Log Entry 556======
-trtype:  loop
-subnqn:  blktests-subsystem-555
-=====Discovery Log Entry 557======
-trtype:  loop
-subnqn:  blktests-subsystem-556
-=====Discovery Log Entry 558======
-trtype:  loop
-subnqn:  blktests-subsystem-557
-=====Discovery Log Entry 559======
-trtype:  loop
-subnqn:  blktests-subsystem-558
-=====Discovery Log Entry 560======
-trtype:  loop
-subnqn:  blktests-subsystem-559
-=====Discovery Log Entry 561======
-trtype:  loop
-subnqn:  blktests-subsystem-560
-=====Discovery Log Entry 562======
-trtype:  loop
-subnqn:  blktests-subsystem-561
-=====Discovery Log Entry 563======
-trtype:  loop
-subnqn:  blktests-subsystem-562
-=====Discovery Log Entry 564======
-trtype:  loop
-subnqn:  blktests-subsystem-563
-=====Discovery Log Entry 565======
-trtype:  loop
-subnqn:  blktests-subsystem-564
-=====Discovery Log Entry 566======
-trtype:  loop
-subnqn:  blktests-subsystem-565
-=====Discovery Log Entry 567======
-trtype:  loop
-subnqn:  blktests-subsystem-566
-=====Discovery Log Entry 568======
-trtype:  loop
-subnqn:  blktests-subsystem-567
-=====Discovery Log Entry 569======
-trtype:  loop
-subnqn:  blktests-subsystem-568
-=====Discovery Log Entry 570======
-trtype:  loop
-subnqn:  blktests-subsystem-569
-=====Discovery Log Entry 571======
-trtype:  loop
-subnqn:  blktests-subsystem-570
-=====Discovery Log Entry 572======
-trtype:  loop
-subnqn:  blktests-subsystem-571
-=====Discovery Log Entry 573======
-trtype:  loop
-subnqn:  blktests-subsystem-572
-=====Discovery Log Entry 574======
-trtype:  loop
-subnqn:  blktests-subsystem-573
-=====Discovery Log Entry 575======
-trtype:  loop
-subnqn:  blktests-subsystem-574
-=====Discovery Log Entry 576======
-trtype:  loop
-subnqn:  blktests-subsystem-575
-=====Discovery Log Entry 577======
-trtype:  loop
-subnqn:  blktests-subsystem-576
-=====Discovery Log Entry 578======
-trtype:  loop
-subnqn:  blktests-subsystem-577
-=====Discovery Log Entry 579======
-trtype:  loop
-subnqn:  blktests-subsystem-578
-=====Discovery Log Entry 580======
-trtype:  loop
-subnqn:  blktests-subsystem-579
-=====Discovery Log Entry 581======
-trtype:  loop
-subnqn:  blktests-subsystem-580
-=====Discovery Log Entry 582======
-trtype:  loop
-subnqn:  blktests-subsystem-581
-=====Discovery Log Entry 583======
-trtype:  loop
-subnqn:  blktests-subsystem-582
-=====Discovery Log Entry 584======
-trtype:  loop
-subnqn:  blktests-subsystem-583
-=====Discovery Log Entry 585======
-trtype:  loop
-subnqn:  blktests-subsystem-584
-=====Discovery Log Entry 586======
-trtype:  loop
-subnqn:  blktests-subsystem-585
-=====Discovery Log Entry 587======
-trtype:  loop
-subnqn:  blktests-subsystem-586
-=====Discovery Log Entry 588======
-trtype:  loop
-subnqn:  blktests-subsystem-587
-=====Discovery Log Entry 589======
-trtype:  loop
-subnqn:  blktests-subsystem-588
-=====Discovery Log Entry 590======
-trtype:  loop
-subnqn:  blktests-subsystem-589
-=====Discovery Log Entry 591======
-trtype:  loop
-subnqn:  blktests-subsystem-590
-=====Discovery Log Entry 592======
-trtype:  loop
-subnqn:  blktests-subsystem-591
-=====Discovery Log Entry 593======
-trtype:  loop
-subnqn:  blktests-subsystem-592
-=====Discovery Log Entry 594======
-trtype:  loop
-subnqn:  blktests-subsystem-593
-=====Discovery Log Entry 595======
-trtype:  loop
-subnqn:  blktests-subsystem-594
-=====Discovery Log Entry 596======
-trtype:  loop
-subnqn:  blktests-subsystem-595
-=====Discovery Log Entry 597======
-trtype:  loop
-subnqn:  blktests-subsystem-596
-=====Discovery Log Entry 598======
-trtype:  loop
-subnqn:  blktests-subsystem-597
-=====Discovery Log Entry 599======
-trtype:  loop
-subnqn:  blktests-subsystem-598
-=====Discovery Log Entry 600======
-trtype:  loop
-subnqn:  blktests-subsystem-599
-=====Discovery Log Entry 601======
-trtype:  loop
-subnqn:  blktests-subsystem-600
-=====Discovery Log Entry 602======
-trtype:  loop
-subnqn:  blktests-subsystem-601
-=====Discovery Log Entry 603======
-trtype:  loop
-subnqn:  blktests-subsystem-602
-=====Discovery Log Entry 604======
-trtype:  loop
-subnqn:  blktests-subsystem-603
-=====Discovery Log Entry 605======
-trtype:  loop
-subnqn:  blktests-subsystem-604
-=====Discovery Log Entry 606======
-trtype:  loop
-subnqn:  blktests-subsystem-605
-=====Discovery Log Entry 607======
-trtype:  loop
-subnqn:  blktests-subsystem-606
-=====Discovery Log Entry 608======
-trtype:  loop
-subnqn:  blktests-subsystem-607
-=====Discovery Log Entry 609======
-trtype:  loop
-subnqn:  blktests-subsystem-608
-=====Discovery Log Entry 610======
-trtype:  loop
-subnqn:  blktests-subsystem-609
-=====Discovery Log Entry 611======
-trtype:  loop
-subnqn:  blktests-subsystem-610
-=====Discovery Log Entry 612======
-trtype:  loop
-subnqn:  blktests-subsystem-611
-=====Discovery Log Entry 613======
-trtype:  loop
-subnqn:  blktests-subsystem-612
-=====Discovery Log Entry 614======
-trtype:  loop
-subnqn:  blktests-subsystem-613
-=====Discovery Log Entry 615======
-trtype:  loop
-subnqn:  blktests-subsystem-614
-=====Discovery Log Entry 616======
-trtype:  loop
-subnqn:  blktests-subsystem-615
-=====Discovery Log Entry 617======
-trtype:  loop
-subnqn:  blktests-subsystem-616
-=====Discovery Log Entry 618======
-trtype:  loop
-subnqn:  blktests-subsystem-617
-=====Discovery Log Entry 619======
-trtype:  loop
-subnqn:  blktests-subsystem-618
-=====Discovery Log Entry 620======
-trtype:  loop
-subnqn:  blktests-subsystem-619
-=====Discovery Log Entry 621======
-trtype:  loop
-subnqn:  blktests-subsystem-620
-=====Discovery Log Entry 622======
-trtype:  loop
-subnqn:  blktests-subsystem-621
-=====Discovery Log Entry 623======
-trtype:  loop
-subnqn:  blktests-subsystem-622
-=====Discovery Log Entry 624======
-trtype:  loop
-subnqn:  blktests-subsystem-623
-=====Discovery Log Entry 625======
-trtype:  loop
-subnqn:  blktests-subsystem-624
-=====Discovery Log Entry 626======
-trtype:  loop
-subnqn:  blktests-subsystem-625
-=====Discovery Log Entry 627======
-trtype:  loop
-subnqn:  blktests-subsystem-626
-=====Discovery Log Entry 628======
-trtype:  loop
-subnqn:  blktests-subsystem-627
-=====Discovery Log Entry 629======
-trtype:  loop
-subnqn:  blktests-subsystem-628
-=====Discovery Log Entry 630======
-trtype:  loop
-subnqn:  blktests-subsystem-629
-=====Discovery Log Entry 631======
-trtype:  loop
-subnqn:  blktests-subsystem-630
-=====Discovery Log Entry 632======
-trtype:  loop
-subnqn:  blktests-subsystem-631
-=====Discovery Log Entry 633======
-trtype:  loop
-subnqn:  blktests-subsystem-632
-=====Discovery Log Entry 634======
-trtype:  loop
-subnqn:  blktests-subsystem-633
-=====Discovery Log Entry 635======
-trtype:  loop
-subnqn:  blktests-subsystem-634
-=====Discovery Log Entry 636======
-trtype:  loop
-subnqn:  blktests-subsystem-635
-=====Discovery Log Entry 637======
-trtype:  loop
-subnqn:  blktests-subsystem-636
-=====Discovery Log Entry 638======
-trtype:  loop
-subnqn:  blktests-subsystem-637
-=====Discovery Log Entry 639======
-trtype:  loop
-subnqn:  blktests-subsystem-638
-=====Discovery Log Entry 640======
-trtype:  loop
-subnqn:  blktests-subsystem-639
-=====Discovery Log Entry 641======
-trtype:  loop
-subnqn:  blktests-subsystem-640
-=====Discovery Log Entry 642======
-trtype:  loop
-subnqn:  blktests-subsystem-641
-=====Discovery Log Entry 643======
-trtype:  loop
-subnqn:  blktests-subsystem-642
-=====Discovery Log Entry 644======
-trtype:  loop
-subnqn:  blktests-subsystem-643
-=====Discovery Log Entry 645======
-trtype:  loop
-subnqn:  blktests-subsystem-644
-=====Discovery Log Entry 646======
-trtype:  loop
-subnqn:  blktests-subsystem-645
-=====Discovery Log Entry 647======
-trtype:  loop
-subnqn:  blktests-subsystem-646
-=====Discovery Log Entry 648======
-trtype:  loop
-subnqn:  blktests-subsystem-647
-=====Discovery Log Entry 649======
-trtype:  loop
-subnqn:  blktests-subsystem-648
-=====Discovery Log Entry 650======
-trtype:  loop
-subnqn:  blktests-subsystem-649
-=====Discovery Log Entry 651======
-trtype:  loop
-subnqn:  blktests-subsystem-650
-=====Discovery Log Entry 652======
-trtype:  loop
-subnqn:  blktests-subsystem-651
-=====Discovery Log Entry 653======
-trtype:  loop
-subnqn:  blktests-subsystem-652
-=====Discovery Log Entry 654======
-trtype:  loop
-subnqn:  blktests-subsystem-653
-=====Discovery Log Entry 655======
-trtype:  loop
-subnqn:  blktests-subsystem-654
-=====Discovery Log Entry 656======
-trtype:  loop
-subnqn:  blktests-subsystem-655
-=====Discovery Log Entry 657======
-trtype:  loop
-subnqn:  blktests-subsystem-656
-=====Discovery Log Entry 658======
-trtype:  loop
-subnqn:  blktests-subsystem-657
-=====Discovery Log Entry 659======
-trtype:  loop
-subnqn:  blktests-subsystem-658
-=====Discovery Log Entry 660======
-trtype:  loop
-subnqn:  blktests-subsystem-659
-=====Discovery Log Entry 661======
-trtype:  loop
-subnqn:  blktests-subsystem-660
-=====Discovery Log Entry 662======
-trtype:  loop
-subnqn:  blktests-subsystem-661
-=====Discovery Log Entry 663======
-trtype:  loop
-subnqn:  blktests-subsystem-662
-=====Discovery Log Entry 664======
-trtype:  loop
-subnqn:  blktests-subsystem-663
-=====Discovery Log Entry 665======
-trtype:  loop
-subnqn:  blktests-subsystem-664
-=====Discovery Log Entry 666======
-trtype:  loop
-subnqn:  blktests-subsystem-665
-=====Discovery Log Entry 667======
-trtype:  loop
-subnqn:  blktests-subsystem-666
-=====Discovery Log Entry 668======
-trtype:  loop
-subnqn:  blktests-subsystem-667
-=====Discovery Log Entry 669======
-trtype:  loop
-subnqn:  blktests-subsystem-668
-=====Discovery Log Entry 670======
-trtype:  loop
-subnqn:  blktests-subsystem-669
-=====Discovery Log Entry 671======
-trtype:  loop
-subnqn:  blktests-subsystem-670
-=====Discovery Log Entry 672======
-trtype:  loop
-subnqn:  blktests-subsystem-671
-=====Discovery Log Entry 673======
-trtype:  loop
-subnqn:  blktests-subsystem-672
-=====Discovery Log Entry 674======
-trtype:  loop
-subnqn:  blktests-subsystem-673
-=====Discovery Log Entry 675======
-trtype:  loop
-subnqn:  blktests-subsystem-674
-=====Discovery Log Entry 676======
-trtype:  loop
-subnqn:  blktests-subsystem-675
-=====Discovery Log Entry 677======
-trtype:  loop
-subnqn:  blktests-subsystem-676
-=====Discovery Log Entry 678======
-trtype:  loop
-subnqn:  blktests-subsystem-677
-=====Discovery Log Entry 679======
-trtype:  loop
-subnqn:  blktests-subsystem-678
-=====Discovery Log Entry 680======
-trtype:  loop
-subnqn:  blktests-subsystem-679
-=====Discovery Log Entry 681======
-trtype:  loop
-subnqn:  blktests-subsystem-680
-=====Discovery Log Entry 682======
-trtype:  loop
-subnqn:  blktests-subsystem-681
-=====Discovery Log Entry 683======
-trtype:  loop
-subnqn:  blktests-subsystem-682
-=====Discovery Log Entry 684======
-trtype:  loop
-subnqn:  blktests-subsystem-683
-=====Discovery Log Entry 685======
-trtype:  loop
-subnqn:  blktests-subsystem-684
-=====Discovery Log Entry 686======
-trtype:  loop
-subnqn:  blktests-subsystem-685
-=====Discovery Log Entry 687======
-trtype:  loop
-subnqn:  blktests-subsystem-686
-=====Discovery Log Entry 688======
-trtype:  loop
-subnqn:  blktests-subsystem-687
-=====Discovery Log Entry 689======
-trtype:  loop
-subnqn:  blktests-subsystem-688
-=====Discovery Log Entry 690======
-trtype:  loop
-subnqn:  blktests-subsystem-689
-=====Discovery Log Entry 691======
-trtype:  loop
-subnqn:  blktests-subsystem-690
-=====Discovery Log Entry 692======
-trtype:  loop
-subnqn:  blktests-subsystem-691
-=====Discovery Log Entry 693======
-trtype:  loop
-subnqn:  blktests-subsystem-692
-=====Discovery Log Entry 694======
-trtype:  loop
-subnqn:  blktests-subsystem-693
-=====Discovery Log Entry 695======
-trtype:  loop
-subnqn:  blktests-subsystem-694
-=====Discovery Log Entry 696======
-trtype:  loop
-subnqn:  blktests-subsystem-695
-=====Discovery Log Entry 697======
-trtype:  loop
-subnqn:  blktests-subsystem-696
-=====Discovery Log Entry 698======
-trtype:  loop
-subnqn:  blktests-subsystem-697
-=====Discovery Log Entry 699======
-trtype:  loop
-subnqn:  blktests-subsystem-698
-=====Discovery Log Entry 700======
-trtype:  loop
-subnqn:  blktests-subsystem-699
-=====Discovery Log Entry 701======
-trtype:  loop
-subnqn:  blktests-subsystem-700
-=====Discovery Log Entry 702======
-trtype:  loop
-subnqn:  blktests-subsystem-701
-=====Discovery Log Entry 703======
-trtype:  loop
-subnqn:  blktests-subsystem-702
-=====Discovery Log Entry 704======
-trtype:  loop
-subnqn:  blktests-subsystem-703
-=====Discovery Log Entry 705======
-trtype:  loop
-subnqn:  blktests-subsystem-704
-=====Discovery Log Entry 706======
-trtype:  loop
-subnqn:  blktests-subsystem-705
-=====Discovery Log Entry 707======
-trtype:  loop
-subnqn:  blktests-subsystem-706
-=====Discovery Log Entry 708======
-trtype:  loop
-subnqn:  blktests-subsystem-707
-=====Discovery Log Entry 709======
-trtype:  loop
-subnqn:  blktests-subsystem-708
-=====Discovery Log Entry 710======
-trtype:  loop
-subnqn:  blktests-subsystem-709
-=====Discovery Log Entry 711======
-trtype:  loop
-subnqn:  blktests-subsystem-710
-=====Discovery Log Entry 712======
-trtype:  loop
-subnqn:  blktests-subsystem-711
-=====Discovery Log Entry 713======
-trtype:  loop
-subnqn:  blktests-subsystem-712
-=====Discovery Log Entry 714======
-trtype:  loop
-subnqn:  blktests-subsystem-713
-=====Discovery Log Entry 715======
-trtype:  loop
-subnqn:  blktests-subsystem-714
-=====Discovery Log Entry 716======
-trtype:  loop
-subnqn:  blktests-subsystem-715
-=====Discovery Log Entry 717======
-trtype:  loop
-subnqn:  blktests-subsystem-716
-=====Discovery Log Entry 718======
-trtype:  loop
-subnqn:  blktests-subsystem-717
-=====Discovery Log Entry 719======
-trtype:  loop
-subnqn:  blktests-subsystem-718
-=====Discovery Log Entry 720======
-trtype:  loop
-subnqn:  blktests-subsystem-719
-=====Discovery Log Entry 721======
-trtype:  loop
-subnqn:  blktests-subsystem-720
-=====Discovery Log Entry 722======
-trtype:  loop
-subnqn:  blktests-subsystem-721
-=====Discovery Log Entry 723======
-trtype:  loop
-subnqn:  blktests-subsystem-722
-=====Discovery Log Entry 724======
-trtype:  loop
-subnqn:  blktests-subsystem-723
-=====Discovery Log Entry 725======
-trtype:  loop
-subnqn:  blktests-subsystem-724
-=====Discovery Log Entry 726======
-trtype:  loop
-subnqn:  blktests-subsystem-725
-=====Discovery Log Entry 727======
-trtype:  loop
-subnqn:  blktests-subsystem-726
-=====Discovery Log Entry 728======
-trtype:  loop
-subnqn:  blktests-subsystem-727
-=====Discovery Log Entry 729======
-trtype:  loop
-subnqn:  blktests-subsystem-728
-=====Discovery Log Entry 730======
-trtype:  loop
-subnqn:  blktests-subsystem-729
-=====Discovery Log Entry 731======
-trtype:  loop
-subnqn:  blktests-subsystem-730
-=====Discovery Log Entry 732======
-trtype:  loop
-subnqn:  blktests-subsystem-731
-=====Discovery Log Entry 733======
-trtype:  loop
-subnqn:  blktests-subsystem-732
-=====Discovery Log Entry 734======
-trtype:  loop
-subnqn:  blktests-subsystem-733
-=====Discovery Log Entry 735======
-trtype:  loop
-subnqn:  blktests-subsystem-734
-=====Discovery Log Entry 736======
-trtype:  loop
-subnqn:  blktests-subsystem-735
-=====Discovery Log Entry 737======
-trtype:  loop
-subnqn:  blktests-subsystem-736
-=====Discovery Log Entry 738======
-trtype:  loop
-subnqn:  blktests-subsystem-737
-=====Discovery Log Entry 739======
-trtype:  loop
-subnqn:  blktests-subsystem-738
-=====Discovery Log Entry 740======
-trtype:  loop
-subnqn:  blktests-subsystem-739
-=====Discovery Log Entry 741======
-trtype:  loop
-subnqn:  blktests-subsystem-740
-=====Discovery Log Entry 742======
-trtype:  loop
-subnqn:  blktests-subsystem-741
-=====Discovery Log Entry 743======
-trtype:  loop
-subnqn:  blktests-subsystem-742
-=====Discovery Log Entry 744======
-trtype:  loop
-subnqn:  blktests-subsystem-743
-=====Discovery Log Entry 745======
-trtype:  loop
-subnqn:  blktests-subsystem-744
-=====Discovery Log Entry 746======
-trtype:  loop
-subnqn:  blktests-subsystem-745
-=====Discovery Log Entry 747======
-trtype:  loop
-subnqn:  blktests-subsystem-746
-=====Discovery Log Entry 748======
-trtype:  loop
-subnqn:  blktests-subsystem-747
-=====Discovery Log Entry 749======
-trtype:  loop
-subnqn:  blktests-subsystem-748
-=====Discovery Log Entry 750======
-trtype:  loop
-subnqn:  blktests-subsystem-749
-=====Discovery Log Entry 751======
-trtype:  loop
-subnqn:  blktests-subsystem-750
-=====Discovery Log Entry 752======
-trtype:  loop
-subnqn:  blktests-subsystem-751
-=====Discovery Log Entry 753======
-trtype:  loop
-subnqn:  blktests-subsystem-752
-=====Discovery Log Entry 754======
-trtype:  loop
-subnqn:  blktests-subsystem-753
-=====Discovery Log Entry 755======
-trtype:  loop
-subnqn:  blktests-subsystem-754
-=====Discovery Log Entry 756======
-trtype:  loop
-subnqn:  blktests-subsystem-755
-=====Discovery Log Entry 757======
-trtype:  loop
-subnqn:  blktests-subsystem-756
-=====Discovery Log Entry 758======
-trtype:  loop
-subnqn:  blktests-subsystem-757
-=====Discovery Log Entry 759======
-trtype:  loop
-subnqn:  blktests-subsystem-758
-=====Discovery Log Entry 760======
-trtype:  loop
-subnqn:  blktests-subsystem-759
-=====Discovery Log Entry 761======
-trtype:  loop
-subnqn:  blktests-subsystem-760
-=====Discovery Log Entry 762======
-trtype:  loop
-subnqn:  blktests-subsystem-761
-=====Discovery Log Entry 763======
-trtype:  loop
-subnqn:  blktests-subsystem-762
-=====Discovery Log Entry 764======
-trtype:  loop
-subnqn:  blktests-subsystem-763
-=====Discovery Log Entry 765======
-trtype:  loop
-subnqn:  blktests-subsystem-764
-=====Discovery Log Entry 766======
-trtype:  loop
-subnqn:  blktests-subsystem-765
-=====Discovery Log Entry 767======
-trtype:  loop
-subnqn:  blktests-subsystem-766
-=====Discovery Log Entry 768======
-trtype:  loop
-subnqn:  blktests-subsystem-767
-=====Discovery Log Entry 769======
-trtype:  loop
-subnqn:  blktests-subsystem-768
-=====Discovery Log Entry 770======
-trtype:  loop
-subnqn:  blktests-subsystem-769
-=====Discovery Log Entry 771======
-trtype:  loop
-subnqn:  blktests-subsystem-770
-=====Discovery Log Entry 772======
-trtype:  loop
-subnqn:  blktests-subsystem-771
-=====Discovery Log Entry 773======
-trtype:  loop
-subnqn:  blktests-subsystem-772
-=====Discovery Log Entry 774======
-trtype:  loop
-subnqn:  blktests-subsystem-773
-=====Discovery Log Entry 775======
-trtype:  loop
-subnqn:  blktests-subsystem-774
-=====Discovery Log Entry 776======
-trtype:  loop
-subnqn:  blktests-subsystem-775
-=====Discovery Log Entry 777======
-trtype:  loop
-subnqn:  blktests-subsystem-776
-=====Discovery Log Entry 778======
-trtype:  loop
-subnqn:  blktests-subsystem-777
-=====Discovery Log Entry 779======
-trtype:  loop
-subnqn:  blktests-subsystem-778
-=====Discovery Log Entry 780======
-trtype:  loop
-subnqn:  blktests-subsystem-779
-=====Discovery Log Entry 781======
-trtype:  loop
-subnqn:  blktests-subsystem-780
-=====Discovery Log Entry 782======
-trtype:  loop
-subnqn:  blktests-subsystem-781
-=====Discovery Log Entry 783======
-trtype:  loop
-subnqn:  blktests-subsystem-782
-=====Discovery Log Entry 784======
-trtype:  loop
-subnqn:  blktests-subsystem-783
-=====Discovery Log Entry 785======
-trtype:  loop
-subnqn:  blktests-subsystem-784
-=====Discovery Log Entry 786======
-trtype:  loop
-subnqn:  blktests-subsystem-785
-=====Discovery Log Entry 787======
-trtype:  loop
-subnqn:  blktests-subsystem-786
-=====Discovery Log Entry 788======
-trtype:  loop
-subnqn:  blktests-subsystem-787
-=====Discovery Log Entry 789======
-trtype:  loop
-subnqn:  blktests-subsystem-788
-=====Discovery Log Entry 790======
-trtype:  loop
-subnqn:  blktests-subsystem-789
-=====Discovery Log Entry 791======
-trtype:  loop
-subnqn:  blktests-subsystem-790
-=====Discovery Log Entry 792======
-trtype:  loop
-subnqn:  blktests-subsystem-791
-=====Discovery Log Entry 793======
-trtype:  loop
-subnqn:  blktests-subsystem-792
-=====Discovery Log Entry 794======
-trtype:  loop
-subnqn:  blktests-subsystem-793
-=====Discovery Log Entry 795======
-trtype:  loop
-subnqn:  blktests-subsystem-794
-=====Discovery Log Entry 796======
-trtype:  loop
-subnqn:  blktests-subsystem-795
-=====Discovery Log Entry 797======
-trtype:  loop
-subnqn:  blktests-subsystem-796
-=====Discovery Log Entry 798======
-trtype:  loop
-subnqn:  blktests-subsystem-797
-=====Discovery Log Entry 799======
-trtype:  loop
-subnqn:  blktests-subsystem-798
-=====Discovery Log Entry 800======
-trtype:  loop
-subnqn:  blktests-subsystem-799
-=====Discovery Log Entry 801======
-trtype:  loop
-subnqn:  blktests-subsystem-800
-=====Discovery Log Entry 802======
-trtype:  loop
-subnqn:  blktests-subsystem-801
-=====Discovery Log Entry 803======
-trtype:  loop
-subnqn:  blktests-subsystem-802
-=====Discovery Log Entry 804======
-trtype:  loop
-subnqn:  blktests-subsystem-803
-=====Discovery Log Entry 805======
-trtype:  loop
-subnqn:  blktests-subsystem-804
-=====Discovery Log Entry 806======
-trtype:  loop
-subnqn:  blktests-subsystem-805
-=====Discovery Log Entry 807======
-trtype:  loop
-subnqn:  blktests-subsystem-806
-=====Discovery Log Entry 808======
-trtype:  loop
-subnqn:  blktests-subsystem-807
-=====Discovery Log Entry 809======
-trtype:  loop
-subnqn:  blktests-subsystem-808
-=====Discovery Log Entry 810======
-trtype:  loop
-subnqn:  blktests-subsystem-809
-=====Discovery Log Entry 811======
-trtype:  loop
-subnqn:  blktests-subsystem-810
-=====Discovery Log Entry 812======
-trtype:  loop
-subnqn:  blktests-subsystem-811
-=====Discovery Log Entry 813======
-trtype:  loop
-subnqn:  blktests-subsystem-812
-=====Discovery Log Entry 814======
-trtype:  loop
-subnqn:  blktests-subsystem-813
-=====Discovery Log Entry 815======
-trtype:  loop
-subnqn:  blktests-subsystem-814
-=====Discovery Log Entry 816======
-trtype:  loop
-subnqn:  blktests-subsystem-815
-=====Discovery Log Entry 817======
-trtype:  loop
-subnqn:  blktests-subsystem-816
-=====Discovery Log Entry 818======
-trtype:  loop
-subnqn:  blktests-subsystem-817
-=====Discovery Log Entry 819======
-trtype:  loop
-subnqn:  blktests-subsystem-818
-=====Discovery Log Entry 820======
-trtype:  loop
-subnqn:  blktests-subsystem-819
-=====Discovery Log Entry 821======
-trtype:  loop
-subnqn:  blktests-subsystem-820
-=====Discovery Log Entry 822======
-trtype:  loop
-subnqn:  blktests-subsystem-821
-=====Discovery Log Entry 823======
-trtype:  loop
-subnqn:  blktests-subsystem-822
-=====Discovery Log Entry 824======
-trtype:  loop
-subnqn:  blktests-subsystem-823
-=====Discovery Log Entry 825======
-trtype:  loop
-subnqn:  blktests-subsystem-824
-=====Discovery Log Entry 826======
-trtype:  loop
-subnqn:  blktests-subsystem-825
-=====Discovery Log Entry 827======
-trtype:  loop
-subnqn:  blktests-subsystem-826
-=====Discovery Log Entry 828======
-trtype:  loop
-subnqn:  blktests-subsystem-827
-=====Discovery Log Entry 829======
-trtype:  loop
-subnqn:  blktests-subsystem-828
-=====Discovery Log Entry 830======
-trtype:  loop
-subnqn:  blktests-subsystem-829
-=====Discovery Log Entry 831======
-trtype:  loop
-subnqn:  blktests-subsystem-830
-=====Discovery Log Entry 832======
-trtype:  loop
-subnqn:  blktests-subsystem-831
-=====Discovery Log Entry 833======
-trtype:  loop
-subnqn:  blktests-subsystem-832
-=====Discovery Log Entry 834======
-trtype:  loop
-subnqn:  blktests-subsystem-833
-=====Discovery Log Entry 835======
-trtype:  loop
-subnqn:  blktests-subsystem-834
-=====Discovery Log Entry 836======
-trtype:  loop
-subnqn:  blktests-subsystem-835
-=====Discovery Log Entry 837======
-trtype:  loop
-subnqn:  blktests-subsystem-836
-=====Discovery Log Entry 838======
-trtype:  loop
-subnqn:  blktests-subsystem-837
-=====Discovery Log Entry 839======
-trtype:  loop
-subnqn:  blktests-subsystem-838
-=====Discovery Log Entry 840======
-trtype:  loop
-subnqn:  blktests-subsystem-839
-=====Discovery Log Entry 841======
-trtype:  loop
-subnqn:  blktests-subsystem-840
-=====Discovery Log Entry 842======
-trtype:  loop
-subnqn:  blktests-subsystem-841
-=====Discovery Log Entry 843======
-trtype:  loop
-subnqn:  blktests-subsystem-842
-=====Discovery Log Entry 844======
-trtype:  loop
-subnqn:  blktests-subsystem-843
-=====Discovery Log Entry 845======
-trtype:  loop
-subnqn:  blktests-subsystem-844
-=====Discovery Log Entry 846======
-trtype:  loop
-subnqn:  blktests-subsystem-845
-=====Discovery Log Entry 847======
-trtype:  loop
-subnqn:  blktests-subsystem-846
-=====Discovery Log Entry 848======
-trtype:  loop
-subnqn:  blktests-subsystem-847
-=====Discovery Log Entry 849======
-trtype:  loop
-subnqn:  blktests-subsystem-848
-=====Discovery Log Entry 850======
-trtype:  loop
-subnqn:  blktests-subsystem-849
-=====Discovery Log Entry 851======
-trtype:  loop
-subnqn:  blktests-subsystem-850
-=====Discovery Log Entry 852======
-trtype:  loop
-subnqn:  blktests-subsystem-851
-=====Discovery Log Entry 853======
-trtype:  loop
-subnqn:  blktests-subsystem-852
-=====Discovery Log Entry 854======
-trtype:  loop
-subnqn:  blktests-subsystem-853
-=====Discovery Log Entry 855======
-trtype:  loop
-subnqn:  blktests-subsystem-854
-=====Discovery Log Entry 856======
-trtype:  loop
-subnqn:  blktests-subsystem-855
-=====Discovery Log Entry 857======
-trtype:  loop
-subnqn:  blktests-subsystem-856
-=====Discovery Log Entry 858======
-trtype:  loop
-subnqn:  blktests-subsystem-857
-=====Discovery Log Entry 859======
-trtype:  loop
-subnqn:  blktests-subsystem-858
-=====Discovery Log Entry 860======
-trtype:  loop
-subnqn:  blktests-subsystem-859
-=====Discovery Log Entry 861======
-trtype:  loop
-subnqn:  blktests-subsystem-860
-=====Discovery Log Entry 862======
-trtype:  loop
-subnqn:  blktests-subsystem-861
-=====Discovery Log Entry 863======
-trtype:  loop
-subnqn:  blktests-subsystem-862
-=====Discovery Log Entry 864======
-trtype:  loop
-subnqn:  blktests-subsystem-863
-=====Discovery Log Entry 865======
-trtype:  loop
-subnqn:  blktests-subsystem-864
-=====Discovery Log Entry 866======
-trtype:  loop
-subnqn:  blktests-subsystem-865
-=====Discovery Log Entry 867======
-trtype:  loop
-subnqn:  blktests-subsystem-866
-=====Discovery Log Entry 868======
-trtype:  loop
-subnqn:  blktests-subsystem-867
-=====Discovery Log Entry 869======
-trtype:  loop
-subnqn:  blktests-subsystem-868
-=====Discovery Log Entry 870======
-trtype:  loop
-subnqn:  blktests-subsystem-869
-=====Discovery Log Entry 871======
-trtype:  loop
-subnqn:  blktests-subsystem-870
-=====Discovery Log Entry 872======
-trtype:  loop
-subnqn:  blktests-subsystem-871
-=====Discovery Log Entry 873======
-trtype:  loop
-subnqn:  blktests-subsystem-872
-=====Discovery Log Entry 874======
-trtype:  loop
-subnqn:  blktests-subsystem-873
-=====Discovery Log Entry 875======
-trtype:  loop
-subnqn:  blktests-subsystem-874
-=====Discovery Log Entry 876======
-trtype:  loop
-subnqn:  blktests-subsystem-875
-=====Discovery Log Entry 877======
-trtype:  loop
-subnqn:  blktests-subsystem-876
-=====Discovery Log Entry 878======
-trtype:  loop
-subnqn:  blktests-subsystem-877
-=====Discovery Log Entry 879======
-trtype:  loop
-subnqn:  blktests-subsystem-878
-=====Discovery Log Entry 880======
-trtype:  loop
-subnqn:  blktests-subsystem-879
-=====Discovery Log Entry 881======
-trtype:  loop
-subnqn:  blktests-subsystem-880
-=====Discovery Log Entry 882======
-trtype:  loop
-subnqn:  blktests-subsystem-881
-=====Discovery Log Entry 883======
-trtype:  loop
-subnqn:  blktests-subsystem-882
-=====Discovery Log Entry 884======
-trtype:  loop
-subnqn:  blktests-subsystem-883
-=====Discovery Log Entry 885======
-trtype:  loop
-subnqn:  blktests-subsystem-884
-=====Discovery Log Entry 886======
-trtype:  loop
-subnqn:  blktests-subsystem-885
-=====Discovery Log Entry 887======
-trtype:  loop
-subnqn:  blktests-subsystem-886
-=====Discovery Log Entry 888======
-trtype:  loop
-subnqn:  blktests-subsystem-887
-=====Discovery Log Entry 889======
-trtype:  loop
-subnqn:  blktests-subsystem-888
-=====Discovery Log Entry 890======
-trtype:  loop
-subnqn:  blktests-subsystem-889
-=====Discovery Log Entry 891======
-trtype:  loop
-subnqn:  blktests-subsystem-890
-=====Discovery Log Entry 892======
-trtype:  loop
-subnqn:  blktests-subsystem-891
-=====Discovery Log Entry 893======
-trtype:  loop
-subnqn:  blktests-subsystem-892
-=====Discovery Log Entry 894======
-trtype:  loop
-subnqn:  blktests-subsystem-893
-=====Discovery Log Entry 895======
-trtype:  loop
-subnqn:  blktests-subsystem-894
-=====Discovery Log Entry 896======
-trtype:  loop
-subnqn:  blktests-subsystem-895
-=====Discovery Log Entry 897======
-trtype:  loop
-subnqn:  blktests-subsystem-896
-=====Discovery Log Entry 898======
-trtype:  loop
-subnqn:  blktests-subsystem-897
-=====Discovery Log Entry 899======
-trtype:  loop
-subnqn:  blktests-subsystem-898
-=====Discovery Log Entry 900======
-trtype:  loop
-subnqn:  blktests-subsystem-899
-=====Discovery Log Entry 901======
-trtype:  loop
-subnqn:  blktests-subsystem-900
-=====Discovery Log Entry 902======
-trtype:  loop
-subnqn:  blktests-subsystem-901
-=====Discovery Log Entry 903======
-trtype:  loop
-subnqn:  blktests-subsystem-902
-=====Discovery Log Entry 904======
-trtype:  loop
-subnqn:  blktests-subsystem-903
-=====Discovery Log Entry 905======
-trtype:  loop
-subnqn:  blktests-subsystem-904
-=====Discovery Log Entry 906======
-trtype:  loop
-subnqn:  blktests-subsystem-905
-=====Discovery Log Entry 907======
-trtype:  loop
-subnqn:  blktests-subsystem-906
-=====Discovery Log Entry 908======
-trtype:  loop
-subnqn:  blktests-subsystem-907
-=====Discovery Log Entry 909======
-trtype:  loop
-subnqn:  blktests-subsystem-908
-=====Discovery Log Entry 910======
-trtype:  loop
-subnqn:  blktests-subsystem-909
-=====Discovery Log Entry 911======
-trtype:  loop
-subnqn:  blktests-subsystem-910
-=====Discovery Log Entry 912======
-trtype:  loop
-subnqn:  blktests-subsystem-911
-=====Discovery Log Entry 913======
-trtype:  loop
-subnqn:  blktests-subsystem-912
-=====Discovery Log Entry 914======
-trtype:  loop
-subnqn:  blktests-subsystem-913
-=====Discovery Log Entry 915======
-trtype:  loop
-subnqn:  blktests-subsystem-914
-=====Discovery Log Entry 916======
-trtype:  loop
-subnqn:  blktests-subsystem-915
-=====Discovery Log Entry 917======
-trtype:  loop
-subnqn:  blktests-subsystem-916
-=====Discovery Log Entry 918======
-trtype:  loop
-subnqn:  blktests-subsystem-917
-=====Discovery Log Entry 919======
-trtype:  loop
-subnqn:  blktests-subsystem-918
-=====Discovery Log Entry 920======
-trtype:  loop
-subnqn:  blktests-subsystem-919
-=====Discovery Log Entry 921======
-trtype:  loop
-subnqn:  blktests-subsystem-920
-=====Discovery Log Entry 922======
-trtype:  loop
-subnqn:  blktests-subsystem-921
-=====Discovery Log Entry 923======
-trtype:  loop
-subnqn:  blktests-subsystem-922
-=====Discovery Log Entry 924======
-trtype:  loop
-subnqn:  blktests-subsystem-923
-=====Discovery Log Entry 925======
-trtype:  loop
-subnqn:  blktests-subsystem-924
-=====Discovery Log Entry 926======
-trtype:  loop
-subnqn:  blktests-subsystem-925
-=====Discovery Log Entry 927======
-trtype:  loop
-subnqn:  blktests-subsystem-926
-=====Discovery Log Entry 928======
-trtype:  loop
-subnqn:  blktests-subsystem-927
-=====Discovery Log Entry 929======
-trtype:  loop
-subnqn:  blktests-subsystem-928
-=====Discovery Log Entry 930======
-trtype:  loop
-subnqn:  blktests-subsystem-929
-=====Discovery Log Entry 931======
-trtype:  loop
-subnqn:  blktests-subsystem-930
-=====Discovery Log Entry 932======
-trtype:  loop
-subnqn:  blktests-subsystem-931
-=====Discovery Log Entry 933======
-trtype:  loop
-subnqn:  blktests-subsystem-932
-=====Discovery Log Entry 934======
-trtype:  loop
-subnqn:  blktests-subsystem-933
-=====Discovery Log Entry 935======
-trtype:  loop
-subnqn:  blktests-subsystem-934
-=====Discovery Log Entry 936======
-trtype:  loop
-subnqn:  blktests-subsystem-935
-=====Discovery Log Entry 937======
-trtype:  loop
-subnqn:  blktests-subsystem-936
-=====Discovery Log Entry 938======
-trtype:  loop
-subnqn:  blktests-subsystem-937
-=====Discovery Log Entry 939======
-trtype:  loop
-subnqn:  blktests-subsystem-938
-=====Discovery Log Entry 940======
-trtype:  loop
-subnqn:  blktests-subsystem-939
-=====Discovery Log Entry 941======
-trtype:  loop
-subnqn:  blktests-subsystem-940
-=====Discovery Log Entry 942======
-trtype:  loop
-subnqn:  blktests-subsystem-941
-=====Discovery Log Entry 943======
-trtype:  loop
-subnqn:  blktests-subsystem-942
-=====Discovery Log Entry 944======
-trtype:  loop
-subnqn:  blktests-subsystem-943
-=====Discovery Log Entry 945======
-trtype:  loop
-subnqn:  blktests-subsystem-944
-=====Discovery Log Entry 946======
-trtype:  loop
-subnqn:  blktests-subsystem-945
-=====Discovery Log Entry 947======
-trtype:  loop
-subnqn:  blktests-subsystem-946
-=====Discovery Log Entry 948======
-trtype:  loop
-subnqn:  blktests-subsystem-947
-=====Discovery Log Entry 949======
-trtype:  loop
-subnqn:  blktests-subsystem-948
-=====Discovery Log Entry 950======
-trtype:  loop
-subnqn:  blktests-subsystem-949
-=====Discovery Log Entry 951======
-trtype:  loop
-subnqn:  blktests-subsystem-950
-=====Discovery Log Entry 952======
-trtype:  loop
-subnqn:  blktests-subsystem-951
-=====Discovery Log Entry 953======
-trtype:  loop
-subnqn:  blktests-subsystem-952
-=====Discovery Log Entry 954======
-trtype:  loop
-subnqn:  blktests-subsystem-953
-=====Discovery Log Entry 955======
-trtype:  loop
-subnqn:  blktests-subsystem-954
-=====Discovery Log Entry 956======
-trtype:  loop
-subnqn:  blktests-subsystem-955
-=====Discovery Log Entry 957======
-trtype:  loop
-subnqn:  blktests-subsystem-956
-=====Discovery Log Entry 958======
-trtype:  loop
-subnqn:  blktests-subsystem-957
-=====Discovery Log Entry 959======
-trtype:  loop
-subnqn:  blktests-subsystem-958
-=====Discovery Log Entry 960======
-trtype:  loop
-subnqn:  blktests-subsystem-959
-=====Discovery Log Entry 961======
-trtype:  loop
-subnqn:  blktests-subsystem-960
-=====Discovery Log Entry 962======
-trtype:  loop
-subnqn:  blktests-subsystem-961
-=====Discovery Log Entry 963======
-trtype:  loop
-subnqn:  blktests-subsystem-962
-=====Discovery Log Entry 964======
-trtype:  loop
-subnqn:  blktests-subsystem-963
-=====Discovery Log Entry 965======
-trtype:  loop
-subnqn:  blktests-subsystem-964
-=====Discovery Log Entry 966======
-trtype:  loop
-subnqn:  blktests-subsystem-965
-=====Discovery Log Entry 967======
-trtype:  loop
-subnqn:  blktests-subsystem-966
-=====Discovery Log Entry 968======
-trtype:  loop
-subnqn:  blktests-subsystem-967
-=====Discovery Log Entry 969======
-trtype:  loop
-subnqn:  blktests-subsystem-968
-=====Discovery Log Entry 970======
-trtype:  loop
-subnqn:  blktests-subsystem-969
-=====Discovery Log Entry 971======
-trtype:  loop
-subnqn:  blktests-subsystem-970
-=====Discovery Log Entry 972======
-trtype:  loop
-subnqn:  blktests-subsystem-971
-=====Discovery Log Entry 973======
-trtype:  loop
-subnqn:  blktests-subsystem-972
-=====Discovery Log Entry 974======
-trtype:  loop
-subnqn:  blktests-subsystem-973
-=====Discovery Log Entry 975======
-trtype:  loop
-subnqn:  blktests-subsystem-974
-=====Discovery Log Entry 976======
-trtype:  loop
-subnqn:  blktests-subsystem-975
-=====Discovery Log Entry 977======
-trtype:  loop
-subnqn:  blktests-subsystem-976
-=====Discovery Log Entry 978======
-trtype:  loop
-subnqn:  blktests-subsystem-977
-=====Discovery Log Entry 979======
-trtype:  loop
-subnqn:  blktests-subsystem-978
-=====Discovery Log Entry 980======
-trtype:  loop
-subnqn:  blktests-subsystem-979
-=====Discovery Log Entry 981======
-trtype:  loop
-subnqn:  blktests-subsystem-980
-=====Discovery Log Entry 982======
-trtype:  loop
-subnqn:  blktests-subsystem-981
-=====Discovery Log Entry 983======
-trtype:  loop
-subnqn:  blktests-subsystem-982
-=====Discovery Log Entry 984======
-trtype:  loop
-subnqn:  blktests-subsystem-983
-=====Discovery Log Entry 985======
-trtype:  loop
-subnqn:  blktests-subsystem-984
-=====Discovery Log Entry 986======
-trtype:  loop
-subnqn:  blktests-subsystem-985
-=====Discovery Log Entry 987======
-trtype:  loop
-subnqn:  blktests-subsystem-986
-=====Discovery Log Entry 988======
-trtype:  loop
-subnqn:  blktests-subsystem-987
-=====Discovery Log Entry 989======
-trtype:  loop
-subnqn:  blktests-subsystem-988
-=====Discovery Log Entry 990======
-trtype:  loop
-subnqn:  blktests-subsystem-989
-=====Discovery Log Entry 991======
-trtype:  loop
-subnqn:  blktests-subsystem-990
-=====Discovery Log Entry 992======
-trtype:  loop
-subnqn:  blktests-subsystem-991
-=====Discovery Log Entry 993======
-trtype:  loop
-subnqn:  blktests-subsystem-992
-=====Discovery Log Entry 994======
-trtype:  loop
-subnqn:  blktests-subsystem-993
-=====Discovery Log Entry 995======
-trtype:  loop
-subnqn:  blktests-subsystem-994
-=====Discovery Log Entry 996======
-trtype:  loop
-subnqn:  blktests-subsystem-995
-=====Discovery Log Entry 997======
-trtype:  loop
-subnqn:  blktests-subsystem-996
-=====Discovery Log Entry 998======
-trtype:  loop
-subnqn:  blktests-subsystem-997
-=====Discovery Log Entry 999======
-trtype:  loop
-subnqn:  blktests-subsystem-998
-=====Discovery Log Entry 1000======
-trtype:  loop
-subnqn:  blktests-subsystem-999
 Test complete
diff --git a/tests/nvme/030 b/tests/nvme/030
index 20fef696e565..cfcdcbe6be23 100755
--- a/tests/nvme/030
+++ b/tests/nvme/030
@@ -15,20 +15,6 @@ requires() {
 	_require_nvme_trtype_is_fabrics
 }
 
-
-checkgenctr() {
-	local last=$1
-	local msg=$2
-	local genctr
-
-	genctr=$(_discovery_genctr)
-	if (( "${genctr}" <= "${last}" )); then
-		echo "Generation counter not incremented when ${msg} (${genctr} <= ${last})"
-	fi
-
-	echo "${genctr}"
-}
-
 test() {
 	local port
 	local genctr
@@ -48,20 +34,20 @@ test() {
 	_create_nvmet_subsystem "${subsys}2" "$(losetup -f)"
 	_add_nvmet_subsys_to_port "${port}" "${subsys}2"
 
-	genctr=$(checkgenctr "${genctr}" "adding a subsystem to a port")
+	genctr=$(_check_genctr "${genctr}" "adding a subsystem to a port")
 
 	echo 0 > "${NVMET_CFS}/subsystems/${subsys}2/attr_allow_any_host"
 
-	genctr=$(checkgenctr "${genctr}" "clearing attr_allow_any_host")
+	genctr=$(_check_genctr "${genctr}" "clearing attr_allow_any_host")
 
 	echo 1 > "${NVMET_CFS}/subsystems/${subsys}2/attr_allow_any_host"
 
-	genctr=$(checkgenctr "${genctr}" "setting attr_allow_any_host")
+	genctr=$(_check_genctr "${genctr}" "setting attr_allow_any_host")
 
 	_remove_nvmet_subsystem_from_port "${port}" "${subsys}2"
 	_remove_nvmet_subsystem "${subsys}2"
 
-	genctr=$(checkgenctr "${genctr}" "removing a subsystem from a port")
+	genctr=$(_check_genctr "${genctr}" "removing a subsystem from a port")
 
 	_remove_nvmet_subsystem_from_port "${port}" "${subsys}1"
 	_remove_nvmet_subsystem "${subsys}1"
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 172f510527ed..2aa34fb0c9b8 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -755,6 +755,19 @@ _discovery_genctr() {
 		sed -n -e 's/^.*Generation counter \([0-9]\+\).*$/\1/p'
 }
 
+_check_genctr() {
+	local last=$1
+	local msg=$2
+	local genctr
+
+	genctr=$(_discovery_genctr)
+	if (( "${genctr}" <= "${last}" )); then
+		echo "Generation counter not incremented when ${msg} (${genctr} <= ${last})"
+	fi
+
+	echo "${genctr}"
+}
+
 declare -A NS_DEV_FAULT_INJECT_SAVE
 declare -A CTRL_DEV_FAULT_INJECT_SAVE
 
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable
  2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
                   ` (7 preceding siblings ...)
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc Daniel Wagner
@ 2023-04-21  6:05 ` Daniel Wagner
  2023-04-21  6:38   ` Hannes Reinecke
  2023-04-28  4:12   ` Shinichiro Kawasaki
  8 siblings, 2 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:05 UTC (permalink / raw)
  To: linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki, Daniel Wagner

Some tests hard code high values of iterations. This makes them run
relatively long compared to the other tests. Introduce a new environment
variable nvme_num_iter to allow tune the runtime.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
 tests/nvme/002 | 2 +-
 tests/nvme/016 | 2 +-
 tests/nvme/017 | 2 +-
 tests/nvme/rc  | 1 +
 4 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/tests/nvme/002 b/tests/nvme/002
index 6b8484844b4d..c28035483514 100755
--- a/tests/nvme/002
+++ b/tests/nvme/002
@@ -20,7 +20,7 @@ test() {
 
 	_setup_nvmet
 
-	local iterations=1000
+	local iterations="${nvme_num_iter}"
 	local port
 	port="$(_create_nvmet_port "${nvme_trtype}")"
 
diff --git a/tests/nvme/016 b/tests/nvme/016
index 4eba30223a08..c0c31a55b190 100755
--- a/tests/nvme/016
+++ b/tests/nvme/016
@@ -17,7 +17,7 @@ test() {
 	echo "Running ${TEST_NAME}"
 
 	local port
-	local iterations=1000
+	local iterations="${nvme_num_iter}"
 	local loop_dev
 	local subsys_nqn="blktests-subsystem-1"
 
diff --git a/tests/nvme/017 b/tests/nvme/017
index 0248aee9bc41..e1674508f654 100755
--- a/tests/nvme/017
+++ b/tests/nvme/017
@@ -18,7 +18,7 @@ test() {
 
 	local port
 	local file_path
-	local iterations=1000
+	local iterations="${nvme_num_iter}"
 	local subsys_name="blktests-subsystem-1"
 
 	_setup_nvmet
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 2aa34fb0c9b8..bb135502220a 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -18,6 +18,7 @@ def_hostnqn="$(cat /etc/nvme/hostnqn 2> /dev/null)"
 def_hostid="$(cat /etc/nvme/hostid 2> /dev/null)"
 nvme_trtype=${nvme_trtype:-"loop"}
 nvme_img_size=${nvme_img_size:-"350M"}
+nvme_num_iter=${nvme_num_iter:-"100"}
 
 _nvme_requires() {
 	_have_program nvme
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test Daniel Wagner
@ 2023-04-21  6:23   ` Hannes Reinecke
  2023-04-28  2:44   ` Shinichiro Kawasaki
  1 sibling, 0 replies; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:23 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:04, Daniel Wagner wrote:
> Read the block device sizes instead hard coding them.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   tests/nvme/014 | 10 +++++++++-
>   tests/nvme/015 | 10 +++++++++-
>   2 files changed, 18 insertions(+), 2 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io Daniel Wagner
@ 2023-04-21  6:27   ` Hannes Reinecke
  2023-04-21  6:54     ` Daniel Wagner
  2023-05-02 13:19     ` Daniel Wagner
  2023-04-28  2:59   ` Shinichiro Kawasaki
  1 sibling, 2 replies; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:27 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:04, Daniel Wagner wrote:
> Make the size argument optional by reading the filesystem info. The
> caller doesn't have to guess (or calculate) how big the max IO size.
> The log data structure of XFS is reducing the capacity.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   common/xfs     | 6 ++++++
>   tests/nvme/012 | 2 +-
>   tests/nvme/013 | 2 +-
>   tests/nvme/035 | 2 +-
>   4 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/common/xfs b/common/xfs
> index 2c5d96164ac1..ec35599e017b 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -27,6 +27,12 @@ _xfs_run_fio_verify_io() {
>   
>   	_xfs_mkfs_and_mount "${bdev}" "${mount_dir}" >> "${FULL}" 2>&1
>   
> +	if [[ -z "${sz}" ]]; then
> +		local avail
> +		avail="$(df --output=avail "${mount_dir}" | awk 'NR==2 {print $1}')"

df --output=avail "${mount_dir}" | tail -1

> +		sz="$(printf "%d" $((avail / 1024 - 1 )))m"

sz=$((avail / 1024 - 1))

> +	fi
> +
>   	_run_fio_verify_io --size="$sz" --directory="${mount_dir}/"

_run_fio_verify_io --size="${sz}m" --directory="${mount_dir}/"

>   
>   	umount "${mount_dir}" >> "${FULL}" 2>&1
> diff --git a/tests/nvme/012 b/tests/nvme/012
> index e60082c2e751..c9d24388306d 100755
> --- a/tests/nvme/012
> +++ b/tests/nvme/012
> @@ -44,7 +44,7 @@ test() {
>   	cat "/sys/block/${nvmedev}n1/uuid"
>   	cat "/sys/block/${nvmedev}n1/wwid"
>   
> -	_xfs_run_fio_verify_io "/dev/${nvmedev}n1" "900m"
> +	_xfs_run_fio_verify_io "/dev/${nvmedev}n1"
>   
>   	_nvme_disconnect_subsys "${subsys_name}"
>   
> diff --git a/tests/nvme/013 b/tests/nvme/013
> index 9d60a7df4577..265b6968fd34 100755
> --- a/tests/nvme/013
> +++ b/tests/nvme/013
> @@ -41,7 +41,7 @@ test() {
>   	cat "/sys/block/${nvmedev}n1/uuid"
>   	cat "/sys/block/${nvmedev}n1/wwid"
>   
> -	_xfs_run_fio_verify_io "/dev/${nvmedev}n1" "900m"
> +	_xfs_run_fio_verify_io "/dev/${nvmedev}n1"
>   
>   	_nvme_disconnect_subsys "${subsys_name}"
>   
> diff --git a/tests/nvme/035 b/tests/nvme/035
> index eb1024edddbf..8b485bc8e682 100755
> --- a/tests/nvme/035
> +++ b/tests/nvme/035
> @@ -32,7 +32,7 @@ test_device() {
>   	port=$(_nvmet_passthru_target_setup "${subsys}")
>   	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
>   
> -	_xfs_run_fio_verify_io "${nsdev}" "900m"
> +	_xfs_run_fio_verify_io "${nsdev}"
>   
>   	_nvme_disconnect_subsys "${subsys}"
>   	_nvmet_passthru_target_cleanup "${port}" "${subsys}"

Otherwise looks good.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs Daniel Wagner
@ 2023-04-21  6:29   ` Hannes Reinecke
  2023-04-21  6:57     ` Daniel Wagner
  0 siblings, 1 reply; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:29 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:05, Daniel Wagner wrote:
> The fio jobs are supposed to run long in background during the test.
> Instead relying on a job size use explicit runtime for this.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   tests/nvme/032 | 2 +-
>   tests/nvme/040 | 3 ++-
>   2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/nvme/032 b/tests/nvme/032
> index 017d4a339971..81e074cc11bc 100755
> --- a/tests/nvme/032
> +++ b/tests/nvme/032
> @@ -39,7 +39,7 @@ test_device() {
>   
>   	# start fio job
>   	_run_fio_rand_io --filename="$TEST_DEV" --size=1g \
> -		--group_reporting  &> /dev/null &
> +		--group_reporting --time_based --runtime=1m &> /dev/null &
>   
>   	sleep 5
>   
> diff --git a/tests/nvme/040 b/tests/nvme/040
> index 04bd726cd309..8d29f905adb5 100755
> --- a/tests/nvme/040
> +++ b/tests/nvme/040
> @@ -38,7 +38,8 @@ test() {
>   	# start fio job
>   	echo "starting background fio"
>   	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
> -		--group_reporting --ramp_time=5  &> /dev/null &
> +		--group_reporting --ramp_time=5 \
> +		--time_based --runtime=1m &> /dev/null &
>   	sleep 5
>   
>   	# do reset/remove operation

Wouldn't it be better to let _run_fio_rand_io pick the correct size?

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable Daniel Wagner
@ 2023-04-21  6:31   ` Hannes Reinecke
  2023-04-28  3:08   ` Shinichiro Kawasaki
  1 sibling, 0 replies; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:31 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:05, Daniel Wagner wrote:
> The reduce the overall runtime of the testsuite by making the default
> size of the test image small. For verification jobs, the default can be
> overwriten via the newly introduced nvme_img_size environment variable.
> 
> The default size of 350M is the minimum requirement of nvme/012 and
> nvme/013. These tests rely on an xfs filesystem which requires this
> minimum size.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   tests/nvme/004 | 2 +-
>   tests/nvme/005 | 2 +-
>   tests/nvme/006 | 2 +-
>   tests/nvme/007 | 2 +-
>   tests/nvme/008 | 2 +-
>   tests/nvme/009 | 2 +-
>   tests/nvme/010 | 5 +++--
>   tests/nvme/011 | 5 +++--
>   tests/nvme/012 | 2 +-
>   tests/nvme/013 | 2 +-
>   tests/nvme/014 | 2 +-
>   tests/nvme/015 | 2 +-
>   tests/nvme/017 | 2 +-
>   tests/nvme/018 | 2 +-
>   tests/nvme/019 | 2 +-
>   tests/nvme/020 | 2 +-
>   tests/nvme/021 | 2 +-
>   tests/nvme/022 | 2 +-
>   tests/nvme/023 | 2 +-
>   tests/nvme/024 | 2 +-
>   tests/nvme/025 | 2 +-
>   tests/nvme/026 | 2 +-
>   tests/nvme/027 | 2 +-
>   tests/nvme/028 | 2 +-
>   tests/nvme/029 | 3 ++-
>   tests/nvme/031 | 2 +-
>   tests/nvme/032 | 2 +-
>   tests/nvme/034 | 2 +-
>   tests/nvme/035 | 2 +-
>   tests/nvme/040 | 4 ++--
>   tests/nvme/041 | 2 +-
>   tests/nvme/042 | 2 +-
>   tests/nvme/043 | 2 +-
>   tests/nvme/044 | 2 +-
>   tests/nvme/045 | 2 +-
>   tests/nvme/047 | 2 +-
>   tests/nvme/048 | 2 +-
>   tests/nvme/rc  | 1 +
>   38 files changed, 44 insertions(+), 40 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 6/9] nvme-rc: Add minimal test image size requirement
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 6/9] nvme-rc: Add minimal test image size requirement Daniel Wagner
@ 2023-04-21  6:31   ` Hannes Reinecke
  0 siblings, 0 replies; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:31 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:05, Daniel Wagner wrote:
> Some tests need a minimal test image size to work correctly. Thus add a
> helper to check the size and update these tests accordingly.
> 
> The image minimum is 4M because some of the test have hard coded values.
> All tests which use the xfs fio verification job have a minimum
> requirement of 350M impossed by the xfs filesystem.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   tests/nvme/012 |  1 +
>   tests/nvme/013 |  1 +
>   tests/nvme/029 |  1 -
>   tests/nvme/045 |  2 +-
>   tests/nvme/rc  | 15 +++++++++++++++
>   5 files changed, 18 insertions(+), 2 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs Daniel Wagner
@ 2023-04-21  6:33   ` Hannes Reinecke
  2023-04-21  7:03     ` Daniel Wagner
  2023-04-28  4:00   ` Shinichiro Kawasaki
  1 sibling, 1 reply; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:33 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:05, Daniel Wagner wrote:
> Introduce two new function to calculate the IO size for fio jobs.
> 
> _nvme_calc_io_size() returns the jobs size for _run_fio_verify_io()
> function. Reduce the max size of the job by one megabyte to make the
> test more robust not to run out of space by accident. Note these fio
> calls run with just one jobs.
> 
> _nvme_calc_run_io_size() returns the jobs size for _run_fio_rand_io()
> function. Again, the jobs size is not maxing out the space and most
> important it takes the number of jobs into account which are
> created (number of CPUs).
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   tests/nvme/010 |  5 +++--
>   tests/nvme/011 |  5 +++--
>   tests/nvme/032 |  6 ++++--
>   tests/nvme/034 |  4 +++-
>   tests/nvme/040 |  4 +++-
>   tests/nvme/045 |  4 +++-
>   tests/nvme/047 |  6 ++++--
>   tests/nvme/rc  | 20 ++++++++++++++++++++
>   8 files changed, 43 insertions(+), 11 deletions(-)
> 
> diff --git a/tests/nvme/010 b/tests/nvme/010
> index 805f80d40620..d209335c2158 100755
> --- a/tests/nvme/010
> +++ b/tests/nvme/010
> @@ -25,6 +25,7 @@ test() {
>   	local loop_dev
>   	local file_path="${TMPDIR}/img"
>   	local subsys_name="blktests-subsystem-1"
> +	local io_size
>   
>   	truncate -s "${nvme_img_size}" "${file_path}"
>   
> @@ -41,8 +42,8 @@ test() {
>   	cat "/sys/block/${nvmedev}n1/uuid"
>   	cat "/sys/block/${nvmedev}n1/wwid"
>   
> -	_run_fio_verify_io --size=${nvme_img_size} \
> -		--filename="/dev/${nvmedev}n1"
> +	io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
> +	_run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1"
>   
>   	_nvme_disconnect_subsys "${subsys_name}"
>   
> diff --git a/tests/nvme/011 b/tests/nvme/011
> index da8cbac11124..294ba4333aff 100755
> --- a/tests/nvme/011
> +++ b/tests/nvme/011
> @@ -25,6 +25,7 @@ test() {
>   	local file_path
>   	local file_path="${TMPDIR}/img"
>   	local subsys_name="blktests-subsystem-1"
> +	local io_size
>   
>   	truncate -s "${nvme_img_size}" "${file_path}"
>   
> @@ -39,8 +40,8 @@ test() {
>   	cat "/sys/block/${nvmedev}n1/uuid"
>   	cat "/sys/block/${nvmedev}n1/wwid"
>   
> -	_run_fio_verify_io --size="${nvme_img_size}" \
> -		--filename="/dev/${nvmedev}n1"
> +	io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
> +	_run_fio_verify_io --size="${io_size}" --filename="/dev/${nvmedev}n1"
>   
>   	_nvme_disconnect_subsys "${subsys_name}"
>   
> diff --git a/tests/nvme/032 b/tests/nvme/032
> index 9f9756b0f959..ad701cea877d 100755
> --- a/tests/nvme/032
> +++ b/tests/nvme/032
> @@ -33,13 +33,15 @@ test_device() {
>   	local sysfs
>   	local attr
>   	local m
> +	local rand_io_size
>   
>   	pdev="$(_get_pci_dev_from_blkdev)"
>   	sysfs="/sys/bus/pci/devices/${pdev}"
>   
>   	# start fio job
> -	_run_fio_rand_io --filename="$TEST_DEV" --size="${nvme_img_size}" \
> -		--group_reporting --time_based --runtime=1m &> /dev/null &
> +	rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")"
> +	_run_fio_rand_io --filename="$TEST_DEV" --size="${rand_io_size}" \
> +		--group_reporting --time_based --runtime=1m > /dev/null &
>   
>   	sleep 5
>   
> diff --git a/tests/nvme/034 b/tests/nvme/034
> index e0ede717c373..0df8bef98e5e 100755
> --- a/tests/nvme/034
> +++ b/tests/nvme/034
> @@ -19,6 +19,7 @@ test_device() {
>   	local ctrldev
>   	local nsdev
>   	local port
> +	local io_size
>   
>   	echo "Running ${TEST_NAME}"
>   
> @@ -26,7 +27,8 @@ test_device() {
>   	port=$(_nvmet_passthru_target_setup "${subsys}")
>   	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
>   
> -	_run_fio_verify_io --size="${nvme_img_size}" --filename="${nsdev}"
> +	io_size="$(_nvme_calc_io_size "${nvme_img_size}")"
> +	_run_fio_verify_io --size="${io_size}" --filename="${nsdev}"
>   
>   	_nvme_disconnect_subsys "${subsys}"
>   	_nvmet_passthru_target_cleanup "${port}" "${subsys}"
> diff --git a/tests/nvme/040 b/tests/nvme/040
> index 31b7cafef4be..b033a2a866f2 100755
> --- a/tests/nvme/040
> +++ b/tests/nvme/040
> @@ -21,6 +21,7 @@ test() {
>   	local port
>   	local loop_dev
>   	local nvmedev
> +	local rand_io_size
>   
>   	echo "Running ${TEST_NAME}"
>   
> @@ -37,7 +38,8 @@ test() {
>   
>   	# start fio job
>   	echo "starting background fio"
> -	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${nvme_img_size}" \
> +	rand_io_size="$(_nvme_calc_rand_io_size "${nvme_img_size}")"
> +	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}" \
>   		--group_reporting --ramp_time=5 \
>   		--time_based --runtime=1m &> /dev/null &
>   	sleep 5
> diff --git a/tests/nvme/045 b/tests/nvme/045
> index 99012f6bed8f..f50087cccb6a 100755
> --- a/tests/nvme/045
> +++ b/tests/nvme/045
> @@ -31,6 +31,7 @@ test() {
>   	local ctrlkey
>   	local new_ctrlkey
>   	local ctrldev
> +	local rand_io_size
>   
>   	echo "Running ${TEST_NAME}"
>   
> @@ -120,7 +121,8 @@ test() {
>   
>   	nvmedev=$(_find_nvme_dev "${subsys_name}")
>   
> -	_run_fio_rand_io --size=4m --filename="/dev/${nvmedev}n1"
> +	rand_io_size="$(_nvme_calc_rand_io_size 4m)"
> +	_run_fio_rand_io --size="${rand_io_size}" --filename="/dev/${nvmedev}n1"
>   
>   	_nvme_disconnect_subsys "${subsys_name}"
>   
> diff --git a/tests/nvme/047 b/tests/nvme/047
> index b5a8d469a983..6a7599bc2e91 100755
> --- a/tests/nvme/047
> +++ b/tests/nvme/047
> @@ -25,6 +25,7 @@ test() {
>   	local port
>   	local nvmedev
>   	local loop_dev
> +	local rand_io_size
>   	local file_path="$TMPDIR/img"
>   	local subsys_name="blktests-subsystem-1"
>   
> @@ -42,7 +43,8 @@ test() {
>   
>   	nvmedev=$(_find_nvme_dev "${subsys_name}")
>   
> -	_xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL
> +	rand_io_size="$(_nvme_calc_rand_io_size 4M)"
> +	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
>   
>   	_nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1
>   
> @@ -50,7 +52,7 @@ test() {
>   		--nr-write-queues 1 \
>   		--nr-poll-queues 1 || echo FAIL
>   
> -	_xfs_run_fio_verify_io /dev/"${nvmedev}n1" "1m" || echo FAIL
> +	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
>   
>   	_nvme_disconnect_subsys "${subsys_name}" >> "$FULL" 2>&1
>   
> diff --git a/tests/nvme/rc b/tests/nvme/rc
> index b1f2dacae125..172f510527ed 100644
> --- a/tests/nvme/rc
> +++ b/tests/nvme/rc
> @@ -150,6 +150,26 @@ _test_dev_nvme_nsid() {
>   	cat "${TEST_DEV_SYSFS}/nsid"
>   }
>   
> +_nvme_calc_io_size() {
> +	local img_size_mb
> +	local io_size_mb
> +
> +	img_size_mb="$(convert_to_mb "$1")"
> +	io_size_mb="$((img_size_mb - 1))"
> +
> +	echo "${io_size_mb}m"
> +}
> +
> +_nvme_calc_rand_io_size() {
> +	local img_size_mb
> +	local io_size_mb
> +
> +	img_size_mb="$(convert_to_mb "$1")"
> +	io_size_mb="$(printf "%d" $((((img_size_mb * 1024 * 1024) / $(nproc) - 1) / 1024)))"
> +

... ending with ridiculous small io sizes on machines with lots of CPUs.
Please cap nproc by something sane like 32.

> +	echo "${io_size_mb}k"
> +}
> +
>   _nvme_fcloop_add_rport() {
>   	local local_wwnn="$1"
>   	local local_wwpn="$2"

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc Daniel Wagner
@ 2023-04-21  6:38   ` Hannes Reinecke
  2023-04-28  4:23   ` Shinichiro Kawasaki
  1 sibling, 0 replies; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:38 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:05, Daniel Wagner wrote:
> Move the discovery generation counter code to rc so that we can reuse
> it in 002.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   tests/nvme/002     |    4 +-
>   tests/nvme/002.out | 3004 --------------------------------------------
>   tests/nvme/030     |   22 +-
>   tests/nvme/rc      |   13 +
>   4 files changed, 20 insertions(+), 3023 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable Daniel Wagner
@ 2023-04-21  6:38   ` Hannes Reinecke
  2023-04-28  4:12   ` Shinichiro Kawasaki
  1 sibling, 0 replies; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:38 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:05, Daniel Wagner wrote:
> Some tests hard code high values of iterations. This makes them run
> relatively long compared to the other tests. Introduce a new environment
> variable nvme_num_iter to allow tune the runtime.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   tests/nvme/002 | 2 +-
>   tests/nvme/016 | 2 +-
>   tests/nvme/017 | 2 +-
>   tests/nvme/rc  | 1 +
>   4 files changed, 4 insertions(+), 3 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info Daniel Wagner
@ 2023-04-21  6:40   ` Hannes Reinecke
  2023-04-28  2:39   ` Shinichiro Kawasaki
  1 sibling, 0 replies; 43+ messages in thread
From: Hannes Reinecke @ 2023-04-21  6:40 UTC (permalink / raw)
  To: Daniel Wagner, linux-nvme
  Cc: linux-kernel, linux-block, Chaitanya Kulkarni, Shin'ichiro Kawasaki

On 4/21/23 08:04, Daniel Wagner wrote:
> Introduce a convert_to_mb() helper which converts the size argument
> to MBytes and use in test device require function. This makes it
> possible to use user input strings in future.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>   common/rc      | 30 +++++++++++++++++++++++++++---
>   tests/nvme/035 |  2 +-
>   2 files changed, 28 insertions(+), 4 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev, Andrew
Myers, Andrew McDonald, Martje Boudien Moerman


^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-21  6:27   ` Hannes Reinecke
@ 2023-04-21  6:54     ` Daniel Wagner
  2023-04-28  2:54       ` Shinichiro Kawasaki
  2023-05-02 13:19     ` Daniel Wagner
  1 sibling, 1 reply; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:54 UTC (permalink / raw)
  To: Hannes Reinecke
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Fri, Apr 21, 2023 at 08:27:35AM +0200, Hannes Reinecke wrote:
> On 4/21/23 08:04, Daniel Wagner wrote:
> > Make the size argument optional by reading the filesystem info. The
> > caller doesn't have to guess (or calculate) how big the max IO size.
> > The log data structure of XFS is reducing the capacity.
> > 
> > Signed-off-by: Daniel Wagner <dwagner@suse.de>
> > ---
> >   common/xfs     | 6 ++++++
> >   tests/nvme/012 | 2 +-
> >   tests/nvme/013 | 2 +-
> >   tests/nvme/035 | 2 +-
> >   4 files changed, 9 insertions(+), 3 deletions(-)
> > 
> > diff --git a/common/xfs b/common/xfs
> > index 2c5d96164ac1..ec35599e017b 100644
> > --- a/common/xfs
> > +++ b/common/xfs
> > @@ -27,6 +27,12 @@ _xfs_run_fio_verify_io() {
> >   	_xfs_mkfs_and_mount "${bdev}" "${mount_dir}" >> "${FULL}" 2>&1
> > +	if [[ -z "${sz}" ]]; then
> > +		local avail
> > +		avail="$(df --output=avail "${mount_dir}" | awk 'NR==2 {print $1}')"
> 
> df --output=avail "${mount_dir}" | tail -1

Sure, don't think it matters.

> > +		sz="$(printf "%d" $((avail / 1024 - 1 )))m"
> 
> sz=$((avail / 1024 - 1))

I tried this but the devision is likely to return a floating point which fio
doesn't like. Is there a way to tell bash to do a pure integer devision?

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs
  2023-04-21  6:29   ` Hannes Reinecke
@ 2023-04-21  6:57     ` Daniel Wagner
  2023-04-28  4:29       ` Shinichiro Kawasaki
  0 siblings, 1 reply; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  6:57 UTC (permalink / raw)
  To: Hannes Reinecke
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Fri, Apr 21, 2023 at 08:29:22AM +0200, Hannes Reinecke wrote:
 > --- a/tests/nvme/040
> > +++ b/tests/nvme/040
> > @@ -38,7 +38,8 @@ test() {
> >   	# start fio job
> >   	echo "starting background fio"
> >   	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
> > -		--group_reporting --ramp_time=5  &> /dev/null &
> > +		--group_reporting --ramp_time=5 \
> > +		--time_based --runtime=1m &> /dev/null &
> >   	sleep 5
> >   	# do reset/remove operation
> 
> Wouldn't it be better to let _run_fio_rand_io pick the correct size?

Yes, makes sense.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs
  2023-04-21  6:33   ` Hannes Reinecke
@ 2023-04-21  7:03     ` Daniel Wagner
  2023-04-28  3:57       ` Shinichiro Kawasaki
  0 siblings, 1 reply; 43+ messages in thread
From: Daniel Wagner @ 2023-04-21  7:03 UTC (permalink / raw)
  To: Hannes Reinecke
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Fri, Apr 21, 2023 at 08:33:46AM +0200, Hannes Reinecke wrote:
 > +_nvme_calc_rand_io_size() {
> > +	local img_size_mb
> > +	local io_size_mb
> > +
> > +	img_size_mb="$(convert_to_mb "$1")"
> > +	io_size_mb="$(printf "%d" $((((img_size_mb * 1024 * 1024) / $(nproc) - 1) / 1024)))"
> > +
> 
> ... ending with ridiculous small io sizes on machines with lots of CPUs.
> Please cap nproc by something sane like 32.

Yeah, propably not really good long time strategy. I was wondering if we should
make run_fio() variants smarter and do the size callculation there and not by
the callee. If we do this, we could make the number of jobs dependend on CPUs
and image size a bit nicer.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info Daniel Wagner
  2023-04-21  6:40   ` Hannes Reinecke
@ 2023-04-28  2:39   ` Shinichiro Kawasaki
  1 sibling, 0 replies; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  2:39 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

This patch looks good to me. One nit in the commit title is the prefix
"nvme-rc" which is new. How about "nvme" or "nvme/rc"?

Please find one more nit comment in line.

On Apr 21, 2023 / 08:04, Daniel Wagner wrote:
> Introduce a convert_to_mb() helper which converts the size argument
> to MBytes and use in test device require function. This makes it
> possible to use user input strings in future.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  common/rc      | 30 +++++++++++++++++++++++++++---
>  tests/nvme/035 |  2 +-
>  2 files changed, 28 insertions(+), 4 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index af4c0b1cab22..dd0afda3d821 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -324,9 +324,12 @@ _get_pci_parent_from_blkdev() {
>  		tail -2 | head -1
>  }
>  
> -_require_test_dev_size_mb() {
> -	local require_sz_mb=$1
> -	local test_dev_sz_mb=$(($(blockdev --getsize64 "$TEST_DEV")/1024/1024))
> +_require_test_dev_size() {
> +	local require_sz_mb
> +	local test_dev_sz_mb
> +
> +	require_sz_mb="$(convert_to_mb "$1")"
> +	test_dev_sz_mb="$(($(blockdev --getsize64 "$TEST_DEV")/1024/1024))"
>  
>  	if (( "$test_dev_sz_mb" < "$require_sz_mb" )); then
>  		SKIP_REASONS+=("${TEST_DEV} required at least ${require_sz_mb}m")
> @@ -422,3 +425,24 @@ _have_writeable_kmsg() {
>  _run_user() {
>  	su "$NORMAL_USER" -c "$1"
>  }
> +
> +convert_to_mb()
> +{
> +    local str=$1
> +    local res
> +
> +    res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)$/\1/p')
> +    if [[ -n "${res}" ]]; then
> +        echo "$((res / 1024 / 1024))"
> +    fi
> +
> +    res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)[mM]$/\1/p')
> +    if [[ -n "${res}" ]]; then
> +        echo "$((res))"
> +    fi
> +
> +    res=$(echo "${str}" | sed -n 's/^\([0-9]\+\)[gG]$/\1/p')
> +    if [[ -n "${res}" ]]; then
> +        echo "$((res * 1024))"
> +    fi
> +}

Nit: this function uses not tabs but spaces for indent.

> diff --git a/tests/nvme/035 b/tests/nvme/035
> index d169e351e3d0..eb1024edddbf 100755
> --- a/tests/nvme/035
> +++ b/tests/nvme/035
> @@ -17,7 +17,7 @@ requires() {
>  }
>  
>  device_requires() {
> -	_require_test_dev_size_mb 1024
> +	_require_test_dev_size 1024m
>  }
>  
>  test_device() {
> -- 
> 2.40.0
> 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test Daniel Wagner
  2023-04-21  6:23   ` Hannes Reinecke
@ 2023-04-28  2:44   ` Shinichiro Kawasaki
  2023-05-02 12:54     ` Daniel Wagner
  1 sibling, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  2:44 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Apr 21, 2023 / 08:04, Daniel Wagner wrote:
> Read the block device sizes instead hard coding them.

I suggest to add this to clarify the purpose of this commit:
  ".., so that the device size can be configurable in future."

> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  tests/nvme/014 | 10 +++++++++-
>  tests/nvme/015 | 10 +++++++++-
>  2 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/nvme/014 b/tests/nvme/014
> index d13cff7921da..28913641ae40 100755
> --- a/tests/nvme/014
> +++ b/tests/nvme/014
> @@ -23,6 +23,9 @@ test() {
>  	local port
>  	local nvmedev
>  	local loop_dev
> +	local size
> +	local bs
> +	local count
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> @@ -41,7 +44,12 @@ test() {
>  	cat "/sys/block/${nvmedev}n1/uuid"
>  	cat "/sys/block/${nvmedev}n1/wwid"
>  
> -	dd if=/dev/urandom of="/dev/${nvmedev}n1" count=128000 bs=4k status=none
> +	size="$(blockdev --getsize64 "/dev/${nvmedev}n1")"
> +	bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
> +	count=$((size / bs - 1))

Do we need -1?

> +
> +	dd if=/dev/urandom of="/dev/${nvmedev}n1" \
> +		count="${count}" bs="${bs}" status=none
>  
>  	nvme flush "/dev/${nvmedev}" -n 1
>  
> diff --git a/tests/nvme/015 b/tests/nvme/015
> index bb52ba2598db..2f7957caac88 100755
> --- a/tests/nvme/015
> +++ b/tests/nvme/015
> @@ -22,6 +22,9 @@ test() {
>  
>  	local port
>  	local nvmedev
> +	local size
> +	local bs
> +	local count
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> @@ -38,7 +41,12 @@ test() {
>  	cat "/sys/block/${nvmedev}n1/uuid"
>  	cat "/sys/block/${nvmedev}n1/wwid"
>  
> -	dd if=/dev/urandom of="/dev/${nvmedev}n1" count=128000 bs=4k status=none
> +	size="$(blockdev --getsize64 "/dev/${nvmedev}n1")"
> +	bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
> +	count=$((size / bs - 1))

Same here.

> +
> +	dd if=/dev/urandom of="/dev/${nvmedev}n1" \
> +		count="${count}" bs="${bs}" status=none
>  
>  	nvme flush "/dev/${nvmedev}n1" -n 1
>  
> -- 
> 2.40.0
> 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-21  6:54     ` Daniel Wagner
@ 2023-04-28  2:54       ` Shinichiro Kawasaki
  2023-05-02 13:20         ` Daniel Wagner
  0 siblings, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  2:54 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: Hannes Reinecke, linux-nvme, linux-kernel, linux-block,
	Chaitanya Kulkarni, Shin'ichiro Kawasaki

On Apr 21, 2023 / 08:54, Daniel Wagner wrote:
> On Fri, Apr 21, 2023 at 08:27:35AM +0200, Hannes Reinecke wrote:
> > On 4/21/23 08:04, Daniel Wagner wrote:
> > > Make the size argument optional by reading the filesystem info. The
> > > caller doesn't have to guess (or calculate) how big the max IO size.
> > > The log data structure of XFS is reducing the capacity.
> > > 
> > > Signed-off-by: Daniel Wagner <dwagner@suse.de>
> > > ---
> > >   common/xfs     | 6 ++++++
> > >   tests/nvme/012 | 2 +-
> > >   tests/nvme/013 | 2 +-
> > >   tests/nvme/035 | 2 +-
> > >   4 files changed, 9 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/common/xfs b/common/xfs
> > > index 2c5d96164ac1..ec35599e017b 100644
> > > --- a/common/xfs
> > > +++ b/common/xfs
> > > @@ -27,6 +27,12 @@ _xfs_run_fio_verify_io() {
> > >   	_xfs_mkfs_and_mount "${bdev}" "${mount_dir}" >> "${FULL}" 2>&1
> > > +	if [[ -z "${sz}" ]]; then
> > > +		local avail
> > > +		avail="$(df --output=avail "${mount_dir}" | awk 'NR==2 {print $1}')"
> > 
> > df --output=avail "${mount_dir}" | tail -1
> 
> Sure, don't think it matters.
> 
> > > +		sz="$(printf "%d" $((avail / 1024 - 1 )))m"
> > 
> > sz=$((avail / 1024 - 1))
> 
> I tried this but the devision is likely to return a floating point which fio
> doesn't like. Is there a way to tell bash to do a pure integer devision?

Hmm, AFAIK, bash arithmetic supports integer only. I tried below, and bash did
not return floating value...

  $ avail=90000; echo $((avail/1024))
  87

Assuming bash arithmetic supports integer only, -1 will not be required in the
calculation.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-21  6:04 ` [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io Daniel Wagner
  2023-04-21  6:27   ` Hannes Reinecke
@ 2023-04-28  2:59   ` Shinichiro Kawasaki
  2023-05-02 13:23     ` Daniel Wagner
  1 sibling, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  2:59 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Apr 21, 2023 / 08:04, Daniel Wagner wrote:
> Make the size argument optional by reading the filesystem info. The
> caller doesn't have to guess (or calculate) how big the max IO size.
> The log data structure of XFS is reducing the capacity.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  common/xfs     | 6 ++++++
>  tests/nvme/012 | 2 +-
>  tests/nvme/013 | 2 +-
>  tests/nvme/035 | 2 +-
>  4 files changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/common/xfs b/common/xfs
> index 2c5d96164ac1..ec35599e017b 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -27,6 +27,12 @@ _xfs_run_fio_verify_io() {
>  
>  	_xfs_mkfs_and_mount "${bdev}" "${mount_dir}" >> "${FULL}" 2>&1
>  
> +	if [[ -z "${sz}" ]]; then
> +		local avail
> +		avail="$(df --output=avail "${mount_dir}" | awk 'NR==2 {print $1}')"
> +		sz="$(printf "%d" $((avail / 1024 - 1 )))m"
> +	fi
> +
>  	_run_fio_verify_io --size="$sz" --directory="${mount_dir}/"
>  
>  	umount "${mount_dir}" >> "${FULL}" 2>&1
> diff --git a/tests/nvme/012 b/tests/nvme/012
> index e60082c2e751..c9d24388306d 100755
> --- a/tests/nvme/012
> +++ b/tests/nvme/012
> @@ -44,7 +44,7 @@ test() {
>  	cat "/sys/block/${nvmedev}n1/uuid"
>  	cat "/sys/block/${nvmedev}n1/wwid"
>  
> -	_xfs_run_fio_verify_io "/dev/${nvmedev}n1" "900m"
> +	_xfs_run_fio_verify_io "/dev/${nvmedev}n1"
>  
>  	_nvme_disconnect_subsys "${subsys_name}"
>  
> diff --git a/tests/nvme/013 b/tests/nvme/013
> index 9d60a7df4577..265b6968fd34 100755
> --- a/tests/nvme/013
> +++ b/tests/nvme/013
> @@ -41,7 +41,7 @@ test() {
>  	cat "/sys/block/${nvmedev}n1/uuid"
>  	cat "/sys/block/${nvmedev}n1/wwid"
>  
> -	_xfs_run_fio_verify_io "/dev/${nvmedev}n1" "900m"
> +	_xfs_run_fio_verify_io "/dev/${nvmedev}n1"
>  
>  	_nvme_disconnect_subsys "${subsys_name}"
>

As for nvme/012 and nvme/013, I observed the I/O size changes from 900m to 920m
with this patch. This condition looks better for testing point of view. Good.

> diff --git a/tests/nvme/035 b/tests/nvme/035
> index eb1024edddbf..8b485bc8e682 100755
> --- a/tests/nvme/035
> +++ b/tests/nvme/035
> @@ -32,7 +32,7 @@ test_device() {
>  	port=$(_nvmet_passthru_target_setup "${subsys}")
>  	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
>  
> -	_xfs_run_fio_verify_io "${nsdev}" "900m"
> +	_xfs_run_fio_verify_io "${nsdev}"

On the other hand, this change for nvme/035 does not look good. It runs the
test on TEST_DEV, which may take very long time without TIMEOUT config.

>  
>  	_nvme_disconnect_subsys "${subsys}"
>  	_nvmet_passthru_target_cleanup "${port}" "${subsys}"
> -- 
> 2.40.0
> 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable Daniel Wagner
  2023-04-21  6:31   ` Hannes Reinecke
@ 2023-04-28  3:08   ` Shinichiro Kawasaki
  1 sibling, 0 replies; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  3:08 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Apr 21, 2023 / 08:05, Daniel Wagner wrote:
> The reduce the overall runtime of the testsuite by making the default
> size of the test image small. For verification jobs, the default can be
> overwriten via the newly introduced nvme_img_size environment variable.

Could you add descripion of nvme_img_size in Documentation/runnning-test.md?

   I've noticed that tcp and fc of nvme_trtype are not described, but this is a
   different topic :)

> 
> The default size of 350M is the minimum requirement of nvme/012 and
> nvme/013. These tests rely on an xfs filesystem which requires this
> minimum size.

I read back discurrions on the v1 series, and I'm not sure if it is agreed to
decrease the default size from 1G to smaller value. My understanding is that
Chaitanya's points are:

- Let's keep 1GB default size for consistency for blktests users.
- Introduce nvme_img_size so that those who needs faster test run can
  set smaller size.

> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  tests/nvme/004 | 2 +-
>  tests/nvme/005 | 2 +-
>  tests/nvme/006 | 2 +-
>  tests/nvme/007 | 2 +-
>  tests/nvme/008 | 2 +-
>  tests/nvme/009 | 2 +-
>  tests/nvme/010 | 5 +++--
>  tests/nvme/011 | 5 +++--
>  tests/nvme/012 | 2 +-
>  tests/nvme/013 | 2 +-
>  tests/nvme/014 | 2 +-
>  tests/nvme/015 | 2 +-
>  tests/nvme/017 | 2 +-
>  tests/nvme/018 | 2 +-
>  tests/nvme/019 | 2 +-
>  tests/nvme/020 | 2 +-
>  tests/nvme/021 | 2 +-
>  tests/nvme/022 | 2 +-
>  tests/nvme/023 | 2 +-
>  tests/nvme/024 | 2 +-
>  tests/nvme/025 | 2 +-
>  tests/nvme/026 | 2 +-
>  tests/nvme/027 | 2 +-
>  tests/nvme/028 | 2 +-
>  tests/nvme/029 | 3 ++-
>  tests/nvme/031 | 2 +-
>  tests/nvme/032 | 2 +-
>  tests/nvme/034 | 2 +-
>  tests/nvme/035 | 2 +-
>  tests/nvme/040 | 4 ++--
>  tests/nvme/041 | 2 +-
>  tests/nvme/042 | 2 +-
>  tests/nvme/043 | 2 +-
>  tests/nvme/044 | 2 +-
>  tests/nvme/045 | 2 +-
>  tests/nvme/047 | 2 +-
>  tests/nvme/048 | 2 +-
>  tests/nvme/rc  | 1 +
>  38 files changed, 44 insertions(+), 40 deletions(-)
> 
> diff --git a/tests/nvme/004 b/tests/nvme/004
> index 9dda538b1ac0..cab98ff44326 100755
> --- a/tests/nvme/004
> +++ b/tests/nvme/004
> @@ -25,7 +25,7 @@ test() {
>  	local port
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
>  
> -	truncate -s 1G "$TMPDIR/img"
> +	truncate -s "${nvme_img_size}" "$TMPDIR/img"
>  
>  	local loop_dev
>  	loop_dev="$(losetup -f --show "$TMPDIR/img")"
> diff --git a/tests/nvme/005 b/tests/nvme/005
> index de567a74a891..8e15a13f3794 100755
> --- a/tests/nvme/005
> +++ b/tests/nvme/005
> @@ -24,7 +24,7 @@ test() {
>  	local port
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
>  
> -	truncate -s 1G "$TMPDIR/img"
> +	truncate -s "${nvme_img_size}" "$TMPDIR/img"
>  
>  	local loop_dev
>  	loop_dev="$(losetup -f --show "$TMPDIR/img")"
> diff --git a/tests/nvme/006 b/tests/nvme/006
> index d993861c06ba..ea0db93791a7 100755
> --- a/tests/nvme/006
> +++ b/tests/nvme/006
> @@ -24,7 +24,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	truncate -s 1G "$TMPDIR/img"
> +	truncate -s "${nvme_img_size}" "$TMPDIR/img"
>  
>  	loop_dev="$(losetup -f --show "$TMPDIR/img")"
>  
> diff --git a/tests/nvme/007 b/tests/nvme/007
> index d53100f3ff7b..243a79f5a254 100755
> --- a/tests/nvme/007
> +++ b/tests/nvme/007
> @@ -25,7 +25,7 @@ test() {
>  
>  	file_path="${TMPDIR}/img"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/008 b/tests/nvme/008
> index 5568fe46e463..5abc4240ca46 100755
> --- a/tests/nvme/008
> +++ b/tests/nvme/008
> @@ -26,7 +26,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> diff --git a/tests/nvme/009 b/tests/nvme/009
> index 2814c79164ee..491d3c809ab0 100755
> --- a/tests/nvme/009
> +++ b/tests/nvme/009
> @@ -24,7 +24,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/010 b/tests/nvme/010
> index b7b1d5188e9b..805f80d40620 100755
> --- a/tests/nvme/010
> +++ b/tests/nvme/010
> @@ -26,7 +26,7 @@ test() {
>  	local file_path="${TMPDIR}/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> @@ -41,7 +41,8 @@ test() {
>  	cat "/sys/block/${nvmedev}n1/uuid"
>  	cat "/sys/block/${nvmedev}n1/wwid"
>  
> -	_run_fio_verify_io --size=950m --filename="/dev/${nvmedev}n1"
> +	_run_fio_verify_io --size=${nvme_img_size} \
> +		--filename="/dev/${nvmedev}n1"
>  
>  	_nvme_disconnect_subsys "${subsys_name}"
>  
> diff --git a/tests/nvme/011 b/tests/nvme/011
> index 4bfe9af084e4..da8cbac11124 100755
> --- a/tests/nvme/011
> +++ b/tests/nvme/011
> @@ -26,7 +26,7 @@ test() {
>  	local file_path="${TMPDIR}/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> @@ -39,7 +39,8 @@ test() {
>  	cat "/sys/block/${nvmedev}n1/uuid"
>  	cat "/sys/block/${nvmedev}n1/wwid"
>  
> -	_run_fio_verify_io --size=950m --filename="/dev/${nvmedev}n1"
> +	_run_fio_verify_io --size="${nvme_img_size}" \
> +		--filename="/dev/${nvmedev}n1"
>  
>  	_nvme_disconnect_subsys "${subsys_name}"
>  
> diff --git a/tests/nvme/012 b/tests/nvme/012
> index c9d24388306d..ecf44fcb5a51 100755
> --- a/tests/nvme/012
> +++ b/tests/nvme/012
> @@ -29,7 +29,7 @@ test() {
>  	local file_path="${TMPDIR}/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> diff --git a/tests/nvme/013 b/tests/nvme/013
> index 265b6968fd34..e249add46295 100755
> --- a/tests/nvme/013
> +++ b/tests/nvme/013
> @@ -28,7 +28,7 @@ test() {
>  
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/014 b/tests/nvme/014
> index 28913641ae40..2d00ed392ea8 100755
> --- a/tests/nvme/014
> +++ b/tests/nvme/014
> @@ -29,7 +29,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> diff --git a/tests/nvme/015 b/tests/nvme/015
> index 2f7957caac88..3755cdee00c9 100755
> --- a/tests/nvme/015
> +++ b/tests/nvme/015
> @@ -28,7 +28,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		 "91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/017 b/tests/nvme/017
> index f2a95cf276cb..0248aee9bc41 100755
> --- a/tests/nvme/017
> +++ b/tests/nvme/017
> @@ -25,7 +25,7 @@ test() {
>  
>  	file_path="${TMPDIR}/img"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/018 b/tests/nvme/018
> index 315e79534348..78e9b2bb94d8 100755
> --- a/tests/nvme/018
> +++ b/tests/nvme/018
> @@ -26,7 +26,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		 "91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/019 b/tests/nvme/019
> index 4cb3509a12b2..9fff8ccaac9c 100755
> --- a/tests/nvme/019
> +++ b/tests/nvme/019
> @@ -28,7 +28,7 @@ test() {
>  	local nblk_range="10,10,10,10,10,10,10,10,10,10"
>  	local sblk_range="100,200,300,400,500,600,700,800,900,1000"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> diff --git a/tests/nvme/020 b/tests/nvme/020
> index 16fdfcc94918..1966d5925213 100755
> --- a/tests/nvme/020
> +++ b/tests/nvme/020
> @@ -26,7 +26,7 @@ test() {
>  	local nblk_range="10,10,10,10,10,10,10,10,10,10"
>  	local sblk_range="100,200,300,400,500,600,700,800,900,1000"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/021 b/tests/nvme/021
> index 6ee0af1fe158..1fefc0fbca00 100755
> --- a/tests/nvme/021
> +++ b/tests/nvme/021
> @@ -25,7 +25,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/022 b/tests/nvme/022
> index 1d76ffa44178..1ff915786f86 100755
> --- a/tests/nvme/022
> +++ b/tests/nvme/022
> @@ -25,7 +25,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/023 b/tests/nvme/023
> index b65be07edc38..90316230a3d7 100755
> --- a/tests/nvme/023
> +++ b/tests/nvme/023
> @@ -26,7 +26,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> diff --git a/tests/nvme/024 b/tests/nvme/024
> index f756797d6f29..384a8266e741 100755
> --- a/tests/nvme/024
> +++ b/tests/nvme/024
> @@ -25,7 +25,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/025 b/tests/nvme/025
> index 941bf36f67fb..815223d1c28d 100755
> --- a/tests/nvme/025
> +++ b/tests/nvme/025
> @@ -25,7 +25,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/026 b/tests/nvme/026
> index c3f06c2a377c..d2203f19f026 100755
> --- a/tests/nvme/026
> +++ b/tests/nvme/026
> @@ -25,7 +25,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/027 b/tests/nvme/027
> index 0ad663ace811..97fe70e78344 100755
> --- a/tests/nvme/027
> +++ b/tests/nvme/027
> @@ -25,7 +25,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/028 b/tests/nvme/028
> index 7de977a81213..c539620bee28 100755
> --- a/tests/nvme/028
> +++ b/tests/nvme/028
> @@ -25,7 +25,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"91fdba0d-f87b-4c25-b80f-db7be1418b9e"
> diff --git a/tests/nvme/029 b/tests/nvme/029
> index f8b4cbbb9156..1808b7b0edf1 100755
> --- a/tests/nvme/029
> +++ b/tests/nvme/029
> @@ -14,6 +14,7 @@ requires() {
>  	_nvme_requires
>  	_have_loop
>  	_require_nvme_trtype_is_fabrics
> +	_require_test_dev_size 1M
>  }
>  
>  test_user_io()
> @@ -59,7 +60,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 1G "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> diff --git a/tests/nvme/031 b/tests/nvme/031
> index 4e1798246db1..e70898819a86 100755
> --- a/tests/nvme/031
> +++ b/tests/nvme/031
> @@ -33,7 +33,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	truncate -s 1G "$TMPDIR/img"
> +	truncate -s "${nvme_img_size}" "$TMPDIR/img"
>  
>  	loop_dev="$(losetup -f --show "$TMPDIR/img")"
>  
> diff --git a/tests/nvme/032 b/tests/nvme/032
> index 81e074cc11bc..9f9756b0f959 100755
> --- a/tests/nvme/032
> +++ b/tests/nvme/032
> @@ -38,7 +38,7 @@ test_device() {
>  	sysfs="/sys/bus/pci/devices/${pdev}"
>  
>  	# start fio job
> -	_run_fio_rand_io --filename="$TEST_DEV" --size=1g \
> +	_run_fio_rand_io --filename="$TEST_DEV" --size="${nvme_img_size}" \
>  		--group_reporting --time_based --runtime=1m &> /dev/null &
>  
>  	sleep 5
> diff --git a/tests/nvme/034 b/tests/nvme/034
> index f92e5e20865b..e0ede717c373 100755
> --- a/tests/nvme/034
> +++ b/tests/nvme/034
> @@ -26,7 +26,7 @@ test_device() {
>  	port=$(_nvmet_passthru_target_setup "${subsys}")
>  	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
>  
> -	_run_fio_verify_io --size=950m --filename="${nsdev}"
> +	_run_fio_verify_io --size="${nvme_img_size}" --filename="${nsdev}"
>  
>  	_nvme_disconnect_subsys "${subsys}"
>  	_nvmet_passthru_target_cleanup "${port}" "${subsys}"
> diff --git a/tests/nvme/035 b/tests/nvme/035
> index 8b485bc8e682..2c4a25f82937 100755
> --- a/tests/nvme/035
> +++ b/tests/nvme/035
> @@ -17,7 +17,7 @@ requires() {
>  }
>  
>  device_requires() {
> -	_require_test_dev_size 1024m
> +	_require_test_dev_size "${nvme_img_size}"
>  }
>

This change looks weird for me. The required size of TEST_DEV can vary depending
on user's configuration. I think nvme_img_size specify the device size that each
test case prepares, isn't it?

>  test_device() {
> diff --git a/tests/nvme/040 b/tests/nvme/040
> index 8d29f905adb5..31b7cafef4be 100755
> --- a/tests/nvme/040
> +++ b/tests/nvme/040
> @@ -25,7 +25,7 @@ test() {
>  	echo "Running ${TEST_NAME}"
>  
>  	_setup_nvmet
> -	truncate -s 1G "$TMPDIR/img"
> +	truncate -s "${nvme_img_size}" "$TMPDIR/img"
>  	loop_dev="$(losetup -f --show "$TMPDIR/img")"
>  
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
> @@ -37,7 +37,7 @@ test() {
>  
>  	# start fio job
>  	echo "starting background fio"
> -	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
> +	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${nvme_img_size}" \
>  		--group_reporting --ramp_time=5 \
>  		--time_based --runtime=1m &> /dev/null &
>  	sleep 5
> diff --git a/tests/nvme/041 b/tests/nvme/041
> index 03e2dab25918..308655dd6090 100755
> --- a/tests/nvme/041
> +++ b/tests/nvme/041
> @@ -44,7 +44,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	truncate -s 512M "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"b92842df-a394-44b1-84a4-92ae7d112861"
> diff --git a/tests/nvme/042 b/tests/nvme/042
> index 4ad726f72f5a..fed2efead013 100755
> --- a/tests/nvme/042
> +++ b/tests/nvme/042
> @@ -41,7 +41,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	truncate -s 512M "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
> diff --git a/tests/nvme/043 b/tests/nvme/043
> index c031cecf34a5..a030884aa4ed 100755
> --- a/tests/nvme/043
> +++ b/tests/nvme/043
> @@ -42,7 +42,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	truncate -s 512M "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
> diff --git a/tests/nvme/044 b/tests/nvme/044
> index f2406ecadf7d..9928bcc55397 100755
> --- a/tests/nvme/044
> +++ b/tests/nvme/044
> @@ -53,7 +53,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	truncate -s 512M "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
> diff --git a/tests/nvme/045 b/tests/nvme/045
> index 612e5f168e3c..7c51da27b5f1 100755
> --- a/tests/nvme/045
> +++ b/tests/nvme/045
> @@ -55,7 +55,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	truncate -s 512M "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}"
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
> diff --git a/tests/nvme/047 b/tests/nvme/047
> index d56d3be185b0..b5a8d469a983 100755
> --- a/tests/nvme/047
> +++ b/tests/nvme/047
> @@ -28,7 +28,7 @@ test() {
>  	local file_path="$TMPDIR/img"
>  	local subsys_name="blktests-subsystem-1"
>  
> -	truncate -s 512M "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	loop_dev="$(losetup -f --show "${file_path}")"
>  
> diff --git a/tests/nvme/048 b/tests/nvme/048
> index b4ee7371eb68..08fdee16c811 100755
> --- a/tests/nvme/048
> +++ b/tests/nvme/048
> @@ -84,7 +84,7 @@ test() {
>  	fi
>  	hostnqn="nqn.2014-08.org.nvmexpress:uuid:${hostid}"
>  
> -	truncate -s 512M "${file_path}"
> +	truncate -s "${nvme_img_size}" "${file_path}"
>  
>  	_create_nvmet_subsystem "${subsys_name}" "${file_path}" \
>  		"b92842df-a394-44b1-84a4-92ae7d112861"
> diff --git a/tests/nvme/rc b/tests/nvme/rc
> index 41f196b037d6..e5ba9a6d5f54 100644
> --- a/tests/nvme/rc
> +++ b/tests/nvme/rc
> @@ -17,6 +17,7 @@ def_local_wwpn="0x20001100aa000002"
>  def_hostnqn="$(cat /etc/nvme/hostnqn 2> /dev/null)"
>  def_hostid="$(cat /etc/nvme/hostid 2> /dev/null)"
>  nvme_trtype=${nvme_trtype:-"loop"}
> +nvme_img_size=${nvme_img_size:-"350M"}
>  
>  _nvme_requires() {
>  	_have_program nvme
> -- 
> 2.40.0
> 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs
  2023-04-21  7:03     ` Daniel Wagner
@ 2023-04-28  3:57       ` Shinichiro Kawasaki
  0 siblings, 0 replies; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  3:57 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: Hannes Reinecke, linux-nvme, linux-kernel, linux-block,
	Chaitanya Kulkarni, Shin'ichiro Kawasaki

On Apr 21, 2023 / 09:03, Daniel Wagner wrote:
> On Fri, Apr 21, 2023 at 08:33:46AM +0200, Hannes Reinecke wrote:
>  > +_nvme_calc_rand_io_size() {
> > > +	local img_size_mb
> > > +	local io_size_mb
> > > +
> > > +	img_size_mb="$(convert_to_mb "$1")"
> > > +	io_size_mb="$(printf "%d" $((((img_size_mb * 1024 * 1024) / $(nproc) - 1) / 1024)))"
> > > +
> > 
> > ... ending with ridiculous small io sizes on machines with lots of CPUs.
> > Please cap nproc by something sane like 32.
> 
> Yeah, propably not really good long time strategy. I was wondering if we should
> make run_fio() variants smarter and do the size callculation there and not by
> the callee. If we do this, we could make the number of jobs dependend on CPUs
> and image size a bit nicer.

The usage of _run_fio_rand_io() look different for each test case. nvme/032
kills the fio process when it is no longer required. Then IO size reduction with
_nvme_calc_io_size() will not reduce runtime of nvme/032. I think nvme/040 has
same story, since _nvme_delete_ctrl will stop the fio process with I/O error.

On the other hand, nvme/045 and nvme/047 may have different usage. I'm not sure
if these test case needs I/O with all CPUs. It would be better to have other
run_fio() variant as Daniel mentioned, so that their runtime will not depend on
number of CPUs.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs Daniel Wagner
  2023-04-21  6:33   ` Hannes Reinecke
@ 2023-04-28  4:00   ` Shinichiro Kawasaki
  2023-05-02 15:45     ` Daniel Wagner
  1 sibling, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  4:00 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Apr 21, 2023 / 08:05, Daniel Wagner wrote:
> Introduce two new function to calculate the IO size for fio jobs.
> 
> _nvme_calc_io_size() returns the jobs size for _run_fio_verify_io()
> function. Reduce the max size of the job by one megabyte to make the
> test more robust not to run out of space by accident. Note these fio
> calls run with just one jobs.

It is not clear for me what kind of issue happens without the 1MB decrement.
Could you share failure symptoms you observed?

> 
> _nvme_calc_run_io_size() returns the jobs size for _run_fio_rand_io()
> function. Again, the jobs size is not maxing out the space and most
> important it takes the number of jobs into account which are
> created (number of CPUs).

This patch has two purposes, similar but different. It would be the better to
separate them.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable Daniel Wagner
  2023-04-21  6:38   ` Hannes Reinecke
@ 2023-04-28  4:12   ` Shinichiro Kawasaki
  2023-05-02 15:59     ` Daniel Wagner
  1 sibling, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  4:12 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Apr 21, 2023 / 08:05, Daniel Wagner wrote:
> Some tests hard code high values of iterations. This makes them run
> relatively long compared to the other tests. Introduce a new environment
> variable nvme_num_iter to allow tune the runtime.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  tests/nvme/002 | 2 +-
>  tests/nvme/016 | 2 +-
>  tests/nvme/017 | 2 +-
>  tests/nvme/rc  | 1 +
>  4 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/nvme/002 b/tests/nvme/002
> index 6b8484844b4d..c28035483514 100755
> --- a/tests/nvme/002
> +++ b/tests/nvme/002
> @@ -20,7 +20,7 @@ test() {
>  
>  	_setup_nvmet
>  
> -	local iterations=1000
> +	local iterations="${nvme_num_iter}"
>  	local port
>  	port="$(_create_nvmet_port "${nvme_trtype}")"
>  
> diff --git a/tests/nvme/016 b/tests/nvme/016
> index 4eba30223a08..c0c31a55b190 100755
> --- a/tests/nvme/016
> +++ b/tests/nvme/016
> @@ -17,7 +17,7 @@ test() {
>  	echo "Running ${TEST_NAME}"
>  
>  	local port
> -	local iterations=1000
> +	local iterations="${nvme_num_iter}"
>  	local loop_dev
>  	local subsys_nqn="blktests-subsystem-1"
>  
> diff --git a/tests/nvme/017 b/tests/nvme/017
> index 0248aee9bc41..e1674508f654 100755
> --- a/tests/nvme/017
> +++ b/tests/nvme/017
> @@ -18,7 +18,7 @@ test() {
>  
>  	local port
>  	local file_path
> -	local iterations=1000
> +	local iterations="${nvme_num_iter}"
>  	local subsys_name="blktests-subsystem-1"
>  
>  	_setup_nvmet
> diff --git a/tests/nvme/rc b/tests/nvme/rc
> index 2aa34fb0c9b8..bb135502220a 100644
> --- a/tests/nvme/rc
> +++ b/tests/nvme/rc
> @@ -18,6 +18,7 @@ def_hostnqn="$(cat /etc/nvme/hostnqn 2> /dev/null)"
>  def_hostid="$(cat /etc/nvme/hostid 2> /dev/null)"
>  nvme_trtype=${nvme_trtype:-"loop"}
>  nvme_img_size=${nvme_img_size:-"350M"}
> +nvme_num_iter=${nvme_num_iter:-"100"}

The commit log of tests/nvme/002 says that "Test nvme discovery with many (1000)
subsystems so the discovery log page exceeds 4k.". Can we fulfill this test
purpose with the default value 100?

Also, nvme_num_iter will need description in Documentation/running-tests.md.

>  
>  _nvme_requires() {
>  	_have_program nvme
> -- 
> 2.40.0
> 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc
  2023-04-21  6:05 ` [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc Daniel Wagner
  2023-04-21  6:38   ` Hannes Reinecke
@ 2023-04-28  4:23   ` Shinichiro Kawasaki
  2023-05-02 15:56     ` Daniel Wagner
  1 sibling, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  4:23 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

(Let me repost this message, since vger.kernel.org declined it due to too long message).

On Apr 21, 2023 / 08:05, Daniel Wagner wrote:
> Move the discovery generation counter code to rc so that we can reuse
> it in 002.

I think the core change in this commit is the removal of discovery related
messages from tests/nvme/002.out. It removes the dependency to the iteration
number constant 1000 in tests/nvme/002, and prepares for the next commit.
If this understanding is correct, I suggest to note it in the commit message.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs
  2023-04-21  6:57     ` Daniel Wagner
@ 2023-04-28  4:29       ` Shinichiro Kawasaki
  2023-05-02 14:22         ` Daniel Wagner
  0 siblings, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-04-28  4:29 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: Hannes Reinecke, linux-nvme, linux-kernel, linux-block,
	Chaitanya Kulkarni, Shin'ichiro Kawasaki

On Apr 21, 2023 / 08:57, Daniel Wagner wrote:
> On Fri, Apr 21, 2023 at 08:29:22AM +0200, Hannes Reinecke wrote:
>  > --- a/tests/nvme/040
> > > +++ b/tests/nvme/040
> > > @@ -38,7 +38,8 @@ test() {
> > >   	# start fio job
> > >   	echo "starting background fio"
> > >   	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
> > > -		--group_reporting --ramp_time=5  &> /dev/null &
> > > +		--group_reporting --ramp_time=5 \
> > > +		--time_based --runtime=1m &> /dev/null &
> > >   	sleep 5
> > >   	# do reset/remove operation
> > 
> > Wouldn't it be better to let _run_fio_rand_io pick the correct size?
> 
> Yes, makes sense.

If you do I/O size change for the test cases nvme/032 and nvme/040, could you
confirm the runtime reduction of the test cases? IIUC, the fio process stops
due to process kill or an I/O error, then I/O size reduction will not change
runtime of the test cases, I guess.

IMO, --time_based --runtime=1m is good to ensure that fio runs long enough,
even when nvme device size is configured with small size.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test
  2023-04-28  2:44   ` Shinichiro Kawasaki
@ 2023-05-02 12:54     ` Daniel Wagner
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 12:54 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

> > -	dd if=/dev/urandom of="/dev/${nvmedev}n1" count=128000 bs=4k status=none
> > +	size="$(blockdev --getsize64 "/dev/${nvmedev}n1")"
> > +	bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
> > +	count=$((size / bs - 1))
> 
> Do we need -1?

Not really. My aim was to just to make it test case a bit more
reliable. The original test didn't fill up the disk either.

I am going to drop it.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-21  6:27   ` Hannes Reinecke
  2023-04-21  6:54     ` Daniel Wagner
@ 2023-05-02 13:19     ` Daniel Wagner
  1 sibling, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 13:19 UTC (permalink / raw)
  To: Hannes Reinecke
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Fri, Apr 21, 2023 at 08:27:35AM +0200, Hannes Reinecke wrote:
> > +		avail="$(df --output=avail "${mount_dir}" | awk 'NR==2 {print $1}')"
> 
> df --output=avail "${mount_dir}" | tail -1

ok.

> > +		sz="$(printf "%d" $((avail / 1024 - 1 )))m"
> 
> sz=$((avail / 1024 - 1))
> 
> > +	fi
> > +
> >   	_run_fio_verify_io --size="$sz" --directory="${mount_dir}/"
> 
> _run_fio_verify_io --size="${sz}m" --directory="${mount_dir}/"

$sz might already contain the 'm', so can't do this here.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-28  2:54       ` Shinichiro Kawasaki
@ 2023-05-02 13:20         ` Daniel Wagner
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 13:20 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: Hannes Reinecke, linux-nvme, linux-kernel, linux-block,
	Chaitanya Kulkarni, Shin'ichiro Kawasaki

> Hmm, AFAIK, bash arithmetic supports integer only. I tried below, and bash did
> not return floating value...
> 
>   $ avail=90000; echo $((avail/1024))
>   87
> 
> Assuming bash arithmetic supports integer only, -1 will not be required in the
> calculation.

Can't remember how I ended up with the above. Anyway, works just fine without
the printf.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-04-28  2:59   ` Shinichiro Kawasaki
@ 2023-05-02 13:23     ` Daniel Wagner
  2023-05-03  4:04       ` Shinichiro Kawasaki
  0 siblings, 1 reply; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 13:23 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

 > --- a/tests/nvme/035
> > +++ b/tests/nvme/035
> > @@ -32,7 +32,7 @@ test_device() {
> >  	port=$(_nvmet_passthru_target_setup "${subsys}")
> >  	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
> >  
> > -	_xfs_run_fio_verify_io "${nsdev}" "900m"
> > +	_xfs_run_fio_verify_io "${nsdev}"
> 
> On the other hand, this change for nvme/035 does not look good. It runs the
> test on TEST_DEV, which may take very long time without TIMEOUT config.

I'll add the nvme_img_size argument here instead (nvme: Make test image size
configurable)

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs
  2023-04-28  4:29       ` Shinichiro Kawasaki
@ 2023-05-02 14:22         ` Daniel Wagner
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 14:22 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: Hannes Reinecke, linux-nvme, linux-kernel, linux-block,
	Chaitanya Kulkarni, Shin'ichiro Kawasaki

On Fri, Apr 28, 2023 at 04:29:57AM +0000, Shinichiro Kawasaki wrote:
> On Apr 21, 2023 / 08:57, Daniel Wagner wrote:
> > On Fri, Apr 21, 2023 at 08:29:22AM +0200, Hannes Reinecke wrote:
> >  > --- a/tests/nvme/040
> > > > +++ b/tests/nvme/040
> > > > @@ -38,7 +38,8 @@ test() {
> > > >   	# start fio job
> > > >   	echo "starting background fio"
> > > >   	_run_fio_rand_io --filename="/dev/${nvmedev}n1" --size=1g \
> > > > -		--group_reporting --ramp_time=5  &> /dev/null &
> > > > +		--group_reporting --ramp_time=5 \
> > > > +		--time_based --runtime=1m &> /dev/null &
> > > >   	sleep 5
> > > >   	# do reset/remove operation
> > > 
> > > Wouldn't it be better to let _run_fio_rand_io pick the correct size?
> > 
> > Yes, makes sense.
> 
> If you do I/O size change for the test cases nvme/032 and nvme/040, could you
> confirm the runtime reduction of the test cases? IIUC, the fio process stops
> due to process kill or an I/O error, then I/O size reduction will not change
> runtime of the test cases, I guess.

The fio process doesn't survive the reset and the deletion of the controller.

> IMO, --time_based --runtime=1m is good to ensure that fio runs long enough,
> even when nvme device size is configured with small size.

I've updated the time to 'infinity' and added a 'kill $pid' after reset and
delete. Though the process should be gone till then but making the test a bit
more robust should hurt.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs
  2023-04-28  4:00   ` Shinichiro Kawasaki
@ 2023-05-02 15:45     ` Daniel Wagner
  2023-05-02 16:25       ` Daniel Wagner
  0 siblings, 1 reply; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 15:45 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Fri, Apr 28, 2023 at 04:00:54AM +0000, Shinichiro Kawasaki wrote:
> On Apr 21, 2023 / 08:05, Daniel Wagner wrote:
> > Introduce two new function to calculate the IO size for fio jobs.
> > 
> > _nvme_calc_io_size() returns the jobs size for _run_fio_verify_io()
> > function. Reduce the max size of the job by one megabyte to make the
> > test more robust not to run out of space by accident. Note these fio
> > calls run with just one jobs.
> 
> It is not clear for me what kind of issue happens without the 1MB decrement.
> Could you share failure symptoms you observed?

As I said, this is just to make the test more robust as this the size limits
are not the main objective of these tests. I don't care about this too
much, I'll just drop it then.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc
  2023-04-28  4:23   ` Shinichiro Kawasaki
@ 2023-05-02 15:56     ` Daniel Wagner
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 15:56 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Fri, Apr 28, 2023 at 04:23:27AM +0000, Shinichiro Kawasaki wrote:
> (Let me repost this message, since vger.kernel.org declined it due to too long message).
> 
> On Apr 21, 2023 / 08:05, Daniel Wagner wrote:
> > Move the discovery generation counter code to rc so that we can reuse
> > it in 002.
> 
> I think the core change in this commit is the removal of discovery related
> messages from tests/nvme/002.out. It removes the dependency to the iteration
> number constant 1000 in tests/nvme/002, and prepares for the next commit.
> If this understanding is correct, I suggest to note it in the commit message.

This change is really just changing nvme/002 to use the same infrastructure
as nvme/030 uses. The number loops isn't changed.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable
  2023-04-28  4:12   ` Shinichiro Kawasaki
@ 2023-05-02 15:59     ` Daniel Wagner
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 15:59 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Fri, Apr 28, 2023 at 04:12:06AM +0000, Shinichiro Kawasaki wrote:
> >  nvme_img_size=${nvme_img_size:-"350M"}
> > +nvme_num_iter=${nvme_num_iter:-"100"}
> 
> The commit log of tests/nvme/002 says that "Test nvme discovery with many (1000)
> subsystems so the discovery log page exceeds 4k.". Can we fulfill this test
> purpose with the default value 100?

I am going to drop the nvme/002 change in this case and set the default of
nvme_num_iter to 1000.

> Also, nvme_num_iter will need description in Documentation/running-tests.md.

Sure.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs
  2023-05-02 15:45     ` Daniel Wagner
@ 2023-05-02 16:25       ` Daniel Wagner
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-02 16:25 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Tue, May 02, 2023 at 05:45:46PM +0200, Daniel Wagner wrote:
> On Fri, Apr 28, 2023 at 04:00:54AM +0000, Shinichiro Kawasaki wrote:
> > On Apr 21, 2023 / 08:05, Daniel Wagner wrote:
> > > Introduce two new function to calculate the IO size for fio jobs.
> > > 
> > > _nvme_calc_io_size() returns the jobs size for _run_fio_verify_io()
> > > function. Reduce the max size of the job by one megabyte to make the
> > > test more robust not to run out of space by accident. Note these fio
> > > calls run with just one jobs.
> > 
> > It is not clear for me what kind of issue happens without the 1MB decrement.
> > Could you share failure symptoms you observed?
> 
> As I said, this is just to make the test more robust as this the size limits
> are not the main objective of these tests. I don't care about this too
> much, I'll just drop it then.

BTW, this is how it would look like if the disk is too small:

nvme/035 => nvme0n1 (run mkfs and data verification fio job on an NVMeOF passthru controller) [failed]
    runtime  2.383s  ...  51.954s
    --- tests/nvme/035.out      2023-04-18 17:43:18.163745956 +0200
    +++ /home/wagi/work/blktests/results/nvme0n1/nvme/035.out.bad       2023-05-02 18:21:09.442382196 +0200
    @@ -1,3 +1,20 @@
     Running nvme/035
    +fio: io_u error on file /mnt/blktests//verify.0.0: No space left on device: write offset=925274112, buflen=4096
    +fio: io_u error on file /mnt/blktests//verify.0.0: No space left on device: write offset=406040576, buflen=4096
    +fio: io_u error on file /mnt/blktests//verify.0.0: No space left on device: write offset=498868224, buflen=4096
    +fio: io_u error on file /mnt/blktests//verify.0.0: No space left on device: write offset=217063424, buflen=4096
    +fio: io_u error on file /mnt/blktests//verify.0.0: No space left on device: write offset=1049411584, buflen=4096
    +fio: io_u error on file /mnt/blktests//verify.0.0: No space left on device: write offset=348282880, buflen=4096
    ...
    (Run 'diff -u tests/nvme/035.out /home/wagi/work/blktests/results/nvme0n1/nvme/035.out.bad' to see the entire diff)

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-05-02 13:23     ` Daniel Wagner
@ 2023-05-03  4:04       ` Shinichiro Kawasaki
  2023-05-03  7:29         ` Daniel Wagner
  0 siblings, 1 reply; 43+ messages in thread
From: Shinichiro Kawasaki @ 2023-05-03  4:04 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On May 02, 2023 / 15:23, Daniel Wagner wrote:
>  > --- a/tests/nvme/035
> > > +++ b/tests/nvme/035
> > > @@ -32,7 +32,7 @@ test_device() {
> > >  	port=$(_nvmet_passthru_target_setup "${subsys}")
> > >  	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
> > >  
> > > -	_xfs_run_fio_verify_io "${nsdev}" "900m"
> > > +	_xfs_run_fio_verify_io "${nsdev}"
> > 
> > On the other hand, this change for nvme/035 does not look good. It runs the
> > test on TEST_DEV, which may take very long time without TIMEOUT config.
> 
> I'll add the nvme_img_size argument here instead (nvme: Make test image size
> configurable)

If TEST_DEV has the size same as nvme_img_size, xfs log data will consume some
part of the TEST_DEV, then _xfs_run_fio_verify_io with nvme_img_size will fail.

I think the size argument of _xfs_run_fio_verify_io should be,

   min(size of TEST_DEV, nvm_img_size) - log data size of xfs

But I'm not sure if we can do this calculation correctly.

If the calculation is not possible, it would be the better to leave the hard
coded constants (1GB for TEST_DEV size and 900mb as fio I/O size) in this test
case, because nvme/035 is rather unique in the nvme group, which uses TEST_DEV.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io
  2023-05-03  4:04       ` Shinichiro Kawasaki
@ 2023-05-03  7:29         ` Daniel Wagner
  0 siblings, 0 replies; 43+ messages in thread
From: Daniel Wagner @ 2023-05-03  7:29 UTC (permalink / raw)
  To: Shinichiro Kawasaki
  Cc: linux-nvme, linux-kernel, linux-block, Chaitanya Kulkarni,
	Shin'ichiro Kawasaki

On Wed, May 03, 2023 at 04:04:50AM +0000, Shinichiro Kawasaki wrote:
> On May 02, 2023 / 15:23, Daniel Wagner wrote:
> >  > --- a/tests/nvme/035
> > > > +++ b/tests/nvme/035
> > > > @@ -32,7 +32,7 @@ test_device() {
> > > >  	port=$(_nvmet_passthru_target_setup "${subsys}")
> > > >  	nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${subsys}")
> > > >  
> > > > -	_xfs_run_fio_verify_io "${nsdev}" "900m"
> > > > +	_xfs_run_fio_verify_io "${nsdev}"
> > > 
> > > On the other hand, this change for nvme/035 does not look good. It runs the
> > > test on TEST_DEV, which may take very long time without TIMEOUT config.
> > 
> > I'll add the nvme_img_size argument here instead (nvme: Make test image size
> > configurable)
> 
> If TEST_DEV has the size same as nvme_img_size, xfs log data will consume some
> part of the TEST_DEV, then _xfs_run_fio_verify_io with nvme_img_size will fail.
> 
> I think the size argument of _xfs_run_fio_verify_io should be,
> 
>    min(size of TEST_DEV, nvm_img_size) - log data size of xfs
> 
> But I'm not sure if we can do this calculation correctly.
> 
> If the calculation is not possible, it would be the better to leave the hard
> coded constants (1GB for TEST_DEV size and 900mb as fio I/O size) in this test
> case, because nvme/035 is rather unique in the nvme group, which uses TEST_DEV.

I've solved this by extending _xfs_run_fio_verify_io() to limit the max size of
the io job:

_xfs_run_fio_verify_io() {
	local mount_dir="/mnt/blktests"
	local bdev=$1
	local sz=$2
	local sz_mb
	local avail
	local avail_mb

	_xfs_mkfs_and_mount "${bdev}" "${mount_dir}" >> "${FULL}" 2>&1

	avail="$(df --output=avail "${mount_dir}" | tail -1)"
	avail_mb="$((avail / 1024))"

	if [[ -z "${sz}" ]]; then
		sz_mb="${avail_mb}"
	else
		sz_mb="$(convert_to_mb "${sz}")"
		if [[ "${sz_mb}" -gt "${avail_mb}" ]]; then
			sz_mb="${avail_mb}"
		fi
	fi

	_run_fio_verify_io --size="${sz_mb}m" --directory="${mount_dir}/"

	umount "${mount_dir}" >> "${FULL}" 2>&1
	rm -fr "${mount_dir}"
}

Anyway, I'll send out the updated series shortly

^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2023-05-03  7:31 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-21  6:04 [PATCH REPOST blktests v2 0/9] nvme testsuite runtime optimization Daniel Wagner
2023-04-21  6:04 ` [PATCH REPOST blktests v2 1/9] nvme-rc: Auto convert test device size info Daniel Wagner
2023-04-21  6:40   ` Hannes Reinecke
2023-04-28  2:39   ` Shinichiro Kawasaki
2023-04-21  6:04 ` [PATCH REPOST blktests v2 2/9] nvme: Do not hard code device size for dd test Daniel Wagner
2023-04-21  6:23   ` Hannes Reinecke
2023-04-28  2:44   ` Shinichiro Kawasaki
2023-05-02 12:54     ` Daniel Wagner
2023-04-21  6:04 ` [PATCH REPOST blktests v2 3/9] common-xfs: Make size argument optional for _xfs_run_fio_verify_io Daniel Wagner
2023-04-21  6:27   ` Hannes Reinecke
2023-04-21  6:54     ` Daniel Wagner
2023-04-28  2:54       ` Shinichiro Kawasaki
2023-05-02 13:20         ` Daniel Wagner
2023-05-02 13:19     ` Daniel Wagner
2023-04-28  2:59   ` Shinichiro Kawasaki
2023-05-02 13:23     ` Daniel Wagner
2023-05-03  4:04       ` Shinichiro Kawasaki
2023-05-03  7:29         ` Daniel Wagner
2023-04-21  6:05 ` [PATCH REPOST blktests v2 4/9] nvme: Use runtime fio background jobs Daniel Wagner
2023-04-21  6:29   ` Hannes Reinecke
2023-04-21  6:57     ` Daniel Wagner
2023-04-28  4:29       ` Shinichiro Kawasaki
2023-05-02 14:22         ` Daniel Wagner
2023-04-21  6:05 ` [PATCH REPOST blktests v2 5/9] nvme: Make test image size configurable Daniel Wagner
2023-04-21  6:31   ` Hannes Reinecke
2023-04-28  3:08   ` Shinichiro Kawasaki
2023-04-21  6:05 ` [PATCH REPOST blktests v2 6/9] nvme-rc: Add minimal test image size requirement Daniel Wagner
2023-04-21  6:31   ` Hannes Reinecke
2023-04-21  6:05 ` [PATCH REPOST blktests v2 7/9] nvme-rc: Calculate IO size for fio jobs Daniel Wagner
2023-04-21  6:33   ` Hannes Reinecke
2023-04-21  7:03     ` Daniel Wagner
2023-04-28  3:57       ` Shinichiro Kawasaki
2023-04-28  4:00   ` Shinichiro Kawasaki
2023-05-02 15:45     ` Daniel Wagner
2023-05-02 16:25       ` Daniel Wagner
2023-04-21  6:05 ` [PATCH REPOST blktests v2 8/9] nvme-rc: Move discovery generation counter code to rc Daniel Wagner
2023-04-21  6:38   ` Hannes Reinecke
2023-04-28  4:23   ` Shinichiro Kawasaki
2023-05-02 15:56     ` Daniel Wagner
2023-04-21  6:05 ` [PATCH REPOST blktests v2 9/9] nvme: Make the number iterations configurable Daniel Wagner
2023-04-21  6:38   ` Hannes Reinecke
2023-04-28  4:12   ` Shinichiro Kawasaki
2023-05-02 15:59     ` Daniel Wagner

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 NNTP newsgroup(s).