]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/test/vhost/initiator/blockdev.sh
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / test / vhost / initiator / blockdev.sh
index b5ec3015c542da5c259aa3d0b0a4a0e9acd641c7..0c2ae2cd04e656e6587461ca85852ad837cacc9d 100755 (executable)
@@ -1,11 +1,13 @@
 #!/usr/bin/env bash
 
 set -e
-INITIATOR_DIR=$(readlink -f $(dirname $0))
-[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $INITIATOR_DIR/../common && pwd)"
-ROOT_DIR=$(readlink -f $INITIATOR_DIR/../../..)
 
-PLUGIN_DIR=$ROOT_DIR/examples/bdev/fio_plugin
+testdir=$(readlink -f $(dirname $0))
+rootdir=$(readlink -f $testdir/../../..)
+source $rootdir/test/common/autotest_common.sh
+source $rootdir/test/vhost/common.sh
+
+PLUGIN_DIR=$rootdir/examples/bdev/fio_plugin
 FIO_PATH="/usr/src/fio"
 virtio_bdevs=""
 virtio_with_unmap=""
@@ -39,10 +41,11 @@ while getopts 'h-:' optchar; do
        esac
 done
 
-source $COMMON_DIR/common.sh
-source $INITIATOR_DIR/autotest.config
-PLUGIN_DIR=$ROOT_DIR/examples/bdev/fio_plugin
-RPC_PY="$ROOT_DIR/scripts/rpc.py -s $(get_vhost_dir)/rpc.sock"
+vhosttestinit
+
+source $testdir/autotest.config
+PLUGIN_DIR=$rootdir/examples/bdev/fio_plugin
+RPC_PY="$rootdir/scripts/rpc.py -s $(get_vhost_dir)/rpc.sock"
 
 if [ ! -x $FIO_PATH ]; then
        error "Invalid path of fio binary"
@@ -64,15 +67,18 @@ fi
 
 function remove_kernel_vhost()
 {
-       targetcli "/vhost delete $kernel_vhost_disk"
-       targetcli "/backstores/$targetcli_rd_name delete ramdisk"
+       if targetcli "/vhost/$kernel_vhost_disk ls"; then
+               targetcli "/vhost delete $kernel_vhost_disk"
+       fi
+       if targetcli "/backstores/$targetcli_rd_name/ramdisk ls"; then
+               targetcli "/backstores/$targetcli_rd_name delete ramdisk"
+       fi
 }
 
-trap 'rm -f *.state $ROOT_DIR/spdk.tar.gz $ROOT_DIR/fio.tar.gz $(get_vhost_dir)/Virtio0;\
- error_exit "${FUNCNAME}""${LINENO}"' ERR SIGTERM SIGABRT
+trap 'rm -f *.state $rootdir/spdk.tar.gz $rootdir/fio.tar.gz $(get_vhost_dir)/Virtio0;\
remove_kernel_vhost; error_exit "${FUNCNAME}""${LINENO}"' ERR SIGTERM SIGABRT
 function run_spdk_fio() {
-       LD_PRELOAD=$PLUGIN_DIR/fio_plugin $FIO_PATH/fio --ioengine=spdk_bdev\
-         "$@" --spdk_mem=1024 --spdk_single_seg=1
+       fio_bdev --ioengine=spdk_bdev "$@" --spdk_mem=1024 --spdk_single_seg=1
 }
 
 function create_bdev_config()
@@ -102,29 +108,29 @@ function create_bdev_config()
        $RPC_PY construct_vhost_scsi_controller naa.Malloc1.0
        $RPC_PY add_vhost_scsi_lun naa.Malloc1.0 0 Malloc1
 
-       vbdevs=$(discover_bdevs $ROOT_DIR $INITIATOR_DIR/bdev.conf)
+       vbdevs=$(discover_bdevs $rootdir $testdir/bdev.conf)
        virtio_bdevs=$(jq -r '[.[].name] | join(":")' <<< $vbdevs)
        virtio_with_unmap=$(jq -r '[.[] | select(.supported_io_types.unmap==true).name]
         | join(":")' <<< $vbdevs)
 }
 
-timing_enter spdk_vhost_run
-spdk_vhost_run
-timing_exit spdk_vhost_run
+timing_enter vhost_run
+vhost_run
+timing_exit vhost_run
 
 timing_enter create_bdev_config
 create_bdev_config
 timing_exit create_bdev_config
 
 timing_enter run_spdk_fio
-run_spdk_fio $INITIATOR_DIR/bdev.fio --filename=$virtio_bdevs --section=job_randwrite --section=job_randrw \
-       --section=job_write --section=job_rw --spdk_conf=$INITIATOR_DIR/bdev.conf
+run_spdk_fio $testdir/bdev.fio --filename=$virtio_bdevs --section=job_randwrite --section=job_randrw \
+       --section=job_write --section=job_rw --spdk_conf=$testdir/bdev.conf
 report_test_completion "vhost_run_spdk_fio"
 timing_exit run_spdk_fio
 
 timing_enter run_spdk_fio_unmap
-run_spdk_fio $INITIATOR_DIR/bdev.fio --filename=$virtio_with_unmap --spdk_conf=$INITIATOR_DIR/bdev.conf \
-       --spdk_conf=$INITIATOR_DIR/bdev.conf
+run_spdk_fio $testdir/bdev.fio --filename=$virtio_with_unmap --spdk_conf=$testdir/bdev.conf \
+       --spdk_conf=$testdir/bdev.conf
 timing_exit run_spdk_fio_unmap
 
 timing_enter create_kernel_vhost
@@ -142,18 +148,18 @@ vm_setup --disk-type=spdk_vhost_scsi --force=$vm_no --os=$os_image \
 vm_run $vm_no
 
 timing_enter vm_wait_for_boot
-vm_wait_for_boot 600 $vm_no
+vm_wait_for_boot 300 $vm_no
 timing_exit vm_wait_for_boot
 
 timing_enter vm_scp_spdk
-touch $ROOT_DIR/spdk.tar.gz
-tar --exclude="spdk.tar.gz" --exclude="*.o" --exclude="*.d" --exclude=".git" -C $ROOT_DIR -zcf $ROOT_DIR/spdk.tar.gz .
-vm_scp $vm_no $ROOT_DIR/spdk.tar.gz "127.0.0.1:/root"
+touch $rootdir/spdk.tar.gz
+tar --exclude="spdk.tar.gz" --exclude="*.o" --exclude="*.d" --exclude=".git" -C $rootdir -zcf $rootdir/spdk.tar.gz .
+vm_scp $vm_no $rootdir/spdk.tar.gz "127.0.0.1:/root"
 vm_ssh $vm_no "mkdir -p /root/spdk; tar -zxf /root/spdk.tar.gz -C /root/spdk --strip-components=1"
 
-touch $ROOT_DIR/fio.tar.gz
-tar --exclude="fio.tar.gz" --exclude="*.o" --exclude="*.d" --exclude=".git" -C $FIO_PATH -zcf $ROOT_DIR/fio.tar.gz .
-vm_scp $vm_no $ROOT_DIR/fio.tar.gz "127.0.0.1:/root"
+touch $rootdir/fio.tar.gz
+tar --exclude="fio.tar.gz" --exclude="*.o" --exclude="*.d" --exclude=".git" -C $FIO_PATH -zcf $rootdir/fio.tar.gz .
+vm_scp $vm_no $rootdir/fio.tar.gz "127.0.0.1:/root"
 vm_ssh $vm_no "rm -rf /root/fio_src; mkdir -p /root/fio_src; tar -zxf /root/fio.tar.gz -C /root/fio_src --strip-components=1"
 timing_exit vm_scp_spdk
 
@@ -188,13 +194,15 @@ timing_enter vm_shutdown_all
 vm_shutdown_all
 timing_exit vm_shutdown_all
 
-rm -f *.state $ROOT_DIR/spdk.tar.gz $ROOT_DIR/fio.tar.gz $(get_vhost_dir)/Virtio0
+rm -f *.state $rootdir/spdk.tar.gz $rootdir/fio.tar.gz $(get_vhost_dir)/Virtio0
 timing_enter remove_kernel_vhost
 remove_kernel_vhost
 timing_exit remove_kernel_vhost
 
 $RPC_PY delete_nvme_controller Nvme0
 
-timing_enter spdk_vhost_kill
-spdk_vhost_kill
-timing_exit spdk_vhost_kill
+timing_enter vhost_kill
+vhost_kill
+timing_exit vhost_kill
+
+vhosttestfini