Commit 191e6ab8 authored by Pawel Piatek's avatar Pawel Piatek Committed by Tomasz Zawadzki
Browse files

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: default avatarPawel 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: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent b8db1af4
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -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
		# 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
}

+9 −6
Original line number Diff line number Diff line
@@ -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"