test/xnvme: Use null_blk device instead of zram for the backend device
zram doesn't support some of the uring-specific setup that xnvme may be using, in particular the IORING_SETUP_IOPOLL, so switch to something more common like null_blk module. For details see: https://github.com/spdk/spdk/issues/2708 Signed-off-by: Michal Berger <michal.berger@intel.com> Change-Id: I48b91ba356b4054433eb1835fa3e2708c8d2628c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14920 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com> Reviewed-by: Kamil Godzwon <kamilx.godzwon@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
parent
51ae6d4002
commit
f17fe62924
@ -186,3 +186,12 @@ set_zram_dev() {
|
||||
|
||||
echo "$size" > "/sys/block/zram$id/disksize"
|
||||
}
|
||||
|
||||
init_null_blk() {
|
||||
[[ -e /sys/module/null_blk ]] || modprobe null_blk "$@"
|
||||
return
|
||||
}
|
||||
|
||||
remove_null_blk() {
|
||||
modprobe -r null_blk
|
||||
}
|
||||
|
@ -5,18 +5,20 @@ rootdir=$(readlink -f "$testdir/../../../")
|
||||
source "$rootdir/test/dd/common.sh"
|
||||
|
||||
malloc_to_xnvme_copy() {
|
||||
# Use zram for the xnvme backend
|
||||
init_zram
|
||||
# Use 1GB null_blk for the xnvme backend
|
||||
init_null_blk gb=1
|
||||
|
||||
local mbdev0=malloc0 mbdev0_b=1048576 mbdev0_bs=512
|
||||
local xnvme0=zram0 xnvme0_dev xnvme_io=()
|
||||
local mbdev0=malloc0 mbdev0_bs=512
|
||||
local xnvme0=null0 xnvme0_dev xnvme_io=()
|
||||
local io
|
||||
|
||||
xnvme_io+=(libaio)
|
||||
xnvme_io+=(io_uring)
|
||||
|
||||
xnvme0_dev=$(create_zram_dev)
|
||||
set_zram_dev "$xnvme0_dev" 512M
|
||||
# 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
|
||||
@ -26,7 +28,7 @@ malloc_to_xnvme_copy() {
|
||||
|
||||
local -A method_bdev_xnvme_create_0=()
|
||||
method_bdev_xnvme_create_0["name"]=$xnvme0
|
||||
method_bdev_xnvme_create_0["filename"]="/dev/zram$xnvme0_dev"
|
||||
method_bdev_xnvme_create_0["filename"]=$xnvme0_dev
|
||||
|
||||
for io in "${xnvme_io[@]}"; do
|
||||
method_bdev_xnvme_create_0["io_mechanism"]="$io"
|
||||
@ -42,25 +44,24 @@ malloc_to_xnvme_copy() {
|
||||
--json <(gen_conf)
|
||||
done
|
||||
|
||||
remove_zram_dev "$xnvme0_dev"
|
||||
remove_null_blk
|
||||
}
|
||||
|
||||
xnvme_bdevperf() {
|
||||
# Use zram for the xnvme backend
|
||||
init_zram
|
||||
# Use 1GB null_blk for the xnvme backend
|
||||
init_null_blk gb=1
|
||||
|
||||
local xnvme0=zram0 xnvme0_dev xnvme_io=()
|
||||
local xnvme0=null0 xnvme0_dev xnvme_io=()
|
||||
local io
|
||||
|
||||
xnvme_io+=(libaio)
|
||||
xnvme_io+=(io_uring)
|
||||
|
||||
xnvme0_dev=$(create_zram_dev)
|
||||
set_zram_dev "$xnvme0_dev" 512M
|
||||
xnvme0_dev=/dev/nullb0
|
||||
|
||||
local -A method_bdev_xnvme_create_0=()
|
||||
method_bdev_xnvme_create_0["name"]=$xnvme0
|
||||
method_bdev_xnvme_create_0["filename"]="/dev/zram$xnvme0_dev"
|
||||
method_bdev_xnvme_create_0["filename"]=$xnvme0_dev
|
||||
|
||||
for io in "${xnvme_io[@]}"; do
|
||||
method_bdev_xnvme_create_0["io_mechanism"]="$io"
|
||||
@ -73,7 +74,7 @@ xnvme_bdevperf() {
|
||||
-o 4096
|
||||
done
|
||||
|
||||
remove_zram_dev "$xnvme0_dev"
|
||||
remove_null_blk
|
||||
}
|
||||
|
||||
run_test "xnvme_to_malloc_dd_copy" malloc_to_xnvme_copy
|
||||
|
Loading…
Reference in New Issue
Block a user