[dm-devel] [PATCH 0/9] dm flakey: add features
Mike Snitzer
snitzer at redhat.com
Mon Jun 27 19:53:34 UTC 2011
Add "drop_writes", "corrupt_bio_byte" and "debug" features to the
flakey target. This work was motivated by a need to test the checksum
support of the new DM multisnapshot target.
I was able to successfully test multisnap checksums with the
following:
load a previously created multisnapshot pool that has a valid
multisnap metadata superblock, when reading write 1 to the 352rd byte
of the bio (352 happens to the offset to an unused compat_flags field
in 'struct multisnap_super_block; the change causes the multisnap crc
code to notice):
echo "0 20971520 flakey 254:16 2048 0 5 5 corrupt_bio_byte 352 0 1 debug" | dmsetup create multisnap-metadata
echo "0 209715200 multisnap-pool 253:0 253:1 128 32" | dmsetup create pool
device-mapper: reload ioctl failed: Cannot allocate memory
Command failed
(NOTE: I need to cleanup the multisnapshot code so it doesn't throw
errors on the floor, checksum failure returns -EILSEQ not -ENOMEM)
The kernel log showed:
corrupting data bio=ffff88007c8d5140 by writing 1 to byte 352 (rw=0 flags=0 bi_sector=2056 cur_bytes=4096)
multisnap sb_check failed csum 4189028790 wanted 227629054
superblock validator check failed for block 0
couldn't lock superblock
tm_open_with_sm failed
device-mapper: table: 253:2: multisnap-pool: Error creating metadata object
device-mapper: ioctl: error adding target to table
Mike Snitzer (9):
dm: factor out target argument parsing helpers
dm flakey: use dm_target_offset() and support discards
dm flakey: start of adding features
dm flakey: add drop_writes feature
dm flakey: add corrupt_bio_byte feature
dm flakey: add corrupt_bio_byte read support
dm flakey: switch corrupt_bio_data_dir to corrupt_bio_flags
dm flakey: add ability to specify the corrupting value to be written
dm flakey: add debug feature to control debug output
drivers/md/dm-flakey.c | 203 +++++++++++++++++++++++++++++++++++++---
drivers/md/dm-mpath.c | 119 ++++++++-----------------
drivers/md/dm-table.c | 40 ++++++++
include/linux/device-mapper.h | 18 ++++
4 files changed, 282 insertions(+), 98 deletions(-)
More information about the dm-devel
mailing list