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="$rootdir/scripts/rpc.py" 14 15truncate -s 64M $testdir/aio.bdev 16 17$rootdir/test/app/bdev_svc/bdev_svc & 18bdev_svc_pid=$! 19 20trap 'killprocess $bdev_svc_pid; exit 1' SIGINT SIGTERM EXIT 21 22waitforlisten $bdev_svc_pid 23$rpc_py bdev_aio_create $testdir/aio.bdev aio0 4096 24$rpc_py bdev_lvol_create_lvstore aio0 lvs0 25$rpc_py bdev_lvol_create -l lvs0 lvol0 32 26 27killprocess $bdev_svc_pid 28 29# Minimal number of bdev io pool (128) and cache (1) 30cat << EOL > $testdir/bdevperf.conf 31[Bdev] 32BdevIoPoolSize 128 33BdevIoCacheSize 1 34[AIO] 35AIO $testdir/aio.bdev aio0 4096 36EOL 37 38$rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w write -t 5 -r /var/tmp/spdk.sock & 39bdev_perf_pid=$! 40waitforlisten $bdev_perf_pid 41$rpc_py bdev_enable_histogram aio0 -e 42sleep 2 43$rpc_py bdev_get_histogram aio0 | $rootdir/scripts/histogram.py 44$rpc_py bdev_enable_histogram aio0 -d 45wait $bdev_perf_pid 46 47$rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w read -t 5 -r /var/tmp/spdk.sock & 48bdev_perf_pid=$! 49waitforlisten $bdev_perf_pid 50$rpc_py bdev_enable_histogram aio0 -e 51sleep 2 52$rpc_py bdev_get_histogram aio0 | $rootdir/scripts/histogram.py 53$rpc_py bdev_enable_histogram aio0 -d 54wait $bdev_perf_pid 55 56$rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w unmap -t 1 57 58sync 59rm -rf $testdir/bdevperf.conf 60rm -rf $testdir/aio.bdev 61trap - SIGINT SIGTERM EXIT 62