* [RFC blktests v1 00/10] Add support to run against real target
@ 2024-03-18 9:38 Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 01/10] common/xfs: propagate errors from _xfs_run_fio_verify_io Daniel Wagner
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
As preperation for the planed discussion during LSFMM on
- running blktest against real hardare/target[1]
I've played a bit around with this idea. It was fairly simple to get it going,
because all the NVMEeoF tests use the common setup/cleanup helpers and allow an
external script to run instead. I've wrote a simple Python script, which then
forwards the setup/cleanup requests to nvmetcli with Hannes' rpc changes [2].
Thus, I still run blktests against a Linux soft target over TCP. This already
uncovered an issue with xfs formatted disk. The test passes if the disk
formatted with btrfs. It seems worthwhile to extend these tests, as it is able
detect new problems:
Running nvme/012
umount: /mnt/blktests: not mounted.
meta-data=/dev/nvme0n1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=1
= reflink=1 bigtime=1 inobtcount=1 nrext64=1
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
mount: /mnt/blktests: mount(2) system call failed: Structure needs cleaning.
dmesg(1) may have more information after failed mount system call.
With btrfs:
Running nvme/012
umount: /mnt/blktests: not mounted.
btrfs-progs v6.7
See https://btrfs.readthedocs.io for more information.
Performing full device TRIM /dev/nvme0n1 (5.00GiB) ...
NOTE: several default settings have changed in version 5.15, please make sure
this does not affect your deployments:
- DUP for metadata (-m dup)
- enabled no-holes (-O no-holes)
- enabled free-space-tree (-R free-space-tree)
Label: (null)
UUID: 7f0e210f-907b-4b87-9a98-fab0d9d60c56
Node size: 16384
Sector size: 4096
Filesystem size: 5.00GiB
Block group profiles:
Data: single 8.00MiB
Metadata: DUP 256.00MiB
System: DUP 8.00MiB
SSD detected: yes
Zoned device: no
Incompat features: extref, skinny-metadata, no-holes, free-space-tree
Runtime features: free-space-tree
Checksum: crc32c
Number of devices: 1
Devices:
ID SIZE PATH
1 5.00GiB /dev/nvme0n1
I am still running a bit older verion of the kernel (v6.8-rc3); this might
be fixed already.
nvme/002 (create many subsystems and test discovery) [not run]
nvme_trtype=tcp is not supported in this test
nvme/003 (test if we're sending keep-alives to a discovery controller) [passed]
runtime 12.696s ... 12.943s
nvme/004 (test nvme and nvmet UUID NS descriptors) [passed]
runtime 2.895s ... 2.765s
nvme/005 (reset local loopback target) [passed]
runtime 2.961s ... 2.929s
nvme/006 (create an NVMeOF target with a block device-backed ns) [passed]
runtime 1.389s ... 1.324s
nvme/007 (create an NVMeOF target with a file-backed ns) [passed]
runtime 1.338s ... 1.337s
nvme/008 (create an NVMeOF host with a block device-backed ns) [passed]
runtime 2.797s ... 2.764s
nvme/009 (create an NVMeOF host with a file-backed ns) [passed]
runtime 2.804s ... 2.775s
nvme/010 (run data verification fio job on NVMeOF block device-backed ns) [passed]
runtime 21.120s ... 40.042s
nvme/011 (run data verification fio job on NVMeOF file-backed ns) [passed]
runtime 39.702s ... 40.838s
nvme/012 (run mkfs and data verification fio job on NVMeOF block device-backed ns) [failed]
runtime 157.538s ... 3.170s
--- tests/nvme/012.out 2023-11-28 12:59:52.704838920 +0100
+++ /home/wagi/work/blktests/results/nodev/nvme/012.out.bad 2024-03-18 10:04:38.572222634 +0100
@@ -1,3 +1,4 @@
Running nvme/012
+FAIL: fio verify failed
disconnected 1 controller(s)
Test complete
[...]
[1] https://lore.kernel.org/linux-nvme/23fhu43orn5yyi6jytsyez3f3d7liocp4cat5gfswtan33m3au@iyxhcwee6wvk/
[2] https://github.com/hreinecke/nvmetcli/tree/rpc
Daniel Wagner (10):
common/xfs: propagate errors from _xfs_run_fio_verify_io
nvme/{012,013,035}: check return value of _xfs_run_fio_verify_io
nvme/rc: use long command line option for nvme
nvme/{014,015,018,019,020,023,024,026,045,046}: use long command line
option for nvme
nvme/rc: connect subsys only support long options
nvme/rc: remove unused connect options
nvme/rc: add nqn/uuid args to target setup/cleanup helper
nvme/031: do not open code target setup/cleanup
nvme/rc: introduce remote target support
nvme/030: only run against kernel soft target
common/xfs | 9 +++-
tests/nvme/012 | 4 +-
tests/nvme/013 | 4 +-
tests/nvme/014 | 2 +-
tests/nvme/015 | 2 +-
tests/nvme/018 | 3 +-
tests/nvme/019 | 3 +-
tests/nvme/020 | 3 +-
tests/nvme/023 | 3 +-
tests/nvme/024 | 3 +-
tests/nvme/026 | 3 +-
tests/nvme/030 | 1 +
tests/nvme/031 | 10 ++--
tests/nvme/035 | 4 +-
tests/nvme/045 | 6 +--
tests/nvme/046 | 7 +--
tests/nvme/rc | 142 ++++++++++++++++++++++++++++++++++---------------
17 files changed, 141 insertions(+), 68 deletions(-)
--
2.44.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [RFC blktests v1 01/10] common/xfs: propagate errors from _xfs_run_fio_verify_io
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 02/10] nvme/{012,013,035}: check return value of _xfs_run_fio_verify_io Daniel Wagner
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
If _xfs_mkfs_and_mount fails _xfs_run_fio_verify_io will continue to
execute and fio will run against the local file system instead against
the block device.
Propagate all errors back to the caller.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
common/xfs | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/common/xfs b/common/xfs
index 37ce85878df2..569770fecd53 100644
--- a/common/xfs
+++ b/common/xfs
@@ -16,7 +16,7 @@ _xfs_mkfs_and_mount() {
mkdir -p "${mount_dir}"
umount "${mount_dir}"
- mkfs.xfs -l size=64m -f "${bdev}"
+ mkfs.xfs -l size=64m -f "${bdev}" || return $?
mount "${bdev}" "${mount_dir}"
}
@@ -27,8 +27,10 @@ _xfs_run_fio_verify_io() {
local sz_mb
local avail
local avail_mb
+ local rc
- _xfs_mkfs_and_mount "${bdev}" "${mount_dir}" >> "${FULL}" 2>&1
+ _xfs_mkfs_and_mount "${bdev}" "${mount_dir}" \
+ >>"${FULL}" 2>&1 || return $?
avail="$(df --output=avail "${mount_dir}" | tail -1)"
avail_mb="$((avail / 1024))"
@@ -43,7 +45,10 @@ _xfs_run_fio_verify_io() {
fi
_run_fio_verify_io --size="${sz_mb}m" --directory="${mount_dir}/"
+ rc=$?
umount "${mount_dir}" >> "${FULL}" 2>&1
rm -fr "${mount_dir}"
+
+ return "${rc}"
}
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 02/10] nvme/{012,013,035}: check return value of _xfs_run_fio_verify_io
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 01/10] common/xfs: propagate errors from _xfs_run_fio_verify_io Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 03/10] nvme/rc: use long command line option for nvme Daniel Wagner
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
When _xfs_run_fio_verify_io fails we should log the error. Currently, no
failure is detected when this function fails.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/012 | 4 +++-
tests/nvme/013 | 4 +++-
tests/nvme/035 | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/tests/nvme/012 b/tests/nvme/012
index c5e0eb9c5e23..f0914ce3206b 100755
--- a/tests/nvme/012
+++ b/tests/nvme/012
@@ -33,7 +33,9 @@ test() {
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- _xfs_run_fio_verify_io "/dev/${nvmedev}n1"
+ if ! _xfs_run_fio_verify_io "/dev/${nvmedev}n1"; then
+ echo "FAIL: fio verify failed"
+ fi
_nvme_disconnect_subsys "${def_subsysnqn}"
diff --git a/tests/nvme/013 b/tests/nvme/013
index 3ec280ff24cf..3cef009cb9f4 100755
--- a/tests/nvme/013
+++ b/tests/nvme/013
@@ -32,7 +32,9 @@ test() {
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- _xfs_run_fio_verify_io "/dev/${nvmedev}n1"
+ if ! _xfs_run_fio_verify_io "/dev/${nvmedev}n1"; then
+ echo "FAIL: fio verify failed"
+ fi
_nvme_disconnect_subsys "${def_subsysnqn}"
diff --git a/tests/nvme/035 b/tests/nvme/035
index 712fe1dbcfb8..01aa09077d6a 100755
--- a/tests/nvme/035
+++ b/tests/nvme/035
@@ -31,7 +31,9 @@ test_device() {
_nvmet_passthru_target_setup "${def_subsysnqn}"
nsdev=$(_nvmet_passthru_target_connect "${nvme_trtype}" "${def_subsysnqn}")
- _xfs_run_fio_verify_io "${nsdev}" "${nvme_img_size}"
+ if ! _xfs_run_fio_verify_io "${nsdev}" "${nvme_img_size}"; then
+ echo "FAIL: fio verify failed"
+ fi
_nvme_disconnect_subsys "${def_subsysnqn}"
_nvmet_passthru_target_cleanup "${def_subsysnqn}"
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 03/10] nvme/rc: use long command line option for nvme
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 01/10] common/xfs: propagate errors from _xfs_run_fio_verify_io Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 02/10] nvme/{012,013,035}: check return value of _xfs_run_fio_verify_io Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 04/10] nvme/{014,015,018,019,020,023,024,026,045,046}: " Daniel Wagner
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
The long format of the command line option are more descriptive and more
likely to stay stable.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/rc | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 961364055733..c8f13819ca21 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -160,7 +160,7 @@ _require_nvme_trtype_is_fabrics() {
}
_require_nvme_cli_auth() {
- if ! nvme gen-dhchap-key -n nvmf-test-subsys > /dev/null 2>&1 ; then
+ if ! nvme gen-dhchap-key --nqn nvmf-test-subsys > /dev/null 2>&1 ; then
SKIP_REASONS+=("nvme gen-dhchap-key command missing")
return 1
fi
@@ -408,13 +408,13 @@ _setup_nvmet() {
_nvme_disconnect_ctrl() {
local ctrl="$1"
- nvme disconnect -d "${ctrl}"
+ nvme disconnect --device "${ctrl}"
}
_nvme_disconnect_subsys() {
local subsysnqn="$1"
- nvme disconnect -n "${subsysnqn}" |& tee -a "$FULL" |
+ nvme disconnect --nqn "${subsysnqn}" |& tee -a "$FULL" |
grep -o "disconnected.*"
}
@@ -508,11 +508,11 @@ _nvme_connect_subsys() {
trtype="$1"
subsysnqn="$2"
- ARGS=(-t "${trtype}" -n "${subsysnqn}")
+ ARGS=(--transport "${trtype}" --nqn "${subsysnqn}")
if [[ "${trtype}" == "fc" ]] ; then
- ARGS+=(-a "${traddr}" -w "${host_traddr}")
+ ARGS+=(--traddr "${traddr}" --host-traddr "${host_traddr}")
elif [[ "${trtype}" != "loop" ]]; then
- ARGS+=(-a "${traddr}" -s "${trsvcid}")
+ ARGS+=(--traddr "${traddr}" --trsvcid "${trsvcid}")
fi
ARGS+=(--hostnqn="${hostnqn}")
ARGS+=(--hostid="${hostid}")
@@ -578,13 +578,13 @@ _nvme_discover() {
local host_traddr="${3:-$def_host_traddr}"
local trsvcid="${3:-$def_trsvcid}"
- ARGS=(-t "${trtype}")
+ ARGS=(--transport "${trtype}")
ARGS+=(--hostnqn="${def_hostnqn}")
ARGS+=(--hostid="${def_hostid}")
if [[ "${trtype}" = "fc" ]]; then
- ARGS+=(-a "${traddr}" -w "${host_traddr}")
+ ARGS+=(--traddr "${traddr}" --host-traddr "${host_traddr}")
elif [[ "${trtype}" != "loop" ]]; then
- ARGS+=(-a "${traddr}" -s "${trsvcid}")
+ ARGS+=(--traddr "${traddr}" --trsvcid "${trsvcid}")
fi
nvme discover "${ARGS[@]}"
}
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 04/10] nvme/{014,015,018,019,020,023,024,026,045,046}: use long command line option for nvme
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (2 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 03/10] nvme/rc: use long command line option for nvme Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 05/10] nvme/rc: connect subsys only support long options Daniel Wagner
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
The long format of the command line option are more descriptive and more
likely to stay stable.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/014 | 2 +-
tests/nvme/015 | 2 +-
tests/nvme/018 | 3 ++-
tests/nvme/019 | 3 ++-
tests/nvme/020 | 3 ++-
tests/nvme/023 | 3 ++-
tests/nvme/024 | 3 ++-
tests/nvme/026 | 3 ++-
tests/nvme/045 | 6 +++---
tests/nvme/046 | 7 ++++---
10 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/tests/nvme/014 b/tests/nvme/014
index 31bfeb76d13d..c02167142cb3 100755
--- a/tests/nvme/014
+++ b/tests/nvme/014
@@ -39,7 +39,7 @@ test() {
dd if=/dev/urandom of="/dev/${nvmedev}n1" \
count="${count}" bs="${bs}" status=none
- nvme flush "/dev/${nvmedev}" -n 1
+ nvme flush "/dev/${nvmedev}" --namespace-id 1
_nvme_disconnect_subsys "${def_subsysnqn}"
diff --git a/tests/nvme/015 b/tests/nvme/015
index 4315ffa57577..8ea90f10bda7 100755
--- a/tests/nvme/015
+++ b/tests/nvme/015
@@ -39,7 +39,7 @@ test() {
dd if=/dev/urandom of="/dev/${nvmedev}n1" \
count="${count}" bs="${bs}" status=none
- nvme flush "/dev/${nvmedev}n1" -n 1
+ nvme flush "/dev/${nvmedev}n1" --namespace-id 1
_nvme_disconnect_subsys "${def_subsysnqn}"
diff --git a/tests/nvme/018 b/tests/nvme/018
index e90173098ec1..e631434d7bd6 100755
--- a/tests/nvme/018
+++ b/tests/nvme/018
@@ -35,7 +35,8 @@ test() {
sectors="$(blockdev --getsz "/dev/${nvmedev}n1")"
bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
- nvme read "/dev/${nvmedev}n1" -s "$sectors" -c 0 -z "$bs" &>"$FULL" \
+ nvme read "/dev/${nvmedev}n1" --start-block "$sectors" \
+ --block-count 0 --data-size "$bs" &>"$FULL" \
&& echo "ERROR: nvme read for out of range LBA was not rejected"
_nvme_disconnect_subsys "${def_subsysnqn}"
diff --git a/tests/nvme/019 b/tests/nvme/019
index a1035ff8d8c7..3ab22e2cba01 100755
--- a/tests/nvme/019
+++ b/tests/nvme/019
@@ -31,7 +31,8 @@ test() {
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- nvme dsm "/dev/${nvmedev}" -n 1 -d -s "${sblk_range}" -b "${nblk_range}"
+ nvme dsm "/dev/${nvmedev}" --namespace-id 1 --ad \
+ --slbs "${sblk_range}" --blocks "${nblk_range}"
_nvme_disconnect_subsys "${def_subsysnqn}"
diff --git a/tests/nvme/020 b/tests/nvme/020
index ba3f4c8a5b3d..10de114b83af 100755
--- a/tests/nvme/020
+++ b/tests/nvme/020
@@ -30,7 +30,8 @@ test() {
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- nvme dsm "/dev/${nvmedev}" -n 1 -d -s "${sblk_range}" -b "${nblk_range}"
+ nvme dsm "/dev/${nvmedev}" --namespace-id 1 --ad \
+ --slbs "${sblk_range}" --blocks "${nblk_range}"
_nvme_disconnect_subsys "${def_subsysnqn}"
diff --git a/tests/nvme/023 b/tests/nvme/023
index 4e4d838ef6c9..58f03e8603a7 100755
--- a/tests/nvme/023
+++ b/tests/nvme/023
@@ -29,7 +29,8 @@ test() {
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- if ! nvme smart-log "/dev/${nvmedev}" -n 1 >> "$FULL" 2>&1; then
+ if ! nvme smart-log "/dev/${nvmedev}" --namespace-id 1 \
+ >> "$FULL" 2>&1; then
echo "ERROR: smart-log bdev-ns failed"
fi
diff --git a/tests/nvme/024 b/tests/nvme/024
index 2535a9a78d23..4608f015c4c3 100755
--- a/tests/nvme/024
+++ b/tests/nvme/024
@@ -29,7 +29,8 @@ test() {
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- if ! nvme smart-log "/dev/${nvmedev}" -n 1 >> "$FULL" 2>&1; then
+ if ! nvme smart-log "/dev/${nvmedev}" --namespace-id 1 \
+ >> "$FULL" 2>&1; then
echo "ERROR: smart-log file-ns failed"
fi
_nvme_disconnect_subsys "${def_subsysnqn}" >> "$FULL" 2>&1
diff --git a/tests/nvme/026 b/tests/nvme/026
index 5a7d9927b44b..d5e13db0a916 100755
--- a/tests/nvme/026
+++ b/tests/nvme/026
@@ -29,7 +29,8 @@ test() {
nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
_check_uuid "${nvmedev}"
- if ! nvme ns-descs "/dev/${nvmedev}" -n 1 >> "$FULL" 2>&1; then
+ if ! nvme ns-descs "/dev/${nvmedev}" --namespace-id 1 \
+ >> "$FULL" 2>&1; then
echo "ERROR: ns-desc failed"
fi
diff --git a/tests/nvme/045 b/tests/nvme/045
index 30c45df8ed18..ceec59979928 100755
--- a/tests/nvme/045
+++ b/tests/nvme/045
@@ -90,7 +90,7 @@ test() {
echo "Renew host key on the controller"
- new_hostkey="$(nvme gen-dhchap-key -n ${def_subsysnqn} 2> /dev/null)"
+ new_hostkey="$(nvme gen-dhchap-key --nqn ${def_subsysnqn} 2> /dev/null)"
_set_nvmet_hostkey "${def_hostnqn}" "${new_hostkey}"
@@ -100,7 +100,7 @@ test() {
echo "Renew ctrl key on the controller"
- new_ctrlkey="$(nvme gen-dhchap-key -n ${def_subsysnqn} 2> /dev/null)"
+ new_ctrlkey="$(nvme gen-dhchap-key --nqn ${def_subsysnqn} 2> /dev/null)"
_set_nvmet_ctrlkey "${def_hostnqn}" "${new_ctrlkey}"
@@ -132,7 +132,7 @@ test() {
echo "Renew host key on the controller and force reconnect"
- new_hostkey="$(nvme gen-dhchap-key -n ${def_subsysnqn} 2> /dev/null)"
+ new_hostkey="$(nvme gen-dhchap-key --nqn ${def_subsysnqn} 2> /dev/null)"
_set_nvmet_hostkey "${def_hostnqn}" "${new_hostkey}"
diff --git a/tests/nvme/046 b/tests/nvme/046
index 7576a24f234d..ea68d4079403 100755
--- a/tests/nvme/046
+++ b/tests/nvme/046
@@ -25,13 +25,14 @@ test_device() {
chmod g+r,o+r "$ngdev"
- if ! _run_user "nvme io-passthru ${ngdev} --opcode 2 -l 4096 \
- -n $nsid -r" >> "${FULL}" 2>&1; then
+ if ! _run_user "nvme io-passthru ${ngdev} --opcode 2 --data-len 4096 \
+ --namespace-id $nsid --read" >> "${FULL}" 2>&1; then
echo "Error: io-passthru read failed"
fi
if _run_user "echo hello | nvme io-passthru ${ngdev} --opcode 1 \
- -l 4096 -n $nsid -r" >> "${FULL}" 2>&1; then
+ --data-len 4096 --namespace-id $nsid --read" \
+ >> "${FULL}" 2>&1; then
echo "Error: io-passthru write passed (unexpected)"
fi
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 05/10] nvme/rc: connect subsys only support long options
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (3 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 04/10] nvme/{014,015,018,019,020,023,024,026,045,046}: " Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 06/10] nvme/rc: remove unused connect options Daniel Wagner
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
There is no user for the short command line options, thus
remove the short options to reduce the parsing overhead.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/rc | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/tests/nvme/rc b/tests/nvme/rc
index c8f13819ca21..c23f6fe09b6a 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -440,55 +440,55 @@ _nvme_connect_subsys() {
while [[ $# -gt 0 ]]; do
case $1 in
- -a|--traddr)
+ --traddr)
traddr="$2"
shift 2
;;
- -w|--host-traddr)
+ --host-traddr)
host_traddr="$2"
shift 2
;;
- -s|--trsvcid)
+ --trsvcid)
trsvcid="$2"
shift 2
;;
- -n|--hostnqn)
+ --hostnqn)
hostnqn="$2"
shift 2
;;
- -I|--hostid)
+ --hostid)
hostid="$2"
shift 2
;;
- -S|--dhchap-secret)
+ --dhchap-secret)
hostkey="$2"
shift 2
;;
- -C|--dhchap-ctrl-secret)
+ --dhchap-ctrl-secret)
ctrlkey="$2"
shift 2
;;
- -i|--nr-io-queues)
+ --nr-io-queues)
nr_io_queues="$2"
shift 2
;;
- -W|--nr-write-queues)
+ --nr-write-queues)
nr_write_queues="$2"
shift 2
;;
- -P|--nr-poll-queues)
+ --nr-poll-queues)
nr_poll_queues="$2"
shift 2
;;
- -k|--keep-alive-tmo)
+ --keep-alive-tmo)
keep_alive_tmo="$2"
shift 2
;;
- -c|--reconnect-delay)
+ --reconnect-delay)
reconnect_delay="$2"
shift 2
;;
- -l|--ctrl-loss-tmo)
+ --ctrl-loss-tmo)
ctrl_loss_tmo="$2"
shift 2
;;
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 06/10] nvme/rc: remove unused connect options
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (4 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 05/10] nvme/rc: connect subsys only support long options Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 06/10] nvme/rc: Remove " Daniel Wagner
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
These options are not used, thus remove them.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/rc | 19 ++-----------------
1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/tests/nvme/rc b/tests/nvme/rc
index c23f6fe09b6a..af48593e2cb7 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -422,9 +422,6 @@ _nvme_connect_subsys() {
local positional_args=()
local trtype=""
local subsysnqn=""
- local traddr="$def_traddr"
- local host_traddr="$def_host_traddr"
- local trsvcid="$def_trsvcid"
local hostnqn="$def_hostnqn"
local hostid="$def_hostid"
local hostkey=""
@@ -440,18 +437,6 @@ _nvme_connect_subsys() {
while [[ $# -gt 0 ]]; do
case $1 in
- --traddr)
- traddr="$2"
- shift 2
- ;;
- --host-traddr)
- host_traddr="$2"
- shift 2
- ;;
- --trsvcid)
- trsvcid="$2"
- shift 2
- ;;
--hostnqn)
hostnqn="$2"
shift 2
@@ -510,9 +495,9 @@ _nvme_connect_subsys() {
ARGS=(--transport "${trtype}" --nqn "${subsysnqn}")
if [[ "${trtype}" == "fc" ]] ; then
- ARGS+=(--traddr "${traddr}" --host-traddr "${host_traddr}")
+ ARGS+=(--traddr "${def_traddr}" --host-traddr "${def_host_traddr}")
elif [[ "${trtype}" != "loop" ]]; then
- ARGS+=(--traddr "${traddr}" --trsvcid "${trsvcid}")
+ ARGS+=(--traddr "${def_traddr}" --trsvcid "${def_trsvcid}")
fi
ARGS+=(--hostnqn="${hostnqn}")
ARGS+=(--hostid="${hostid}")
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 06/10] nvme/rc: Remove unused connect options
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (5 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 06/10] nvme/rc: remove unused connect options Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 07/10] nvme/rc: add nqn/uuid args to target setup/cleanup helper Daniel Wagner
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
These options are not used, thus remove them.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/rc | 19 ++-----------------
1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/tests/nvme/rc b/tests/nvme/rc
index c23f6fe09b6a..af48593e2cb7 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -422,9 +422,6 @@ _nvme_connect_subsys() {
local positional_args=()
local trtype=""
local subsysnqn=""
- local traddr="$def_traddr"
- local host_traddr="$def_host_traddr"
- local trsvcid="$def_trsvcid"
local hostnqn="$def_hostnqn"
local hostid="$def_hostid"
local hostkey=""
@@ -440,18 +437,6 @@ _nvme_connect_subsys() {
while [[ $# -gt 0 ]]; do
case $1 in
- --traddr)
- traddr="$2"
- shift 2
- ;;
- --host-traddr)
- host_traddr="$2"
- shift 2
- ;;
- --trsvcid)
- trsvcid="$2"
- shift 2
- ;;
--hostnqn)
hostnqn="$2"
shift 2
@@ -510,9 +495,9 @@ _nvme_connect_subsys() {
ARGS=(--transport "${trtype}" --nqn "${subsysnqn}")
if [[ "${trtype}" == "fc" ]] ; then
- ARGS+=(--traddr "${traddr}" --host-traddr "${host_traddr}")
+ ARGS+=(--traddr "${def_traddr}" --host-traddr "${def_host_traddr}")
elif [[ "${trtype}" != "loop" ]]; then
- ARGS+=(--traddr "${traddr}" --trsvcid "${trsvcid}")
+ ARGS+=(--traddr "${def_traddr}" --trsvcid "${def_trsvcid}")
fi
ARGS+=(--hostnqn="${hostnqn}")
ARGS+=(--hostid="${hostid}")
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 07/10] nvme/rc: add nqn/uuid args to target setup/cleanup helper
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (6 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 06/10] nvme/rc: Remove " Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 08/10] nvme/031: do not open code target setup/cleanup Daniel Wagner
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
Make these helper a bit more flexible, so that the caller
can setup not just the default subsysnqn.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/rc | 36 ++++++++++++++++++++++++++++++------
1 file changed, 30 insertions(+), 6 deletions(-)
diff --git a/tests/nvme/rc b/tests/nvme/rc
index af48593e2cb7..2e9a0860c0e7 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -823,6 +823,8 @@ _nvmet_target_setup() {
local blkdev
local ctrlkey=""
local hostkey=""
+ local subsysnqn="${def_subsysnqn}"
+ local subsys_uuid="${def_subsys_uuid}"
local port
while [[ $# -gt 0 ]]; do
@@ -839,6 +841,14 @@ _nvmet_target_setup() {
hostkey="$2"
shift 2
;;
+ --subsysnqn)
+ subsysnqn="$2"
+ shift 2
+ ;;
+ --subsys-uuid)
+ subsys_uuid="$2"
+ shift 2
+ ;;
*)
echo "WARNING: unknown argument: $1"
shift
@@ -853,11 +863,11 @@ _nvmet_target_setup() {
blkdev="$(_nvme_def_file_path)"
fi
- _create_nvmet_subsystem "${def_subsysnqn}" "${blkdev}" \
- "${def_subsys_uuid}"
+ _create_nvmet_subsystem "${subsysnqn}" "${blkdev}" \
+ "${subsys_uuid}"
port="$(_create_nvmet_port "${nvme_trtype}")"
- _add_nvmet_subsys_to_port "${port}" "${def_subsysnqn}"
- _create_nvmet_host "${def_subsysnqn}" "${def_hostnqn}" \
+ _add_nvmet_subsys_to_port "${port}" "${subsysnqn}"
+ _create_nvmet_host "${subsysnqn}" "${def_hostnqn}" \
"${hostkey}" "${ctrlkey}"
}
@@ -865,14 +875,28 @@ _nvmet_target_cleanup() {
local ports
local port
local blkdev
+ local subsysnqn="${def_subsysnqn}"
+
+ while [[ $# -gt 0 ]]; do
+ case $1 in
+ --subsysnqn)
+ subsysnqn="$2"
+ shift 2
+ ;;
+ *)
+ echo "WARNING: unknown argument: $1"
+ shift
+ ;;
+ esac
+ done
_get_nvmet_ports "${def_subsysnqn}" ports
for port in "${ports[@]}"; do
- _remove_nvmet_subsystem_from_port "${port}" "${def_subsysnqn}"
+ _remove_nvmet_subsystem_from_port "${port}" "${subsysnqn}"
_remove_nvmet_port "${port}"
done
- _remove_nvmet_subsystem "${def_subsysnqn}"
+ _remove_nvmet_subsystem "${subsysnqn}"
_remove_nvmet_host "${def_hostnqn}"
_cleanup_blkdev
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 08/10] nvme/031: do not open code target setup/cleanup
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (7 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 07/10] nvme/rc: add nqn/uuid args to target setup/cleanup helper Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 09/10] nvme/rc: introduce remote target support Daniel Wagner
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
No need to open code the target setup and cleanup step. Just use the
common helper to setup and cleanup the target.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/031 | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/tests/nvme/031 b/tests/nvme/031
index ed5f19668674..892a52170ce9 100755
--- a/tests/nvme/031
+++ b/tests/nvme/031
@@ -40,14 +40,12 @@ test() {
port="$(_create_nvmet_port "${nvme_trtype}")"
for ((i = 0; i < iterations; i++)); do
- _create_nvmet_subsystem "${subsys}$i" "${loop_dev}"
- _add_nvmet_subsys_to_port "${port}" "${subsys}$i"
- _create_nvmet_host "${subsys}$i" "${def_hostnqn}"
+ _nvmet_target_setup --subsysnqn "${subsys}$i" --blkdev "${loop_dev}"
+
_nvme_connect_subsys "${nvme_trtype}" "${subsys}$i"
_nvme_disconnect_subsys "${subsys}$i" >> "${FULL}" 2>&1
- _remove_nvmet_subsystem_from_port "${port}" "${subsys}$i"
- _remove_nvmet_subsystem "${subsys}$i"
- _remove_nvmet_host "${def_hostnqn}"
+
+ _nvmet_target_cleanup --subsysnqn "${subsys}$i"
done
_remove_nvmet_port "${port}"
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 09/10] nvme/rc: introduce remote target support
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (8 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 08/10] nvme/031: do not open code target setup/cleanup Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 10/10] nvme/030: only run against kernel soft target Daniel Wagner
2024-03-18 11:21 ` [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
Most of the NVMEeoF tests are exercising the host code of the nvme
subsystem. There is no real reason not to run these against a real
target. We just have to skip the soft target setup and make it possible
to setup a remote target.
Because all tests use now the common setup/cleanup helpers we just need
to intercept this call and forward it to an external component.
As we already have various nvme variables to setup the target, extend
this part with 'nvme_target_control' which is expected to be script
which setups the remote target accordingly.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
---
tests/nvme/rc | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 44 insertions(+), 5 deletions(-)
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 2e9a0860c0e7..35eb4cc5e954 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -7,9 +7,10 @@
. common/rc
. common/multipath-over-rdma
-def_traddr="127.0.0.1"
+def_traddr="${nvme_traddr:-127.0.0.1}"
+def_host_traddr="${nvme_host_traddr:-}"
def_adrfam="ipv4"
-def_trsvcid="4420"
+def_trsvcid="${nvme_trsvcid:-4420}"
def_remote_wwnn="0x10001100aa000001"
def_remote_wwpn="0x20001100aa000001"
def_local_wwnn="0x10001100aa000002"
@@ -19,6 +20,7 @@ def_hostnqn="nqn.2014-08.org.nvmexpress:uuid:${def_hostid}"
export def_subsysnqn="blktests-subsystem-1"
export def_subsys_uuid="91fdba0d-f87b-4c25-b80f-db7be1418b9e"
nvme_trtype=${nvme_trtype:-"loop"}
+nvme_target_control="${nvme_target_control:-}"
nvme_img_size=${nvme_img_size:-"1G"}
nvme_num_iter=${nvme_num_iter:-"1000"}
@@ -325,6 +327,10 @@ _cleanup_nvmet() {
fi
done
+ if [[ -n "${nvme_target_control}" ]]; then
+ return
+ fi
+
for port in "${NVMET_CFS}"/ports/*; do
name=$(basename "${port}")
echo "WARNING: Test did not clean up port: ${name}"
@@ -369,11 +375,19 @@ _cleanup_nvmet() {
_setup_nvmet() {
_register_test_cleanup _cleanup_nvmet
+
+ if [[ -n "${nvme_target_control}" ]]; then
+ return
+ fi
+
modprobe -q nvmet
+
if [[ "${nvme_trtype}" != "loop" ]]; then
modprobe -q nvmet-"${nvme_trtype}"
fi
+
modprobe -q nvme-"${nvme_trtype}"
+
if [[ "${nvme_trtype}" == "rdma" ]]; then
start_soft_rdma
for i in $(rdma_network_interfaces)
@@ -391,6 +405,7 @@ _setup_nvmet() {
fi
done
fi
+
if [[ "${nvme_trtype}" = "fc" ]]; then
modprobe -q nvme-fcloop
_setup_fcloop "${def_local_wwnn}" "${def_local_wwpn}" \
@@ -819,12 +834,13 @@ _find_nvme_passthru_loop_dev() {
}
_nvmet_target_setup() {
+ local subsys_uuid="${def_subsys_uuid}"
+ local subsysnqn="${def_subsysnqn}"
local blkdev_type="device"
- local blkdev
+ local ARGS=()
local ctrlkey=""
local hostkey=""
- local subsysnqn="${def_subsysnqn}"
- local subsys_uuid="${def_subsys_uuid}"
+ local blkdev
local port
while [[ $# -gt 0 ]]; do
@@ -856,6 +872,22 @@ _nvmet_target_setup() {
esac
done
+ if [[ -n "${hostkey}" ]]; then
+ ARGS+=(--hostkey "${hostkey}")
+ fi
+ if [[ -n "${ctrlkey}" ]]; then
+ ARGS+=(--ctrkey "${ctrlkey}")
+ fi
+
+ if [[ -n "${nvme_target_control}" ]]; then
+ eval "${nvme_target_control}" setup \
+ --subsysnqn "${subsysnqn}" \
+ --subsys-uuid "${subsys_uuid}" \
+ --hostnqn "${def_hostnqn}" \
+ "${ARGS[@]}" > /dev/null 2>&1
+ return
+ fi
+
truncate -s "${nvme_img_size}" "$(_nvme_def_file_path)"
if [[ "${blkdev_type}" == "device" ]]; then
blkdev="$(losetup -f --show "$(_nvme_def_file_path)")"
@@ -890,6 +922,13 @@ _nvmet_target_cleanup() {
esac
done
+ if [[ -n "${nvme_target_control}" ]]; then
+ eval "${nvme_target_control}" cleanup \
+ --subsysnqn "${subsysnqn}" \
+ > /dev/null
+ return
+ fi
+
_get_nvmet_ports "${def_subsysnqn}" ports
for port in "${ports[@]}"; do
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [RFC blktests v1 10/10] nvme/030: only run against kernel soft target
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (9 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 09/10] nvme/rc: introduce remote target support Daniel Wagner
@ 2024-03-18 9:38 ` Daniel Wagner
2024-03-18 11:21 ` [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 9:38 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke,
Daniel Wagner
This tests is exercising the target code and not so much the host side.
Thus just skip it when we run against a remote target.
Signed-off-by: Daniel Wagner <dwagner@suse.de>
merge
---
tests/nvme/030 | 1 +
tests/nvme/rc | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/tests/nvme/030 b/tests/nvme/030
index 9251e1744f61..6d51e0ada07c 100755
--- a/tests/nvme/030
+++ b/tests/nvme/030
@@ -13,6 +13,7 @@ requires() {
_nvme_requires
_have_loop
_require_nvme_trtype_is_fabrics
+ _require_kernel_target
}
test() {
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 35eb4cc5e954..41ec30af7787 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -185,6 +185,14 @@ _require_kernel_nvme_fabrics_feature() {
return 0
}
+_require_kernel_target() {
+ if [[ -n "${nvme_target_control}" ]]; then
+ SKIP_REASONS+=("Linux kernel soft target not available")
+ return 1;
+ fi
+ return 0
+}
+
_test_dev_nvme_ctrl() {
echo "/dev/char/$(cat "${TEST_DEV_SYSFS}/device/dev")"
}
--
2.44.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [RFC blktests v1 00/10] Add support to run against real target
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
` (10 preceding siblings ...)
2024-03-18 9:38 ` [RFC blktests v1 10/10] nvme/030: only run against kernel soft target Daniel Wagner
@ 2024-03-18 11:21 ` Daniel Wagner
11 siblings, 0 replies; 13+ messages in thread
From: Daniel Wagner @ 2024-03-18 11:21 UTC (permalink / raw)
To: Shin'ichiro Kawasaki
Cc: linux-block, linux-nvme, Chaitanya Kulkarni, Hannes Reinecke
On Mon, Mar 18, 2024 at 10:38:45AM +0100, Daniel Wagner wrote:
> [1] https://lore.kernel.org/linux-nvme/23fhu43orn5yyi6jytsyez3f3d7liocp4cat5gfswtan33m3au@iyxhcwee6wvk/
> [2] https://github.com/hreinecke/nvmetcli/tree/rpc
The series is also available here:
https://github.com/igaw/blktests/commits/ext-hw/
which includes the mentioned Python script. As indicated it's just a WIP:
https://github.com/igaw/blktests/commit/ca1fe59b5ed67198228bcc017cfbbd25b797b868
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-03-18 11:21 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-18 9:38 [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 01/10] common/xfs: propagate errors from _xfs_run_fio_verify_io Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 02/10] nvme/{012,013,035}: check return value of _xfs_run_fio_verify_io Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 03/10] nvme/rc: use long command line option for nvme Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 04/10] nvme/{014,015,018,019,020,023,024,026,045,046}: " Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 05/10] nvme/rc: connect subsys only support long options Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 06/10] nvme/rc: remove unused connect options Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 06/10] nvme/rc: Remove " Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 07/10] nvme/rc: add nqn/uuid args to target setup/cleanup helper Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 08/10] nvme/031: do not open code target setup/cleanup Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 09/10] nvme/rc: introduce remote target support Daniel Wagner
2024-03-18 9:38 ` [RFC blktests v1 10/10] nvme/030: only run against kernel soft target Daniel Wagner
2024-03-18 11:21 ` [RFC blktests v1 00/10] Add support to run against real target Daniel Wagner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox