Spdk/test/nvme/xnvme/xnvme.sh

87 lines
1.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2022 Intel Corporation
# All rights reserved.
#
testdir=$(readlink -f "$(dirname "$0")")
rootdir=$(readlink -f "$testdir/../../../")
# Hook into dd suite to perform some basic IO tests
source "$rootdir/test/dd/common.sh"
malloc_to_xnvme_copy() {
# Use 1GB null_blk for the xnvme backend
init_null_blk gb=1
local mbdev0=malloc0 mbdev0_bs=512
local xnvme0=null0 xnvme0_dev xnvme_io=()
local io
xnvme_io+=(libaio)
xnvme_io+=(io_uring)
# This always represents size of the device in 512B sectors
# so it should align nicely with the $mbdev0_bs.
mbdev0_b=$(< /sys/block/nullb0/size)
xnvme0_dev=/dev/nullb0
local -A method_bdev_malloc_create_0=(
["name"]=$mbdev0
["num_blocks"]=$mbdev0_b
["block_size"]=$mbdev0_bs
)
local -A method_bdev_xnvme_create_0=()
method_bdev_xnvme_create_0["name"]=$xnvme0
method_bdev_xnvme_create_0["filename"]=$xnvme0_dev
for io in "${xnvme_io[@]}"; do
method_bdev_xnvme_create_0["io_mechanism"]="$io"
"${DD_APP[@]}" \
--ib="$mbdev0" \
--ob="$xnvme0" \
--json <(gen_conf)
"${DD_APP[@]}" \
--ib="$xnvme0" \
--ob="$mbdev0" \
--json <(gen_conf)
done
remove_null_blk
}
xnvme_bdevperf() {
# Use 1GB null_blk for the xnvme backend
init_null_blk gb=1
local xnvme0=null0 xnvme0_dev xnvme_io=()
local io
xnvme_io+=(libaio)
xnvme_io+=(io_uring)
xnvme0_dev=/dev/nullb0
local -A method_bdev_xnvme_create_0=()
method_bdev_xnvme_create_0["name"]=$xnvme0
method_bdev_xnvme_create_0["filename"]=$xnvme0_dev
for io in "${xnvme_io[@]}"; do
method_bdev_xnvme_create_0["io_mechanism"]="$io"
"$rootdir/build/examples/bdevperf" \
--json <(gen_conf) \
-q 64 \
-w randread \
-t 5 \
-T "$xnvme0" \
-o 4096
done
remove_null_blk
}
run_test "xnvme_to_malloc_dd_copy" malloc_to_xnvme_copy
run_test "xnvme_bdevperf" xnvme_bdevperf