mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-18 10:04:20 +03:00
tests: dont try to use DAX based brd device
Unfortunatelly on kernels <4.16 lvm2 can't user brd ramdisks for backend device as number of test is failing with this kernel message: device-mapper: ioctl: can't change device type after initial table load. caused by DAX request-based handling, and lvm2 tries to replace device with backend 'error' bio-based device and such table reload is being rejected. So ATM keep ramdisk only on most recent kernel to experiment a bit, for older machines just stay safe and keep old slower loop backend.
This commit is contained in:
parent
2eba7c7755
commit
0217c53b24
@ -841,9 +841,18 @@ prepare_backing_dev() {
|
|||||||
BACKING_DEV=$LVM_TEST_BACKING_DEVICE
|
BACKING_DEV=$LVM_TEST_BACKING_DEVICE
|
||||||
echo "$BACKING_DEV" > BACKING_DEV
|
echo "$BACKING_DEV" > BACKING_DEV
|
||||||
return 0
|
return 0
|
||||||
elif test "${LVM_TEST_PREFER_BRD-1}" = "1" && test ! -d /sys/block/ram0 && test "$size" -lt 16384; then
|
elif test "${LVM_TEST_PREFER_BRD-1}" = "1" && \
|
||||||
|
test ! -d /sys/block/ram0 && \
|
||||||
|
test kernel_at_least 4 16 && \
|
||||||
|
test "$size" -lt 16384; then
|
||||||
# try to use ramdisk if possible, but for
|
# try to use ramdisk if possible, but for
|
||||||
# big allocs (>16G) do not try to use ramdisk
|
# big allocs (>16G) do not try to use ramdisk
|
||||||
|
# Also we can't use BRD device prior kernel 4.16
|
||||||
|
# since they were DAX based and lvm2 often relies
|
||||||
|
# in save table loading between exiting backend device
|
||||||
|
# and bio-based 'error' device.
|
||||||
|
# However with request based DAX brd device we get this:
|
||||||
|
# device-mapper: ioctl: can't change device type after initial table load.
|
||||||
prepare_ramdisk "$size" "$@" && return
|
prepare_ramdisk "$size" "$@" && return
|
||||||
echo "(failed)"
|
echo "(failed)"
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user