diff options
author | Aaron Tomlin <atomlin@redhat.com> | 2014-01-20 17:34:13 +0000 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-01-25 12:13:33 +0100 |
commit | 270750dbc18a71b23d660df110e433ff9616a2d4 (patch) | |
tree | 9b0400fc3713bd02d31835e8d0315cfbd7ccd912 /kernel/sysctl.c | |
parent | 2397efb1bb17595b35f31abb40d95074ebc04f1b (diff) | |
download | linux-stable-270750dbc18a71b23d660df110e433ff9616a2d4.tar.gz linux-stable-270750dbc18a71b23d660df110e433ff9616a2d4.tar.bz2 linux-stable-270750dbc18a71b23d660df110e433ff9616a2d4.zip |
hung_task: Display every hung task warning
When khungtaskd detects hung tasks, it prints out
backtraces from a number of those tasks.
Limiting the number of backtraces being printed
out can result in the user not seeing the information
necessary to debug the issue. The hung_task_warnings
sysctl controls this feature.
This patch makes it possible for hung_task_warnings
to accept a special value to print an unlimited
number of backtraces when khungtaskd detects hung
tasks.
The special value is -1. To use this value it is
necessary to change types from ulong to int.
Signed-off-by: Aaron Tomlin <atomlin@redhat.com>
Reviewed-by: Rik van Riel <riel@redhat.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: oleg@redhat.com
Link: http://lkml.kernel.org/r/1390239253-24030-3-git-send-email-atomlin@redhat.com
[ Build warning fix. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index c398a58673a7..dd5b4496637e 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -122,7 +122,8 @@ extern int blk_iopoll_enabled; static int sixty = 60; #endif -static int neg_one = -1; +static int __maybe_unused neg_one = -1; + static int zero; static int __maybe_unused one = 1; static int __maybe_unused two = 2; @@ -978,9 +979,10 @@ static struct ctl_table kern_table[] = { { .procname = "hung_task_warnings", .data = &sysctl_hung_task_warnings, - .maxlen = sizeof(unsigned long), + .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_doulongvec_minmax, + .proc_handler = proc_dointvec_minmax, + .extra1 = &neg_one, }, #endif #ifdef CONFIG_COMPAT |