build: Example applications build to build/example
This mirrors build/bin and build/lib Change-Id: Ide1d17dfc8b425adfbe67f381c93c236653bd301 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2380 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
This commit is contained in:
parent
c3b5ae0c60
commit
85bdd43b40
2
Makefile
2
Makefile
@ -79,6 +79,7 @@ clean: $(DIRS-y)
|
||||
$(Q)rm -f include/spdk/config.h
|
||||
$(Q)rm -rf build/bin
|
||||
$(Q)rm -rf build/fio
|
||||
$(Q)rm -rf build/examples
|
||||
|
||||
install: all
|
||||
$(Q)echo "Installed to $(DESTDIR)$(CONFIG_PREFIX)"
|
||||
@ -109,6 +110,7 @@ build_dir: mk/cc.mk
|
||||
$(Q)mkdir -p build/lib
|
||||
$(Q)mkdir -p build/bin
|
||||
$(Q)mkdir -p build/fio
|
||||
$(Q)mkdir -p build/examples
|
||||
|
||||
include/spdk/config.h: mk/config.mk scripts/genconfig.py
|
||||
$(Q)echo "#ifndef SPDK_CONFIG_H" > $@.tmp; \
|
||||
|
@ -218,7 +218,7 @@ if [ $SPDK_RUN_FUNCTIONAL_TEST -eq 1 ]; then
|
||||
run_test "rocksdb" ./test/blobfs/rocksdb/rocksdb.sh
|
||||
run_test "blobstore" ./test/blobstore/blobstore.sh
|
||||
run_test "blobfs" ./test/blobfs/blobfs.sh
|
||||
run_test "hello_blob" ./examples/blob/hello_world/hello_blob \
|
||||
run_test "hello_blob" $SPDK_EXAMPLE_DIR/hello_blob \
|
||||
examples/blob/hello_world/hello_blob.conf
|
||||
fi
|
||||
|
||||
|
@ -213,7 +213,7 @@ To verify that the drive is emulated correctly, one can check the output of the
|
||||
device):
|
||||
|
||||
```
|
||||
$ examples/nvme/identify/identify
|
||||
$ build/examples/identify
|
||||
=====================================================
|
||||
NVMe Controller at 0000:00:0a.0 [1d1d:1f1f]
|
||||
=====================================================
|
||||
|
@ -110,7 +110,7 @@ with no arguments to see the help output. If your system has its IOMMU
|
||||
enabled you can run the examples as your regular user. If it doesn't, you'll
|
||||
need to run as a privileged user (root).
|
||||
|
||||
A good example to start with is `examples/nvme/identify/identify`, which prints
|
||||
A good example to start with is `build/examples/identify`, which prints
|
||||
out information about all of the NVMe devices on your system.
|
||||
|
||||
Larger, more fully functional applications are available in the `app`
|
||||
|
@ -39,7 +39,7 @@ SPDK's identify example application displays whether a device has a controller
|
||||
memory buffer and which operations it supports. Run it as follows:
|
||||
|
||||
~~~{.sh}
|
||||
./examples/nvme/identify/identify -r traddr:<pci id of ssd>
|
||||
./build/examples/identify -r traddr:<pci id of ssd>
|
||||
~~~
|
||||
|
||||
# cmb_copy: An example P2P Application {#p2p_cmb_copy}
|
||||
@ -47,7 +47,7 @@ memory buffer and which operations it supports. Run it as follows:
|
||||
Run the cmb_copy example application.
|
||||
|
||||
~~~{.sh}
|
||||
./examples/nvme/cmb_copy/cmb_copy -r <pci id of write ssd>-1-0-1 -w <pci id of write ssd>-1-0-1 -c <pci id of the ssd with cmb>
|
||||
./build/examples/cmb_copy -r <pci id of write ssd>-1-0-1 -w <pci id of write ssd>-1-0-1 -c <pci id of the ssd with cmb>
|
||||
~~~
|
||||
This should copy a single LBA (LBA 0) from namespace 1 on the read
|
||||
NVMe SSD to LBA 0 on namespace 1 on the write SSD using the CMB as the
|
||||
|
@ -147,7 +147,7 @@ vagrant@vagrant:~/spdk_repo/spdk$ make
|
||||
vagrant@vagrant:~/spdk_repo/spdk$ sudo ./scripts/setup.sh
|
||||
0000:00:0e.0 (80ee 4e56): nvme -> uio_pci_generic
|
||||
|
||||
vagrant@vagrant:~/spdk_repo/spdk$ sudo examples/nvme/hello_world/hello_world
|
||||
vagrant@vagrant:~/spdk_repo/spdk$ sudo build/examples/hello_world
|
||||
Starting SPDK v18.10-pre / DPDK 18.05.0 initialization...
|
||||
[ DPDK EAL parameters: hello_world -c 0x1 --legacy-mem --file-prefix=spdk0 --base-virtaddr=0x200000000000 --proc-type=auto ]
|
||||
EAL: Detected 4 lcore(s)
|
||||
|
@ -31,7 +31,7 @@
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
|
||||
SPDK_ROOT_DIR := $(CURDIR)/../../..
|
||||
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
|
||||
|
||||
APP = arbitration
|
||||
|
||||
|
@ -35,10 +35,10 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
|
||||
|
||||
APP = identify
|
||||
|
||||
include $(SPDK_ROOT_DIR)/mk/nvme.libtest.mk
|
||||
|
||||
install: $(APP)
|
||||
$(INSTALL_EXAMPLE)
|
||||
|
||||
uninstall:
|
||||
$(UNINSTALL_EXAMPLE)
|
||||
|
||||
include $(SPDK_ROOT_DIR)/mk/nvme.libtest.mk
|
||||
|
@ -35,15 +35,15 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
|
||||
|
||||
APP = perf
|
||||
|
||||
ifeq ($(OS),Linux)
|
||||
SYS_LIBS += -laio
|
||||
CFLAGS += -DHAVE_LIBAIO
|
||||
endif
|
||||
|
||||
include $(SPDK_ROOT_DIR)/mk/nvme.libtest.mk
|
||||
|
||||
install: $(APP)
|
||||
$(INSTALL_EXAMPLE)
|
||||
|
||||
uninstall:
|
||||
$(UNINSTALL_EXAMPLE)
|
||||
|
||||
include $(SPDK_ROOT_DIR)/mk/nvme.libtest.mk
|
||||
|
||||
ifeq ($(OS),Linux)
|
||||
SYS_LIBS += -laio
|
||||
CFLAGS += -DHAVE_LIBAIO
|
||||
endif
|
||||
|
@ -36,7 +36,7 @@ NVME_DIR := $(SPDK_ROOT_DIR)/lib/nvme
|
||||
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
||||
include $(SPDK_ROOT_DIR)/mk/spdk.modules.mk
|
||||
|
||||
C_SRCS = $(APP:%=%.c)
|
||||
C_SRCS := $(APP:%=%.c)
|
||||
|
||||
# Unable to combine the FIO plugin and the VPP socket abstraction (license incompatibility)
|
||||
SPDK_LIB_LIST = $(filter-out sock_vpp,$(SOCK_MODULES_LIST))
|
||||
|
@ -34,11 +34,16 @@
|
||||
include $(SPDK_ROOT_DIR)/mk/spdk.app_vars.mk
|
||||
|
||||
# Applications in app/ go into build/bin/.
|
||||
# Applications in examples/ go into build/examples/.
|
||||
# Use findstring to identify if the current directory is in the app
|
||||
# directory. If it is, change the APP location to build.
|
||||
# or examples directory. If it is, change the APP location.
|
||||
APP_NAME := $(notdir $(APP))
|
||||
ifneq (,$(findstring $(SPDK_ROOT_DIR)/app,$(CURDIR)))
|
||||
APP := $(APP_NAME:%=$(SPDK_ROOT_DIR)/build/bin/%)
|
||||
else
|
||||
ifneq (,$(findstring $(SPDK_ROOT_DIR)/examples,$(CURDIR)))
|
||||
APP := $(APP_NAME:%=$(SPDK_ROOT_DIR)/build/examples/%)
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBS += $(SPDK_LIB_LINKER_ARGS)
|
||||
|
@ -33,11 +33,16 @@
|
||||
include $(SPDK_ROOT_DIR)/mk/spdk.app_vars.mk
|
||||
|
||||
# Applications in app/ go into build/bin/.
|
||||
# Applications in examples/ go into build/examples/.
|
||||
# Use findstring to identify if the current directory is in the app
|
||||
# directory. If it is, change the APP location to build.
|
||||
APP_NAME := $(notdir $(APP))
|
||||
ifneq (,$(findstring $(SPDK_ROOT_DIR)/app,$(CURDIR)))
|
||||
APP := $(APP_NAME:%=$(SPDK_ROOT_DIR)/build/bin/%)
|
||||
else
|
||||
ifneq (,$(findstring $(SPDK_ROOT_DIR)/examples,$(CURDIR)))
|
||||
APP := $(APP_NAME:%=$(SPDK_ROOT_DIR)/build/examples/%)
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBS += $(SPDK_LIB_LINKER_ARGS)
|
||||
|
@ -338,7 +338,7 @@ UNINSTALL_APP=\
|
||||
INSTALL_EXAMPLE=\
|
||||
$(Q)echo " INSTALL $(DESTDIR)$(bindir)/spdk_$(strip $(subst /,_,$(subst $(SPDK_ROOT_DIR)/examples/, ,$(CURDIR))))"; \
|
||||
install -d -m 755 "$(DESTDIR)$(bindir)"; \
|
||||
install -m 755 "$(APP)" "$(DESTDIR)$(bindir)/spdk_$(strip $(subst /,_,$(subst $(SPDK_ROOT_DIR)/examples/, ,$(CURDIR))))"
|
||||
install -m 755 "$<" "$(DESTDIR)$(bindir)/spdk_$(strip $(subst /,_,$(subst $(SPDK_ROOT_DIR)/examples/, ,$(CURDIR))))"
|
||||
|
||||
# Uninstall an example binary
|
||||
UNINSTALL_EXAMPLE=\
|
||||
|
@ -184,8 +184,7 @@ Following VM initialization you must:
|
||||
|
||||
```
|
||||
$ sudo scripts/setup.sh
|
||||
$ cd examples/bdev/hello_world
|
||||
$ sudo ./hello_bdev
|
||||
$ sudo ./build/examples/hello_bdev
|
||||
```
|
||||
|
||||
### Running autorun.sh with vagrant
|
||||
|
@ -368,7 +368,7 @@ killprocess "$spdk_tgt_pid"
|
||||
# End bdev configuration
|
||||
#-----------------------------------------------------
|
||||
|
||||
run_test "bdev_hello_world" $rootdir/examples/bdev/hello_world/hello_bdev --json "$conf_file" -b "$hello_world_bdev"
|
||||
run_test "bdev_hello_world" $SPDK_EXAMPLE_DIR/hello_bdev --json "$conf_file" -b "$hello_world_bdev"
|
||||
run_test "bdev_bounds" bdev_bounds
|
||||
run_test "bdev_nbd" nbd_function_test $conf_file "$bdevs_name"
|
||||
if [[ $CONFIG_FIO_PLUGIN == y ]]; then
|
||||
|
@ -38,7 +38,7 @@ run_step() {
|
||||
}
|
||||
|
||||
run_bsdump() {
|
||||
$rootdir/examples/blob/cli/blobcli -c $ROCKSDB_CONF -b Nvme0n1 -D &> bsdump.txt
|
||||
$SPDK_EXAMPLE_DIR/blobcli -c $ROCKSDB_CONF -b Nvme0n1 -D &> bsdump.txt
|
||||
}
|
||||
|
||||
# In the autotest job, we copy the rocksdb source to just outside the spdk directory.
|
||||
|
@ -17,7 +17,7 @@ $rootdir/scripts/gen_nvme.sh > $testdir/blobcli.conf
|
||||
dd if=/dev/urandom of=$testdir/test.pattern bs=1M count=1
|
||||
|
||||
(cd $testdir \
|
||||
&& $rootdir/examples/blob/cli/blobcli -c $testdir/blobcli.conf -b Nvme0n1 -T $testdir/test.bs > $testdir/btest.out)
|
||||
&& $SPDK_EXAMPLE_DIR/blobcli -c $testdir/blobcli.conf -b Nvme0n1 -T $testdir/test.bs > $testdir/btest.out)
|
||||
|
||||
# the test script will import the test pattern generated by dd and then export
|
||||
# it to a file so we can compare and confirm basic read and write
|
||||
|
@ -178,6 +178,7 @@ fi
|
||||
|
||||
# Export location of where all the SPDK binaries are
|
||||
export SPDK_BIN_DIR="$rootdir/build/bin"
|
||||
export SPDK_EXAMPLE_DIR="$rootdir/build/examples"
|
||||
|
||||
# pass our valgrind desire on to unittest.sh
|
||||
if [ $SPDK_RUN_VALGRIND -eq 0 ]; then
|
||||
|
@ -13,7 +13,7 @@ source "$rootdir/test/nvmf/common.sh"
|
||||
function error_cleanup() {
|
||||
# force delete pmem file and wipe on-disk metadata
|
||||
rm -rf /tmp/pmem
|
||||
$rootdir/examples/nvme/perf/perf -q 1 -o 131072 -w write -t 2
|
||||
$SPDK_EXAMPLE_DIR/perf -q 1 -o 131072 -w write -t 2
|
||||
}
|
||||
|
||||
function destroy_vols() {
|
||||
@ -97,7 +97,7 @@ if [ $RUN_NIGHTLY -eq 1 ]; then
|
||||
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
|
||||
|
||||
# Start random read writes in the background
|
||||
$rootdir/examples/nvme/perf/perf -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT" -o 4096 -q 64 -s 512 -w randrw -t 30 -c 0x18 -M 50 &
|
||||
$SPDK_EXAMPLE_DIR/perf -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT" -o 4096 -q 64 -s 512 -w randrw -t 30 -c 0x18 -M 50 &
|
||||
perf_pid=$!
|
||||
|
||||
# Wait for I/O to complete
|
||||
|
@ -1,23 +1,23 @@
|
||||
# Common utility functions to be sourced by the libftl test scripts
|
||||
|
||||
function get_chunk_size() {
|
||||
$rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:$1" \
|
||||
$SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:$1" \
|
||||
| grep 'Logical blks per chunk' | sed 's/[^0-9]//g'
|
||||
}
|
||||
|
||||
function get_num_group() {
|
||||
$rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:$1" \
|
||||
$SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:$1" \
|
||||
| grep 'Groups' | sed 's/[^0-9]//g'
|
||||
}
|
||||
|
||||
function get_num_pu() {
|
||||
$rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:$1" \
|
||||
$SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:$1" \
|
||||
| grep 'PUs' | sed 's/[^0-9]//g'
|
||||
}
|
||||
|
||||
function has_separate_md() {
|
||||
local md_type
|
||||
md_type=$($rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:$1" \
|
||||
md_type=$($SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:$1" \
|
||||
| grep 'Metadata Transferred' | cut -d: -f2)
|
||||
if [[ "$md_type" =~ Separate ]]; then
|
||||
return 0
|
||||
|
@ -4,6 +4,6 @@ testdir=$(readlink -f $(dirname $0))
|
||||
rootdir=$(readlink -f $testdir/../..)
|
||||
source $rootdir/test/common/autotest_common.sh
|
||||
|
||||
run_test "ioat_perf" $rootdir/examples/ioat/perf/ioat_perf -t 1
|
||||
run_test "ioat_perf" $SPDK_EXAMPLE_DIR/ioat_perf -t 1
|
||||
|
||||
run_test "ioat_verify" $rootdir/examples/ioat/verify/verify -t 1
|
||||
run_test "ioat_verify" $SPDK_EXAMPLE_DIR/verify -t 1
|
||||
|
@ -81,7 +81,7 @@ if [ "$TEST_TYPE" != "posix" ] && [ "$TEST_TYPE" != "vpp" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HELLO_SOCK_APP="${TARGET_NS_CMD[*]} $rootdir/examples/sock/hello_world/hello_sock"
|
||||
HELLO_SOCK_APP="${TARGET_NS_CMD[*]} $SPDK_EXAMPLE_DIR/hello_sock"
|
||||
if [ $SPDK_TEST_VPP -eq 1 ]; then
|
||||
HELLO_SOCK_APP+=" -L sock_vpp"
|
||||
fi
|
||||
|
@ -96,7 +96,7 @@ timing_exit wait_for_vm
|
||||
timing_enter copy_repo
|
||||
files_to_copy="scripts "
|
||||
files_to_copy+="include/spdk/pci_ids.h "
|
||||
files_to_copy+="examples/nvme/hotplug/hotplug "
|
||||
files_to_copy+="build/examples/hotplug "
|
||||
(
|
||||
cd "$rootdir"
|
||||
tar -cf - $files_to_copy
|
||||
@ -107,7 +107,7 @@ insert_devices
|
||||
|
||||
timing_enter hotplug_test
|
||||
|
||||
ssh_vm "examples/nvme/hotplug/hotplug -i 0 -t 25 -n 4 -r 8" &
|
||||
ssh_vm "build/examples/hotplug -i 0 -t 25 -n 4 -r 8" &
|
||||
example_pid=$!
|
||||
|
||||
sleep 4
|
||||
|
@ -41,7 +41,7 @@ timing_exit hotplug_hw_cfg
|
||||
|
||||
timing_enter hotplug_hw_test
|
||||
|
||||
$rootdir/examples/nvme/hotplug/hotplug -i 0 -t 100 -n 2 -r 2 2>&1 | tee -a log.txt &
|
||||
$SPDK_EXAMPLE_DIR/hotplug -i 0 -t 100 -n 2 -r 2 2>&1 | tee -a log.txt &
|
||||
example_pid=$!
|
||||
trap 'killprocess $example_pid; exit 1' SIGINT SIGTERM EXIT
|
||||
|
||||
|
@ -6,20 +6,20 @@ source $rootdir/scripts/common.sh
|
||||
source $rootdir/test/common/autotest_common.sh
|
||||
|
||||
function nvme_identify() {
|
||||
$rootdir/examples/nvme/identify/identify -i 0
|
||||
$SPDK_EXAMPLE_DIR/identify -i 0
|
||||
for bdf in $(get_nvme_bdfs); do
|
||||
$rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:${bdf}" -i 0
|
||||
$SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:${bdf}" -i 0
|
||||
done
|
||||
timing_exit identify
|
||||
}
|
||||
|
||||
function nvme_perf() {
|
||||
# enable no shutdown notification option
|
||||
$rootdir/examples/nvme/perf/perf -q 128 -w read -o 12288 -t 1 -LL -i 0 -N
|
||||
$rootdir/examples/nvme/perf/perf -q 128 -w write -o 12288 -t 1 -LL -i 0
|
||||
$SPDK_EXAMPLE_DIR/perf -q 128 -w read -o 12288 -t 1 -LL -i 0 -N
|
||||
$SPDK_EXAMPLE_DIR/perf -q 128 -w write -o 12288 -t 1 -LL -i 0
|
||||
if [ -b /dev/ram0 ]; then
|
||||
# Test perf with AIO device
|
||||
$rootdir/examples/nvme/perf/perf /dev/ram0 -q 128 -w read -o 12288 -t 1 -LL -i 0
|
||||
$SPDK_EXAMPLE_DIR/perf /dev/ram0 -q 128 -w read -o 12288 -t 1 -LL -i 0
|
||||
fi
|
||||
}
|
||||
|
||||
@ -32,11 +32,11 @@ function nvme_fio_test() {
|
||||
}
|
||||
|
||||
function nvme_multi_secondary() {
|
||||
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x1 &
|
||||
$SPDK_EXAMPLE_DIR/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x1 &
|
||||
pid0=$!
|
||||
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x2 &
|
||||
$SPDK_EXAMPLE_DIR/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x2 &
|
||||
pid1=$!
|
||||
$rootdir/examples/nvme/perf/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x4
|
||||
$SPDK_EXAMPLE_DIR/perf -i 0 -q 16 -w read -o 4096 -t 3 -c 0x4
|
||||
wait $pid0
|
||||
wait $pid1
|
||||
}
|
||||
@ -108,14 +108,14 @@ fi
|
||||
run_test "nvme_reset" $testdir/reset/reset -q 64 -w write -s 4096 -t 5
|
||||
run_test "nvme_identify" nvme_identify
|
||||
run_test "nvme_perf" nvme_perf
|
||||
run_test "nvme_hello_world" $rootdir/examples/nvme/hello_world/hello_world
|
||||
run_test "nvme_hello_world" $SPDK_EXAMPLE_DIR/hello_world
|
||||
run_test "nvme_deallocated_value" $testdir/deallocated_value/deallocated_value
|
||||
run_test "nvme_sgl" $testdir/sgl/sgl
|
||||
run_test "nvme_e2edp" $testdir/e2edp/nvme_dp
|
||||
run_test "nvme_reserve" $testdir/reserve/reserve
|
||||
run_test "nvme_err_injection" $testdir/err_injection/err_injection
|
||||
run_test "nvme_overhead" $testdir/overhead/overhead -s 4096 -t 1 -H
|
||||
run_test "nvme_arbitration" $rootdir/examples/nvme/arbitration/arbitration -t 3 -i 0
|
||||
run_test "nvme_arbitration" $SPDK_EXAMPLE_DIR/arbitration -t 3 -i 0
|
||||
if [ $SPDK_TEST_NVME_CUSE -eq 1 ]; then
|
||||
run_test "nvme_cuse" $testdir/cuse/cuse
|
||||
fi
|
||||
|
@ -6,7 +6,7 @@ ROOT_DIR=$(readlink -f $BASE_DIR/../../..)
|
||||
rootdir=$ROOT_DIR
|
||||
PLUGIN_DIR=$ROOT_DIR/build/fio
|
||||
BDEVPERF_DIR=$ROOT_DIR/test/bdev/bdevperf
|
||||
NVMEPERF_DIR=$ROOT_DIR/examples/nvme/perf
|
||||
NVMEPERF_DIR=$ROOT_DIR/build/examples/perf
|
||||
. $ROOT_DIR/scripts/common.sh || exit 1
|
||||
. $ROOT_DIR/test/common/autotest_common.sh
|
||||
NVME_FIO_RESULTS=$BASE_DIR/result.json
|
||||
|
@ -34,13 +34,13 @@ $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPOR
|
||||
|
||||
$rpc_py nvmf_get_subsystems
|
||||
|
||||
$rootdir/examples/nvme/identify/identify -r "\
|
||||
$SPDK_EXAMPLE_DIR/identify -r "\
|
||||
trtype:$TEST_TRANSPORT \
|
||||
adrfam:IPv4 \
|
||||
traddr:$NVMF_FIRST_TARGET_IP \
|
||||
trsvcid:$NVMF_PORT \
|
||||
subnqn:nqn.2014-08.org.nvmexpress.discovery" -L all
|
||||
$rootdir/examples/nvme/identify/identify -r "\
|
||||
$SPDK_EXAMPLE_DIR/identify -r "\
|
||||
trtype:$TEST_TRANSPORT \
|
||||
adrfam:IPv4 \
|
||||
traddr:$NVMF_FIRST_TARGET_IP \
|
||||
|
@ -40,13 +40,13 @@ ln -s /sys/kernel/config/nvmet/subsystems/$subsystemname /sys/kernel/config/nvme
|
||||
|
||||
sleep 4
|
||||
|
||||
$rootdir/examples/nvme/identify/identify -r "\
|
||||
$SPDK_EXAMPLE_DIR/identify -r "\
|
||||
trtype:$TEST_TRANSPORT \
|
||||
adrfam:IPv4 \
|
||||
traddr:$NVMF_FIRST_TARGET_IP \
|
||||
trsvcid:$NVMF_PORT \
|
||||
subnqn:nqn.2014-08.org.nvmexpress.discovery" -t all
|
||||
$rootdir/examples/nvme/identify/identify -r "\
|
||||
$SPDK_EXAMPLE_DIR/identify -r "\
|
||||
trtype:$TEST_TRANSPORT \
|
||||
adrfam:IPv4 \
|
||||
traddr:$NVMF_FIRST_TARGET_IP \
|
||||
|
@ -32,16 +32,16 @@ $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 $(logname) $rootdir/examples/nvme/perf/perf"
|
||||
perf_app="sudo -u $(logname) $SPDK_EXAMPLE_DIR/perf"
|
||||
else
|
||||
perf_app="$rootdir/examples/nvme/perf/perf"
|
||||
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"
|
||||
fi
|
||||
|
||||
$rootdir/examples/nvme/perf/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"
|
||||
$rootdir/examples/nvme/perf/perf -q 32 -o 4096 -w randrw -M 50 -t 1 -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
||||
$rootdir/examples/nvme/perf/perf -q 128 -o 262144 -w randrw -M 50 -t 2 -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
||||
$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"
|
||||
$SPDK_EXAMPLE_DIR/perf -q 32 -o 4096 -w randrw -M 50 -t 1 -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
||||
$SPDK_EXAMPLE_DIR/perf -q 128 -o 262144 -w randrw -M 50 -t 2 -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
||||
sync
|
||||
$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1
|
||||
|
||||
@ -75,7 +75,7 @@ if [ $RUN_NIGHTLY -eq 1 ]; then
|
||||
io_size=("512" "131072")
|
||||
for qd in "${qd_depth[@]}"; do
|
||||
for o in "${io_size[@]}"; do
|
||||
$rootdir/examples/nvme/perf/perf -q $qd -o $o -w randrw -M 50 -t 10 -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
||||
$SPDK_EXAMPLE_DIR/perf -q $qd -o $o -w randrw -M 50 -t 10 -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
||||
done
|
||||
done
|
||||
|
||||
|
@ -28,7 +28,7 @@ function disconnect_init() {
|
||||
# a discovery controller that doesn't exist yet.
|
||||
function nvmf_target_disconnect_tc1() {
|
||||
set +e
|
||||
$rootdir/examples/nvme/reconnect/reconnect -q 32 -o 4096 -w randrw -M 50 -t 10 -c 0xF \
|
||||
$SPDK_EXAMPLE_DIR/reconnect -q 32 -o 4096 -w randrw -M 50 -t 10 -c 0xF \
|
||||
-r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
||||
# If the program crashes, the high bit of $? will be set so we will get a value in the hundreds.
|
||||
# But if the reconnect code detects errors and exits normally it will return 1.
|
||||
@ -43,7 +43,7 @@ function nvmf_target_disconnect_tc2() {
|
||||
disconnect_init $NVMF_FIRST_TARGET_IP
|
||||
|
||||
# If perf doesn't shut down, this test will time out.
|
||||
$rootdir/examples/nvme/reconnect/reconnect -q 32 -o 4096 -w randrw -M 50 -t 10 -c 0xF \
|
||||
$SPDK_EXAMPLE_DIR/reconnect -q 32 -o 4096 -w randrw -M 50 -t 10 -c 0xF \
|
||||
-r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT" &
|
||||
reconnectpid=$!
|
||||
|
||||
@ -58,7 +58,7 @@ function nvmf_target_disconnect_tc2() {
|
||||
}
|
||||
|
||||
function nvmf_target_disconnect_tc3() {
|
||||
$rootdir/examples/nvme/reconnect/reconnect -q 32 -o 4096 -w randrw -M 50 -t 10 -c 0xF \
|
||||
$SPDK_EXAMPLE_DIR/reconnect -q 32 -o 4096 -w randrw -M 50 -t 10 -c 0xF \
|
||||
-r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT alt_traddr:$NVMF_SECOND_TARGET_IP" &
|
||||
reconnectpid=$!
|
||||
|
||||
|
@ -19,8 +19,8 @@ if [ -z "${bdf}" ]; then
|
||||
fi
|
||||
|
||||
# Expected values
|
||||
nvme_serial_number=$($rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:${bdf}" -i 0 | grep "Serial Number:" | awk '{print $3}')
|
||||
nvme_model_number=$($rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:${bdf}" -i 0 | grep "Model Number:" | awk '{print $3}')
|
||||
nvme_serial_number=$($SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:${bdf}" -i 0 | grep "Serial Number:" | awk '{print $3}')
|
||||
nvme_model_number=$($SPDK_EXAMPLE_DIR/identify -r "trtype:PCIe traddr:${bdf}" -i 0 | grep "Model Number:" | awk '{print $3}')
|
||||
|
||||
timing_exit nvme_identify
|
||||
|
||||
@ -45,14 +45,14 @@ $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPOR
|
||||
$rpc_py nvmf_get_subsystems
|
||||
|
||||
# Discovered values
|
||||
nvmf_serial_number=$($rootdir/examples/nvme/identify/identify -r "\
|
||||
nvmf_serial_number=$($SPDK_EXAMPLE_DIR/identify -r "\
|
||||
trtype:$TEST_TRANSPORT \
|
||||
adrfam:IPv4 \
|
||||
traddr:$NVMF_FIRST_TARGET_IP \
|
||||
trsvcid:$NVMF_PORT \
|
||||
subnqn:nqn.2016-06.io.spdk:cnode1" | grep "Serial Number:" | awk '{print $3}')
|
||||
|
||||
nvmf_model_number=$($rootdir/examples/nvme/identify/identify -r "\
|
||||
nvmf_model_number=$($SPDK_EXAMPLE_DIR/identify -r "\
|
||||
trtype:$TEST_TRANSPORT \
|
||||
adrfam:IPv4 \
|
||||
traddr:$NVMF_FIRST_TARGET_IP \
|
||||
|
@ -12,9 +12,9 @@ MALLOC_BLOCK_SIZE=512
|
||||
|
||||
function build_nvmf_example_args() {
|
||||
if [ $SPDK_RUN_NON_ROOT -eq 1 ]; then
|
||||
echo "sudo -u $(logname) ./examples/nvmf/nvmf/nvmf -i $NVMF_APP_SHM_ID" -g 10000
|
||||
echo "sudo -u $(logname) $SPDK_EXAMPLE_DIR/nvmf -i $NVMF_APP_SHM_ID" -g 10000
|
||||
else
|
||||
echo "./examples/nvmf/nvmf/nvmf -i $NVMF_APP_SHM_ID" -g 10000
|
||||
echo "$SPDK_EXAMPLE_DIR/nvmf -i $NVMF_APP_SHM_ID" -g 10000
|
||||
fi
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ done
|
||||
#add listener to subsystem
|
||||
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
|
||||
|
||||
perf="$rootdir/examples/nvme/perf/perf"
|
||||
perf="$SPDK_EXAMPLE_DIR/perf"
|
||||
|
||||
$perf -q 64 -o 4096 -w randrw -M 30 -t 10 \
|
||||
-r "trtype:${TEST_TRANSPORT} adrfam:IPv4 traddr:${NVMF_FIRST_TARGET_IP} trsvcid:${NVMF_PORT} \
|
||||
|
@ -34,7 +34,7 @@ $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode0 $lvol
|
||||
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode0 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
|
||||
|
||||
# Start random writes in the background
|
||||
$rootdir/examples/nvme/perf/perf -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT" -o 4096 -q 128 -s 512 -w randwrite -t 10 -c 0x18 &
|
||||
$SPDK_EXAMPLE_DIR/perf -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT" -o 4096 -q 128 -s 512 -w randwrite -t 10 -c 0x18 &
|
||||
perf_pid=$!
|
||||
|
||||
sleep 1
|
||||
|
@ -10,13 +10,13 @@ VMD_WHITELIST=()
|
||||
|
||||
function vmd_identify() {
|
||||
for bdf in $pci_devs; do
|
||||
$rootdir/examples/nvme/identify/identify -i 0 -V -r "trtype:PCIe traddr:$bdf"
|
||||
$SPDK_EXAMPLE_DIR/identify -i 0 -V -r "trtype:PCIe traddr:$bdf"
|
||||
done
|
||||
}
|
||||
|
||||
function vmd_perf() {
|
||||
for bdf in $pci_devs; do
|
||||
$rootdir/examples/nvme/perf/perf -q 128 -w read -o 12288 -t 1 -LL -i 0 -V -r "trtype:PCIe traddr:$bdf"
|
||||
$SPDK_EXAMPLE_DIR/perf -q 128 -w read -o 12288 -t 1 -LL -i 0 -V -r "trtype:PCIe traddr:$bdf"
|
||||
done
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ if [[ -z "$pci_devs" ]]; then
|
||||
fi
|
||||
|
||||
run_test "vmd_identify" vmd_identify
|
||||
run_test "vmd_hello_world" $rootdir/examples/nvme/hello_world/hello_world -V
|
||||
run_test "vmd_hello_world" $SPDK_EXAMPLE_DIR/hello_world -V
|
||||
run_test "vmd_perf" vmd_perf
|
||||
if [[ $CONFIG_FIO_PLUGIN == y ]]; then
|
||||
run_test "vmd_fio" vmd_fio
|
||||
|
Loading…
Reference in New Issue
Block a user