test/xnvme: Add simple test covering xnvme
This test is meant to simply verify basic IO and rpc integrity with regards to different io_mechanisms. Signed-off-by: Michal Berger <michal.berger@intel.com> Change-Id: I936d57c6ac539e77761656a1ec2b8ad1013f918f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14119 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
This commit is contained in:
parent
c8f62d792a
commit
53ec23cae6
@ -220,6 +220,10 @@ if [ $SPDK_RUN_FUNCTIONAL_TEST -eq 1 ]; then
|
||||
if [ $SPDK_RUN_ASAN -eq 0 ] && [ $(uname -s) = Linux ]; then
|
||||
run_test "sw_hotplug" test/nvme/sw_hotplug.sh
|
||||
fi
|
||||
|
||||
if [[ $SPDK_TEST_XNVME -eq 1 ]]; then
|
||||
run_test "nvme_xnvme" test/nvme/xnvme/xnvme.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $SPDK_TEST_IOAT -eq 1 ]; then
|
||||
|
80
test/nvme/xnvme/xnvme.sh
Executable file
80
test/nvme/xnvme/xnvme.sh
Executable file
@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
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 zram for the xnvme backend
|
||||
init_zram
|
||||
|
||||
local mbdev0=malloc0 mbdev0_b=1048576 mbdev0_bs=512
|
||||
local xnvme0=zram0 xnvme0_dev xnvme_io=()
|
||||
local io
|
||||
|
||||
xnvme_io+=(libaio)
|
||||
xnvme_io+=(io_uring)
|
||||
|
||||
xnvme0_dev=$(create_zram_dev)
|
||||
set_zram_dev "$xnvme0_dev" 512M
|
||||
|
||||
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"]="/dev/zram$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_zram_dev "$xnvme0_dev"
|
||||
}
|
||||
|
||||
xnvme_bdevperf() {
|
||||
# Use zram for the xnvme backend
|
||||
init_zram
|
||||
|
||||
local xnvme0=zram0 xnvme0_dev xnvme_io=()
|
||||
local io
|
||||
|
||||
xnvme_io+=(libaio)
|
||||
xnvme_io+=(io_uring)
|
||||
|
||||
xnvme0_dev=$(create_zram_dev)
|
||||
set_zram_dev "$xnvme0_dev" 512M
|
||||
|
||||
local -A method_bdev_xnvme_create_0=()
|
||||
method_bdev_xnvme_create_0["name"]=$xnvme0
|
||||
method_bdev_xnvme_create_0["filename"]="/dev/zram$xnvme0_dev"
|
||||
|
||||
for io in "${xnvme_io[@]}"; do
|
||||
method_bdev_xnvme_create_0["io_mechanism"]="$io"
|
||||
"$rootdir/test/bdev/bdevperf/bdevperf" \
|
||||
--json <(gen_conf) \
|
||||
-q 64 \
|
||||
-w randread \
|
||||
-t 5 \
|
||||
-T "$xnvme0" \
|
||||
-o 4096
|
||||
done
|
||||
|
||||
remove_zram_dev "$xnvme0_dev"
|
||||
}
|
||||
|
||||
run_test "xnvme_to_malloc_dd_copy" malloc_to_xnvme_copy
|
||||
run_test "xnvme_bdevperf" xnvme_bdevperf
|
Loading…
Reference in New Issue
Block a user