Commit 852f907f authored by Jaylyn-Ren's avatar Jaylyn-Ren Committed by Tomasz Zawadzki
Browse files

test/nvmf: Add interrupt mode testing for vfio-user



Run nvmf with vfio-user in both polling mode and interrupt mode.

We are just testing some minimal vfio-user set up in interrupt mode,
but not actually testing any commands, since the vfio-user transport
used by lib/nvme code currently requires mapped device doorbells.

Signed-off-by: default avatarJaylyn-Ren <jaylyn.ren@arm.com>
Change-Id: I03eebaa391c38e8ab59aa949d6064bffdbebe3dd
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19132


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarJohn Levon <levon@movementarian.org>
parent 696cad6d
Loading
Loading
Loading
Loading
+51 −31
Original line number Diff line number Diff line
@@ -46,9 +46,14 @@ function aer_vfio_user() {

rm -rf /var/run/vfio-user

# Start the target
"${NVMF_APP[@]}" -m '[0,1,2,3]' &
function setup_nvmf_vfio_user() {

	local nvmf_app_args=$1
	local transport_args=$2

	"${NVMF_APP[@]}" -m '[0,1,2,3]' $nvmf_app_args &
	nvmfpid=$!

	echo "Process pid: $nvmfpid"

	trap 'killprocess $nvmfpid; exit 1' SIGINT SIGTERM EXIT
@@ -56,7 +61,7 @@ waitforlisten $nvmfpid

	sleep 1

$rpc_py nvmf_create_transport -t $TEST_TRANSPORT
	$rpc_py nvmf_create_transport -t $TEST_TRANSPORT $transport_args

	mkdir -p /var/run/vfio-user

@@ -68,6 +73,9 @@ for i in $(seq 1 $NUM_DEVICES); do
		$rpc_py nvmf_subsystem_add_ns nqn.2019-07.io.spdk:cnode$i Malloc$i
		$rpc_py nvmf_subsystem_add_listener nqn.2019-07.io.spdk:cnode$i -t $TEST_TRANSPORT -a "/var/run/vfio-user/domain/vfio-user$i/$i" -s 0
	done
}

function run_nvmf_vfio_user() {

	for i in $(seq 1 $NUM_DEVICES); do
		test_traddr=/var/run/vfio-user/domain/vfio-user$i/$i
@@ -81,9 +89,21 @@ for i in $(seq 1 $NUM_DEVICES); do
		$nvmeappdir/overhead/overhead -o 4096 -t 1 -H -g -d 256 -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn"
		aer_vfio_user $test_traddr $test_subnqn $i
	done
}

function stop_nvmf_vfio_user() {
	killprocess $nvmfpid

	rm -rf /var/run/vfio-user

	trap - SIGINT SIGTERM EXIT
}

# Start the target and run cases in polling mode
setup_nvmf_vfio_user '' ''
run_nvmf_vfio_user
stop_nvmf_vfio_user

# Start the target in interrupt mode
setup_nvmf_vfio_user '-J' '-M -I'
stop_nvmf_vfio_user