Commit f6fd2f52 authored by Tomasz Kulasek's avatar Tomasz Kulasek Committed by Tomasz Zawadzki
Browse files

test/nvme: add reset to ns manage test if AER ns change not supported



If Namespace Change AER is not supported by controller we
need to reset controller after changing namespace configuration.

Change-Id: I640e925fa02881c7b8541f2c0353e78c51074cdc
Signed-off-by: default avatarTomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1912


Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 1e529db2
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
@@ -28,17 +28,13 @@ for bdf in $bdfs; do

	oacs=$($NVME_CMD id-ctrl /dev/${nvme_name} | grep oacs | cut -d: -f2)
	oacs_ns_manage=$((oacs & 0x8))
	oaes=$($NVME_CMD id-ctrl /dev/${nvme_name} | grep oaes | cut -d: -f2)
	aer_ns_change=$((oaes & 0x100))

	if [[ "$oacs_ns_manage" -ne 0 ]] && [[ "$aer_ns_change" -ne 0 ]]; then
	if [[ "$oacs_ns_manage" -ne 0 ]]; then
		break
	fi
done

if [[ "${nvme_name}" == "" ]] || [[ "$oacs_ns_manage" -eq 0 ]] || [[ "$aer_ns_change" -eq 0 ]]; then
	# This version doesn't support devices without supported
	# NS Change AER. It will be included in the next patch.
if [[ "${nvme_name}" == "" ]] || [[ "$oacs_ns_manage" -eq 0 ]]; then
	echo "NVMe device not found"
	$rootdir/scripts/setup.sh
	exit 0
@@ -47,6 +43,9 @@ fi
nvme_dev=/dev/${nvme_name}

# Detect supported features and configuration
oaes=$($NVME_CMD id-ctrl ${nvme_dev} | grep oaes | cut -d: -f2)
aer_ns_change=$((oaes & 0x100))

nvmcap=$($NVME_CMD id-ns ${nvme_dev} -n 1 | grep nvmcap | cut -d: -f2)
blksize=512

@@ -76,6 +75,10 @@ info_print "delete all namespaces"
$NVME_CMD detach-ns ${nvme_dev} -n 0xffffffff -c 0 || true
$NVME_CMD delete-ns ${nvme_dev} -n 0xffffffff || true

if [[ "$aer_ns_change" -eq "0" ]]; then
	sleep 1
	$NVME_CMD reset ${nvme_dev} || true
fi
sleep 1

PCI_WHITELIST="${bdf}" $rootdir/scripts/setup.sh
@@ -102,6 +105,10 @@ $NVME_CMD create-ns /dev/spdk/nvme0 -s 10000 -c 10000 -f 0
info_print "attach ns: nsid=1 controller=0"
$NVME_CMD attach-ns /dev/spdk/nvme0 -n 1 -c 0

if [[ "$aer_ns_change" -eq "0" ]]; then
	sleep 1
	$NVME_CMD reset /dev/spdk/nvme0 || true
fi
sleep 1

[[ -c /dev/spdk/nvme0n1 ]]
@@ -112,6 +119,10 @@ $NVME_CMD create-ns /dev/spdk/nvme0 -s 10000 -c 10000 -f 0
info_print "attach ns: nsid=2 controller=0"
$NVME_CMD attach-ns /dev/spdk/nvme0 -n 2 -c 0

if [[ "$aer_ns_change" -eq "0" ]]; then
	sleep 1
	$NVME_CMD reset /dev/spdk/nvme0 || true
fi
sleep 1

[[ -c /dev/spdk/nvme0n2 ]]
@@ -122,6 +133,10 @@ $NVME_CMD detach-ns /dev/spdk/nvme0 -n 2 -c 0 || true
info_print "delete ns: nsid=2"
$NVME_CMD delete-ns /dev/spdk/nvme0 -n 2 || true

if [[ "$aer_ns_change" -eq "0" ]]; then
	sleep 1
	$NVME_CMD reset /dev/spdk/nvme0 || true
fi
sleep 1

[[ ! -c /dev/spdk/nvme0n2 ]]
@@ -132,6 +147,10 @@ $NVME_CMD detach-ns /dev/spdk/nvme0 -n 1 -c 0 || true
info_print "delete ns: nsid=1"
$NVME_CMD delete-ns /dev/spdk/nvme0 -n 1 || true

if [[ "$aer_ns_change" -eq "0" ]]; then
	sleep 1
	$NVME_CMD reset /dev/spdk/nvme0 || true
fi
sleep 1

# Here we should not have any cuse devices