diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2012-07-30 17:43:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-30 20:25:22 -0400 |
commit | 8d438288145f19f253a82ca71290b44fce79e23f (patch) | |
tree | 521c1086079ed8fb78aa622cf19bdbcfd53cbe12 /lib/Kconfig.debug | |
parent | 1d151c337d79fa3de88654d2514f58fbd916a8e0 (diff) |
fault-injection: notifier error injection
This patchset provides kernel modules that can be used to test the error
handling of notifier call chain failures by injecting artifical errors to
the following notifier chain callbacks.
* CPU notifier
* PM notifier
* memory hotplug notifier
* powerpc pSeries reconfig notifier
Example: Inject CPU offline error (-1 == -EPERM)
# cd /sys/kernel/debug/notifier-error-inject/cpu
# echo -1 > actions/CPU_DOWN_PREPARE/error
# echo 0 > /sys/devices/system/cpu/cpu1/online
bash: echo: write error: Operation not permitted
The patchset also adds cpu and memory hotplug tests to
tools/testing/selftests These tests first do simple online and offline
test and then do fault injection tests if notifier error injection
module is available.
This patch:
The notifier error injection provides the ability to inject artifical
errors to specified notifier chain callbacks. It is useful to test the
error handling of notifier call chain failures.
This adds common basic functions to define which type of events can be
fail and to initialize the debugfs interface to control what error code
should be returned and which event should be failed.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Greg KH <greg@kroah.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <michael@ellerman.id.au>
Cc: Dave Jones <davej@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/Kconfig.debug')
-rw-r--r-- | lib/Kconfig.debug | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 4a186508bf8b..bdee91d50a5b 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -1084,6 +1084,17 @@ config LKDTM | |||
1084 | Documentation on how to use the module can be found in | 1084 | Documentation on how to use the module can be found in |
1085 | Documentation/fault-injection/provoke-crashes.txt | 1085 | Documentation/fault-injection/provoke-crashes.txt |
1086 | 1086 | ||
1087 | config NOTIFIER_ERROR_INJECTION | ||
1088 | tristate "Notifier error injection" | ||
1089 | depends on DEBUG_KERNEL | ||
1090 | select DEBUG_FS | ||
1091 | help | ||
1092 | This option provides the ability to inject artifical errors to | ||
1093 | specified notifier chain callbacks. It is useful to test the error | ||
1094 | handling of notifier call chain failures. | ||
1095 | |||
1096 | Say N if unsure. | ||
1097 | |||
1087 | config CPU_NOTIFIER_ERROR_INJECT | 1098 | config CPU_NOTIFIER_ERROR_INJECT |
1088 | tristate "CPU notifier error injection module" | 1099 | tristate "CPU notifier error injection module" |
1089 | depends on HOTPLUG_CPU && DEBUG_KERNEL | 1100 | depends on HOTPLUG_CPU && DEBUG_KERNEL |