Skip to content

Commit

Permalink
[PATCH] fault-injection: Correct, disambiguate, and reformat document…
Browse files Browse the repository at this point in the history
…ation

Correct, disambiguate, and reformat documentation.

Signed-off-by: Don Mullis <dwm@meer.net>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Don Mullis authored and Linus Torvalds committed Dec 8, 2006
1 parent 83ba254 commit 5d0ffa2
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 37 deletions.
4 changes: 2 additions & 2 deletions Documentation/fault-injection/failmodule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ fi
# Disable any fault injection
echo 0 > /debug/$1/stacktrace-depth

echo `cat /sys/module/$2/sections/.text` > /debug/$1/address-start
echo `cat /sys/module/$2/sections/.exit.text` > /debug/$1/address-end
echo `cat /sys/module/$2/sections/.text` > /debug/$1/require-start
echo `cat /sys/module/$2/sections/.exit.text` > /debug/$1/require-end
echo $STACKTRACE_DEPTH > /debug/$1/stacktrace-depth
70 changes: 35 additions & 35 deletions Documentation/fault-injection/fault-injection.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ o fail_page_alloc

o fail_make_request

injects disk IO errors on permitted devices by
injects disk IO errors on devices permitted by setting
/sys/block/<device>/make-it-fail or
/sys/block/<device>/<partition>/make-it-fail. (generic_make_request())

Expand All @@ -29,54 +29,53 @@ o debugfs entries
fault-inject-debugfs kernel module provides some debugfs entries for runtime
configuration of fault-injection capabilities.

- /debug/*/probability:
- /debug/fail*/probability:

likelihood of failure injection, in percent.
Format: <percent>

Note that one-failure-per-handred is a very high error rate
for some testcases. Please set probably=100 and configure
/debug/*/interval for such testcases.
Note that one-failure-per-hundred is a very high error rate
for some testcases. Consider setting probability=100 and configure
/debug/fail*/interval for such testcases.

- /debug/*/interval:
- /debug/fail*/interval:

specifies the interval between failures, for calls to
should_fail() that pass all the other tests.

Note that if you enable this, by setting interval>1, you will
probably want to set probability=100.

- /debug/*/times:
- /debug/fail*/times:

specifies how many times failures may happen at most.
A value of -1 means "no limit".

- /debug/*/space:
- /debug/fail*/space:

specifies an initial resource "budget", decremented by "size"
on each call to should_fail(,size). Failure injection is
suppressed until "space" reaches zero.

- /debug/*/verbose
- /debug/fail*/verbose

Format: { 0 | 1 | 2 }
specifies the verbosity of the messages when failure is injected.
We default to 0 (no extra messages), setting it to '1' will
print only to tell failure happened, '2' will print call trace too -
it is useful to debug the problems revealed by fault injection
capabilities.
specifies the verbosity of the messages when failure is
injected. '0' means no messages; '1' will print only a single
log line per failure; '2' will print a call trace too -- useful
to debug the problems revealed by fault injection.

- /debug/*/task-filter:
- /debug/fail*/task-filter:

Format: { 0 | 1 }
A value of '0' disables filtering by process (default).
Format: { 'Y' | 'N' }
A value of 'N' disables filtering by process (default).
Any positive value limits failures to only processes indicated by
/proc/<pid>/make-it-fail==1.

- /debug/*/require-start:
- /debug/*/require-end:
- /debug/*/reject-start:
- /debug/*/reject-end:
- /debug/fail*/require-start:
- /debug/fail*/require-end:
- /debug/fail*/reject-start:
- /debug/fail*/reject-end:

specifies the range of virtual addresses tested during
stacktrace walking. Failure is injected only if some caller
Expand All @@ -85,22 +84,23 @@ configuration of fault-injection capabilities.
Default required range is [0,ULONG_MAX) (whole of virtual address space).
Default rejected range is [0,0).

- /debug/*/stacktrace-depth:
- /debug/fail*/stacktrace-depth:

specifies the maximum stacktrace depth walked during search
for a caller within [address-start,address-end).
for a caller within [require-start,require-end) OR
[reject-start,reject-end).

- /debug/fail_page_alloc/ignore-gfp-highmem:

Format: { 0 | 1 }
default is 0, setting it to '1' won't inject failures into
Format: { 'Y' | 'N' }
default is 'N', setting it to 'Y' won't inject failures into
highmem/user allocations.

- /debug/failslab/ignore-gfp-wait:
- /debug/fail_page_alloc/ignore-gfp-wait:

Format: { 0 | 1 }
default is 0, setting it to '1' will inject failures
Format: { 'Y' | 'N' }
default is 'N', setting it to 'Y' will inject failures
only into non-sleep allocations (GFP_ATOMIC allocations).

o Boot option
Expand All @@ -124,22 +124,22 @@ o define the fault attributes
Please see the definition of struct fault_attr in fault-inject.h
for details.

o provide the way to configure fault attributes
o provide a way to configure fault attributes

- boot option

If you need to enable the fault injection capability from boot time, you can
provide boot option to configure it. There is a helper function for it.
provide boot option to configure it. There is a helper function for it:

setup_fault_attr(attr, str);
setup_fault_attr(attr, str);

- debugfs entries

failslab, fail_page_alloc, and fail_make_request use this way.
There is a helper function for it.
Helper functions:

init_fault_attr_entries(entries, attr, name);
void cleanup_fault_attr_entries(entries);
init_fault_attr_entries(entries, attr, name);
void cleanup_fault_attr_entries(entries);

- module parameters

Expand All @@ -149,9 +149,9 @@ o provide the way to configure fault attributes

o add a hook to insert failures

should_fail() returns 1 when failures should happen.
Upon should_fail() returning true, client code should inject a failure.

should_fail(attr,size);
should_fail(attr, size);

Application Examples
--------------------
Expand Down

0 comments on commit 5d0ffa2

Please sign in to comment.