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