Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3 |
|
#
b0a9540a |
| 17-Nov-2019 |
Tomohiro Kusumi <kusumi.tomohiro@gmail.com> |
sys/dev/disk/dm: Change email address (sync with autofs/FUSE and others)
|
Revision tags: v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc |
|
#
ca8d6047 |
| 22-Nov-2016 |
Tomohiro Kusumi <kusumi.tomohiro@gmail.com> |
sys/dev/disk/dm: Sync with Linux changes in flakey read behavior
Synw with the following Linux kernel commits. 99f3c90d0d85708e7401a81ce3314e50bf7f2819 299f6230bc6d0ccd5f95bb0fb865d80a9c7d5ccc
Note
sys/dev/disk/dm: Sync with Linux changes in flakey read behavior
Synw with the following Linux kernel commits. 99f3c90d0d85708e7401a81ce3314e50bf7f2819 299f6230bc6d0ccd5f95bb0fb865d80a9c7d5ccc
Note that above commits and this commit change read behavior. It seems the existing read behavior was not what dm-flakey was originally designed to be.
DragonFly's dm-flakey basically just does what Linux dm-flakey does, so this commit just syncs with above changes.
show more ...
|
Revision tags: v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc |
|
#
b9790952 |
| 15-Nov-2015 |
Tomohiro Kusumi <kusumi.tomohiro@gmail.com> |
sys/dev/disk/dm: Add dm-flakey target
This commit adds a new dm target dm-flakey.
This target simulates failing devices for testing purposes. See dm_target_flakey(4) for details.
Note that using t
sys/dev/disk/dm: Add dm-flakey target
This commit adds a new dm target dm-flakey.
This target simulates failing devices for testing purposes. See dm_target_flakey(4) for details.
Note that using this dm target may results in some unstable status including kernel panic. For example hammer is likely to cause kernel panic by write data corruption by dm-flakey. Don't use this target over any block device in production.
===== Example1 - Error write I/Os # kldload dm_target_flakey # dmsetup create flakey1 --table "0 234436482 flakey ${DEV} 0 1 1" # newfs_hammer -L TEST /dev/mapper/flakey1 Volume 0 DEVICE /dev/mapper/flakey1 size 111.79GB initialize freemap volume 0 initializing the undo map (504 MB) newfs_hammer: Write volume 0 (/dev/mapper/flakey1): Input/output error # dmsetup remove /dev/mapper/flakey1
===== Example2 - Silently drop write I/Os # newfs_hammer -L TEST ${DEV} > /dev/null # mount_hammer ${DEV} /HAMMER # cd /HAMMER # git clone /usr/local/src/dragonfly Cloning into 'dragonfly'... done. Checking out files: 100% (34434/34434), done. # cd # umount /HAMMER # dmsetup create flakey2 --table "0 234436482 flakey ${DEV} 0 1 1 1 drop_writes" # mount_hammer /dev/mapper/flakey2 /HAMMER # dmesg | tail -3 HAMMER() Critical error inode=-1 error=5 while flushing meta-data HAMMER() Forcing read-only mode HAMMER(TEST) mounted clean, no recovery needed # hammer volume-list /HAMMER /dev/mapper/flakey2 # mount | grep "/HAMMER" TEST on /HAMMER (hammer, local, read-only) # cd /HAMMER/dragonfly # git log -p > /dev/null; echo $? 0 # cd # umount /HAMMER # dmsetup remove /dev/mapper/flakey2
===== Example3 - Corrupt read I/Os # dd if=/dev/zero of=${DEV} bs=1024 count=10000 >/dev/null 2>&1 # dmsetup create flakey3 --table "0 234436482 flakey ${DEV} 0 1 1 5 corrupt_bio_byte 1 r 65 0" # od -tx1 /dev/mapper/flakey3 | head -10 0000000 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0010000 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0010020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0020000 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0020020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0030000 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 # dmsetup remove /dev/mapper/flakey3 # kldunload dm_target_flakey
show more ...
|