From 2fc1a2d0563805894cf6790cfbdb3018eede20ba Mon Sep 17 00:00:00 2001 From: Darek Stojaczyk Date: Fri, 27 Mar 2020 17:05:32 +0100 Subject: [PATCH] test/vhost/initiator: inline create_bdev_config() This function is not really reusable. Inline it to have a simple, top-to-bottom test flow. This already shows the test is unnecessarily complicated. If anything with lib/virtio goes wrong this file is the last script that will be used for debugging. It would be OK if there simpler tests for lib/virtio, but there are not. While here, also add comments for the three major steps in this test script because it finally looks sane. Change-Id: Ic8ae611d853d4a685d38aa3112d16e396b0e110d Signed-off-by: Darek Stojaczyk Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1552 Reviewed-by: Karol Latecki Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot --- test/vhost/initiator/blockdev.sh | 56 +++++++++++++++----------------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/test/vhost/initiator/blockdev.sh b/test/vhost/initiator/blockdev.sh index e574c1407..1803aadaa 100755 --- a/test/vhost/initiator/blockdev.sh +++ b/test/vhost/initiator/blockdev.sh @@ -9,32 +9,6 @@ function run_spdk_fio() { --verify_state_save=0 } -function create_bdev_config() { - $rootdir/scripts/gen_nvme.sh --json | $rootdir/scripts/rpc.py load_subsystem_config - if [ -z "$(rpc_cmd bdev_get_bdevs | jq '.[] | select(.name=="Nvme0n1")')" ]; then - echo "Nvme0n1 bdev not found!" && false - fi - - rpc_cmd bdev_split_create Nvme0n1 6 - - rpc_cmd vhost_create_scsi_controller naa.Nvme0n1_scsi0.0 - rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 0 Nvme0n1p0 - rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 1 Nvme0n1p1 - rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 2 Nvme0n1p2 - rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 3 Nvme0n1p3 - - rpc_cmd vhost_create_blk_controller naa.Nvme0n1_blk0.0 Nvme0n1p4 - rpc_cmd vhost_create_blk_controller naa.Nvme0n1_blk1.0 Nvme0n1p5 - - rpc_cmd bdev_malloc_create 128 512 --name Malloc0 - rpc_cmd vhost_create_scsi_controller naa.Malloc0.0 - rpc_cmd vhost_scsi_controller_add_target naa.Malloc0.0 0 Malloc0 - - rpc_cmd bdev_malloc_create 128 4096 --name Malloc1 - rpc_cmd vhost_create_scsi_controller naa.Malloc1.0 - rpc_cmd vhost_scsi_controller_add_target naa.Malloc1.0 0 Malloc1 -} - function err_cleanup() { rm -f $testdir/bdev.json killprocess $vhost_pid @@ -43,16 +17,37 @@ function err_cleanup() { fi } +# start vhost and configure it trap 'err_cleanup; exit 1' SIGINT SIGTERM EXIT $rootdir/app/vhost/vhost & vhost_pid=$! waitforlisten $vhost_pid -timing_enter create_bdev_config -create_bdev_config -timing_exit create_bdev_config +$rootdir/scripts/gen_nvme.sh --json | $rootdir/scripts/rpc.py load_subsystem_config +if [ -z "$(rpc_cmd bdev_get_bdevs | jq '.[] | select(.name=="Nvme0n1")')" ]; then + echo "Nvme0n1 bdev not found!" && false +fi -# start a dummy app and generate a json config for FIO +rpc_cmd bdev_split_create Nvme0n1 6 + +rpc_cmd vhost_create_scsi_controller naa.Nvme0n1_scsi0.0 +rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 0 Nvme0n1p0 +rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 1 Nvme0n1p1 +rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 2 Nvme0n1p2 +rpc_cmd vhost_scsi_controller_add_target naa.Nvme0n1_scsi0.0 3 Nvme0n1p3 + +rpc_cmd vhost_create_blk_controller naa.Nvme0n1_blk0.0 Nvme0n1p4 +rpc_cmd vhost_create_blk_controller naa.Nvme0n1_blk1.0 Nvme0n1p5 + +rpc_cmd bdev_malloc_create 128 512 --name Malloc0 +rpc_cmd vhost_create_scsi_controller naa.Malloc0.0 +rpc_cmd vhost_scsi_controller_add_target naa.Malloc0.0 0 Malloc0 + +rpc_cmd bdev_malloc_create 128 4096 --name Malloc1 +rpc_cmd vhost_create_scsi_controller naa.Malloc1.0 +rpc_cmd vhost_scsi_controller_add_target naa.Malloc1.0 0 Malloc1 + +# start a dummy app, create vhost bdevs in it, then dump the config for FIO $rootdir/app/spdk_tgt/spdk_tgt -r /tmp/spdk2.sock -g & dummy_spdk_pid=$! waitforlisten $dummy_spdk_pid /tmp/spdk2.sock @@ -70,6 +65,7 @@ cat <<- CONF > $testdir/bdev.json CONF killprocess $dummy_spdk_pid +# run FIO with previously acquired spdk config files timing_enter run_spdk_fio run_spdk_fio $testdir/bdev.fio --filename=* --section=job_randwrite --section=job_randrw \ --section=job_write --section=job_rw --spdk_json_conf=$testdir/bdev.json