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