1b9793e68SJinYu#!/usr/bin/env bash 2eb53c232Spaul luse# SPDX-License-Identifier: BSD-3-Clause 3eb53c232Spaul luse# Copyright (C) 2019 Intel Corporation 4eb53c232Spaul luse# All rights reserved. 5eb53c232Spaul luse# 6b9793e68SJinYutestdir=$(readlink -f $(dirname $0)) 7b9793e68SJinYurootdir=$(readlink -f $testdir/../../..) 8b9793e68SJinYusource $rootdir/test/common/autotest_common.sh 9b9793e68SJinYusource $rootdir/test/nvmf/common.sh 10b9793e68SJinYu 118701f636SShuhei MatsumotoNVMF_EXAMPLE=("$SPDK_EXAMPLE_DIR/nvmf") 128701f636SShuhei Matsumoto 13ada79530SJinYuMALLOC_BDEV_SIZE=64 14ada79530SJinYuMALLOC_BLOCK_SIZE=512 15ada79530SJinYu 16844c8ec3SMichal Bergerfunction build_nvmf_example_args() { 17b9793e68SJinYu if [ $SPDK_RUN_NON_ROOT -eq 1 ]; then 188701f636SShuhei Matsumoto NVMF_EXAMPLE=(sudo -u "$USER" "${NVMF_EXAMPLE[@]}") 19b9793e68SJinYu fi 20d949f557Syidong0635 NVMF_EXAMPLE+=(-i "$NVMF_APP_SHM_ID" -g 10000) 211826245aSSarvesh Lanke NVMF_EXAMPLE+=("${NO_HUGE[@]}") 22b9793e68SJinYu} 23b9793e68SJinYu 248701f636SShuhei Matsumotobuild_nvmf_example_args 25b9793e68SJinYu 26844c8ec3SMichal Bergerfunction nvmfexamplestart() { 27b9793e68SJinYu timing_enter start_nvmf_example 28fae6cbbaSShuhei Matsumoto 29fae6cbbaSShuhei Matsumoto if [ "$TEST_TRANSPORT" == "tcp" ]; then 30fae6cbbaSShuhei Matsumoto NVMF_EXAMPLE=("${NVMF_TARGET_NS_CMD[@]}" "${NVMF_EXAMPLE[@]}") 31fae6cbbaSShuhei Matsumoto fi 32fae6cbbaSShuhei Matsumoto 338701f636SShuhei Matsumoto "${NVMF_EXAMPLE[@]}" $1 & 34b9793e68SJinYu nvmfpid=$! 35c871ee40SJinYu trap 'process_shm --id $NVMF_APP_SHM_ID; nvmftestfini; exit 1' SIGINT SIGTERM EXIT 36ada79530SJinYu waitforlisten $nvmfpid 37b9793e68SJinYu timing_exit start_nvmf_example 38b9793e68SJinYu} 39b9793e68SJinYu 40b9793e68SJinYutiming_enter nvmf_example_test 41b9793e68SJinYunvmftestinit 42b9793e68SJinYunvmfexamplestart "-m 0xF" 43b9793e68SJinYu 44ada79530SJinYu#create transport 45ada79530SJinYu$rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS -u 8192 46ada79530SJinYu#create malloc bdev 47ada79530SJinYumalloc_bdevs="$($rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE) " 48ada79530SJinYu#create subsystem 49ada79530SJinYu$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 50ada79530SJinYu 51ada79530SJinYu#add ns to subsystem 52ada79530SJinYufor malloc_bdev in $malloc_bdevs; do 53ada79530SJinYu $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 "$malloc_bdev" 54ada79530SJinYudone 55ada79530SJinYu 56ada79530SJinYu#add listener to subsystem 57ada79530SJinYu$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT 58ada79530SJinYu 59*48ac1225SBen Walkerperf="$SPDK_BIN_DIR/spdk_nvme_perf" 60ada79530SJinYu 61ada79530SJinYu$perf -q 64 -o 4096 -w randrw -M 30 -t 10 \ 62ada79530SJinYu -r "trtype:${TEST_TRANSPORT} adrfam:IPv4 traddr:${NVMF_FIRST_TARGET_IP} trsvcid:${NVMF_PORT} \ 631826245aSSarvesh Lankesubnqn:nqn.2016-06.io.spdk:cnode1" "${NO_HUGE[@]}" 64ada79530SJinYu 65c871ee40SJinYutrap - SIGINT SIGTERM EXIT 66b9793e68SJinYunvmftestfini 67b9793e68SJinYutiming_exit nvmf_example_test 68