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
|
||||
rpc_py="$rootdir/scripts/rpc.py"
|
||||
|
||||
$bdevperf -c $curdir/mallocs.conf -q 128 -o 4096 -t 4 -w flush
|
||||
$bdevperf -c $curdir/mallocs.conf -q 128 -o 4096 -t 4 -w unmap
|
||||
$bdevperf -c $curdir/mallocs.conf -q 128 -o 4096 -t 4 -w write
|
||||
source "$curdir/mallocs.conf"
|
||||
$bdevperf --json <(gen_malloc_ocf_json) -q 128 -o 4096 -t 4 -w flush
|
||||
$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
|
||||
|
||||
nvme_cfg=$($rootdir/scripts/gen_nvme.sh)
|
||||
# Building config is not backtrace worthy ...
|
||||
xtrace_disable
|
||||
|
||||
config="
|
||||
$(nvme_cfg)
|
||||
config=() ocf_names=() ocf_modes=()
|
||||
|
||||
[Split]
|
||||
Split Nvme0n1 8 101
|
||||
ocf_names[1]=PT_Nvme ocf_modes[1]=pt
|
||||
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]
|
||||
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
|
||||
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh" --json)
|
||||
|
||||
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
|
||||
cleanup
|
||||
|
@ -1,9 +1,59 @@
|
||||
gen_malloc_ocf_json () {
|
||||
local size=300 # MB
|
||||
local block_size=512
|
||||
local config
|
||||
|
||||
[Malloc]
|
||||
NumberOfLuns 3
|
||||
LunSizeInMB 300
|
||||
BlockSize 512
|
||||
local malloc malloc_devs=3
|
||||
for (( malloc = 0; malloc < malloc_devs; malloc++ )); do
|
||||
config+=(
|
||||
"$(
|
||||
cat <<-JSON
|
||||
{
|
||||
"method": "bdev_malloc_create",
|
||||
"params": {
|
||||
"name": "Malloc$malloc",
|
||||
"num_blocks": $(( (size << 20) / block_size )),
|
||||
"block_size": 512
|
||||
}
|
||||
}
|
||||
JSON
|
||||
)"
|
||||
)
|
||||
done
|
||||
|
||||
[OCF]
|
||||
OCF MalCache1 wt Malloc0 Malloc1
|
||||
OCF MalCache2 pt Malloc0 Malloc2
|
||||
local ocfs ocf ocf_mode ocf_cache ocf_core
|
||||
ocfs=(1 2)
|
||||
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
|
||||
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=$!
|
||||
waitforlisten $bdev_perf_pid
|
||||
sleep 1
|
||||
|
@ -4,18 +4,48 @@ curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
|
||||
rootdir=$(readlink -f $curdir/../../..)
|
||||
source $rootdir/test/ocf/common.sh
|
||||
|
||||
config="
|
||||
$(nvme_cfg)
|
||||
source $rootdir/scripts/common.sh
|
||||
source $rootdir/test/common/autotest_common.sh
|
||||
|
||||
[Split]
|
||||
Split Nvme0n1 7 128
|
||||
"
|
||||
echo "$config" > $curdir/config
|
||||
rpc_py=$rootdir/scripts/rpc.py
|
||||
|
||||
$rootdir/scripts/setup.sh
|
||||
|
||||
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
|
||||
|
||||
$rootdir/app/iscsi_tgt/iscsi_tgt -c $curdir/config &
|
||||
"$rootdir/app/iscsi_tgt/iscsi_tgt" --json "$curdir/config" &
|
||||
spdk_pid=$!
|
||||
|
||||
waitforlisten $spdk_pid
|
||||
@ -36,12 +66,13 @@ trap - SIGINT SIGTERM EXIT
|
||||
killprocess $spdk_pid
|
||||
|
||||
# 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=$!
|
||||
|
||||
trap 'killprocess $spdk_pid; rm -f $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT
|
||||
|
||||
waitforlisten $spdk_pid
|
||||
sleep 5
|
||||
|
||||
# OCF should be loaded now as well
|
||||
|
||||
|
@ -10,13 +10,35 @@ rm -f aio*
|
||||
truncate -s 128M aio0
|
||||
truncate -s 128M aio1
|
||||
|
||||
echo "
|
||||
[AIO]
|
||||
AIO ./aio0 aio0 512
|
||||
AIO ./aio1 aio1 512
|
||||
" > $curdir/config
|
||||
jq . <<- JSON > "$curdir/config"
|
||||
{
|
||||
"subsystems": [
|
||||
{
|
||||
"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=$!
|
||||
|
||||
waitforlisten $spdk_pid
|
||||
@ -42,7 +64,7 @@ trap - SIGINT SIGTERM EXIT
|
||||
killprocess $spdk_pid
|
||||
|
||||
# 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=$!
|
||||
|
||||
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