xref: /spdk/test/vhost/shared/shared.sh (revision d546e5ba5b16c4ba8dfe5c623d96682b93cdbfb0)
1#!/usr/bin/env bash
2#  SPDX-License-Identifier: BSD-3-Clause
3#  Copyright (C) 2018 Intel Corporation
4#  All rights reserved.
5#
6testdir=$(readlink -f $(dirname $0))
7rootdir=$(readlink -f $testdir/../../..)
8source $rootdir/test/common/autotest_common.sh
9source $rootdir/test/vhost/common.sh
10
11rpc_py="$rootdir/scripts/rpc.py -s $(get_vhost_dir 0)/rpc.sock"
12vhost_name="0"
13
14cleanup() {
15	[[ -n $run_fio_pid ]] && killprocess "$run_fio_pid"
16	vhost_kill 0
17	vhosttestfini
18}
19
20bdev_conf=$(
21	cat <<- JSON
22		{
23		"subsystems": [
24			{
25			"subsystem": "bdev",
26			"config": [
27				{
28				"method": "bdev_virtio_attach_controller",
29				"params": {
30					"vq_count": 2,
31					"traddr": "$(get_vhost_dir $vhost_name)/Malloc.0",
32					"dev_type": "blk",
33					"vq_size": 512,
34					"name": "VirtioBlk0",
35					"trtype": "user"
36				}
37				},
38				{
39				"method": "bdev_wait_for_examine"
40				}
41			]
42			}
43		]
44		}
45	JSON
46)
47
48function run_spdk_fio() {
49	fio_bdev --ioengine=spdk_bdev \
50		"$rootdir/test/vhost/common/fio_jobs/default_initiator.job" --runtime=10 --rw=randrw \
51		--spdk_mem=1024 --spdk_single_seg=1 --verify_state_save=0 \
52		--spdk_json_conf=<(echo "$bdev_conf") "$@"
53}
54
55vhosttestinit "--no_vm"
56
57trap 'cleanup' EXIT
58
59vhost_run -n "$vhost_name"
60
61$rpc_py bdev_malloc_create -b Malloc 124 4096
62$rpc_py vhost_create_blk_controller Malloc.0 Malloc
63
64run_spdk_fio --size=50% --offset=0 --filename=VirtioBlk0 &
65run_fio_pid=$!
66sleep 1
67run_spdk_fio --size=50% --offset=50% --filename=VirtioBlk0
68wait $run_fio_pid
69