2019-06-12 14:52:43 -03:00
=========
2011-03-24 13:54:24 +00:00
dm-flakey
=========
2011-08-02 12:32:05 +01:00
This target is the same as the linear target except that it exhibits
unreliable behaviour periodically. It's been found useful in simulating
failing devices for testing purposes.
2011-03-24 13:54:24 +00:00
Starting from the time the table is loaded, the device is available for
2011-08-02 12:32:05 +01:00
<up interval> seconds, then exhibits unreliable behaviour for <down
interval> seconds, and then this cycle repeats.
2011-03-24 13:54:24 +00:00
2011-08-02 12:32:05 +01:00
Also, consider using this in combination with the dm-delay target too,
which can delay reads and writes and/or send them to different
underlying devices.
Table parameters
----------------
2019-06-12 14:52:43 -03:00
::
2011-08-02 12:32:05 +01:00
<dev path> <offset> <up interval> <down interval> \
[<num_features> [<feature arguments> ]]
Mandatory parameters:
2019-06-12 14:52:43 -03:00
<dev path>:
Full pathname to the underlying block-device, or a
"major:minor" device-number.
<offset>:
Starting sector within the device.
<up interval>:
Number of seconds device is available.
<down interval>:
Number of seconds device returns errors.
2011-08-02 12:32:05 +01:00
Optional feature parameters:
2019-06-12 14:52:43 -03:00
2011-08-02 12:32:05 +01:00
If no feature parameters are present, during the periods of
unreliability, all I/O returns errors.
drop_writes:
All write I/O is silently ignored.
Read I/O is handled correctly.
2011-08-02 12:32:06 +01:00
2018-10-09 11:31:31 +03:00
error_writes:
All write I/O is failed with an error signalled.
Read I/O is handled correctly.
2011-08-02 12:32:06 +01:00
corrupt_bio_byte <Nth_byte> <direction> <value> <flags>:
During <down interval>, replace <Nth_byte> of the data of
each matching bio with <value>.
2019-06-12 14:52:43 -03:00
<Nth_byte>:
The offset of the byte to replace.
Counting starts at 1, to replace the first byte.
<direction>:
Either 'r' to corrupt reads or 'w' to corrupt writes.
'w' is incompatible with drop_writes.
<value>:
The value (from 0-255) to write.
<flags>:
Perform the replacement only if bio->bi_opf has all the
selected flags set.
2011-08-02 12:32:06 +01:00
Examples:
2019-06-12 14:52:43 -03:00
Replaces the 32nd byte of READ bios with the value 1::
2011-08-02 12:32:06 +01:00
corrupt_bio_byte 32 r 1 0
2019-06-12 14:52:43 -03:00
Replaces the 224th byte of REQ_META (=32) bios with the value 0::
2011-08-02 12:32:06 +01:00
corrupt_bio_byte 224 w 0 32