]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/blobstore/blob_io_wait/blob_io_wait.sh
8ce3cc878cf9032cc3b8cfba1397ce10b66fd244
[ceph.git] / ceph / src / spdk / test / blobstore / blob_io_wait / blob_io_wait.sh
1 #!/usr/bin/env bash
2
3 SYSTEM=`uname -s`
4 if [ $SYSTEM = "FreeBSD" ] ; then
5 echo "blob_io_wait.sh cannot run on FreeBSD currently."
6 exit 0
7 fi
8
9 testdir=$(readlink -f $(dirname $0))
10 rootdir=$(readlink -f $testdir/../../..)
11 source $rootdir/test/common/autotest_common.sh
12 source $rootdir/test/nvmf/common.sh
13 rpc_py="$rootdir/scripts/rpc.py"
14 set -e
15
16 timing_enter blob_bdev_io_wait
17
18 truncate -s 64M $testdir/aio.bdev
19
20 $rootdir/test/app/bdev_svc/bdev_svc &
21 bdev_svc_pid=$!
22
23 trap "killprocess $bdev_svc_pid; exit 1" SIGINT SIGTERM EXIT
24
25 waitforlisten $bdev_svc_pid
26 $rpc_py construct_aio_bdev $testdir/aio.bdev aio0 4096
27 $rpc_py construct_lvol_store aio0 lvs0
28 $rpc_py construct_lvol_bdev -l lvs0 lvol0 32
29
30 killprocess $bdev_svc_pid
31
32 # Minimal number of bdev io pool (128) and cache (1)
33 echo "[Bdev]" > $testdir/bdevperf.conf
34 echo "BdevIoPoolSize 128" >> $testdir/bdevperf.conf
35 echo "BdevIoCacheSize 1" >> $testdir/bdevperf.conf
36 echo "[AIO]" >> $testdir/bdevperf.conf
37 echo "AIO $testdir/aio.bdev aio0 4096" >> $testdir/bdevperf.conf
38
39 $rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w write -t 5 -r /var/tmp/spdk.sock &
40 bdev_perf_pid=$!
41 waitforlisten $bdev_perf_pid
42 $rpc_py enable_bdev_histogram aio0 -e
43 sleep 2
44 $rpc_py get_bdev_histogram aio0 | $rootdir/scripts/histogram.py
45 $rpc_py enable_bdev_histogram aio0 -d
46 wait $bdev_perf_pid
47
48 $rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w read -t 5 -r /var/tmp/spdk.sock &
49 bdev_perf_pid=$!
50 waitforlisten $bdev_perf_pid
51 $rpc_py enable_bdev_histogram aio0 -e
52 sleep 2
53 $rpc_py get_bdev_histogram aio0 | $rootdir/scripts/histogram.py
54 $rpc_py enable_bdev_histogram aio0 -d
55 wait $bdev_perf_pid
56
57 $rootdir/test/bdev/bdevperf/bdevperf -c $testdir/bdevperf.conf -q 128 -o 4096 -w unmap -t 1
58
59 sync
60 rm -rf $testdir/bdevperf.conf
61 rm -rf $testdir/aio.bdev
62 trap - SIGINT SIGTERM EXIT
63
64 report_test_completion "blob_io_wait"
65 timing_exit bdev_io_wait