2022-08-18 16:21:34 +00:00
|
|
|
#!/usr/bin/env bash
|
2022-11-02 15:49:40 +00:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# Copyright (C) 2022 Intel Corporation
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
|
|
|
|
2022-08-18 16:21:34 +00:00
|
|
|
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() {
|
2022-10-11 11:25:13 +00:00
|
|
|
# Use 1GB null_blk for the xnvme backend
|
|
|
|
init_null_blk gb=1
|
2022-08-18 16:21:34 +00:00
|
|
|
|
2022-10-11 11:25:13 +00:00
|
|
|
local mbdev0=malloc0 mbdev0_bs=512
|
|
|
|
local xnvme0=null0 xnvme0_dev xnvme_io=()
|
2022-08-18 16:21:34 +00:00
|
|
|
local io
|
|
|
|
|
|
|
|
xnvme_io+=(libaio)
|
|
|
|
xnvme_io+=(io_uring)
|
|
|
|
|
2022-10-11 11:25:13 +00:00
|
|
|
# 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
|
2022-08-18 16:21:34 +00:00
|
|
|
|
|
|
|
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
|
2022-10-11 11:25:13 +00:00
|
|
|
method_bdev_xnvme_create_0["filename"]=$xnvme0_dev
|
2022-08-18 16:21:34 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2022-10-11 11:25:13 +00:00
|
|
|
remove_null_blk
|
2022-08-18 16:21:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
xnvme_bdevperf() {
|
2022-10-11 11:25:13 +00:00
|
|
|
# Use 1GB null_blk for the xnvme backend
|
|
|
|
init_null_blk gb=1
|
2022-08-18 16:21:34 +00:00
|
|
|
|
2022-10-11 11:25:13 +00:00
|
|
|
local xnvme0=null0 xnvme0_dev xnvme_io=()
|
2022-08-18 16:21:34 +00:00
|
|
|
local io
|
|
|
|
|
|
|
|
xnvme_io+=(libaio)
|
|
|
|
xnvme_io+=(io_uring)
|
|
|
|
|
2022-10-11 11:25:13 +00:00
|
|
|
xnvme0_dev=/dev/nullb0
|
2022-08-18 16:21:34 +00:00
|
|
|
|
|
|
|
local -A method_bdev_xnvme_create_0=()
|
|
|
|
method_bdev_xnvme_create_0["name"]=$xnvme0
|
2022-10-11 11:25:13 +00:00
|
|
|
method_bdev_xnvme_create_0["filename"]=$xnvme0_dev
|
2022-08-18 16:21:34 +00:00
|
|
|
|
|
|
|
for io in "${xnvme_io[@]}"; do
|
|
|
|
method_bdev_xnvme_create_0["io_mechanism"]="$io"
|
2022-09-06 12:15:46 +00:00
|
|
|
"$rootdir/build/examples/bdevperf" \
|
2022-08-18 16:21:34 +00:00
|
|
|
--json <(gen_conf) \
|
|
|
|
-q 64 \
|
|
|
|
-w randread \
|
|
|
|
-t 5 \
|
|
|
|
-T "$xnvme0" \
|
|
|
|
-o 4096
|
|
|
|
done
|
|
|
|
|
2022-10-11 11:25:13 +00:00
|
|
|
remove_null_blk
|
2022-08-18 16:21:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
run_test "xnvme_to_malloc_dd_copy" malloc_to_xnvme_copy
|
|
|
|
run_test "xnvme_bdevperf" xnvme_bdevperf
|