test/ocf: Drop .ini config in favor of json
In persistent-metadata test, add a sleep because of issue #1348 Change-Id: If9ecaf660ac7ed18614d87cc775e60371ca84a97 Signed-off-by: Michal Berger <michalx.berger@intel.com> Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1327 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Mellanox Build Bot
This commit is contained in:
parent
e96d3280a0
commit
7a0274fc38
@ -7,6 +7,7 @@ source $rootdir/test/common/autotest_common.sh
|
|||||||
bdevperf=$rootdir/test/bdev/bdevperf/bdevperf
|
bdevperf=$rootdir/test/bdev/bdevperf/bdevperf
|
||||||
rpc_py="$rootdir/scripts/rpc.py"
|
rpc_py="$rootdir/scripts/rpc.py"
|
||||||
|
|
||||||
$bdevperf -c $curdir/mallocs.conf -q 128 -o 4096 -t 4 -w flush
|
source "$curdir/mallocs.conf"
|
||||||
$bdevperf -c $curdir/mallocs.conf -q 128 -o 4096 -t 4 -w unmap
|
$bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -t 4 -w flush
|
||||||
$bdevperf -c $curdir/mallocs.conf -q 128 -o 4096 -t 4 -w write
|
$bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -t 4 -w unmap
|
||||||
|
$bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -t 4 -w write
|
||||||
|
@ -18,23 +18,73 @@ clear_nvme
|
|||||||
|
|
||||||
trap "cleanup; exit 1" SIGINT SIGTERM EXIT
|
trap "cleanup; exit 1" SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
nvme_cfg=$($rootdir/scripts/gen_nvme.sh)
|
# Building config is not backtrace worthy ...
|
||||||
|
xtrace_disable
|
||||||
|
|
||||||
config="
|
config=() ocf_names=() ocf_modes=()
|
||||||
$(nvme_cfg)
|
|
||||||
|
|
||||||
[Split]
|
ocf_names[1]=PT_Nvme ocf_modes[1]=pt
|
||||||
Split Nvme0n1 8 101
|
ocf_names[2]=WT_Nvme ocf_modes[2]=wt
|
||||||
|
ocf_names[3]=WB_Nvme0 ocf_modes[3]=wb
|
||||||
|
ocf_names[4]=WB_Nvme1 ocf_modes[4]=wb
|
||||||
|
|
||||||
[OCF]
|
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh" --json)
|
||||||
OCF PT_Nvme pt Nvme0n1p0 Nvme0n1p1
|
|
||||||
OCF WT_Nvme wt Nvme0n1p2 Nvme0n1p3
|
|
||||||
OCF WB_Nvme0 wb Nvme0n1p4 Nvme0n1p5
|
|
||||||
OCF WB_Nvme1 wb Nvme0n1p6 Nvme0n1p7
|
|
||||||
"
|
|
||||||
echo "$config" > $curdir/modes.conf
|
|
||||||
|
|
||||||
fio_verify --filename=PT_Nvme:WT_Nvme:WB_Nvme0:WB_Nvme1 --spdk_conf=$curdir/modes.conf
|
# Drop anything from last closing ] so we can inject our own config pieces ...
|
||||||
|
config=("${config[@]::${#config[@]}-2}")
|
||||||
|
# ... and now convert entire array to a single string item
|
||||||
|
config=("${config[*]}")
|
||||||
|
|
||||||
|
config+=(
|
||||||
|
"$(
|
||||||
|
cat <<- JSON
|
||||||
|
{
|
||||||
|
"method": "bdev_split_create",
|
||||||
|
"params": {
|
||||||
|
"base_bdev": "Nvme0n1",
|
||||||
|
"split_count": 8,
|
||||||
|
"split_size_mb": 101
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
)"
|
||||||
|
)
|
||||||
|
|
||||||
|
for ((d = 0, c = 1; d <= ${#ocf_names[@]} + 2; d += 2, c++)); do
|
||||||
|
config+=(
|
||||||
|
"$(
|
||||||
|
cat <<- JSON
|
||||||
|
{
|
||||||
|
"method": "bdev_ocf_create",
|
||||||
|
"params": {
|
||||||
|
"name": "${ocf_names[c]}",
|
||||||
|
"mode": "${ocf_modes[c]}",
|
||||||
|
"cache_bdev_name": "Nvme0n1p$d",
|
||||||
|
"core_bdev_name": "Nvme0n1p$((d + 1))"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
)"
|
||||||
|
)
|
||||||
|
done
|
||||||
|
|
||||||
|
# First ']}' closes our config and bdev subsystem blocks
|
||||||
|
cat <<- CONFIG > "$curdir/modes.conf"
|
||||||
|
{"subsystems":[
|
||||||
|
$(
|
||||||
|
IFS=","
|
||||||
|
printf '%s\n' "${config[*]}"
|
||||||
|
)
|
||||||
|
]}]}
|
||||||
|
CONFIG
|
||||||
|
|
||||||
|
# Format the config nicely and dump it to stdout for everyone to marvel at it ...
|
||||||
|
jq . "$curdir/modes.conf"
|
||||||
|
|
||||||
|
# ... and now back to our regularly scheduled program
|
||||||
|
xtrace_restore
|
||||||
|
|
||||||
|
fio_verify --filename=PT_Nvme:WT_Nvme:WB_Nvme0:WB_Nvme1 --spdk_json_conf="$curdir/modes.conf" --thread=1
|
||||||
|
|
||||||
trap - SIGINT SIGTERM EXIT
|
trap - SIGINT SIGTERM EXIT
|
||||||
cleanup
|
cleanup
|
||||||
|
@ -1,9 +1,59 @@
|
|||||||
|
gen_malloc_ocf_json () {
|
||||||
|
local size=300 # MB
|
||||||
|
local block_size=512
|
||||||
|
local config
|
||||||
|
|
||||||
[Malloc]
|
local malloc malloc_devs=3
|
||||||
NumberOfLuns 3
|
for (( malloc = 0; malloc < malloc_devs; malloc++ )); do
|
||||||
LunSizeInMB 300
|
config+=(
|
||||||
BlockSize 512
|
"$(
|
||||||
|
cat <<-JSON
|
||||||
|
{
|
||||||
|
"method": "bdev_malloc_create",
|
||||||
|
"params": {
|
||||||
|
"name": "Malloc$malloc",
|
||||||
|
"num_blocks": $(( (size << 20) / block_size )),
|
||||||
|
"block_size": 512
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
)"
|
||||||
|
)
|
||||||
|
done
|
||||||
|
|
||||||
[OCF]
|
local ocfs ocf ocf_mode ocf_cache ocf_core
|
||||||
OCF MalCache1 wt Malloc0 Malloc1
|
ocfs=(1 2)
|
||||||
OCF MalCache2 pt Malloc0 Malloc2
|
ocf_mode[1]=wt ocf_cache[1]=Malloc0 ocf_core[1]=Malloc1
|
||||||
|
ocf_mode[2]=pt ocf_cache[2]=Malloc0 ocf_core[2]=Malloc2
|
||||||
|
|
||||||
|
for ocf in "${ocfs[@]}"; do
|
||||||
|
config+=(
|
||||||
|
"$(
|
||||||
|
cat <<-JSON
|
||||||
|
{
|
||||||
|
"method": "bdev_ocf_create",
|
||||||
|
"params": {
|
||||||
|
"name": "MalCache$ocf",
|
||||||
|
"mode": "${ocf_mode[ocf]}",
|
||||||
|
"cache_bdev_name": "${ocf_cache[ocf]}",
|
||||||
|
"core_bdev_name": "${ocf_core[ocf]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
)"
|
||||||
|
)
|
||||||
|
done
|
||||||
|
|
||||||
|
jq . <<-JSON
|
||||||
|
{
|
||||||
|
"subsystems": [
|
||||||
|
{
|
||||||
|
"subsystem": "bdev",
|
||||||
|
"config": [
|
||||||
|
$(IFS=","; printf '%s\n' "${config[*]}")
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
}
|
||||||
|
@ -7,7 +7,8 @@ source $rootdir/test/common/autotest_common.sh
|
|||||||
bdevperf=$rootdir/test/bdev/bdevperf/bdevperf
|
bdevperf=$rootdir/test/bdev/bdevperf/bdevperf
|
||||||
rpc_py="$rootdir/scripts/rpc.py"
|
rpc_py="$rootdir/scripts/rpc.py"
|
||||||
|
|
||||||
$bdevperf -c $curdir/mallocs.conf -q 128 -o 4096 -w write -t 120 -r /var/tmp/spdk.sock &
|
source "$curdir/mallocs.conf"
|
||||||
|
$bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -w write -t 120 -r /var/tmp/spdk.sock &
|
||||||
bdev_perf_pid=$!
|
bdev_perf_pid=$!
|
||||||
waitforlisten $bdev_perf_pid
|
waitforlisten $bdev_perf_pid
|
||||||
sleep 1
|
sleep 1
|
||||||
|
@ -4,18 +4,48 @@ curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
|
|||||||
rootdir=$(readlink -f $curdir/../../..)
|
rootdir=$(readlink -f $curdir/../../..)
|
||||||
source $rootdir/test/ocf/common.sh
|
source $rootdir/test/ocf/common.sh
|
||||||
|
|
||||||
config="
|
source $rootdir/scripts/common.sh
|
||||||
$(nvme_cfg)
|
source $rootdir/test/common/autotest_common.sh
|
||||||
|
|
||||||
[Split]
|
rpc_py=$rootdir/scripts/rpc.py
|
||||||
Split Nvme0n1 7 128
|
|
||||||
"
|
$rootdir/scripts/setup.sh
|
||||||
echo "$config" > $curdir/config
|
|
||||||
|
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh" --json)
|
||||||
|
# Drop anything from last closing ] so we can inject our own config pieces ...
|
||||||
|
config=("${config[@]::${#config[@]}-2}")
|
||||||
|
# ... and now convert entire array to a single string item
|
||||||
|
config=("${config[*]}")
|
||||||
|
|
||||||
|
config+=(
|
||||||
|
"$(
|
||||||
|
cat <<- JSON
|
||||||
|
{
|
||||||
|
"method": "bdev_split_create",
|
||||||
|
"params": {
|
||||||
|
"base_bdev": "Nvme0n1",
|
||||||
|
"split_count": 7,
|
||||||
|
"split_size_mb": 128
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
)"
|
||||||
|
)
|
||||||
|
|
||||||
|
# First ']}' closes our config and bdev subsystem blocks
|
||||||
|
jq . <<- CONFIG > "$curdir/config"
|
||||||
|
{"subsystems":[
|
||||||
|
$(
|
||||||
|
IFS=","
|
||||||
|
printf '%s\n' "${config[*]}"
|
||||||
|
)
|
||||||
|
]}]}
|
||||||
|
CONFIG
|
||||||
|
|
||||||
# Clear nvme device which we will use in test
|
# Clear nvme device which we will use in test
|
||||||
clear_nvme
|
clear_nvme
|
||||||
|
|
||||||
$rootdir/app/iscsi_tgt/iscsi_tgt -c $curdir/config &
|
"$rootdir/app/iscsi_tgt/iscsi_tgt" --json "$curdir/config" &
|
||||||
spdk_pid=$!
|
spdk_pid=$!
|
||||||
|
|
||||||
waitforlisten $spdk_pid
|
waitforlisten $spdk_pid
|
||||||
@ -36,12 +66,13 @@ trap - SIGINT SIGTERM EXIT
|
|||||||
killprocess $spdk_pid
|
killprocess $spdk_pid
|
||||||
|
|
||||||
# Check for ocf persistency after restart
|
# Check for ocf persistency after restart
|
||||||
$rootdir/app/iscsi_tgt/iscsi_tgt -c $curdir/config &
|
"$rootdir/app/iscsi_tgt/iscsi_tgt" --json "$curdir/config" &
|
||||||
spdk_pid=$!
|
spdk_pid=$!
|
||||||
|
|
||||||
trap 'killprocess $spdk_pid; rm -f $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT
|
trap 'killprocess $spdk_pid; rm -f $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT
|
||||||
|
|
||||||
waitforlisten $spdk_pid
|
waitforlisten $spdk_pid
|
||||||
|
sleep 5
|
||||||
|
|
||||||
# OCF should be loaded now as well
|
# OCF should be loaded now as well
|
||||||
|
|
||||||
|
@ -10,13 +10,35 @@ rm -f aio*
|
|||||||
truncate -s 128M aio0
|
truncate -s 128M aio0
|
||||||
truncate -s 128M aio1
|
truncate -s 128M aio1
|
||||||
|
|
||||||
echo "
|
jq . <<- JSON > "$curdir/config"
|
||||||
[AIO]
|
{
|
||||||
AIO ./aio0 aio0 512
|
"subsystems": [
|
||||||
AIO ./aio1 aio1 512
|
{
|
||||||
" > $curdir/config
|
"subsystem": "bdev",
|
||||||
|
"config": [
|
||||||
|
{
|
||||||
|
"method": "bdev_aio_create",
|
||||||
|
"params": {
|
||||||
|
"name": "ai0",
|
||||||
|
"block_size": 512,
|
||||||
|
"filename": "./aio0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"method": "bdev_aio_create",
|
||||||
|
"params": {
|
||||||
|
"name": "aio1",
|
||||||
|
"block_size": 512,
|
||||||
|
"filename": "./aio1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
|
||||||
$rootdir/app/iscsi_tgt/iscsi_tgt -c $curdir/config &
|
"$rootdir/app/iscsi_tgt/iscsi_tgt" --json "$curdir/config" &
|
||||||
spdk_pid=$!
|
spdk_pid=$!
|
||||||
|
|
||||||
waitforlisten $spdk_pid
|
waitforlisten $spdk_pid
|
||||||
@ -42,7 +64,7 @@ trap - SIGINT SIGTERM EXIT
|
|||||||
killprocess $spdk_pid
|
killprocess $spdk_pid
|
||||||
|
|
||||||
# Check for ocfWT was deleted permanently
|
# Check for ocfWT was deleted permanently
|
||||||
$rootdir/app/iscsi_tgt/iscsi_tgt -c $curdir/config &
|
"$rootdir/app/iscsi_tgt/iscsi_tgt" --json "$curdir/config" &
|
||||||
spdk_pid=$!
|
spdk_pid=$!
|
||||||
|
|
||||||
trap 'killprocess $spdk_pid; rm -f aio* $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT
|
trap 'killprocess $spdk_pid; rm -f aio* $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT
|
||||||
|
Loading…
Reference in New Issue
Block a user