From 256f554d9e6e7ebaeb07c6aec12c524206a45dbe Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Mon, 8 Jun 2020 10:48:03 -0400 Subject: [PATCH] test/common: add get_nvme_ctrlr_from_bdf() This is used couple times in cuse test, so move it to common script. Signed-off-by: Tomasz Zawadzki Change-Id: I1e9f973e7fb53b0024fb320d37632e1e011ba3e9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2824 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Ben Walker Reviewed-by: Karol Latecki --- test/common/autotest_common.sh | 9 +++++++++ test/nvme/cuse/nvme_ns_manage_cuse.sh | 7 ++----- test/nvme/cuse/spdk_nvme_cli_cuse.sh | 5 ++--- test/nvme/cuse/spdk_smartctl_cuse.sh | 5 ++--- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/test/common/autotest_common.sh b/test/common/autotest_common.sh index a26eb68dc..2e043b184 100755 --- a/test/common/autotest_common.sh +++ b/test/common/autotest_common.sh @@ -1175,6 +1175,15 @@ function get_nvme_name_from_bdf() { printf '%s\n' "${blkname[@]}" } +function get_nvme_ctrlr_from_bdf() { + bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$1/nvme/nvme") + if [[ -z "$bdf_sysfs_path" ]]; then + return + fi + + printf '%s\n' "$(basename $bdf_sysfs_path)" +} + function opal_revert_cleanup() { $SPDK_BIN_DIR/spdk_tgt & spdk_tgt_pid=$! diff --git a/test/nvme/cuse/nvme_ns_manage_cuse.sh b/test/nvme/cuse/nvme_ns_manage_cuse.sh index ac31403f3..c1865c335 100755 --- a/test/nvme/cuse/nvme_ns_manage_cuse.sh +++ b/test/nvme/cuse/nvme_ns_manage_cuse.sh @@ -18,13 +18,10 @@ $rootdir/scripts/setup.sh reset sleep 1 for bdf in $bdfs; do - # get_nvme_name_from_bdf returns namespace device. - # We need here controller. - bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$bdf/nvme/nvme") - if [ -z "$bdf_sysfs_path" ]; then + nvme_name=$(get_nvme_ctrlr_from_bdf ${bdf}) + if [[ -z "$nvme_name" ]]; then continue fi - nvme_name=$(basename $bdf_sysfs_path) oacs=$($NVME_CMD id-ctrl /dev/${nvme_name} | grep oacs | cut -d: -f2) oacs_ns_manage=$((oacs & 0x8)) diff --git a/test/nvme/cuse/spdk_nvme_cli_cuse.sh b/test/nvme/cuse/spdk_nvme_cli_cuse.sh index 502c17dc6..ce1affbca 100755 --- a/test/nvme/cuse/spdk_nvme_cli_cuse.sh +++ b/test/nvme/cuse/spdk_nvme_cli_cuse.sh @@ -18,12 +18,11 @@ bdf=$(get_first_nvme_bdf) PCI_WHITELIST="${bdf}" $rootdir/scripts/setup.sh reset sleep 1 -bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$bdf/nvme/nvme") -if [ -z "$bdf_sysfs_path" ]; then +nvme_name=$(get_nvme_ctrlr_from_bdf ${bdf}) +if [[ -z "$nvme_name" ]]; then echo "setup.sh failed bind kernel driver to ${bdf}" return 1 fi -nvme_name=$(basename $bdf_sysfs_path) set +e diff --git a/test/nvme/cuse/spdk_smartctl_cuse.sh b/test/nvme/cuse/spdk_smartctl_cuse.sh index 585962468..a92ca1199 100755 --- a/test/nvme/cuse/spdk_smartctl_cuse.sh +++ b/test/nvme/cuse/spdk_smartctl_cuse.sh @@ -12,12 +12,11 @@ bdf=$(get_first_nvme_bdf) PCI_WHITELIST="${bdf}" $rootdir/scripts/setup.sh reset sleep 1 -bdf_sysfs_path=$(readlink -f /sys/class/nvme/nvme* | grep "$bdf/nvme/nvme") -if [ -z "$bdf_sysfs_path" ]; then +nvme_name=$(get_nvme_ctrlr_from_bdf ${bdf}) +if [[ -z "$nvme_name" ]]; then echo "setup.sh failed bind kernel driver to ${bdf}" exit 1 fi -nvme_name=$(basename $bdf_sysfs_path) KERNEL_SMART_JSON=$(${SMARTCTL_CMD} --json=g -a /dev/${nvme_name} | grep -v "/dev/${nvme_name}" | sort || true)