xref: /spdk/test/ocf/management/configuration-change.sh (revision eb53c23236cccb6b698b7ca70ee783da1c574b5f)
15bdaec63SRafal Stefanowski#!/usr/bin/env bash
2*eb53c232Spaul luse#  SPDX-License-Identifier: BSD-3-Clause
3*eb53c232Spaul luse#  Copyright (C) 2021 Intel Corporation
4*eb53c232Spaul luse#  All rights reserved.
5*eb53c232Spaul luse#
65bdaec63SRafal Stefanowskicurdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
75bdaec63SRafal Stefanowskirootdir=$(readlink -f $curdir/../../..)
85bdaec63SRafal Stefanowskisource $rootdir/test/common/autotest_common.sh
95bdaec63SRafal Stefanowski
105bdaec63SRafal Stefanowskirpc_py=$rootdir/scripts/rpc.py
118fcb8b96SRafal Stefanowskicache_line_sizes=(4 8 16 32 64)
125bdaec63SRafal Stefanowskicache_modes=(wt wb pt wa wi wo)
135bdaec63SRafal Stefanowski
145bdaec63SRafal Stefanowski$SPDK_BIN_DIR/iscsi_tgt &
155bdaec63SRafal Stefanowskispdk_pid=$!
165bdaec63SRafal Stefanowski
175bdaec63SRafal Stefanowskiwaitforlisten $spdk_pid
185bdaec63SRafal Stefanowski
198fcb8b96SRafal Stefanowski# Create OCF cache with different cache line sizes
208fcb8b96SRafal Stefanowskifor cache_line_size in "${cache_line_sizes[@]}"; do
215bdaec63SRafal Stefanowski	$rpc_py bdev_malloc_create 101 512 -b Malloc0
225bdaec63SRafal Stefanowski	$rpc_py bdev_malloc_create 101 512 -b Malloc1
238fcb8b96SRafal Stefanowski	$rpc_py bdev_ocf_create Cache0 wt Malloc0 Malloc1 --cache-line-size $cache_line_size
248fcb8b96SRafal Stefanowski
258fcb8b96SRafal Stefanowski	$rpc_py bdev_ocf_get_bdevs | jq -e \
268fcb8b96SRafal Stefanowski		'.[0] | .started and .cache.attached and .core.attached'
278fcb8b96SRafal Stefanowski
288fcb8b96SRafal Stefanowski	# Check if cache line size values are reported correctly
298fcb8b96SRafal Stefanowski	$rpc_py bdev_get_bdevs -b Cache0 | jq -e \
308fcb8b96SRafal Stefanowski		".[0] | .driver_specific.cache_line_size == $cache_line_size"
318fcb8b96SRafal Stefanowski	$rpc_py save_subsystem_config -n bdev | jq -e \
328fcb8b96SRafal Stefanowski		".config | .[] | select(.method == \"bdev_ocf_create\") | .params.cache_line_size == $cache_line_size"
338fcb8b96SRafal Stefanowski
348fcb8b96SRafal Stefanowski	$rpc_py bdev_ocf_delete Cache0
358fcb8b96SRafal Stefanowski	$rpc_py bdev_malloc_delete Malloc0
368fcb8b96SRafal Stefanowski	$rpc_py bdev_malloc_delete Malloc1
378fcb8b96SRafal Stefanowskidone
388fcb8b96SRafal Stefanowski
398fcb8b96SRafal Stefanowski# Prepare OCF cache for dynamic configuration switching
408fcb8b96SRafal Stefanowski$rpc_py bdev_malloc_create 101 512 -b Malloc0
418fcb8b96SRafal Stefanowski$rpc_py bdev_malloc_create 101 512 -b Malloc1
428fcb8b96SRafal Stefanowski$rpc_py bdev_ocf_create Cache0 wt Malloc0 Malloc1
435bdaec63SRafal Stefanowski
445bdaec63SRafal Stefanowski$rpc_py bdev_ocf_get_bdevs | jq -e \
455bdaec63SRafal Stefanowski	'.[0] | .started and .cache.attached and .core.attached'
465bdaec63SRafal Stefanowski
475bdaec63SRafal Stefanowski# Change cache mode
485bdaec63SRafal Stefanowskifor cache_mode in "${cache_modes[@]}"; do
498fcb8b96SRafal Stefanowski	$rpc_py bdev_ocf_set_cache_mode Cache0 $cache_mode
508fcb8b96SRafal Stefanowski
518fcb8b96SRafal Stefanowski	# Check if cache mode values are reported correctly
528fcb8b96SRafal Stefanowski	$rpc_py bdev_get_bdevs -b Cache0 | jq -e \
538fcb8b96SRafal Stefanowski		".[0] | .driver_specific.mode == \"$cache_mode\""
548fcb8b96SRafal Stefanowski	$rpc_py save_subsystem_config -n bdev | jq -e \
558fcb8b96SRafal Stefanowski		".config | .[] | select(.method == \"bdev_ocf_create\") | .params.mode == \"$cache_mode\""
565bdaec63SRafal Stefanowskidone
575bdaec63SRafal Stefanowski
58494b1ba8SRafal Stefanowski# Change sequential cutoff
59494b1ba8SRafal Stefanowski$rpc_py bdev_ocf_set_seqcutoff Cache0 -p always -t 64
60494b1ba8SRafal Stefanowski$rpc_py bdev_ocf_set_seqcutoff Cache0 -p never -t 16
61494b1ba8SRafal Stefanowski
625bdaec63SRafal Stefanowskitrap - SIGINT SIGTERM EXIT
635bdaec63SRafal Stefanowskikillprocess $spdk_pid
64