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