Spdk/test/ocf/management/configuration-change.sh

64 lines
2.1 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2021 Intel Corporation
# All rights reserved.
#
curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
rootdir=$(readlink -f $curdir/../../..)
source $rootdir/test/common/autotest_common.sh
rpc_py=$rootdir/scripts/rpc.py
cache_line_sizes=(4 8 16 32 64)
cache_modes=(wt wb pt wa wi wo)
$SPDK_BIN_DIR/iscsi_tgt &
spdk_pid=$!
waitforlisten $spdk_pid
# Create OCF cache with different cache line sizes
for cache_line_size in "${cache_line_sizes[@]}"; do
$rpc_py bdev_malloc_create 101 512 -b Malloc0
$rpc_py bdev_malloc_create 101 512 -b Malloc1
$rpc_py bdev_ocf_create Cache0 wt Malloc0 Malloc1 --cache-line-size $cache_line_size
$rpc_py bdev_ocf_get_bdevs | jq -e \
'.[0] | .started and .cache.attached and .core.attached'
# Check if cache line size values are reported correctly
$rpc_py bdev_get_bdevs -b Cache0 | jq -e \
".[0] | .driver_specific.cache_line_size == $cache_line_size"
$rpc_py save_subsystem_config -n bdev | jq -e \
".config | .[] | select(.method == \"bdev_ocf_create\") | .params.cache_line_size == $cache_line_size"
$rpc_py bdev_ocf_delete Cache0
$rpc_py bdev_malloc_delete Malloc0
$rpc_py bdev_malloc_delete Malloc1
done
# Prepare OCF cache for dynamic configuration switching
$rpc_py bdev_malloc_create 101 512 -b Malloc0
$rpc_py bdev_malloc_create 101 512 -b Malloc1
$rpc_py bdev_ocf_create Cache0 wt Malloc0 Malloc1
$rpc_py bdev_ocf_get_bdevs | jq -e \
'.[0] | .started and .cache.attached and .core.attached'
# Change cache mode
for cache_mode in "${cache_modes[@]}"; do
$rpc_py bdev_ocf_set_cache_mode Cache0 $cache_mode
# Check if cache mode values are reported correctly
$rpc_py bdev_get_bdevs -b Cache0 | jq -e \
".[0] | .driver_specific.mode == \"$cache_mode\""
$rpc_py save_subsystem_config -n bdev | jq -e \
".config | .[] | select(.method == \"bdev_ocf_create\") | .params.mode == \"$cache_mode\""
done
# Change sequential cutoff
$rpc_py bdev_ocf_set_seqcutoff Cache0 -p always -t 64
$rpc_py bdev_ocf_set_seqcutoff Cache0 -p never -t 16
trap - SIGINT SIGTERM EXIT
killprocess $spdk_pid