[bug report] blktests nvme/043 nvme/045 failed

Shinichiro Kawasaki shinichiro.kawasaki at wdc.com
Thu Aug 31 21:02:14 PDT 2023


On Aug 30, 2023 / 19:22, Yi Zhang wrote:
> Hello
> 
> I found blkests nvme/043 nvme/045 failed on one of our x86_64 servers,
> and it works on the other servers, from the log, it failed when
> Testing DH group ffdhe6144 and ffdhe8192, is it hw limitation?

Hannes, may I ask your comment? I have same guess as Yi.

If the DH groups ffdhe6144 and ffdhe8192 does not work always, I think changes
in nvme test cases will be required to avoid the failures. It could be something
like below (untested at all).

diff --git a/tests/nvme/043 b/tests/nvme/043
index c6a0aa0..81ccb1b 100755
--- a/tests/nvme/043
+++ b/tests/nvme/043
@@ -56,7 +56,12 @@ test() {
 
 		echo "Testing DH group ${dhgroup}"
 
-		_set_nvmet_dhgroup "${def_hostnqn}" "${dhgroup}"
+		if ! _set_nvmet_dhgroup "${def_hostnqn}" "${dhgroup}" &&
+				[[ ${dhgroup} == "ffdhe6144" ||
+					   ${dhgroup} == "ffdhe8192" ]]; then
+			echo "DH group ${dhgroup} can not be set" >> "$FULL"
+			continue
+		fi
 
 		_nvme_connect_subsys "${nvme_trtype}" "${def_subsysnqn}" \
 				      --hostnqn "${def_hostnqn}" \
diff --git a/tests/nvme/044 b/tests/nvme/044
index 7bd43f3..3f11693 100755
--- a/tests/nvme/044
+++ b/tests/nvme/044
@@ -44,7 +44,10 @@ test() {
 	_nvmet_target_setup --blkdev file --ctrlkey "${ctrlkey}" \
 			    --hostkey "${hostkey}"
 
-	_set_nvmet_dhgroup "${def_hostnqn}" "ffdhe2048"
+	if ! _set_nvmet_dhgroup "${def_hostnqn}" "ffdhe2048"; then
+		echo "failed to set DH group ffdhe2048"
+		return 1
+	fi
 
 	# Step 1: Connect with host authentication only
 	echo "Test host authentication"
diff --git a/tests/nvme/045 b/tests/nvme/045
index 1eb1032..8e17ef5 100755
--- a/tests/nvme/045
+++ b/tests/nvme/045
@@ -48,7 +48,10 @@ test() {
 	_nvmet_target_setup --blkdev file --ctrlkey "${ctrlkey}" \
 			    --hostkey "${hostkey}"
 
-	_set_nvmet_dhgroup "${def_hostnqn}" "ffdhe2048"
+	if ! _set_nvmet_dhgroup "${def_hostnqn}" "ffdhe2048"; then
+		echo "failed to set DH group ffdhe2048"
+		return 1
+	fi
 
 	_nvme_connect_subsys "${nvme_trtype}" "${def_subsysnqn}" \
 			     --hostnqn "${def_hostnqn}" \
@@ -88,7 +91,12 @@ test() {
 
 	echo "Change DH group to ffdhe8192"
 
-	_set_nvmet_dhgroup "${def_hostnqn}" "ffdhe8192"
+	if ! _set_nvmet_dhgroup "${def_hostnqn}" "ffdhe8192"; then
+		SKIP_REASONS+=("can not change DH group to ffdhe8192")
+		_nvme_disconnect_subsys "${def_subsysnqn}"
+		_nvmet_target_cleanup
+		return
+	fi
 
 	echo "Re-authenticate with changed DH group"
 
diff --git a/tests/nvme/rc b/tests/nvme/rc
index 1ec9eb6..46c8d60 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -803,8 +803,7 @@ _set_nvmet_dhgroup() {
 	local nvmet_dhgroup="$2"
 	local cfs_path="${NVMET_CFS}/hosts/${nvmet_hostnqn}"
 
-	echo "${nvmet_dhgroup}" > \
-	     "${cfs_path}/dhchap_dhgroup"
+	{ echo "${nvmet_dhgroup}" > "${cfs_path}/dhchap_dhgroup" ;} 2> /dev/null
 }
 
 _find_nvme_dev() {


More information about the Linux-nvme mailing list