examples/nvme: add a reconnect example.
This is simply a dumbed down version of perf so that we don't add extra functionality to perf that might impact its performance. Change-Id: Ia2716a61abcc5269dafcda394d40517d156fdb2a Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471661 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
e45b619c3d
commit
ecd108eb4b
@ -34,7 +34,7 @@
|
|||||||
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
|
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
|
||||||
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
||||||
|
|
||||||
DIRS-y += hello_world identify perf reserve nvme_manage arbitration \
|
DIRS-y += hello_world identify perf reconnect reserve nvme_manage arbitration \
|
||||||
hotplug cmb_copy
|
hotplug cmb_copy
|
||||||
|
|
||||||
DIRS-$(CONFIG_FIO_PLUGIN) += fio_plugin
|
DIRS-$(CONFIG_FIO_PLUGIN) += fio_plugin
|
||||||
|
1
examples/nvme/reconnect/.gitignore
vendored
Normal file
1
examples/nvme/reconnect/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
reconnect
|
38
examples/nvme/reconnect/Makefile
Normal file
38
examples/nvme/reconnect/Makefile
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#
|
||||||
|
# BSD LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) Intel Corporation.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# * Neither the name of Intel Corporation nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
|
||||||
|
|
||||||
|
APP = reconnect
|
||||||
|
|
||||||
|
include $(SPDK_ROOT_DIR)/mk/nvme.libtest.mk
|
1113
examples/nvme/reconnect/reconnect.c
Normal file
1113
examples/nvme/reconnect/reconnect.c
Normal file
File diff suppressed because it is too large
Load Diff
50
test/nvmf/host/target_disconnect.sh
Executable file
50
test/nvmf/host/target_disconnect.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
testdir=$(readlink -f $(dirname $0))
|
||||||
|
rootdir=$(readlink -f $testdir/../../..)
|
||||||
|
source $rootdir/test/common/autotest_common.sh
|
||||||
|
source $rootdir/test/nvmf/common.sh
|
||||||
|
|
||||||
|
PLUGIN_DIR=$rootdir/examples/nvme/fio_plugin
|
||||||
|
|
||||||
|
MALLOC_BDEV_SIZE=64
|
||||||
|
MALLOC_BLOCK_SIZE=512
|
||||||
|
|
||||||
|
rpc_py="$rootdir/scripts/rpc.py"
|
||||||
|
|
||||||
|
function disconnect_init()
|
||||||
|
{
|
||||||
|
nvmfappstart "-m 0xF0"
|
||||||
|
|
||||||
|
$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc0
|
||||||
|
|
||||||
|
$rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS
|
||||||
|
$rpc_py nvmf_subsystem_create nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001
|
||||||
|
|
||||||
|
$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
|
||||||
|
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
|
||||||
|
}
|
||||||
|
|
||||||
|
timing_enter target_disconnect
|
||||||
|
|
||||||
|
nvmftestinit
|
||||||
|
|
||||||
|
disconnect_init
|
||||||
|
|
||||||
|
# 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 20 -c 0xF -r "trtype:$TEST_TRANSPORT adrfam:IPv4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT" &
|
||||||
|
perfpid=$!
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
kill -9 $nvmfpid
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
disconnect_init
|
||||||
|
|
||||||
|
wait $perfpid
|
||||||
|
sync
|
||||||
|
|
||||||
|
trap - SIGINT SIGTERM EXIT
|
||||||
|
rm -f $PLUGIN_DIR/example_config_extended.fio || true
|
||||||
|
nvmftestfini
|
||||||
|
timing_exit target_disconnect
|
@ -51,6 +51,10 @@ run_test suite test/nvmf/host/perf.sh $TEST_ARGS
|
|||||||
#run_test test/nvmf/host/identify_kernel_nvmf.sh $TEST_ARGS
|
#run_test test/nvmf/host/identify_kernel_nvmf.sh $TEST_ARGS
|
||||||
run_test suite test/nvmf/host/aer.sh $TEST_ARGS
|
run_test suite test/nvmf/host/aer.sh $TEST_ARGS
|
||||||
run_test suite test/nvmf/host/fio.sh $TEST_ARGS
|
run_test suite test/nvmf/host/fio.sh $TEST_ARGS
|
||||||
|
# The automated reconnect we do in this test currently only works for RDMA.
|
||||||
|
if [ $TEST_TRANSPORT == "rdma" ]; then
|
||||||
|
run_test suite test/nvmf/host/target_disconnect.sh $TEST_ARGS
|
||||||
|
fi
|
||||||
|
|
||||||
timing_exit host
|
timing_exit host
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user