xref: /spdk/test/blobstore/blob_io_wait/blob_io_wait.sh (revision 0ed85362c8132a2d1927757fbcade66b6660d26a)
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