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 15timing_enter blob_bdev_io_wait 16 17truncate -s 64M $testdir/aio.bdev 18 19$rootdir/test/app/bdev_svc/bdev_svc & 20bdev_svc_pid=$! 21 22trap 'killprocess $bdev_svc_pid; exit 1' SIGINT SIGTERM EXIT 23 24waitforlisten $bdev_svc_pid 25$rpc_py bdev_aio_create $testdir/aio.bdev aio0 4096 26$rpc_py bdev_lvol_create_lvstore aio0 lvs0 27$rpc_py bdev_lvol_create -l lvs0 lvol0 32 28 29killprocess $bdev_svc_pid 30 31# Minimal number of bdev io pool (128) and cache (1) 32echo "[Bdev]" > $testdir/bdevperf.conf 33echo "BdevIoPoolSize 128" >> $testdir/bdevperf.conf 34echo "BdevIoCacheSize 1" >> $testdir/bdevperf.conf 35echo "[AIO]" >> $testdir/bdevperf.conf 36echo "AIO $testdir/aio.bdev aio0 4096" >> $testdir/bdevperf.conf 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 63report_test_completion "blob_io_wait" 64timing_exit bdev_io_wait 65