From f6fd2f521fe2c3229ac8c137b1a54b9e632795c3 Mon Sep 17 00:00:00 2001 From: Tomasz Kulasek Date: Fri, 17 Apr 2020 14:30:16 +0200 Subject: [PATCH] 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: Tomasz Kulasek Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1912 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Tomasz Zawadzki --- test/nvme/nvme_ns_manage_cuse.sh | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/test/nvme/nvme_ns_manage_cuse.sh b/test/nvme/nvme_ns_manage_cuse.sh index 9447dae7e..0bde58715 100755 --- a/test/nvme/nvme_ns_manage_cuse.sh +++ b/test/nvme/nvme_ns_manage_cuse.sh @@ -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