In Fedora 27 the nvme program returns before the kernel has loaded the namespces associated with the subsystem. This patch ensures that those namespaces can be enumerated by the kernel before we run any tests on them. Change-Id: I77505ed5cd5b1118a841650851fa5ecaf76f5619 Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/407829 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
75 lines
1.9 KiB
Bash
Executable File
75 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
testdir=$(readlink -f $(dirname $0))
|
|
rootdir=$(readlink -f $testdir/../../..)
|
|
source $rootdir/test/common/autotest_common.sh
|
|
source $rootdir/test/nvmf/common.sh
|
|
|
|
MALLOC_BDEV_SIZE=128
|
|
MALLOC_BLOCK_SIZE=512
|
|
NVMF_SUBSYS=11
|
|
|
|
rpc_py="python $rootdir/scripts/rpc.py"
|
|
|
|
set -e
|
|
|
|
RDMA_IP_LIST=$(get_available_rdma_ips)
|
|
NVMF_FIRST_TARGET_IP=$(echo "$RDMA_IP_LIST" | head -n 1)
|
|
if [ -z $NVMF_FIRST_TARGET_IP ]; then
|
|
echo "no NIC for nvmf test"
|
|
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
|
|
$NVMF_APP -c $testdir/../nvmf.conf &
|
|
pid=$!
|
|
|
|
trap "killprocess $pid; exit 1" SIGINT SIGTERM EXIT
|
|
|
|
waitforlisten $pid
|
|
timing_exit start_nvmf_tgt
|
|
|
|
modprobe -v nvme-rdma
|
|
|
|
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 $NVMF_SUBSYS`; do
|
|
k=$[$i-1]
|
|
nvme connect -t rdma -n "nqn.2016-06.io.spdk:cnode${i}" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT"
|
|
|
|
for j in `seq 1 10`; do
|
|
waitforblk "nvme${k}n${j}"
|
|
done
|
|
done
|
|
|
|
$testdir/../fio/nvmf_fio.py 262144 64 read 10
|
|
$testdir/../fio/nvmf_fio.py 262144 64 randwrite 10
|
|
|
|
sync
|
|
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
|
|
|
|
rm -f ./local-job0-0-verify.state
|
|
|
|
trap - SIGINT SIGTERM EXIT
|
|
|
|
nvmfcleanup
|
|
killprocess $pid
|
|
timing_exit multiconnection
|