Skip to content

RFC: fault-injection capabilities (v2)

Akinobu Mita lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 6 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6fault-injection capabilities infrastructureinclude/linux/should_fail.h lib/Kconfig.debug lib/Makefile +1 more+132 -01 reply
2/6fault-injection capability for kmalloc.include/linux/should_fail.h lib/Kconfig.debug mm/slab.c+32 -00 replies
3/6fault-injection capability for alloc_pages()include/linux/should_fail.h lib/Kconfig.debug mm/page_alloc.c+32 -03 replies
4/6fault-injection capability for disk IOblock/genhd.c block/ll_rw_blk.c fs/partitions/check.c +3 more+105 -00 replies
5/6debugfs entries for configurationlib/Kconfig.debug lib/Makefile lib/should_fail_knobs.c+177 -00 replies
6/6process filtering for fault-injection capabilitiesfs/proc/base.c include/linux/sched.h include/linux/should_fail.h +2 more+101 -30 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [patch 0/6] RFC: fault-injection capabilities (v2)

Changes from last version

- use lightweight random simulator instead of get_random_int()
- added per queue filter for disk IO failures (/sys/blocks/sda/sda1/make-it-fail, /sys/blocks/sda/make-it-fail)
- added process filter (/debug/{failslab,fail_page_alloc,fail_make_request}/process-filter, /proc/<pid>/make-it-fail)

---
This patch set provides some fault-injection capabilities.

- kmalloc failures

- alloc_pages() failures

- disk IO errors

We can see what really happens if those failures happen.

In order to enable these fault-injection capabilities:

1. Enable relevant config options (CONFIG_FAILSLAB, CONFIG_PAGE_ALLOC, CONFIG_MAKE_REQUEST) and runtime configuration kernel module (CONFIG_SHOULD_FAIL_KNOBS)

2. build and boot with this kernel

3. modprobe should_fail_knob

4. configure fault-injection capabilities behavior by debugfs

For example about kmalloc failures:

/debug/failslab/probability

specifies how often it should fail in percent.

/debug/failslab/interval

specifies the interval of failures.

/debug/failslab/times

specifies how many times failures may happen at most.

/debug/failslab/space

specifies the size of free space where memory can be allocated safely in bytes.

/debug/failslab/process-filter

enable process filter.

5. see what really happens.