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