Change rpc_py to use rpc_cmd function. The former needs to be defined explicitly in the scripts that uses function, while the latter is a function already available in autotest_common.sh. Additionally delete unnecessary rpc_py declarations and override rpc_cmd where additional arguments are needed (like -s sock_name.sock). Change-Id: I835f7eb308cd77658a2a425e153ab7ca460b5b61 Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12872 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
117 lines
3.6 KiB
Bash
Executable File
117 lines
3.6 KiB
Bash
Executable File
#!/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
|
|
|
|
if [ "$TEST_TRANSPORT" != "rdma" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
MALLOC_BDEV_SIZE=256
|
|
MALLOC_BLOCK_SIZE=512
|
|
subsystem="0"
|
|
|
|
function gen_malloc_json() {
|
|
jq . <<- JSON
|
|
{
|
|
"subsystems": [
|
|
{
|
|
"subsystem": "bdev",
|
|
"config": [
|
|
{
|
|
"method": "bdev_malloc_create",
|
|
"params": {
|
|
"name": "Malloc0",
|
|
"num_blocks": 131072,
|
|
"block_size": 512,
|
|
"uuid": "e1c24cb1-dd44-4be6-8d67-de92a332013f",
|
|
"optimal_io_boundary": 2
|
|
}
|
|
},
|
|
{
|
|
"method": "bdev_wait_for_examine"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
JSON
|
|
}
|
|
|
|
function gen_lvol_nvme_json() {
|
|
local subsystem=$1
|
|
|
|
jq . <<- JSON
|
|
{
|
|
"subsystems": [
|
|
{
|
|
"subsystem": "bdev",
|
|
"config": [
|
|
{
|
|
"method": "bdev_nvme_attach_controller",
|
|
"params": {
|
|
"name": "Nvme${subsystem}",
|
|
"trtype": "$TEST_TRANSPORT",
|
|
"adrfam": "IPv4",
|
|
"traddr": "$NVMF_FIRST_TARGET_IP",
|
|
"trsvcid": "$NVMF_PORT",
|
|
"subnqn": "nqn.2016-06.io.spdk:cnode${subsystem}"
|
|
}
|
|
},
|
|
{
|
|
"method": "bdev_lvol_create_lvstore",
|
|
"params": {
|
|
"bdev_name": "Nvme${subsystem}n1",
|
|
"lvs_name": "lvs${subsystem}"
|
|
}
|
|
},
|
|
{
|
|
"method": "bdev_lvol_create",
|
|
"params": {
|
|
"lvol_name": "lvol${subsystem}",
|
|
"size": 134217728,
|
|
"thin_provision": true,
|
|
"lvs_name": "lvs${subsystem}"
|
|
}
|
|
},
|
|
{
|
|
"method": "bdev_wait_for_examine"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
JSON
|
|
}
|
|
|
|
nvmftestinit
|
|
nvmfappstart -m 0x3
|
|
|
|
$rpc_py nvmf_create_transport $NVMF_TRANSPORT_OPTS
|
|
$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE -b Malloc0
|
|
$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode$subsystem -a -s SPDK00000000000001
|
|
$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode$subsystem Malloc0
|
|
$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode$subsystem -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
|
|
|
|
# test memory translation
|
|
# test_dma doesn't use RPC, but we change the sock path since nvmf target is already using the default RPC sock
|
|
"$rootdir/test/dma/test_dma/test_dma" -q 16 -o 4096 -w randrw -M 70 -t 5 -m 0xc --json <(gen_nvmf_target_json $subsystem) -b "Nvme${subsystem}n1" -f -x translate -r /var/tmp/dma.sock
|
|
|
|
# test data pull/push with split against local malloc
|
|
"$rootdir/test/dma/test_dma/test_dma" -q 16 -o 4096 -w randrw -M 70 -t 5 -m 0xc --json <(gen_malloc_json) -b "Malloc0" -x pull_push -r /var/tmp/dma.sock
|
|
|
|
# test memzero with logical volumes. All clusters are unallocated, read should trigger memzero
|
|
"$rootdir/test/dma/test_dma/test_dma" -q 16 -o 4096 -w randread -M 70 -t 5 -m 0xc --json <(gen_lvol_nvme_json $subsystem) -b "lvs${subsystem}/lvol${subsystem}" -f -x memzero -r /var/tmp/dma.sock
|
|
|
|
# clear blob metadata
|
|
$rootdir/build/examples/perf -q 16 -o 4096 -w write -t 1 -r "trtype:$TEST_TRANSPORT adrfam:IPV4 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
|
|
|
|
# test memory translation with logical volumes
|
|
"$rootdir/test/dma/test_dma/test_dma" -q 16 -o 4096 -w randrw -M 70 -t 5 -m 0xc --json <(gen_lvol_nvme_json $subsystem) -b "lvs${subsystem}/lvol${subsystem}" -f -x translate -r /var/tmp/dma.sock
|
|
|
|
trap - SIGINT SIGTERM EXIT
|
|
|
|
nvmftestfini
|