Commit 7a0274fc authored by Michal Berger's avatar Michal Berger Committed by Tomasz Zawadzki
Browse files

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: default avatarMichal Berger <michalx.berger@intel.com>
Signed-off-by: default avatarVitaliy Mysak <vitaliy.mysak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1327


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
parent e96d3280
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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
+63 −13
Original line number Diff line number Diff line
@@ -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
+57 −7
Original line number Diff line number Diff line
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
}
+2 −1
Original line number Diff line number Diff line
@@ -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
+40 −9
Original line number Diff line number Diff line
@@ -4,18 +4,48 @@ curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
rootdir=$(readlink -f $curdir/../../..)
source $rootdir/test/ocf/common.sh

config="
$(nvme_cfg)

[Split]
  Split Nvme0n1 7 128
"
echo "$config" > $curdir/config
source $rootdir/scripts/common.sh
source $rootdir/test/common/autotest_common.sh

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

Loading