test/vfu_virtio: add SPDK virtio initiator bdevperf tests
Change-Id: Ifc86834c1fae7087b4e25e00d9576decffa7248a Signed-off-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15075 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
parent
b09ae853f9
commit
4a78a37fd7
@ -16,5 +16,6 @@ run_test "vfio_user_nvme_fio" $WORKDIR/nvme/vfio_user_fio.sh
|
|||||||
run_test "vfio_user_nvme_restart_vm" $WORKDIR/nvme/vfio_user_restart_vm.sh
|
run_test "vfio_user_nvme_restart_vm" $WORKDIR/nvme/vfio_user_restart_vm.sh
|
||||||
run_test "vfio_user_virtio_blk_restart_vm" $WORKDIR/virtio/fio_restart_vm.sh virtio_blk
|
run_test "vfio_user_virtio_blk_restart_vm" $WORKDIR/virtio/fio_restart_vm.sh virtio_blk
|
||||||
run_test "vfio_user_virtio_scsi_restart_vm" $WORKDIR/virtio/fio_restart_vm.sh virtio_scsi
|
run_test "vfio_user_virtio_scsi_restart_vm" $WORKDIR/virtio/fio_restart_vm.sh virtio_scsi
|
||||||
|
run_test "vfio_user_virtio_bdevperf" $WORKDIR/virtio/initiator_bdevperf.sh
|
||||||
|
|
||||||
vhosttestfini
|
vhosttestfini
|
||||||
|
59
test/vfio_user/virtio/initiator_bdevperf.sh
Executable file
59
test/vfio_user/virtio/initiator_bdevperf.sh
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
# Copyright (C) 2022 Intel Corporation. All rights reserved.
|
||||||
|
|
||||||
|
testdir=$(readlink -f $(dirname $0))
|
||||||
|
rootdir=$(readlink -f $testdir/../../..)
|
||||||
|
source $rootdir/test/common/autotest_common.sh
|
||||||
|
|
||||||
|
rpc_py="$rootdir/scripts/rpc.py"
|
||||||
|
|
||||||
|
vfu_dir="/tmp/vfu_devices"
|
||||||
|
rm -rf $vfu_dir
|
||||||
|
mkdir -p $vfu_dir
|
||||||
|
|
||||||
|
# Start `spdk_tgt` and configure it
|
||||||
|
$SPDK_BIN_DIR/spdk_tgt -m 0xf &
|
||||||
|
spdk_tgt_pid=$!
|
||||||
|
waitforlisten $spdk_tgt_pid
|
||||||
|
|
||||||
|
$rpc_py bdev_malloc_create -b malloc0 64 512
|
||||||
|
$rpc_py bdev_malloc_create -b malloc1 64 512
|
||||||
|
$rpc_py bdev_malloc_create -b malloc2 64 512
|
||||||
|
|
||||||
|
$rpc_py vfu_tgt_set_base_path $vfu_dir
|
||||||
|
|
||||||
|
# Create vfio-user virtio-blk device
|
||||||
|
$rpc_py vfu_virtio_create_blk_endpoint vfu.blk --bdev-name malloc0 --cpumask=0x1 \
|
||||||
|
--num-queues=2 --qsize=256 --packed-ring
|
||||||
|
|
||||||
|
# Create vfio-user virtio-scsi device
|
||||||
|
$rpc_py vfu_virtio_create_scsi_endpoint vfu.scsi --cpumask 0x2 --num-io-queues=2 \
|
||||||
|
--qsize=256 --packed-ring
|
||||||
|
$rpc_py vfu_virtio_scsi_add_target vfu.scsi --scsi-target-num=0 --bdev-name malloc1
|
||||||
|
$rpc_py vfu_virtio_scsi_add_target vfu.scsi --scsi-target-num=1 --bdev-name malloc2
|
||||||
|
|
||||||
|
# Start bdevperf
|
||||||
|
bdevperf=$rootdir/build/examples/bdevperf
|
||||||
|
bdevperf_rpc_sock=/tmp/bdevperf.sock
|
||||||
|
|
||||||
|
$bdevperf -r $bdevperf_rpc_sock -g -s 1024 -q 256 -o 4096 -w randrw -M 50 -t 30 -m 0xf0 &
|
||||||
|
bdevperf_pid=$!
|
||||||
|
trap 'killprocess $bdevperf_pid; exit 1' SIGINT SIGTERM EXIT
|
||||||
|
waitforlisten $bdevperf_pid $bdevperf_rpc_sock
|
||||||
|
$rpc_py -s $bdevperf_rpc_sock bdev_virtio_attach_controller --dev-type scsi \
|
||||||
|
--trtype vfio-user --traddr $vfu_dir/vfu.scsi VirtioScsi0
|
||||||
|
$rpc_py -s $bdevperf_rpc_sock bdev_virtio_attach_controller --dev-type blk \
|
||||||
|
--trtype vfio-user --traddr $vfu_dir/vfu.blk VirtioBlk0
|
||||||
|
|
||||||
|
# Start the tests
|
||||||
|
$rootdir/examples/bdev/bdevperf/bdevperf.py -s $bdevperf_rpc_sock perform_tests
|
||||||
|
|
||||||
|
killprocess $bdevperf_pid
|
||||||
|
trap - SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
|
# Delete the endpoints
|
||||||
|
$rpc_py vfu_virtio_delete_endpoint vfu.blk
|
||||||
|
$rpc_py vfu_virtio_delete_endpoint vfu.scsi
|
||||||
|
|
||||||
|
killprocess $spdk_tgt_pid
|
Loading…
Reference in New Issue
Block a user