test/nvme_perf: add bdev io cache and pool size option
Allow to set custom size of bdev IO cache and pool sizes. Change-Id: I574d1e949f705d8f834539d5879f0a1e72865e00 Signed-off-by: Karol Latecki <karol.latecki@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3297 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
parent
f8cf17f58e
commit
ae4c75b20d
@ -29,6 +29,8 @@ REPEAT_NO=3
|
|||||||
FIO_BIN=$CONFIG_FIO_SOURCE_DIR/fio
|
FIO_BIN=$CONFIG_FIO_SOURCE_DIR/fio
|
||||||
PLUGIN="nvme"
|
PLUGIN="nvme"
|
||||||
DISKCFG=""
|
DISKCFG=""
|
||||||
|
BDEV_CACHE=""
|
||||||
|
BDEV_POOL=""
|
||||||
DISKNO="ALL"
|
DISKNO="ALL"
|
||||||
CPUS_ALLOWED=1
|
CPUS_ALLOWED=1
|
||||||
NOIOSCALING=false
|
NOIOSCALING=false
|
||||||
@ -74,11 +76,35 @@ function discover_bdevs() {
|
|||||||
function create_spdk_bdev_conf() {
|
function create_spdk_bdev_conf() {
|
||||||
local output
|
local output
|
||||||
local disk_cfg
|
local disk_cfg
|
||||||
local bdev_json_cfg
|
local bdev_io_cache_size=$1
|
||||||
|
local bdev_io_pool_size=$2
|
||||||
|
local bdev_json_cfg=()
|
||||||
|
local bdev_opts=()
|
||||||
|
|
||||||
disk_cfg=($(grep -vP "^\s*#" "$DISKCFG"))
|
disk_cfg=($(grep -vP "^\s*#" "$DISKCFG"))
|
||||||
|
|
||||||
bdev_json_cfg=()
|
if [[ -n "$bdev_io_cache_size" ]]; then
|
||||||
|
bdev_opts+=("\"bdev_io_cache_size\": $bdev_io_cache_size")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$bdev_io_pool_size" ]]; then
|
||||||
|
bdev_opts+=("\"bdev_io_pool_size\": $bdev_io_pool_size")
|
||||||
|
fi
|
||||||
|
|
||||||
|
local IFS=","
|
||||||
|
if [[ ${#bdev_opts[@]} -gt 0 ]]; then
|
||||||
|
bdev_json_cfg+=("$(
|
||||||
|
cat <<- JSON
|
||||||
|
{
|
||||||
|
"method": "bdev_set_options",
|
||||||
|
"params": {
|
||||||
|
${bdev_opts[*]}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
)")
|
||||||
|
fi
|
||||||
|
|
||||||
for i in "${!disk_cfg[@]}"; do
|
for i in "${!disk_cfg[@]}"; do
|
||||||
bdev_json_cfg+=("$(
|
bdev_json_cfg+=("$(
|
||||||
cat <<- JSON
|
cat <<- JSON
|
||||||
@ -94,7 +120,6 @@ function create_spdk_bdev_conf() {
|
|||||||
)")
|
)")
|
||||||
done
|
done
|
||||||
|
|
||||||
local IFS=","
|
|
||||||
jq -r '.' <<- JSON > $BASE_DIR/bdev.conf
|
jq -r '.' <<- JSON > $BASE_DIR/bdev.conf
|
||||||
{
|
{
|
||||||
"subsystems": [
|
"subsystems": [
|
||||||
@ -498,6 +523,8 @@ function usage() {
|
|||||||
echo " It consists a single column of PCI addresses. SPDK Bdev names will be assigned"
|
echo " It consists a single column of PCI addresses. SPDK Bdev names will be assigned"
|
||||||
echo " and Kernel block device names detected."
|
echo " and Kernel block device names detected."
|
||||||
echo " Lines starting with # are ignored as comments."
|
echo " Lines starting with # are ignored as comments."
|
||||||
|
echo " --bdev-io-cache-size Set IO cache size for for SPDK bdev subsystem."
|
||||||
|
echo " --bdev-io-pool-size Set IO pool size for for SPDK bdev subsystem."
|
||||||
echo " --max-disk=INT,ALL Number of disks to test on, this will run multiple workloads with increasing number of disk each run."
|
echo " --max-disk=INT,ALL Number of disks to test on, this will run multiple workloads with increasing number of disk each run."
|
||||||
echo " If =ALL then test on all found disk. [default=$DISKNO]"
|
echo " If =ALL then test on all found disk. [default=$DISKNO]"
|
||||||
echo " --cpu-allowed=INT Comma-separated list of CPU cores used to run the workload. [default=$CPUS_ALLOWED]"
|
echo " --cpu-allowed=INT Comma-separated list of CPU cores used to run the workload. [default=$CPUS_ALLOWED]"
|
||||||
@ -531,6 +558,8 @@ while getopts 'h-:' optchar; do
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
bdev-io-cache-size=*) BDEV_CACHE="${OPTARG#*=}" ;;
|
||||||
|
bdev-io-pool-size=*) BDEV_POOL="${OPTARG#*=}" ;;
|
||||||
max-disk=*) DISKNO="${OPTARG#*=}" ;;
|
max-disk=*) DISKNO="${OPTARG#*=}" ;;
|
||||||
cpu-allowed=*) CPUS_ALLOWED="${OPTARG#*=}" ;;
|
cpu-allowed=*) CPUS_ALLOWED="${OPTARG#*=}" ;;
|
||||||
no-preconditioning) PRECONDITIONING=false ;;
|
no-preconditioning) PRECONDITIONING=false ;;
|
||||||
|
@ -37,7 +37,7 @@ BASE_DIR=$(readlink -f $(dirname $0))
|
|||||||
trap 'rm -f *.state $BASE_DIR/bdev.conf; print_backtrace' ERR SIGTERM SIGABRT
|
trap 'rm -f *.state $BASE_DIR/bdev.conf; print_backtrace' ERR SIGTERM SIGABRT
|
||||||
|
|
||||||
if [[ "$PLUGIN" =~ "bdev" ]]; then
|
if [[ "$PLUGIN" =~ "bdev" ]]; then
|
||||||
create_spdk_bdev_conf
|
create_spdk_bdev_conf "$BDEV_CACHE" "$BDEV_POOL"
|
||||||
fi
|
fi
|
||||||
verify_disk_number
|
verify_disk_number
|
||||||
DISK_NAMES=$(get_disks $PLUGIN)
|
DISK_NAMES=$(get_disks $PLUGIN)
|
||||||
|
Loading…
Reference in New Issue
Block a user