1#!/usr/bin/env bash 2 3SYSTEM=`uname -s` 4if [ $SYSTEM = "FreeBSD" ] ; then 5 echo "blob_io_wait.sh cannot run on FreeBSD currently." 6 exit 0 7fi 8 9testdir=$(readlink -f $(dirname $0)) 10rootdir=$(readlink -f $testdir/../../..) 11source $rootdir/test/common/autotest_common.sh 12source $rootdir/test/nvmf/common.sh 13rpc_py="python $rootdir/scripts/rpc.py" 14set -e 15 16timing_enter blob_bdev_io_wait 17 18truncate -s 64M $testdir/aio.bdev 19 20$rootdir/test/app/bdev_svc/bdev_svc & 21bdev_svc_pid=$! 22 23trap "killprocess $bdev_svc_pid; exit 1" SIGINT SIGTERM EXIT 24 25waitforlisten $bdev_svc_pid 26$rpc_py construct_aio_bdev $testdir/aio.bdev aio0 4096 27$rpc_py construct_lvol_store aio0 lvs0 28$rpc_py construct_lvol_bdev -l lvs0 lvol0 32 29 30killprocess $bdev_svc_pid 31 32# Minimal number of bdev io pool (128) and cache (1) 33echo "[Bdev]" > $testdir/bdevperf.conf 34echo "BdevIoPoolSize 128" >> $testdir/bdevperf.conf 35echo "BdevIoCacheSize 1" >> $testdir/bdevperf.conf 36echo "[AIO]" >> $testdir/bdevperf.conf 37echo "AIO $testdir/aio.bdev aio0 4096" >> $testdir/bdevperf.conf 38 39$rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w write -t 5 -r /var/tmp/spdk.sock & 40bdev_perf_pid=$! 41waitforlisten $bdev_perf_pid 42$rpc_py enable_bdev_histogram aio0 -e 43sleep 2 44$rpc_py get_bdev_histogram aio0 | $rootdir/scripts/histogram.py 45$rpc_py enable_bdev_histogram aio0 -d 46wait $bdev_perf_pid 47 48$rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w read -t 5 -r /var/tmp/spdk.sock & 49bdev_perf_pid=$! 50waitforlisten $bdev_perf_pid 51$rpc_py enable_bdev_histogram aio0 -e 52sleep 2 53$rpc_py get_bdev_histogram aio0 | $rootdir/scripts/histogram.py 54$rpc_py enable_bdev_histogram aio0 -d 55wait $bdev_perf_pid 56 57$rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w unmap -t 1 58 59sync 60rm -rf $testdir/bdevperf.conf 61rm -rf $testdir/aio.bdev 62trap - SIGINT SIGTERM EXIT 63 64report_test_completion "blob_io_wait" 65timing_exit bdev_io_wait 66