Spdk/test/vfio_user/virtio/fio_restart_vm.sh
paul luse eb53c23236 add (c) and SPDX header to bash files as needed
per Intel policy to include file commit date using git cmd
below.  The policy does not apply to non-Intel (C) notices.

git log --follow -C90% --format=%ad --date default <file> | tail -1

and then pull just the year from the result.

Intel copyrights were not added to files where Intel either had
no contribution ot the contribution lacked substance (ie license
header updates, formatting changes, etc)

For intel copyrights added, --follow and -C95% were used.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I2ef86976095b88a9bf5b1003e59f3943cd6bbe4c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15209
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-11-29 08:27:51 +00:00

104 lines
2.7 KiB
Bash
Executable File

#!/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
source $rootdir/test/vfio_user/common.sh
source $rootdir/test/vfio_user/virtio/common.sh
source $rootdir/test/vfio_user/autotest.config
bdfs=($(get_nvme_bdfs))
rpc_py="$rootdir/scripts/rpc.py -s $(get_vhost_dir 0)/rpc.sock"
virtio_type=$1
if [[ $virtio_type != virtio_blk ]] && [[ $virtio_type != virtio_scsi ]]; then
echo "Unsupported device type"
exit 1
fi
function get_disks() {
if [[ "$1" == "virtio_scsi" ]]; then
vm_check_scsi_location $2
elif [[ "$1" == "virtio_blk" ]]; then
vm_check_blk_location $2
fi
}
vhosttestinit
vfu_tgt_run 0
vfu_vm_dir="$VM_DIR/vfu_tgt"
rm -rf $vfu_vm_dir
mkdir -p $vfu_vm_dir
$rpc_py bdev_nvme_attach_controller -b Nvme0 -t pcie -a ${bdfs[0]}
# using socket $VM_DIR/vfu_tgt/virtio.$disk_no
disk_no="1"
vm_num="1"
$rpc_py vfu_tgt_set_base_path $vfu_vm_dir
if [[ "$virtio_type" == "virtio_blk" ]]; then
$rpc_py vfu_virtio_create_blk_endpoint virtio.$disk_no --bdev-name Nvme0n1 --num-queues=2 --qsize=512 --packed-ring
elif [[ "$virtio_type" == "virtio_scsi" ]]; then
$rpc_py vfu_virtio_create_scsi_endpoint virtio.$disk_no --num-io-queues=2 --qsize=512 --packed-ring
$rpc_py vfu_virtio_scsi_add_target virtio.$disk_no --scsi-target-num=0 --bdev-name Nvme0n1
fi
vm_setup --disk-type=vfio_user_virtio --force=1 --os=$VM_IMAGE --disks="1"
vm_run $vm_num
vm_wait_for_boot 60 $vm_num
# Get disk names from VM1 and run FIO traffic
fio_bin="--fio-bin=$FIO_BIN"
fio_disks=""
qemu_mask_param="VM_${vm_num}_qemu_mask"
host_name="VM-$vm_num-${!qemu_mask_param}"
vm_exec $vm_num "hostname $host_name"
vm_start_fio_server $fio_bin $vm_num
disks_before_restart=""
get_disks $virtio_type $vm_num
disks_before_restart="$SCSI_DISK"
fio_disks=" --vm=${vm_num}$(printf ':/dev/%s' $SCSI_DISK)"
job_file="default_integrity.job"
# Run FIO traffic
run_fio $fio_bin --job-file=$rootdir/test/vhost/common/fio_jobs/$job_file --out="$VHOST_DIR/fio_results" $fio_disks
# execute "poweroff" for vm 1
notice "Shutting down virtual machine..."
vm_shutdown_all
# re-launch the vm
vm_setup --disk-type=vfio_user_virtio --force=1 --os=$VM_IMAGE --disks="1"
vm_run $vm_num
vm_wait_for_boot 60 $vm_num
# compare block device with VM before restart
disks_after_restart=""
get_disks $virtio_type $vm_num
disks_after_restart="$SCSI_DISK"
if [[ "$disks_after_restart" != "$disks_before_restart" ]]; then
error "Disks aren't same after restart"
exit 1
fi
# execute "poweroff" for vm 1
notice "Shutting down virtual machine..."
vm_shutdown_all
$rpc_py bdev_nvme_detach_controller Nvme0
vhost_kill 0
vhosttestfini