* [RFC PATCH 0/2] hung_task: Display every hung task warning @ 2014-01-13 17:14 atomlin 2014-01-13 17:14 ` [RFC PATCH 1/2] sysctl: Make neg_one a standard constraint atomlin 2014-01-13 17:14 ` [RFC PATCH 2/2] hung_task: Display every hung task warning atomlin 0 siblings, 2 replies; 6+ messages in thread From: atomlin @ 2014-01-13 17:14 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, oleg, riel, akpm From: Aaron Tomlin <atomlin@redhat.com> Enable hung_task_warnings to display every hung task warning, when set to -1. While ULONG_MAX is practically "unlimited", this patch takes it one step further. Note: The maximum is now 2^31-1 which should (hopefully) be sufficient. Please let me know your thoughts. Aaron Tomlin (2): sysctl: Make neg_one a standard constraint hung_task: Display every hung task warning include/linux/sched/sysctl.h | 2 +- kernel/hung_task.c | 9 +++++---- kernel/sysctl.c | 6 ++++-- 3 files changed, 10 insertions(+), 7 deletions(-) -- 1.8.4.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [RFC PATCH 1/2] sysctl: Make neg_one a standard constraint 2014-01-13 17:14 [RFC PATCH 0/2] hung_task: Display every hung task warning atomlin @ 2014-01-13 17:14 ` atomlin 2014-01-14 14:13 ` Rik van Riel 2014-01-13 17:14 ` [RFC PATCH 2/2] hung_task: Display every hung task warning atomlin 1 sibling, 1 reply; 6+ messages in thread From: atomlin @ 2014-01-13 17:14 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, oleg, riel, akpm From: Aaron Tomlin <atomlin@redhat.com> Add neg_one to the list of standard constraints. Signed-off-by: Aaron Tomlin <atomlin@redhat.com> --- kernel/sysctl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 34a6047..dd531a6 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -122,6 +122,7 @@ extern int blk_iopoll_enabled; static int sixty = 60; #endif +static int neg_one = -1; static int zero; static int __maybe_unused one = 1; static int __maybe_unused two = 2; -- 1.8.4.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RFC PATCH 1/2] sysctl: Make neg_one a standard constraint 2014-01-13 17:14 ` [RFC PATCH 1/2] sysctl: Make neg_one a standard constraint atomlin @ 2014-01-14 14:13 ` Rik van Riel 0 siblings, 0 replies; 6+ messages in thread From: Rik van Riel @ 2014-01-14 14:13 UTC (permalink / raw) To: atomlin, linux-kernel; +Cc: mingo, oleg, akpm On 01/13/2014 12:14 PM, atomlin@redhat.com wrote: > From: Aaron Tomlin <atomlin@redhat.com> > > Add neg_one to the list of standard constraints. > > Signed-off-by: Aaron Tomlin <atomlin@redhat.com> Acked-by: Rik van Riel <riel@redhat.com> -- All rights reversed ^ permalink raw reply [flat|nested] 6+ messages in thread
* [RFC PATCH 2/2] hung_task: Display every hung task warning 2014-01-13 17:14 [RFC PATCH 0/2] hung_task: Display every hung task warning atomlin 2014-01-13 17:14 ` [RFC PATCH 1/2] sysctl: Make neg_one a standard constraint atomlin @ 2014-01-13 17:14 ` atomlin 2014-01-14 14:13 ` Rik van Riel 1 sibling, 1 reply; 6+ messages in thread From: atomlin @ 2014-01-13 17:14 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, oleg, riel, akpm From: Aaron Tomlin <atomlin@redhat.com> Enable hung_task_warnings to display every hung task warning when set to -1. Signed-off-by: Aaron Tomlin <atomlin@redhat.com> --- include/linux/sched/sysctl.h | 2 +- kernel/hung_task.c | 9 +++++---- kernel/sysctl.c | 5 +++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h index 41467f8..eb3c72d7 100644 --- a/include/linux/sched/sysctl.h +++ b/include/linux/sched/sysctl.h @@ -5,7 +5,7 @@ extern int sysctl_hung_task_check_count; extern unsigned int sysctl_hung_task_panic; extern unsigned long sysctl_hung_task_timeout_secs; -extern unsigned long sysctl_hung_task_warnings; +extern int sysctl_hung_task_warnings; extern int proc_dohung_task_timeout_secs(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos); diff --git a/kernel/hung_task.c b/kernel/hung_task.c index 9328b80..343ed70 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -37,7 +37,7 @@ int __read_mostly sysctl_hung_task_check_count = PID_MAX_LIMIT; */ unsigned long __read_mostly sysctl_hung_task_timeout_secs = CONFIG_DEFAULT_HUNG_TASK_TIMEOUT; -unsigned long __read_mostly sysctl_hung_task_warnings = 10; +int __read_mostly sysctl_hung_task_warnings = 10; static int __read_mostly did_panic; @@ -98,11 +98,12 @@ static void check_hung_task(struct task_struct *t, unsigned long timeout) if (!sysctl_hung_task_warnings) return; - sysctl_hung_task_warnings--; + + if (sysctl_hung_task_warnings > 0) + sysctl_hung_task_warnings--; /* - * Ok, the task did not get scheduled for more than 2 minutes, - * complain: + * Ok, the task did not get scheduled for a while, complain: */ pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n", t->comm, t->pid, timeout); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index dd531a6..b50cd13 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -985,9 +985,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 -- 1.8.4.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RFC PATCH 2/2] hung_task: Display every hung task warning 2014-01-13 17:14 ` [RFC PATCH 2/2] hung_task: Display every hung task warning atomlin @ 2014-01-14 14:13 ` Rik van Riel 2014-01-14 16:33 ` Ingo Molnar 0 siblings, 1 reply; 6+ messages in thread From: Rik van Riel @ 2014-01-14 14:13 UTC (permalink / raw) To: atomlin, linux-kernel; +Cc: mingo, oleg, akpm On 01/13/2014 12:14 PM, atomlin@redhat.com wrote: > From: Aaron Tomlin <atomlin@redhat.com> > > Enable hung_task_warnings to display every hung > task warning when set to -1. > > Signed-off-by: Aaron Tomlin <atomlin@redhat.com> Aaron and I talked on IRC, and after some talking these patches now make sense to me :) The kernel apparently limits how many hung task warnings it will display at a time, when a timeout occurs. Aaron's patch allows that limit to be set to "unlimited", which will cause the kernel to display info about all hung tasks. Reviewed-by: Rik van Riel <riel@redhat.com> -- All rights reversed ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC PATCH 2/2] hung_task: Display every hung task warning 2014-01-14 14:13 ` Rik van Riel @ 2014-01-14 16:33 ` Ingo Molnar 0 siblings, 0 replies; 6+ messages in thread From: Ingo Molnar @ 2014-01-14 16:33 UTC (permalink / raw) To: Rik van Riel; +Cc: atomlin, linux-kernel, oleg, akpm * Rik van Riel <riel@redhat.com> wrote: > On 01/13/2014 12:14 PM, atomlin@redhat.com wrote: > > From: Aaron Tomlin <atomlin@redhat.com> > > > > Enable hung_task_warnings to display every hung > > task warning when set to -1. > > > > Signed-off-by: Aaron Tomlin <atomlin@redhat.com> > > Aaron and I talked on IRC, and after some talking these patches > now make sense to me :) > > The kernel apparently limits how many hung task warnings it > will display at a time, when a timeout occurs. Aaron's patch > allows that limit to be set to "unlimited", which will cause > the kernel to display info about all hung tasks. The changelog needs to be updated with such kind of descriptive information. Thanks, Ingo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-01-14 16:33 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-01-13 17:14 [RFC PATCH 0/2] hung_task: Display every hung task warning atomlin 2014-01-13 17:14 ` [RFC PATCH 1/2] sysctl: Make neg_one a standard constraint atomlin 2014-01-14 14:13 ` Rik van Riel 2014-01-13 17:14 ` [RFC PATCH 2/2] hung_task: Display every hung task warning atomlin 2014-01-14 14:13 ` Rik van Riel 2014-01-14 16:33 ` Ingo Molnar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox