2020-08-19 15:35:38 +00:00
|
|
|
#!/usr/bin/env bash
|
2022-11-02 15:49:40 +00:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# Copyright (C) 2020 Intel Corporation
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
2020-08-19 15:35:38 +00:00
|
|
|
testdir=$(readlink -f $(dirname $0))
|
|
|
|
rootdir=$(readlink -f $testdir/../../..)
|
2021-12-02 05:25:20 +00:00
|
|
|
nvmeappdir=$(readlink -f $rootdir/test/nvme)
|
2020-08-19 15:35:38 +00:00
|
|
|
source $rootdir/test/common/autotest_common.sh
|
|
|
|
source $rootdir/test/nvmf/common.sh
|
|
|
|
|
2021-02-03 09:24:06 +00:00
|
|
|
MALLOC_BDEV_SIZE=64
|
2020-08-19 15:35:38 +00:00
|
|
|
MALLOC_BLOCK_SIZE=512
|
2021-02-03 09:24:06 +00:00
|
|
|
NUM_DEVICES=2
|
2020-08-19 15:35:38 +00:00
|
|
|
|
|
|
|
rpc_py="$rootdir/scripts/rpc.py"
|
|
|
|
|
|
|
|
export TEST_TRANSPORT=VFIOUSER
|
|
|
|
|
2022-02-24 11:19:22 +00:00
|
|
|
function aer_vfio_user() {
|
|
|
|
|
|
|
|
local traddr=$1
|
|
|
|
local subnqn=$2
|
|
|
|
local malloc_num=Malloc$(($3 + NUM_DEVICES))
|
|
|
|
$rpc_py nvmf_get_subsystems
|
|
|
|
|
|
|
|
AER_TOUCH_FILE=/tmp/aer_touch_file
|
|
|
|
|
|
|
|
# Namespace Attribute Notice Tests
|
|
|
|
$rootdir/test/nvme/aer/aer -r "\
|
|
|
|
trtype:$TEST_TRANSPORT \
|
|
|
|
traddr:$traddr \
|
|
|
|
subnqn:$subnqn" -n $NUM_DEVICES -g -t $AER_TOUCH_FILE &
|
|
|
|
aerpid=$!
|
|
|
|
|
|
|
|
# Waiting for aer start to work
|
|
|
|
waitforfile $AER_TOUCH_FILE
|
|
|
|
rm -f $AER_TOUCH_FILE
|
|
|
|
# Add a new namespace
|
|
|
|
$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE --name $malloc_num
|
|
|
|
$rpc_py nvmf_subsystem_add_ns $subnqn $malloc_num -n $NUM_DEVICES
|
|
|
|
$rpc_py nvmf_get_subsystems
|
|
|
|
|
|
|
|
wait $aerpid
|
|
|
|
}
|
|
|
|
|
2021-06-03 15:25:22 +00:00
|
|
|
rm -rf /var/run/vfio-user
|
2020-08-19 15:35:38 +00:00
|
|
|
|
|
|
|
# Start the target
|
2022-04-22 14:54:42 +00:00
|
|
|
"${NVMF_APP[@]}" -m '[0,1,2,3]' &
|
2020-08-19 15:35:38 +00:00
|
|
|
nvmfpid=$!
|
|
|
|
echo "Process pid: $nvmfpid"
|
|
|
|
|
|
|
|
trap 'killprocess $nvmfpid; exit 1' SIGINT SIGTERM EXIT
|
|
|
|
waitforlisten $nvmfpid
|
|
|
|
|
|
|
|
sleep 1
|
|
|
|
|
2021-06-03 15:25:22 +00:00
|
|
|
$rpc_py nvmf_create_transport -t $TEST_TRANSPORT
|
2020-08-19 15:35:38 +00:00
|
|
|
|
2021-06-03 15:25:22 +00:00
|
|
|
mkdir -p /var/run/vfio-user
|
2020-08-19 15:35:38 +00:00
|
|
|
|
2021-02-03 09:24:06 +00:00
|
|
|
for i in $(seq 1 $NUM_DEVICES); do
|
2021-06-03 15:25:22 +00:00
|
|
|
mkdir -p /var/run/vfio-user/domain/vfio-user$i/$i
|
2021-02-03 09:24:06 +00:00
|
|
|
|
|
|
|
$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc$i
|
|
|
|
$rpc_py nvmf_create_subsystem nqn.2019-07.io.spdk:cnode$i -a -s SPDK$i
|
|
|
|
$rpc_py nvmf_subsystem_add_ns nqn.2019-07.io.spdk:cnode$i Malloc$i
|
2021-06-03 15:25:22 +00:00
|
|
|
$rpc_py nvmf_subsystem_add_listener nqn.2019-07.io.spdk:cnode$i -t $TEST_TRANSPORT -a "/var/run/vfio-user/domain/vfio-user$i/$i" -s 0
|
2021-02-03 09:24:06 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
for i in $(seq 1 $NUM_DEVICES); do
|
2021-06-03 15:25:22 +00:00
|
|
|
test_traddr=/var/run/vfio-user/domain/vfio-user$i/$i
|
|
|
|
test_subnqn=nqn.2019-07.io.spdk:cnode$i
|
|
|
|
$SPDK_EXAMPLE_DIR/identify -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn" -g -L nvme -L nvme_vfio -L vfio_pci
|
2021-02-03 09:24:06 +00:00
|
|
|
sleep 1
|
2021-06-03 15:25:22 +00:00
|
|
|
$SPDK_EXAMPLE_DIR/perf -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn" -s 256 -g -q 128 -o 4096 -w read -t 5 -c 0x2
|
2021-02-03 09:24:06 +00:00
|
|
|
sleep 1
|
2021-06-03 15:25:22 +00:00
|
|
|
$SPDK_EXAMPLE_DIR/perf -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn" -s 256 -g -q 128 -o 4096 -w write -t 5 -c 0x2
|
2021-02-03 09:24:06 +00:00
|
|
|
sleep 1
|
2021-06-03 15:25:22 +00:00
|
|
|
$SPDK_EXAMPLE_DIR/reconnect -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn" -g -q 32 -o 4096 -w randrw -M 50 -t 5 -c 0xE
|
2021-02-03 09:24:06 +00:00
|
|
|
sleep 1
|
2021-12-02 14:32:37 +00:00
|
|
|
$SPDK_EXAMPLE_DIR/arbitration -t 3 -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn" -d 256 -g
|
2021-11-30 03:17:39 +00:00
|
|
|
sleep 1
|
2021-12-06 06:00:59 +00:00
|
|
|
$SPDK_EXAMPLE_DIR/hello_world -d 256 -g -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn"
|
|
|
|
sleep 1
|
2022-09-16 03:36:44 +00:00
|
|
|
$nvmeappdir/overhead/overhead -o 4096 -t 1 -H -g -d 256 -r "trtype:$TEST_TRANSPORT traddr:$test_traddr subnqn:$test_subnqn"
|
2021-12-02 03:04:19 +00:00
|
|
|
sleep 1
|
2022-02-24 11:19:22 +00:00
|
|
|
aer_vfio_user $test_traddr $test_subnqn $i
|
|
|
|
sleep 1
|
2021-02-03 09:24:06 +00:00
|
|
|
done
|
2020-08-19 15:35:38 +00:00
|
|
|
|
|
|
|
killprocess $nvmfpid
|
|
|
|
|
2021-06-03 15:25:22 +00:00
|
|
|
rm -rf /var/run/vfio-user
|
2020-08-19 15:35:38 +00:00
|
|
|
|
|
|
|
trap - SIGINT SIGTERM EXIT
|