From c42bee0cb6f697f869c45e22688985a2b8db401a Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Tue, 20 Nov 2018 20:16:19 +0800 Subject: [PATCH] nvmf/host/perf.sh: refactor the code into a common function Purpose: prepare to add the TCP transport test. Change-Id: I5dd2acabb9259b7a85919ab2dca41eacf9dee913 Signed-off-by: Ziye Yang Reviewed-on: https://review.gerrithub.io/433964 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- test/nvmf/host/perf.sh | 101 ++++++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 47 deletions(-) diff --git a/test/nvmf/host/perf.sh b/test/nvmf/host/perf.sh index 24faed5bee..d12d7088d7 100755 --- a/test/nvmf/host/perf.sh +++ b/test/nvmf/host/perf.sh @@ -28,7 +28,6 @@ nvmfpid=$! trap "process_shm --id $NVMF_APP_SHM_ID; killprocess $nvmfpid; exit 1" SIGINT SIGTERM EXIT waitforlisten $nvmfpid -$rpc_py nvmf_create_transport -t RDMA -u 8192 -p 4 $rootdir/scripts/gen_nvme.sh --json | $rpc_py load_subsystem_config timing_exit start_nvmf_tgt @@ -39,55 +38,63 @@ if [ -n "$local_nvme_trid" ]; then bdevs="$bdevs Nvme0n1" fi -$rpc_py nvmf_subsystem_create nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 -for bdev in $bdevs; do - $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 $bdev -done -$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t rdma -a $NVMF_FIRST_TARGET_IP -s 4420 +function test_perf() +{ + TYPE=$1 + NVMF_TARGET_IP=$2 + $rpc_py nvmf_create_transport -t $TYPE -p 4 + $rpc_py nvmf_subsystem_create nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 + for bdev in $bdevs; do + $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 $bdev + done + $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TYPE -a $NVMF_TARGET_IP -s 4420 -# Test multi-process access to local NVMe device -if [ -n "$local_nvme_trid" ]; then - $rootdir/examples/nvme/perf/perf -i 0 -q 32 -o 4096 -w randrw -M 50 -t 1 -r "$local_nvme_trid" -fi - -$rootdir/examples/nvme/perf/perf -q 32 -o 4096 -w randrw -M 50 -t 1 -r "trtype:RDMA adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420" -sync -$rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 - -if [ $RUN_NIGHTLY -eq 1 ]; then - # Configure nvme devices with nvmf lvol_bdev backend + # Test multi-process access to local NVMe device if [ -n "$local_nvme_trid" ]; then - ls_guid=$($rpc_py construct_lvol_store Nvme0n1 lvs_0) - get_lvs_free_mb $ls_guid - lb_guid=$($rpc_py construct_lvol_bdev -u $ls_guid lbd_0 $free_mb) - - # Create lvol bdev for nested lvol stores - ls_nested_guid=$($rpc_py construct_lvol_store $lb_guid lvs_n_0) - get_lvs_free_mb $ls_nested_guid - lb_nested_guid=$($rpc_py construct_lvol_bdev -u $ls_nested_guid lbd_nest_0 $free_mb) - $rpc_py nvmf_subsystem_create nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 - for bdev in $lb_nested_guid; do - $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 $bdev - done - $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t rdma -a $NVMF_FIRST_TARGET_IP -s 4420 - # Test perf as host with different io_size and qd_depth in nightly - qd_depth=("1" "128") - io_size=("512" "131072") - for qd in ${qd_depth[@]}; do - for o in ${io_size[@]}; do - $rootdir/examples/nvme/perf/perf -q $qd -o $o -w randrw -M 50 -t 10 -r "trtype:RDMA adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:4420" - done - done - - # Delete subsystems, lvol_bdev and destroy lvol_store. - $rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 - $rpc_py destroy_lvol_bdev "$lb_nested_guid" - $rpc_py destroy_lvol_store -l lvs_n_0 - $rpc_py destroy_lvol_bdev "$lb_guid" - $rpc_py destroy_lvol_store -l lvs_0 - $rpc_py delete_nvme_controller Nvme0 + $rootdir/examples/nvme/perf/perf -i 0 -q 32 -o 4096 -w randrw -M 50 -t 1 -r "$local_nvme_trid" fi -fi + + $rootdir/examples/nvme/perf/perf -q 32 -o 4096 -w randrw -M 50 -t 1 -r "trtype:$TYPE adrfam:IPv4 traddr:$NVMF_TARGET_IP trsvcid:4420" + sync + $rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 + + if [ $RUN_NIGHTLY -eq 1 ]; then + # Configure nvme devices with nvmf lvol_bdev backend + if [ -n "$local_nvme_trid" ]; then + ls_guid=$($rpc_py construct_lvol_store Nvme0n1 lvs_0) + get_lvs_free_mb $ls_guid + lb_guid=$($rpc_py construct_lvol_bdev -u $ls_guid lbd_0 $free_mb) + + # Create lvol bdev for nested lvol stores + ls_nested_guid=$($rpc_py construct_lvol_store $lb_guid lvs_n_0) + get_lvs_free_mb $ls_nested_guid + lb_nested_guid=$($rpc_py construct_lvol_bdev -u $ls_nested_guid lbd_nest_0 $free_mb) + $rpc_py nvmf_subsystem_create nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 + for bdev in $lb_nested_guid; do + $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 $bdev + done + $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TYPE -a $NVMF_TARGET_IP -s 4420 + # Test perf as host with different io_size and qd_depth in nightly + qd_depth=("1" "128") + io_size=("512" "131072") + for qd in ${qd_depth[@]}; do + for o in ${io_size[@]}; do + $rootdir/examples/nvme/perf/perf -q $qd -o $o -w randrw -M 50 -t 10 -r "trtype:$TYPE adrfam:IPv4 traddr:$NVMF_TARGET_IP trsvcid:4420" + done + done + + # Delete subsystems, lvol_bdev and destroy lvol_store. + $rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 + $rpc_py destroy_lvol_bdev "$lb_nested_guid" + $rpc_py destroy_lvol_store -l lvs_n_0 + $rpc_py destroy_lvol_bdev "$lb_guid" + $rpc_py destroy_lvol_store -l lvs_0 + $rpc_py delete_nvme_controller Nvme0 + fi + fi +} + +test_perf "RDMA" $NVMF_FIRST_TARGET_IP trap - SIGINT SIGTERM EXIT