Skip to content
Commit e4f3fabd authored by Bryan Gurney's avatar Bryan Gurney Committed by Mike Snitzer
Browse files

dm: add dust target



Add the dm-dust target, which simulates the behavior of bad sectors
at arbitrary locations, and the ability to enable the emulation of
the read failures at an arbitrary time.

This target behaves similarly to a linear target.  At a given time,
the user can send a message to the target to start failing read
requests on specific blocks.  When the failure behavior is enabled,
reads of blocks configured "bad" will fail with EIO.

Writes of blocks configured "bad" will result in the following:

1. Remove the block from the "bad block list".
2. Successfully complete the write.

After this point, the block will successfully contain the written
data, and will service reads and writes normally.  This emulates the
behavior of a "remapped sector" on a hard disk drive.

dm-dust provides logging of which blocks have been added or removed
to the "bad block list", as well as logging when a block has been
removed from the bad block list.  These messages can be used
alongside the messages from the driver using a dm-dust device to
analyze the driver's behavior when a read fails at a given time.

(This logging can be reduced via a "quiet" mode, if desired.)

NOTE: If the block size is larger than 512 bytes, only the first sector
of each "dust block" is detected.  Placing a limiting layer above a dust
target, to limit the minimum I/O size to the dust block size, will
ensure proper emulation of the given large block size.

Signed-off-by: default avatarBryan Gurney <bgurney@redhat.com>
Co-developed-by: default avatarJoe Shimkus <jshimkus@redhat.com>
Co-developed-by: default avatarJohn Dorminy <jdorminy@redhat.com>
Co-developed-by: default avatarJohn Pittman <jpittman@redhat.com>
Co-developed-by: default avatarThomas Jaskiewicz <tjaskiew@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent f8011d33
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment