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)/../..)
|
||||
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
|
||||
|
||||
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 suite test/nvmf/host/aer.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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user