xref: /spdk/test/lvol/common.sh (revision eb53c23236cccb6b698b7ca70ee783da1c574b5f)
1*eb53c232Spaul luse#  SPDX-License-Identifier: BSD-3-Clause
2*eb53c232Spaul luse#  Copyright (C) 2019 Intel Corporation
3*eb53c232Spaul luse#  All rights reserved.
4*eb53c232Spaul luse#
5*eb53c232Spaul luse
67fa90631SDarek StojaczykMALLOC_SIZE_MB=128
77fa90631SDarek StojaczykMALLOC_BS=512
82342070eSPawel KaminskiAIO_SIZE_MB=400
92342070eSPawel KaminskiAIO_BS=4096
107fa90631SDarek StojaczykLVS_DEFAULT_CLUSTER_SIZE_MB=4
117fa90631SDarek StojaczykLVS_DEFAULT_CLUSTER_SIZE=$((LVS_DEFAULT_CLUSTER_SIZE_MB * 1024 * 1024))
127fa90631SDarek Stojaczyk# reserve some MBs for lvolstore metadata
137fa90631SDarek StojaczykLVS_DEFAULT_CAPACITY_MB=$((MALLOC_SIZE_MB - LVS_DEFAULT_CLUSTER_SIZE_MB))
147fa90631SDarek StojaczykLVS_DEFAULT_CAPACITY=$((LVS_DEFAULT_CAPACITY_MB * 1024 * 1024))
157fa90631SDarek Stojaczyk
1664cfaf3fSMichal Bergerfunction get_bdev_jq() {
1764cfaf3fSMichal Berger	rpc_cmd_simple_data_json bdev "$@"
1864cfaf3fSMichal Berger}
1964cfaf3fSMichal Berger
2064cfaf3fSMichal Bergerfunction get_lvs_jq() {
2164cfaf3fSMichal Berger	rpc_cmd_simple_data_json lvs "$@"
2264cfaf3fSMichal Berger}
2364cfaf3fSMichal Berger
2436ac0c43SSeth Howellfunction check_leftover_devices() {
257fa90631SDarek Stojaczyk	leftover_bdevs=$(rpc_cmd bdev_get_bdevs)
267fa90631SDarek Stojaczyk	[ "$(jq length <<< "$leftover_bdevs")" == "0" ]
277fa90631SDarek Stojaczyk	leftover_lvs=$(rpc_cmd bdev_lvol_get_lvstores)
287fa90631SDarek Stojaczyk	[ "$(jq length <<< "$leftover_lvs")" == "0" ]
297fa90631SDarek Stojaczyk}
30cf510c70SDarek Stojaczyk
31cf510c70SDarek Stojaczykfunction round_down() {
322342070eSPawel Kaminski	local CLUSTER_SIZE_MB=$LVS_DEFAULT_CLUSTER_SIZE_MB
332342070eSPawel Kaminski	if [ -n "$2" ]; then
342342070eSPawel Kaminski		CLUSTER_SIZE_MB=$2
352342070eSPawel Kaminski	fi
362342070eSPawel Kaminski	echo $(($1 / CLUSTER_SIZE_MB * CLUSTER_SIZE_MB))
37cf510c70SDarek Stojaczyk}
3867609312SPawel Kaminski
3967609312SPawel Kaminskifunction run_fio_test() {
4067609312SPawel Kaminski	local file=$1
4167609312SPawel Kaminski	local offset=$2
4267609312SPawel Kaminski	local size=$3
4367609312SPawel Kaminski	local rw=$4
4467609312SPawel Kaminski	local pattern=$5
4567609312SPawel Kaminski	local extra_params=$6
4667609312SPawel Kaminski
4767609312SPawel Kaminski	local pattern_template="" fio_template=""
4867609312SPawel Kaminski	if [[ -n "$pattern" ]]; then
4967609312SPawel Kaminski		pattern_template="--do_verify=1 --verify=pattern --verify_pattern=$pattern --verify_state_save=0"
5067609312SPawel Kaminski	fi
5167609312SPawel Kaminski
5267609312SPawel Kaminski	fio_template="fio --name=fio_test --filename=$file --offset=$offset --size=$size --rw=$rw --direct=1 $extra_params $pattern_template"
5367609312SPawel Kaminski	$fio_template
5467609312SPawel Kaminski}
5575b782beSMichal Berger
5675b782beSMichal Bergerfunction calc() {
5775b782beSMichal Berger	bc -l <<< "define ceil(x) { scale=0; return(x + (x % 1 > 0))/1 } $1"
5875b782beSMichal Berger}
59