Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1========
2dm-delay
3========
4
5Device-Mapper's "delay" target delays reads and/or writes
6and/or flushes and optionally maps them to different devices.
7
8Arguments::
9
10 <device> <offset> <delay> [<write_device> <write_offset> <write_delay>
11 [<flush_device> <flush_offset> <flush_delay>]]
12
13Table line has to either have 3, 6 or 9 arguments:
14
153: apply offset and delay to read, write and flush operations on device
16
176: apply offset and delay to device, also apply write_offset and write_delay
18 to write and flush operations on optionally different write_device with
19 optionally different sector offset
20
219: same as 6 arguments plus define flush_offset and flush_delay explicitly
22 on/with optionally different flush_device/flush_offset.
23
24Offsets are specified in sectors.
25
26Delays are specified in milliseconds.
27
28
29Example scripts
30===============
31
32::
33 #!/bin/sh
34 #
35 # Create mapped device named "delayed" delaying read, write and flush operations for 500ms.
36 #
37 dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 0 500"
38
39::
40 #!/bin/sh
41 #
42 # Create mapped device delaying write and flush operations for 400ms and
43 # splitting reads to device $1 but writes and flushes to different device $2
44 # to different offsets of 2048 and 4096 sectors respectively.
45 #
46 dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 2048 0 $2 4096 400"
47
48::
49 #!/bin/sh
50 #
51 # Create mapped device delaying reads for 50ms, writes for 100ms and flushes for 333ms
52 # onto the same backing device at offset 0 sectors.
53 #
54 dmsetup create delayed --table "0 `blockdev --getsz $1` delay $1 0 50 $2 0 100 $1 0 333"