aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sysctl.c
diff options
context:
space:
mode:
authorMandeep Singh Baines <msb@google.com>2009-01-15 14:08:40 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-16 08:06:04 -0500
commite162b39a368f0401e41b558f430c354d12a85b37 (patch)
tree3fb7e4d48f398d62e5074e7e3dd183cc54f59820 /kernel/sysctl.c
parentc903ff837909ccada51243307d4239f86af40179 (diff)
softlockup: decouple hung tasks check from softlockup detection
Decoupling allows: * hung tasks check to happen at very low priority * hung tasks check and softlockup to be enabled/disabled independently at compile and/or run-time * individual panic settings to be enabled disabled independently at compile and/or run-time * softlockup threshold to be reduced without increasing hung tasks poll frequency (hung task check is expensive relative to softlock watchdog) * hung task check to be zero over-head when disabled at run-time Signed-off-by: Mandeep Singh Baines <msb@google.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r--kernel/sysctl.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 596dc31a7116..2481ed30d2b5 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -805,6 +805,19 @@ static struct ctl_table kern_table[] = {
805 .extra1 = &neg_one, 805 .extra1 = &neg_one,
806 .extra2 = &sixty, 806 .extra2 = &sixty,
807 }, 807 },
808#endif
809#ifdef CONFIG_DETECT_HUNG_TASK
810 {
811 .ctl_name = CTL_UNNUMBERED,
812 .procname = "hung_task_panic",
813 .data = &sysctl_hung_task_panic,
814 .maxlen = sizeof(int),
815 .mode = 0644,
816 .proc_handler = &proc_dointvec_minmax,
817 .strategy = &sysctl_intvec,
818 .extra1 = &zero,
819 .extra2 = &one,
820 },
808 { 821 {
809 .ctl_name = CTL_UNNUMBERED, 822 .ctl_name = CTL_UNNUMBERED,
810 .procname = "hung_task_check_count", 823 .procname = "hung_task_check_count",
@@ -820,7 +833,7 @@ static struct ctl_table kern_table[] = {
820 .data = &sysctl_hung_task_timeout_secs, 833 .data = &sysctl_hung_task_timeout_secs,
821 .maxlen = sizeof(unsigned long), 834 .maxlen = sizeof(unsigned long),
822 .mode = 0644, 835 .mode = 0644,
823 .proc_handler = &proc_doulongvec_minmax, 836 .proc_handler = &proc_dohung_task_timeout_secs,
824 .strategy = &sysctl_intvec, 837 .strategy = &sysctl_intvec,
825 }, 838 },
826 { 839 {