2006-09-14 10:20:32

by Akinobu Mita

[permalink] [raw]
Subject: [patch 0/8] fault-injection capabilities (v3)

Changes from last version

- add stacktrace filter
- drop process-filter from boot-time setup
- build fixes from Don Mullis
- add documentation and some scripts

---

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_FAULT_INJECTION_DEBUGFS)

2. build and boot with this kernel

3. modprobe fault-inject-debugfs

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

specifies whether process filter is enabled or not.
it allows failing only permitted processes by /proc/<pid>/make-it-fail

/debug/failslab/stacktrace-depth

specifies the maximum stacktrace depth walking allowed.
a value '0' means stacktrace filter is disabled.

/debug/failslab/address-start
/debug/failslab/address-end

specifies the range of virtual address.
it allows failing only if the stacktrace hits in this range.

5. see what really happens.