1#!/usr/bin/env bash 2# SPDX-License-Identifier: BSD-3-Clause 3# Copyright (C) 2019 Intel Corporation 4# All rights reserved. 5# 6set -e 7testdir=$(readlink -f $(dirname $0)) 8rootdir=$(readlink -f $testdir/../../..) 9source $rootdir/test/common/autotest_common.sh 10source $rootdir/test/vhost/common.sh 11 12MALLOC_BDEV_SIZE=128 13MALLOC_BLOCK_SIZE=512 14 15vhosttestinit 16 17#TODO: Both scsi and blk? 18 19timing_enter vhost_fio 20 21trap "at_app_exit; process_shm --id 0; exit 1" SIGINT SIGTERM EXIT 22 23vhost_run -n vhost0 -- -m 0x1 24 25# Create vhost scsi controller 26vhost_rpc vhost0 bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc0 27vhost_rpc vhost0 vhost_create_scsi_controller naa.VhostScsi0.0 28vhost_rpc vhost0 vhost_scsi_controller_add_target naa.VhostScsi0.0 0 "Malloc0" 29 30# Create vhost blk controller 31vhost_rpc vhost0 bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc1 32vhost_rpc vhost0 vhost_create_blk_controller naa.Malloc1.1 Malloc1 33 34# Start qemu based VMs 35vm_setup --os="$VM_IMAGE" --disk-type=spdk_vhost_scsi --disks="VhostScsi0" --vhost-name=vhost0 --force=0 36vm_setup --os="$VM_IMAGE" --disk-type=spdk_vhost_blk --disks="Malloc1" --vhost-name=vhost0 --force=1 37 38vm_run 0 39vm_run 1 40 41vm_wait_for_boot 300 0 42vm_wait_for_boot 300 1 43sleep 5 44 45# Run the fio workload on the VM 46vm_scp 0 $testdir/vhost_fio.job 127.0.0.1:/root/vhost_fio.job 47vm_exec 0 "fio /root/vhost_fio.job" 48 49vm_scp 1 $testdir/vhost_fio.job 127.0.0.1:/root/vhost_fio.job 50vm_exec 1 "fio /root/vhost_fio.job" 51 52# Shut the VM down 53vm_shutdown_all 54 55# Shut vhost down 56vhost_kill vhost0 57 58trap - SIGINT SIGTERM EXIT 59 60vhosttestfini 61timing_exit vhost_fio 62