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 12rpc_py="$rootdir/scripts/rpc.py" 13 14truncate -s 64M $testdir/aio.bdev 15 16$rootdir/test/app/bdev_svc/bdev_svc --wait-for-rpc & 17bdev_svc_pid=$! 18 19trap 'rm -f $testdir/bdevperf.json; rm -f $testdir/aio.bdev; killprocess $bdev_svc_pid; exit 1' SIGINT SIGTERM EXIT 20 21waitforlisten $bdev_svc_pid 22# Minimal number of bdev io pool (128) and cache (1) 23$rpc_py bdev_set_options --bdev-io-pool-size 128 --bdev-io-cache-size 1 --small-buf-pool-size 8192 --large-buf-pool-size 1024 24$rpc_py framework_start_init 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$rpc_py save_config > $testdir/bdevperf.json 29 30killprocess $bdev_svc_pid 31 32$rootdir/test/bdev/bdevperf/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w write -t 5 -r /var/tmp/spdk.sock & 33bdev_perf_pid=$! 34waitforlisten $bdev_perf_pid 35$rpc_py bdev_enable_histogram aio0 -e 36sleep 2 37$rpc_py bdev_get_histogram aio0 | $rootdir/scripts/histogram.py 38$rpc_py bdev_enable_histogram aio0 -d 39wait $bdev_perf_pid 40 41$rootdir/test/bdev/bdevperf/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w read -t 5 -r /var/tmp/spdk.sock & 42bdev_perf_pid=$! 43waitforlisten $bdev_perf_pid 44$rpc_py bdev_enable_histogram aio0 -e 45sleep 2 46$rpc_py bdev_get_histogram aio0 | $rootdir/scripts/histogram.py 47$rpc_py bdev_enable_histogram aio0 -d 48wait $bdev_perf_pid 49 50$rootdir/test/bdev/bdevperf/bdevperf --json $testdir/bdevperf.json -q 128 -o 4096 -w unmap -t 1 51 52sync 53rm -f $testdir/bdevperf.json 54rm -f $testdir/aio.bdev 55trap - SIGINT SIGTERM EXIT 56