Commit bb97032c authored by Tomasz Zawadzki's avatar Tomasz Zawadzki Committed by Tomasz Zawadzki
Browse files

test/nvmf: add ns hotplug test with extended admin qpair delay



Added test that extends the admin qpair processing from 10ms to 1 second.
This results in very much delayed processing of AER and following commands,
catching otherwise evasive races.

Change-Id: Id8f2c31230fdb57ee11882132c6f14a5416f20a1
Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26504


Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
parent 06e74ab0
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -62,6 +62,11 @@ ns_per_thread=20
bdev_size=100
blk_size=4096

# Test case 1 - add/remove ns with delay for processing admin queue

# Instead of default 10ms, use 1 second timeout
$rpc_py bdev_nvme_set_options --nvme-adminq-poll-period-us 1000000

$rpc_py bdev_nvme_attach_controller -t "$TEST_TRANSPORT" -a "$NVMF_FIRST_TARGET_IP" -f IPv4 -s "$NVMF_PORT" -n "$NVME_SUBNQN" -b nvme0

for ((i = 0; i < nthreads; ++i)); do
@@ -72,6 +77,21 @@ for ((i = 0; i < nthreads; ++i)); do
done
wait "${pids[@]}"

# Reattach controller with restored admin queue poll period to 10ms
$rpc_py bdev_nvme_detach_controller nvme0
$rpc_py bdev_nvme_set_options --nvme-adminq-poll-period-us 10000
$rpc_py bdev_nvme_attach_controller -t "$TEST_TRANSPORT" -a "$NVMF_FIRST_TARGET_IP" -f IPv4 -s "$NVMF_PORT" -n "$NVME_SUBNQN" -b nvme0

# Test case 2 - add/remove ns constantly

for ((i = 0; i < nthreads; ++i)); do
	# Every thread can use ns_per_thread NSIDs starting at specific offset.
	start_nsid="$((1 + (ns_per_thread * i)))"
	add_remove "$start_nsid" "$i" &
	pids+=($!)
done
wait "${pids[@]}"

waitforlisten "$spdk_app_pid"
killprocess "$spdk_app_pid"
trap - SIGINT SIGTERM EXIT