xref: /spdk/test/vhost/shared/shared.sh (revision c680e3a05b1a903c18bf3f75b732765607126f45)
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
14bdev_conf=$(
15	cat <<- JSON
16		{
17		"subsystems": [
18			{
19			"subsystem": "bdev",
20			"config": [
21				{
22				"method": "bdev_virtio_attach_controller",
23				"params": {
24					"vq_count": 2,
25					"traddr": "$(get_vhost_dir $vhost_name)/Malloc.0",
26					"dev_type": "blk",
27					"vq_size": 512,
28					"name": "VirtioBlk0",
29					"trtype": "user"
30				}
31				},
32				{
33				"method": "bdev_wait_for_examine"
34				}
35			]
36			}
37		]
38		}
39	JSON
40)
41
42function run_spdk_fio() {
43	fio_bdev --ioengine=spdk_bdev \
44		"$rootdir/test/vhost/common/fio_jobs/default_initiator.job" --runtime=10 --rw=randrw \
45		--spdk_mem=1024 --spdk_single_seg=1 --verify_state_save=0 \
46		--spdk_json_conf=<(echo "$bdev_conf") "$@"
47}
48
49vhosttestinit "--no_vm"
50
51trap 'error_exit "${FUNCNAME}" "${LINENO}"' ERR SIGTERM SIGABRT
52
53vhost_run -n "$vhost_name"
54
55$rpc_py bdev_malloc_create -b Malloc 124 4096
56$rpc_py vhost_create_blk_controller Malloc.0 Malloc
57
58run_spdk_fio --size=50% --offset=0 --filename=VirtioBlk0 &
59run_fio_pid=$!
60sleep 1
61run_spdk_fio --size=50% --offset=50% --filename=VirtioBlk0
62wait $run_fio_pid
63vhost_kill 0
64
65vhosttestfini
66