Skip to content
Sergey Bronnikov edited this page Feb 9, 2021 · 15 revisions
Tool Level Target Comment
CharybdeFS Userspace (FUSE) Filesystem Requires Thrift
PetardFS Userspace (FUSE) Filesystem https://github.com/jrandall/petardfs
UnreliableFS Userspace (FUSE) Filesystem https://github.com/ligurio/unreliablefs
Device Mapper Kernel space Disk I/O Use Device Mapper's error/flakey/delay/dm-dust devices to return errors/corruption from, or delay/split IO to a synthesized block device (kernel, requires kernel to have been built with device mapper support, appropriate additional device mapper modules (dm-dust is only available on kernel >=5.2) and to have device mapper userspace bits). https://www.kernel.org/doc/Documentation/device-mapper/delay.txt
QEMU Hardware Disk, Memory blkdebug https://github.com/qemu/qemu/blob/master/docs/devel/blkdebug.txt
sysrq Kernel space OS crash echo c > /proc/sysrq-trigger, https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
BSOD Kernel space OS crash Windows only, https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/forcing-a-system-crash-from-the-keyboard
strace Userspace POSIX API calls https://strace.io/
libfui Userspace (LD_PRELOAD) POSIX API calls Use libfiu to perform fault injection on POSIX API calls, http://blitiri.com.ar/p/libfiu/
SystemTap Userspace POSIX API calls Using SystemTap to do fault injection (kernel, requires a kernel to have been built with lots of stuff), https://lwn.net/Articles/289932/
libfaketime Userspace (LD_PRELOAD) https://github.com/wolfcw/libfaketime
strobe time Userspace https://github.com/jepsen-io/jepsen/tree/main/jepsen/resources
Linux kernel's fault injector Kernel space Use the Linux kernel's fault injector to inject an error into the underlying block device (kernel, requires kernel to have been built with FAIL_MAKE_REQUEST=y).
trickle Userspace Network bandwidth Bandwidth shaper for Unix-like systems, https://github.com/mariusae/trickle
tc (Linux), dummynet (FreeBSD) Kernel space Network bandwidth https://man7.org/linux/man-pages/man8/tc.8.html, https://www.freebsd.org/cgi/man.cgi?dummynet
Linux kernel NVMe fault injection Kernel space NVMe https://www.kernel.org/doc/html/latest/fault-injection/nvme-fault-injection.html
Linux kernel notifier fault injection Kernel space Kernel events https://www.kernel.org/doc/html/latest/fault-injection/notifier-error-inject.html
Linux kernel fault injection capabilities infrastructure Kernel space Memory https://www.kernel.org/doc/html/latest/fault-injection/fault-injection.html

Clone this wiki locally