From c5f83bd8f3bcb652f930eb889da9b5a3b512752f Mon Sep 17 00:00:00 2001 From: Pawel Kaminski Date: Fri, 6 Oct 2017 16:42:32 +0200 Subject: [PATCH] test/vhost: Fio test for vhost initiator for unmap Change-Id: I0bb922d6a135d4b49d2f5f89ec3874251b898090 Signed-off-by: Pawel Kaminski Reviewed-on: https://review.gerrithub.io/381642 Tested-by: SPDK Automated Test System Reviewed-by: Pawel Wodkowski Reviewed-by: Jim Harris --- test/vhost/initiator/blockdev.sh | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/test/vhost/initiator/blockdev.sh b/test/vhost/initiator/blockdev.sh index 3824433b9..453938934 100755 --- a/test/vhost/initiator/blockdev.sh +++ b/test/vhost/initiator/blockdev.sh @@ -7,6 +7,7 @@ rootdir=$(readlink -f $testdir/../../..) plugindir=$rootdir/examples/bdev/fio_plugin rpc_py="$rootdir/scripts/rpc.py" + function run_fio() { LD_PRELOAD=$plugindir/fio_plugin /usr/src/fio/fio --ioengine=spdk_bdev --iodepth=128 --bs=4k --runtime=10 $testdir/bdev.fio "$@" --spdk_mem=1024 @@ -17,6 +18,36 @@ function run_fio() fi } +function prepare_fio_job_for_unmap() { + echo -n "filename=" >> $testdir/bdev.fio + for b in $(echo $bdevs | jq -r '.name'); do + echo -n "$b:" >> $testdir/bdev.fio + done + echo "" >> $testdir/bdev.fio + echo "size=100m" >> $testdir/bdev.fio + echo "io_size=400m" >> $testdir/bdev.fio + + # Check that sequential TRIM/UNMAP operations 'zeroes' disk space + echo "[trim_sequential]" >> $testdir/bdev.fio + echo "stonewall" >> $testdir/bdev.fio + echo "rw=trim" >> $testdir/bdev.fio + echo "trim_verify_zero=1" >> $testdir/bdev.fio + + # Check that random TRIM/UNMAP operations 'zeroes' disk space + echo "[trim_random]" >> $testdir/bdev.fio + echo "stonewall" >> $testdir/bdev.fio + echo "rw=randtrim" >> $testdir/bdev.fio + echo "trim_verify_zero=1" >> $testdir/bdev.fio + + # Check that after TRIM/UNMAP operation disk space can be used for read + # by using write with verify (which implies reads) + echo "[trim_write_read]" >> $testdir/bdev.fio + echo "stonewall" >> $testdir/bdev.fio + echo "rw=trimwrite" >> $testdir/bdev.fio + echo "trim_verify_zero=1" >> $testdir/bdev.fio + +} + source $rootdir/test/vhost/common/common.sh $rootdir/scripts/gen_nvme.sh spdk_vhost_run $testdir @@ -86,6 +117,13 @@ for bdev in $bdevs; do timing_exit fio_rw_verify done + #Host test for unmap + cp $testdir/../common/fio_jobs/default_initiator.job $testdir/bdev.fio + prepare_fio_job_for_unmap + run_fio --spdk_conf=$testdir/bdev.conf + rm -f *.state + rm -f $testdir/bdev.fio + timing_exit fio fi