mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 19:36:44 +07:00
a3998799fb
Add corrupt_bio_byte feature to simulate corruption by overwriting a byte at a specified position with a specified value during intervals when the device is "down". Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
54 lines
1.9 KiB
Plaintext
54 lines
1.9 KiB
Plaintext
dm-flakey
|
|
=========
|
|
|
|
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.
|
|
|
|
Starting from the time the table is loaded, the device is available for
|
|
<up interval> seconds, then exhibits unreliable behaviour for <down
|
|
interval> seconds, and then this cycle repeats.
|
|
|
|
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
|
|
----------------
|
|
<dev path> <offset> <up interval> <down interval> \
|
|
[<num_features> [<feature arguments>]]
|
|
|
|
Mandatory parameters:
|
|
<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.
|
|
|
|
Optional feature parameters:
|
|
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.
|
|
|
|
corrupt_bio_byte <Nth_byte> <direction> <value> <flags>:
|
|
During <down interval>, replace <Nth_byte> of the data of
|
|
each matching bio with <value>.
|
|
|
|
<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_rw has all the
|
|
selected flags set.
|
|
|
|
Examples:
|
|
corrupt_bio_byte 32 r 1 0
|
|
- replaces the 32nd byte of READ bios with the value 1
|
|
|
|
corrupt_bio_byte 224 w 0 32
|
|
- replaces the 224th byte of REQ_META (=32) bios with the value 0
|