This test reproduced issue #2428. It does the following: 1) submit some large writes (requiring R2T or RDMA READ) 2) submit fused compare (first fused) 3) variable number of qpair polls 4) submit fused write (second fused) The RDMA and TCP transports were not accounting for the fused bits, and would send a non-fused command down to the target layer between the two fused commands. By adding the variable amount of delay between the fused command submissions, it creates a window where a large write's payload is fetched from the host and submitted to the target between submission of the two fused commands. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I1abd5a6bca08386279c09f8135387826149d30ef Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11963 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
91 lines
4.2 KiB
Bash
Executable File
91 lines
4.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
testdir=$(readlink -f $(dirname $0))
|
|
rootdir=$(readlink -f $testdir/../..)
|
|
source $rootdir/test/common/autotest_common.sh
|
|
|
|
if [ ! $(uname -s) = Linux ]; then
|
|
exit 0
|
|
fi
|
|
|
|
source $rootdir/test/nvmf/common.sh
|
|
|
|
trap "exit 1" SIGINT SIGTERM EXIT
|
|
|
|
TEST_ARGS=("$@")
|
|
|
|
if [[ $SPDK_TEST_URING -eq 0 ]]; then
|
|
run_test "nvmf_example" test/nvmf/target/nvmf_example.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_filesystem" test/nvmf/target/filesystem.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_discovery" test/nvmf/target/discovery.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_connect_disconnect" test/nvmf/target/connect_disconnect.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_create_transport" test/nvmf/target/create_transport.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_multitarget" test/nvmf/target/multitarget.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_rpc" test/nvmf/target/rpc.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_invalid" test/nvmf/target/invalid.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_abort" test/nvmf/target/abort.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_ns_hotplug_stress" test/nvmf/target/ns_hotplug_stress.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_connect_stress" test/nvmf/target/connect_stress.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_fused_ordering" test/nvmf/target/fused_ordering.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_delete_subsystem" test/nvmf/target/delete_subsystem.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_multicontroller" test/nvmf/host/multicontroller.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_aer" test/nvmf/host/aer.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_async_init" test/nvmf/host/async_init.sh "${TEST_ARGS[@]}"
|
|
run_test "dma" test/nvmf/host/dma.sh "${TEST_ARGS[@]}"
|
|
if [[ $SPDK_TEST_NVME_CLI -eq 1 ]]; then
|
|
run_test "nvmf_nvme_cli" test/nvmf/target/nvme_cli.sh "${TEST_ARGS[@]}"
|
|
fi
|
|
if [[ $SPDK_TEST_VFIOUSER -eq 1 ]]; then
|
|
run_test "nvmf_vfio_user" test/nvmf/target/nvmf_vfio_user.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_vfio_user_nvme_compliance" test/nvme/compliance/compliance.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_vfio_user_fuzz" test/nvmf/target/vfio_user_fuzz.sh "${TEST_ARGS[@]}"
|
|
fi
|
|
fi
|
|
run_test "nvmf_host_management" test/nvmf/target/host_management.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_lvol" test/nvmf/target/nvmf_lvol.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_vhost" test/nvmf/target/nvmf_vhost.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_bdev_io_wait" test/nvmf/target/bdev_io_wait.sh "${TEST_ARGS[@]}"
|
|
|
|
if [ $RUN_NIGHTLY -eq 1 ]; then
|
|
run_test "nvmf_fuzz" test/nvmf/target/fabrics_fuzz.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_multiconnection" test/nvmf/target/multiconnection.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_initiator_timeout" test/nvmf/target/initiator_timeout.sh "${TEST_ARGS[@]}"
|
|
if [ $SPDK_TEST_FUZZER -eq 1 ]; then
|
|
run_test "nvmf_llvm_fuzz" test/nvmf/target/llvm_nvme_fuzz.sh "${TEST_ARGS[@]}" "--time=60000" "--all"
|
|
fi
|
|
fi
|
|
|
|
run_test "nvmf_nmic" test/nvmf/target/nmic.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_fio_target" test/nvmf/target/fio.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_bdevio" test/nvmf/target/bdevio.sh "${TEST_ARGS[@]}"
|
|
if [[ $NET_TYPE == phy ]]; then
|
|
run_test "nvmf_shutdown" test/nvmf/target/shutdown.sh "${TEST_ARGS[@]}"
|
|
#TODO: disabled due to intermittent failures. Need to triage.
|
|
# run_test "nvmf_srq_overwhelm" test/nvmf/target/srq_overwhelm.sh $TEST_ARGS
|
|
fi
|
|
|
|
run_test "nvmf_queue_depth" test/nvmf/target/queue_depth.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_multipath" test/nvmf/target/multipath.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_zcopy" test/nvmf/target/zcopy.sh "${TEST_ARGS[@]}"
|
|
|
|
timing_enter host
|
|
|
|
run_test "nvmf_identify" test/nvmf/host/identify.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_perf" test/nvmf/host/perf.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_failover" test/nvmf/host/failover.sh "${TEST_ARGS[@]}"
|
|
run_test "nvmf_discovery" test/nvmf/host/discovery.sh "${TEST_ARGS[@]}"
|
|
|
|
# TODO: disabled due to intermittent failures (RDMA_CM_EVENT_UNREACHABLE/ETIMEDOUT)
|
|
#run_test test/nvmf/host/identify_kernel_nvmf.sh $TEST_ARGS
|
|
run_test "nvmf_fio_host" test/nvmf/host/fio.sh "${TEST_ARGS[@]}"
|
|
|
|
if [[ $NET_TYPE == phy ]]; then
|
|
# GitHub issue #1165
|
|
run_test "nvmf_bdevperf" test/nvmf/host/bdevperf.sh "${TEST_ARGS[@]}"
|
|
# GitHub issue #1043
|
|
run_test "nvmf_target_disconnect" test/nvmf/host/target_disconnect.sh "${TEST_ARGS[@]}"
|
|
fi
|
|
|
|
timing_exit host
|
|
|
|
trap - SIGINT SIGTERM EXIT
|