From 59acbc91c292d57a771770488d4ec3cfad4803f8 Mon Sep 17 00:00:00 2001 From: Wojciech Malikowski Date: Wed, 25 Sep 2019 08:09:51 -0400 Subject: [PATCH] lib/ftl: Use nbd during fio test Until fio_plugin get RPC support use nbd for FIO tests. Change-Id: Ic034005aceb0c3b2503d47d36e515e2dcd616b31 Signed-off-by: Wojciech Malikowski Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469396 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Konrad Sztyber Community-CI: SPDK CI Jenkins --- test/ftl/config/fio/drive-prep.fio | 3 +- test/ftl/config/fio/randr.fio | 3 +- test/ftl/config/fio/randrw.fio | 3 +- test/ftl/config/fio/randw-verify-depth128.fio | 3 +- test/ftl/config/fio/randw-verify-j2.fio | 3 +- .../ftl/config/fio/randw-verify-qd128-ext.fio | 3 +- test/ftl/config/fio/randw-verify.fio | 3 +- test/ftl/config/fio/randw.fio | 3 +- test/ftl/fio.sh | 34 ++++++++++++++++--- 9 files changed, 38 insertions(+), 20 deletions(-) diff --git a/test/ftl/config/fio/drive-prep.fio b/test/ftl/config/fio/drive-prep.fio index f07b956c4..1a439f942 100644 --- a/test/ftl/config/fio/drive-prep.fio +++ b/test/ftl/config/fio/drive-prep.fio @@ -1,6 +1,5 @@ [drive_prep] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} thread=1 diff --git a/test/ftl/config/fio/randr.fio b/test/ftl/config/fio/randr.fio index d525d5ce2..5c431d1b1 100644 --- a/test/ftl/config/fio/randr.fio +++ b/test/ftl/config/fio/randr.fio @@ -1,6 +1,5 @@ [global] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} direct=1 thread=1 diff --git a/test/ftl/config/fio/randrw.fio b/test/ftl/config/fio/randrw.fio index c6d0dc24e..29d06fcc9 100644 --- a/test/ftl/config/fio/randrw.fio +++ b/test/ftl/config/fio/randrw.fio @@ -1,6 +1,5 @@ [global] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} direct=1 thread=1 diff --git a/test/ftl/config/fio/randw-verify-depth128.fio b/test/ftl/config/fio/randw-verify-depth128.fio index 0e4d56b40..d6db656a0 100644 --- a/test/ftl/config/fio/randw-verify-depth128.fio +++ b/test/ftl/config/fio/randw-verify-depth128.fio @@ -1,6 +1,5 @@ [global] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} thread=1 direct=1 diff --git a/test/ftl/config/fio/randw-verify-j2.fio b/test/ftl/config/fio/randw-verify-j2.fio index 10ce74712..a963629c2 100644 --- a/test/ftl/config/fio/randw-verify-j2.fio +++ b/test/ftl/config/fio/randw-verify-j2.fio @@ -1,6 +1,5 @@ [global] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} thread=1 direct=1 diff --git a/test/ftl/config/fio/randw-verify-qd128-ext.fio b/test/ftl/config/fio/randw-verify-qd128-ext.fio index 174dd9212..9be10ad2b 100644 --- a/test/ftl/config/fio/randw-verify-qd128-ext.fio +++ b/test/ftl/config/fio/randw-verify-qd128-ext.fio @@ -1,6 +1,5 @@ [global] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} thread=1 direct=1 diff --git a/test/ftl/config/fio/randw-verify.fio b/test/ftl/config/fio/randw-verify.fio index cd58bc935..acf05e00d 100644 --- a/test/ftl/config/fio/randw-verify.fio +++ b/test/ftl/config/fio/randw-verify.fio @@ -1,6 +1,5 @@ [global] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} thread=1 direct=1 diff --git a/test/ftl/config/fio/randw.fio b/test/ftl/config/fio/randw.fio index 6c1630206..3fedab847 100644 --- a/test/ftl/config/fio/randw.fio +++ b/test/ftl/config/fio/randw.fio @@ -1,6 +1,5 @@ [global] -ioengine=spdk_bdev -spdk_conf=${FTL_BDEV_CONF} +ioengine=libaio filename=${FTL_BDEV_NAME} direct=1 thread=1 diff --git a/test/ftl/fio.sh b/test/ftl/fio.sh index 244bafa5d..784e472e1 100755 --- a/test/ftl/fio.sh +++ b/test/ftl/fio.sh @@ -3,11 +3,23 @@ testdir=$(readlink -f $(dirname $0)) rootdir=$(readlink -f $testdir/../..) source $rootdir/test/common/autotest_common.sh +source $testdir/common.sh declare -A suite suite['basic']='randw-verify randw-verify-j2 randw-verify-depth128' suite['extended']='drive-prep randw-verify-qd128-ext randw randr randrw' +rpc_py=$rootdir/scripts/rpc.py +ftl_bdev_conf=$testdir/config/ftl.conf +gen_ftl_nvme_conf > $ftl_bdev_conf + +fio_kill() { + $rpc_py stop_nbd_disk /dev/nbd0 + rmmod nbd || true + killprocess $svcpid + rm -f $ftl_bdev_conf +} + device=$1 tests=${suite[$2]} uuid=$3 @@ -22,17 +34,31 @@ if [ -z "$tests" ]; then exit 1 fi -export FTL_BDEV_CONF=$testdir/config/ftl.conf -export FTL_BDEV_NAME=nvme0 +export FTL_BDEV_NAME=/dev/nbd0 + +trap "fio_kill; exit 1" SIGINT SIGTERM EXIT + +$rootdir/app/spdk_tgt/spdk_tgt -c $ftl_bdev_conf & svcpid=$! +waitforlisten $svcpid + +$rpc_py bdev_nvme_attach_controller -b nvme0 -a $device -t pcie +$rpc_py bdev_ocssd_create -c nvme0 -b nvme0n1 if [ -z "$uuid" ]; then - $rootdir/scripts/gen_ftl.sh -a $device -n nvme0 > $FTL_BDEV_CONF + $rpc_py construct_ftl_bdev -b ftl0 -d nvme0n1 else - $rootdir/scripts/gen_ftl.sh -a $device -n nvme0 -u $uuid > $FTL_BDEV_CONF + $rpc_py construct_ftl_bdev -b ftl0 -d nvme0n1 -u $uuid fi +modprobe nbd +$rpc_py start_nbd_disk ftl0 /dev/nbd0 +waitfornbd nbd0 + for test in ${tests}; do timing_enter $test fio_bdev $testdir/config/fio/$test.fio timing_exit $test done + +trap - SIGINT SIGTERM EXIT +fio_kill