Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
55 lines
1.6 KiB
ReStructuredText
55 lines
1.6 KiB
ReStructuredText
========
|
|
dm-delay
|
|
========
|
|
|
|
Device-Mapper's "delay" target delays reads and/or writes
|
|
and/or flushes and optionally maps them to different devices.
|
|
|
|
Arguments::
|
|
|
|
<device> <offset> <delay> [<write_device> <write_offset> <write_delay>
|
|
[<flush_device> <flush_offset> <flush_delay>]]
|
|
|
|
Table line has to either have 3, 6 or 9 arguments:
|
|
|
|
3: apply offset and delay to read, write and flush operations on device
|
|
|
|
6: apply offset and delay to device, also apply write_offset and write_delay
|
|
to write and flush operations on optionally different write_device with
|
|
optionally different sector offset
|
|
|
|
9: same as 6 arguments plus define flush_offset and flush_delay explicitly
|
|
on/with optionally different flush_device/flush_offset.
|
|
|
|
Offsets are specified in sectors.
|
|
|
|
Delays are specified in milliseconds.
|
|
|
|
|
|
Example scripts
|
|
===============
|
|
|
|
::
|
|
#!/bin/sh
|
|
#
|
|
# Create mapped device named "delayed" delaying read, write and flush operations for 500ms.
|
|
#
|
|
dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 0 500"
|
|
|
|
::
|
|
#!/bin/sh
|
|
#
|
|
# Create mapped device delaying write and flush operations for 400ms and
|
|
# splitting reads to device $1 but writes and flushes to different device $2
|
|
# to different offsets of 2048 and 4096 sectors respectively.
|
|
#
|
|
dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 2048 0 $2 4096 400"
|
|
|
|
::
|
|
#!/bin/sh
|
|
#
|
|
# Create mapped device delaying reads for 50ms, writes for 100ms and flushes for 333ms
|
|
# onto the same backing device at offset 0 sectors.
|
|
#
|
|
dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 0 50 $2 0 100 $1 0 333"
|