diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/spdk/test/ocf/integrity/fio-modes.sh | |
parent | Initial commit. (diff) | |
download | ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.tar.xz ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/spdk/test/ocf/integrity/fio-modes.sh')
-rwxr-xr-x | src/spdk/test/ocf/integrity/fio-modes.sh | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/spdk/test/ocf/integrity/fio-modes.sh b/src/spdk/test/ocf/integrity/fio-modes.sh new file mode 100755 index 000000000..0c90f999f --- /dev/null +++ b/src/spdk/test/ocf/integrity/fio-modes.sh @@ -0,0 +1,90 @@ +#!/usr/bin/env bash + +curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}")) +rootdir=$(readlink -f $curdir/../../..) + +source $rootdir/test/ocf/common.sh + +function fio_verify() { + fio_bdev $curdir/test.fio --aux-path=/tmp/ --ioengine=spdk_bdev "$@" +} + +function cleanup() { + rm -f $curdir/modes.conf +} + +# Clear nvme device which we will use in test +clear_nvme + +trap "cleanup; exit 1" SIGINT SIGTERM EXIT + +# Building config is not backtrace worthy ... +xtrace_disable + +config=() ocf_names=() ocf_modes=() + +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 + +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": 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 |