From 191e6ab8d2ed26999155f4c21bcd44f80a80de36 Mon Sep 17 00:00:00 2001 From: Pawel Piatek Date: Fri, 29 Jan 2021 10:45:31 +0100 Subject: [PATCH] test/nvmf: fix non-root mode - pass LD_LIBRARY_PATH - use $SUDO_USER instead $USER - support --huge-dir param via $SPDK_HUGE_DIR environment variable Signed-off-by: Pawel Piatek Change-Id: Ib42fe8a10b2c5b7d8a888605da04fee98a600515 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6171 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Tomasz Zawadzki Reviewed-by: Ben Walker --- test/nvmf/common.sh | 18 ++++++++++++++---- test/nvmf/host/perf.sh | 15 +++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/test/nvmf/common.sh b/test/nvmf/common.sh index dce10a478..ca9abfa25 100644 --- a/test/nvmf/common.sh +++ b/test/nvmf/common.sh @@ -9,10 +9,20 @@ NVMF_SERIAL=SPDK00000000000001 function build_nvmf_app_args() { if [ $SPDK_RUN_NON_ROOT -eq 1 ]; then - NVMF_APP=(sudo -u "$USER" "${NVMF_APP[@]}") - NVMF_APP+=(-i "$NVMF_APP_SHM_ID" -e 0xFFFF) - else - NVMF_APP+=(-i "$NVMF_APP_SHM_ID" -e 0xFFFF) + # We assume that test script is started from sudo + NVMF_APP=(sudo -E -u $SUDO_USER "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" "${NVMF_APP[@]}") + fi + NVMF_APP+=(-i "$NVMF_APP_SHM_ID" -e 0xFFFF) + + if [ -n "$SPDK_HUGE_DIR" ]; then + NVMF_APP+=(--huge-dir "$SPDK_HUGE_DIR") + elif [ $SPDK_RUN_NON_ROOT -eq 1 ]; then + echo "In non-root test mode you have to set SPDK_HUGE_DIR variable." >&2 + echo "For example:" >&2 + echo "sudo mkdir /mnt/spdk_hugetlbfs" >&2 + echo "sudo chown ${SUDO_USER}: /mnt/spdk_hugetlbfs" >&2 + echo "export SPDK_HUGE_DIR=/mnt/spdk_hugetlbfs" >&2 + return 1 fi } diff --git a/test/nvmf/host/perf.sh b/test/nvmf/host/perf.sh index ad158ee0a..f530d2fa7 100755 --- a/test/nvmf/host/perf.sh +++ b/test/nvmf/host/perf.sh @@ -13,6 +13,14 @@ rpc_py="$rootdir/scripts/rpc.py" nvmftestinit nvmfappstart -m 0xF +function perf_app() { + if [ $SPDK_RUN_NON_ROOT -eq 1 ]; then + sudo -E -u $SUDO_USER "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" $SPDK_EXAMPLE_DIR/perf "$@" + else + $SPDK_EXAMPLE_DIR/perf "$@" + fi +} + $rootdir/scripts/gen_nvme.sh | $rpc_py load_subsystem_config local_nvme_trid="trtype:PCIe traddr:"$($rpc_py framework_get_config bdev | jq -r '.[].params | select(.name=="Nvme0").traddr') @@ -31,12 +39,7 @@ $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPOR # Test multi-process access to local NVMe device if [ -n "$local_nvme_trid" ]; then - if [ $SPDK_RUN_NON_ROOT -eq 1 ]; then - perf_app="sudo -u $USER $SPDK_EXAMPLE_DIR/perf" - else - perf_app="$SPDK_EXAMPLE_DIR/perf" - fi - $perf_app -i $NVMF_APP_SHM_ID -q 32 -o 4096 -w randrw -M 50 -t 1 -r "$local_nvme_trid" + perf_app -i $NVMF_APP_SHM_ID -q 32 -o 4096 -w randrw -M 50 -t 1 -r "$local_nvme_trid" fi $SPDK_EXAMPLE_DIR/perf -q 1 -o 4096 -w randrw -M 50 -t 1 -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"