]> www.infradead.org Git - users/sagi/blktests.git/commitdiff
nvme: don't assume namespace id
authorDaniel Wagner <dwagner@suse.de>
Tue, 26 Mar 2024 13:14:01 +0000 (14:14 +0100)
committerShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Fri, 29 Mar 2024 05:42:05 +0000 (14:42 +0900)
The tests assume that the namespace id is always 1. This might not be
correct in future (e.g. running real targets), thus harden the test by
using the uuid to lookup the correct namespace id.

The passthru test already do this, so it makes also sense to update the
other tests as well.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
19 files changed:
tests/nvme/010
tests/nvme/011
tests/nvme/012
tests/nvme/013
tests/nvme/014
tests/nvme/015
tests/nvme/018
tests/nvme/019
tests/nvme/020
tests/nvme/021
tests/nvme/023
tests/nvme/024
tests/nvme/025
tests/nvme/026
tests/nvme/029
tests/nvme/040
tests/nvme/045
tests/nvme/047
tests/nvme/rc

index 7d875989a01c28b51f78b2b7e2178d7c92993f1f..6feb39153e99ca90cf22ae7fa2d20680d126b375 100755 (executable)
@@ -20,17 +20,16 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
        _run_fio_verify_io --size="${nvme_img_size}" \
-               --filename="/dev/${nvmedev}n1"
+               --filename="/dev/${ns}"
 
        _nvme_disconnect_subsys
 
index 0acc8b1dbaed9b93ea02f4dcd602361176109cfd..eee044cbb4f8e9b85c3b093b5302b54da29fc652 100755 (executable)
@@ -20,17 +20,16 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup --blkdev file
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
        _run_fio_verify_io --size="${nvme_img_size}" \
-               --filename="/dev/${nvmedev}n1"
+               --filename="$/dev/{ns}"
 
        _nvme_disconnect_subsys
 
index a0bff298ab2938a6867f6d0d47cf1ee628f36453..64cb6ecf019155d093eaa3ae129a0b29bde3f49f 100755 (executable)
@@ -24,16 +24,15 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       if ! _xfs_run_fio_verify_io "/dev/${nvmedev}n1"; then
+       if ! _xfs_run_fio_verify_io "/dev/${ns}"; then
                echo "FAIL: fio verify failed"
        fi
 
index 5e5026eabe17985455437087a1b1a79386f8d844..68d07cbc4afaed5cd5faa376356fe454de189f1a 100755 (executable)
@@ -23,16 +23,15 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup --blkdev file
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       if ! _xfs_run_fio_verify_io "/dev/${nvmedev}n1"; then
+       if ! _xfs_run_fio_verify_io "$/dev/{ns}"; then
                echo "FAIL: fio verify failed"
        fi
 
index da4b4c13b3478c7ea85f587117fddfeecf67381b..e56e3212cf281fe92c78b0788521907efbcab322 100755 (executable)
@@ -20,7 +20,7 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
        local size
        local bs
        local count
@@ -29,17 +29,16 @@ test() {
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       size="$(blockdev --getsize64 "/dev/${nvmedev}n1")"
-       bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
+       size="$(blockdev --getsize64 "/dev/${ns}")"
+       bs="$(blockdev --getbsz "/dev/${ns}")"
        count=$((size / bs))
 
-       dd if=/dev/urandom of="/dev/${nvmedev}n1" \
+       dd if=/dev/urandom of="$/dev/{ns}" \
                count="${count}" bs="${bs}" status=none
 
-       nvme flush "/dev/${nvmedev}" --namespace-id 1
+       nvme flush "/dev/${ns}"
 
        _nvme_disconnect_subsys
 
index b82f2253c0119fc953a38ef69fc7ad2080831251..f0621dab681b11d0315b8ace9ebd2c09d9eba203 100755 (executable)
@@ -20,7 +20,7 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
        local size
        local bs
        local count
@@ -29,17 +29,16 @@ test() {
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       size="$(blockdev --getsize64 "/dev/${nvmedev}n1")"
-       bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
+       size="$(blockdev --getsize64 "/dev/${ns}")"
+       bs="$(blockdev --getbsz "/dev/${ns}")"
        count=$((size / bs))
 
-       dd if=/dev/urandom of="/dev/${nvmedev}n1" \
+       dd if=/dev/urandom of="/dev/${ns}" \
                count="${count}" bs="${bs}" status=none
 
-       nvme flush "/dev/${nvmedev}n1" --namespace-id 1
+       nvme flush "/dev/${ns}"
 
        _nvme_disconnect_subsys
 
index bd6e5e930e357dda397f72f4c5ee5274748cba8d..b8c16354a01b5e630fcc04062c6259b8c060f83b 100755 (executable)
@@ -21,21 +21,20 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
+       local sectors
+       local bs
 
        _nvmet_target_setup --blkdev file
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       local sectors
-       local bs
-       sectors="$(blockdev --getsz "/dev/${nvmedev}n1")"
-       bs="$(blockdev --getbsz "/dev/${nvmedev}n1")"
+       sectors="$(blockdev --getsz "/dev/${ns}")"
+       bs="$(blockdev --getbsz "/dev/${ns}")"
 
-       nvme read "/dev/${nvmedev}n1" --start-block "$sectors" \
+       nvme read "/dev/${ns}" --start-block "$sectors" \
                --block-count 0 --data-size "$bs" &>"$FULL" \
                && echo "ERROR: nvme read for out of range LBA was not rejected"
 
index 4d7de8191da7ebe2a4dacffb196392e3ce38ddf7..1cd5378e9dd473eb062682dc56cccfee8d75a5b0 100755 (executable)
@@ -20,7 +20,7 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
        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"
 
@@ -28,10 +28,8 @@ test() {
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
-
-       nvme dsm "/dev/${nvmedev}" --namespace-id 1 --ad \
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
+       nvme dsm "/dev/${ns}" --ad \
                --slbs "${sblk_range}" --blocks "${nblk_range}"
 
        _nvme_disconnect_subsys
index c734210c5bd903ab6bbdddbbbe0039d75bf71a03..0364c4e0dd4f307c47605848600bd92cfe14a657 100755 (executable)
@@ -19,7 +19,7 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
        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"
 
@@ -27,10 +27,9 @@ test() {
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       nvme dsm "/dev/${nvmedev}" --namespace-id 1 --ad \
+       nvme dsm "/dev/${ns}" --ad \
                --slbs "${sblk_range}" --blocks "${nblk_range}"
 
        _nvme_disconnect_subsys
index 358e209d0458711e976dfa6dac23ac11137157db..7ee1f078cd607cf58e663c39dfb434ebda2f4239 100755 (executable)
@@ -20,16 +20,15 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup --blkdev file
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       if ! nvme list 2>> "$FULL" | grep -q "${nvmedev}n1"; then
+       if ! nvme list 2>> "$FULL" | grep -q "/dev/${ns}"; then
                echo "ERROR: device not listed"
        fi
 
index abbb35a0b58097457feeae572499e801944a791c..d8f17ae7a8eaf8a961d7c2b098bf7134e679b94f 100755 (executable)
@@ -20,17 +20,15 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       if ! nvme smart-log "/dev/${nvmedev}" --namespace-id 1 \
-               >> "$FULL" 2>&1; then
+       if ! nvme smart-log "/dev/${ns}" >> "$FULL" 2>&1; then
                echo "ERROR: smart-log bdev-ns failed"
        fi
 
index 3ee18822e26bb58b183292055b81d6595556b918..a5121940a543022439e10d7adfbcea37984b1d71 100755 (executable)
@@ -20,19 +20,18 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup --blkdev file
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns ${def_subsys_uuid})
 
-       if ! nvme smart-log "/dev/${nvmedev}" --namespace-id 1 \
-               >> "$FULL" 2>&1; then
+       if ! nvme smart-log "/dev/${ns}" >> "$FULL" 2>&1; then
                echo "ERROR: smart-log file-ns failed"
        fi
+
        _nvme_disconnect_subsys >> "$FULL" 2>&1
 
        _nvmet_target_cleanup
index 3cd62d0b4e5e581f6a4fde2288c9f70e0c4ac050..3f9a615e542e92bde3ea1c9e0cc1236cfb679486 100755 (executable)
@@ -20,16 +20,15 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup --blkdev file
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       if ! nvme effects-log "/dev/${nvmedev}" >> "$FULL" 2>&1; then
+       if ! nvme effects-log "/dev/${ns}" >> "$FULL" 2>&1; then
                echo "ERROR: effects-log failed"
        fi
 
index 5d54b0ff3d28f23c495d951be9748cd9c6a0fb18..28fd151d9a77b9acc478ca6e4eb395f5bbe614c0 100755 (executable)
@@ -20,17 +20,15 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
 
        _nvmet_target_setup --blkdev file
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
-       if ! nvme ns-descs "/dev/${nvmedev}" --namespace-id 1 \
-               >> "$FULL" 2>&1; then
+       if ! nvme ns-descs "/dev/${ns}" >> "$FULL" 2>&1; then
                echo "ERROR: ns-desc failed"
        fi
 
index 8dbe49ba15cc7bfbeb0b0dcdddde9e9d4d019a8c..559c0b4feabe9040c559d35343fa1ddb7c234d90 100755 (executable)
@@ -53,16 +53,12 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
        local reset_nr_hugepages=false
 
        _nvmet_target_setup
 
        _nvme_connect_subsys
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
-       _check_uuid "${nvmedev}"
-
        # nvme-cli may fail to allocate linear memory for rather large IO buffers.
        # Increase nr_hugepages to allow nvme-cli to try the linear memory allocation
        # from HugeTLB pool.
@@ -72,7 +68,8 @@ test() {
                reset_nr_hugepages=true
        fi
 
-       local dev="/dev/${nvmedev}n1"
+       local dev
+       dev="/dev/$(_find_nvme_ns "${def_subsys_uuid}")"
        test_user_io "$dev" 1 512 > "$FULL" 2>&1 || echo FAIL
        test_user_io "$dev" 1 511 > "$FULL" 2>&1 || echo FAIL
        test_user_io "$dev" 1 513 > "$FULL" 2>&1 || echo FAIL
index f00fc16b643fc81423c44119a1fa1dcaf529691d..bb9ed5ef57e9c5c69d143cbc4d42a3ab1b56428b 100755 (executable)
@@ -23,15 +23,17 @@ test() {
 
        local nvmedev
        local fio_pid
+       local ns
 
        _nvmet_target_setup
 
        _nvme_connect_subsys
        nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
        # start fio job
        echo "starting background fio"
-       _run_fio_rand_io --filename="/dev/${nvmedev}n1" \
+       _run_fio_rand_io --filename="/dev/${ns}" \
                --group_reporting --ramp_time=5 \
                --time_based --runtime=1d &> /dev/null &
        fio_pid=$!
index 87ac3c01997008a13a14491b4ef4e58b6655ca20..f387eadcbda3086348be79696acd0f64e067f7cb 100755 (executable)
@@ -33,6 +33,7 @@ test() {
        local new_ctrlkey
        local ctrldev
        local rand_io_size
+       local ns
 
        hostkey="$(nvme gen-dhchap-key -n ${def_subsysnqn} 2> /dev/null)"
        if [ -z "$hostkey" ] ; then
@@ -100,10 +101,10 @@ test() {
 
        echo "${new_hostkey}" > "${hostkey_file}"
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
        rand_io_size="$(_nvme_calc_rand_io_size 4m)"
-       _run_fio_rand_io --size="${rand_io_size}" --filename="/dev/${nvmedev}n1"
+       _run_fio_rand_io --size="${rand_io_size}" --filename="/dev/${ns}"
 
        _nvme_disconnect_subsys
        _nvmet_target_cleanup
index 75aad7d06a36f7bfdd039c32196f6f9a171c5881..9bbe84d4f1453271aa3b37d5f54a41f1fccd2e23 100755 (executable)
@@ -22,7 +22,7 @@ test() {
 
        _setup_nvmet
 
-       local nvmedev
+       local ns
        local rand_io_size
 
        _nvmet_target_setup
@@ -30,10 +30,10 @@ test() {
        _nvme_connect_subsys \
                --nr-write-queues 1 || echo FAIL
 
-       nvmedev=$(_find_nvme_dev "${def_subsysnqn}")
+       ns=$(_find_nvme_ns "${def_subsys_uuid}")
 
        rand_io_size="$(_nvme_calc_rand_io_size 4M)"
-       _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
+       _run_fio_rand_io --filename="/dev/${ns}" --size="${rand_io_size}"
 
        _nvme_disconnect_subsys >> "$FULL" 2>&1
 
@@ -41,7 +41,7 @@ test() {
                --nr-write-queues 1 \
                --nr-poll-queues 1 || echo FAIL
 
-       _run_fio_rand_io --filename="/dev/${nvmedev}n1" --size="${rand_io_size}"
+       _run_fio_rand_io --filename="/dev/${ns}" --size="${rand_io_size}"
 
        _nvme_disconnect_subsys >> "$FULL" 2>&1
 
index fb7a5fa864e8ee6b1dfcb02f810108e2f6519d46..203cf0c7903badf696cb2c38b8eb3eb878d9ddb3 100644 (file)
@@ -797,6 +797,24 @@ _find_nvme_dev() {
        done
 }
 
+_find_nvme_ns() {
+       local subsys_uuid=$1
+       local uuid
+       local ns
+
+       for ns in "/sys/block/nvme"* ; do
+               # ignore nvme channel block devices
+               if ! [[ "${ns}" =~ nvme[0-9]+n[0-9]+ ]]; then
+                       continue
+               fi
+               [ -e "${ns}/uuid" ] || continue
+               uuid=$(cat "${ns}/uuid")
+               if [[ "${subsys_uuid}" == "${uuid}" ]]; then
+                       basename "${ns}"
+               fi
+       done
+}
+
 _find_nvme_passthru_loop_dev() {
        local subsys=$1
        local nsid