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 <pawelx.piatek@intel.com>
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 <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Pawel Piatek 2021-01-29 10:45:31 +01:00 committed by Tomasz Zawadzki
parent b8db1af4e2
commit 191e6ab8d2
2 changed files with 23 additions and 10 deletions

View File

@ -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
}

View File

@ -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"