diff --git a/test/nvmf/common.sh b/test/nvmf/common.sh index a256309c4..ff087fc61 100755 --- a/test/nvmf/common.sh +++ b/test/nvmf/common.sh @@ -146,3 +146,18 @@ function revert_soft_roce() rxe_cfg stop || true fi } + +function check_ip_is_soft_roce() +{ + IP=$1 + if hash rxe_cfg; then + dev=$(ip -4 -o addr show | grep $IP | cut -d" " -f2) + if rxe_cfg | grep $dev; then + return 0 + else + return 1 + fi + else + return 1 + fi +} diff --git a/test/nvmf/multiconnection/multiconnection.sh b/test/nvmf/multiconnection/multiconnection.sh index e574cd267..73ecd1c7c 100755 --- a/test/nvmf/multiconnection/multiconnection.sh +++ b/test/nvmf/multiconnection/multiconnection.sh @@ -7,6 +7,7 @@ source $rootdir/test/nvmf/common.sh MALLOC_BDEV_SIZE=128 MALLOC_BLOCK_SIZE=512 +NVMF_SUBSYS=11 rpc_py="python $rootdir/scripts/rpc.py" @@ -19,6 +20,14 @@ if [ -z $NVMF_FIRST_TARGET_IP ]; then exit 0 fi +# SoftRoce does not have enough queues available for +# multiconnection tests. Detect if we're using software RDMA. +# If so - lower the number of subsystems for test. +if check_ip_is_soft_roce $NVMF_FIRST_TARGET_IP; then + echo "Using software RDMA, lowering number of NVMeOF subsystems." + NVMF_SUBSYS=1 +fi + timing_enter multiconnection timing_enter start_nvmf_tgt # Start up the NVMf target in another process @@ -32,13 +41,13 @@ timing_exit start_nvmf_tgt modprobe -v nvme-rdma -for i in `seq 1 11` +for i in `seq 1 $NVMF_SUBSYS` do bdevs="$($rpc_py construct_malloc_bdev $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE)" $rpc_py construct_nvmf_subsystem nqn.2016-06.io.spdk:cnode${i} "trtype:RDMA traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT" '' -a -s SPDK${i} -n "$bdevs" done -for i in `seq 1 11`; do +for i in `seq 1 $NVMF_SUBSYS`; do nvme connect -t rdma -n "nqn.2016-06.io.spdk:cnode${i}" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" done @@ -46,7 +55,7 @@ $testdir/../fio/nvmf_fio.py 262144 64 read 10 $testdir/../fio/nvmf_fio.py 262144 64 randwrite 10 sync -for i in `seq 1 11`; do +for i in `seq 1 $NVMF_SUBSYS`; do nvme disconnect -n "nqn.2016-06.io.spdk:cnode${i}" || true $rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode${i} done