diff options
author | Kurt Garloff <garloff@suse.de> | 2009-06-24 17:32:11 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-06-25 16:06:11 -0400 |
commit | 5211a242d0cbdded372aee59da18f80552b0a80a (patch) | |
tree | 5d2a853e538b8478648a57efe94ef049e76e13e6 /kernel/sysctl.c | |
parent | 9c26f52b900f7207135bafc8789e1a4f5d43e096 (diff) |
x86: Add sysctl to allow panic on IOCK NMI error
This patch introduces a new sysctl:
/proc/sys/kernel/panic_on_io_nmi
which defaults to 0 (off).
When enabled, the kernel panics when the kernel receives an NMI
caused by an IO error.
The IO error triggered NMI indicates a serious system
condition, which could result in IO data corruption. Rather
than contiuing, panicing and dumping might be a better choice,
so one can figure out what's causing the IO error.
This could be especially important to companies running IO
intensive applications where corruption must be avoided, e.g. a
bank's databases.
[ SuSE has been shipping it for a while, it was done at the
request of a large database vendor, for their users. ]
Signed-off-by: Kurt Garloff <garloff@suse.de>
Signed-off-by: Roberto Angelino <robertangelino@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
LKML-Reference: <20090624213211.GA11291@kroah.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 62e4ff9968b5..fba42eda8de2 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -744,6 +744,14 @@ static struct ctl_table kern_table[] = { | |||
744 | .proc_handler = &proc_dointvec, | 744 | .proc_handler = &proc_dointvec, |
745 | }, | 745 | }, |
746 | { | 746 | { |
747 | .ctl_name = CTL_UNNUMBERED, | ||
748 | .procname = "panic_on_io_nmi", | ||
749 | .data = &panic_on_io_nmi, | ||
750 | .maxlen = sizeof(int), | ||
751 | .mode = 0644, | ||
752 | .proc_handler = &proc_dointvec, | ||
753 | }, | ||
754 | { | ||
747 | .ctl_name = KERN_BOOTLOADER_TYPE, | 755 | .ctl_name = KERN_BOOTLOADER_TYPE, |
748 | .procname = "bootloader_type", | 756 | .procname = "bootloader_type", |
749 | .data = &bootloader_type, | 757 | .data = &bootloader_type, |