test/nvme.sh: rewrite nvme_fio test to find namespaces using identify

The old version of this test was using a function
that only detects NVMe drives bound to the kernel
driver so it was not finding any work to do.

Instead use identify to find NVMe namespaces.

Signed-off-by: Seth Howell <seth.howell@intel.com>
Change-Id: I937fc364254a926b8d251ec0cb38ea026593d977
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2788
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Seth Howell 2020-06-03 06:24:50 -07:00 committed by Tomasz Zawadzki
parent 4c21ef3645
commit 0ebb046038

View File

@ -24,11 +24,16 @@ function nvme_perf() {
}
function nvme_fio_test() {
PLUGIN_DIR=$rootdir/examples/nvme/fio_plugin
ran_fio=false
for bdf in $(get_nvme_bdfs); do
for blkname in $(get_nvme_name_from_bdf $bdf); do
fio_nvme $rootdir/examples/nvme/fio_plugin/example_config.fio --filename="trtype=PCIe traddr=${bdf//:/.} ns=${blkname##*n}"
done
if $SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:${bdf}" | grep -E "^Number of Namespaces" - | grep -q "0" -; then
continue
fi
fio_nvme $PLUGIN_DIR/example_config.fio --filename="trtype=PCIe traddr=${bdf//:/.}"
ran_fio=true
done
$ran_fio || (echo "No valid NVMe drive found. Failing test." && false)
}
function nvme_multi_secondary() {
@ -117,13 +122,13 @@ run_test "nvme_err_injection" $testdir/err_injection/err_injection
run_test "nvme_overhead" $testdir/overhead/overhead -s 4096 -t 1 -H
run_test "nvme_arbitration" $SPDK_EXAMPLE_DIR/arbitration -t 3 -i 0
if [[ $CONFIG_FIO_PLUGIN == y ]]; then
run_test "nvme_fio" nvme_fio_test
fi
if [ $(uname) != "FreeBSD" ]; then
run_test "nvme_startup" $testdir/startup/startup -t 1000000
run_test "nvme_multi_secondary" nvme_multi_secondary
trap - SIGINT SIGTERM EXIT
kill_stub
fi
if [[ $CONFIG_FIO_PLUGIN == y ]]; then
run_test "nvme_fio" nvme_fio_test
fi