All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

* [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 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

* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.