1#!/usr/bin/env bash 2# SPDX-License-Identifier: BSD-3-Clause 3# Copyright (C) 2024 Dell Inc, or its subsidiaries. 4# All rights reserved. 5# 6 7testdir=$(readlink -f $(dirname $0)) 8rootdir=$(readlink -f $testdir/../../..) 9source $rootdir/test/common/autotest_common.sh 10source $rootdir/test/nvmf/common.sh 11 12nvmftestinit 13nvmfappstart 14 15subnqn="nqn.2024-07.io.spdk:cnode0" 16perf="$SPDK_BIN_DIR/spdk_nvme_perf" 17 18# In-capsule data size smaller than the fabrics connect command (1024) forces usage of control_msg_list. With just one buffer next req must be queued. 19$rpc_py nvmf_create_transport "$NVMF_TRANSPORT_OPTS" --in-capsule-data-size 768 --control-msg-num 1 20$rpc_py nvmf_create_subsystem "$subnqn" -a 21$rpc_py bdev_malloc_create -b Malloc0 32 512 22$rpc_py nvmf_subsystem_add_ns "$subnqn" Malloc0 23$rpc_py nvmf_subsystem_add_listener "$subnqn" -t "$TEST_TRANSPORT" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" 24 25# run multiple instanced at once to trigger shortage of the control_msg_list buffers 26"$perf" -c 0x2 -q 1 -o 4096 -w randread -t 1 -r "trtype:${TEST_TRANSPORT} adrfam:IPv4 traddr:${NVMF_FIRST_TARGET_IP} trsvcid:${NVMF_PORT}" & 27perf_pid1=$! 28"$perf" -c 0x4 -q 1 -o 4096 -w randread -t 1 -r "trtype:${TEST_TRANSPORT} adrfam:IPv4 traddr:${NVMF_FIRST_TARGET_IP} trsvcid:${NVMF_PORT}" & 29perf_pid2=$! 30"$perf" -c 0x8 -q 1 -o 4096 -w randread -t 1 -r "trtype:${TEST_TRANSPORT} adrfam:IPv4 traddr:${NVMF_FIRST_TARGET_IP} trsvcid:${NVMF_PORT}" & 31perf_pid3=$! 32 33wait $perf_pid1 34wait $perf_pid2 35wait $perf_pid3 36 37trap - SIGINT SIGTERM EXIT 38nvmftestfini 39