|
@@ -98,26 +98,26 @@ static void check_hung_task(struct task_struct *t, unsigned long timeout)
|
|
|
|
|
|
trace_sched_process_hang(t);
|
|
|
|
|
|
- if (!sysctl_hung_task_warnings)
|
|
|
+ if (!sysctl_hung_task_warnings && !sysctl_hung_task_panic)
|
|
|
return;
|
|
|
|
|
|
- if (sysctl_hung_task_warnings > 0)
|
|
|
- sysctl_hung_task_warnings--;
|
|
|
-
|
|
|
/*
|
|
|
* Ok, the task did not get scheduled for more than 2 minutes,
|
|
|
* complain:
|
|
|
*/
|
|
|
- pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n",
|
|
|
- t->comm, t->pid, timeout);
|
|
|
- pr_err(" %s %s %.*s\n",
|
|
|
- print_tainted(), init_utsname()->release,
|
|
|
- (int)strcspn(init_utsname()->version, " "),
|
|
|
- init_utsname()->version);
|
|
|
- pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\""
|
|
|
- " disables this message.\n");
|
|
|
- sched_show_task(t);
|
|
|
- debug_show_all_locks();
|
|
|
+ if (sysctl_hung_task_warnings) {
|
|
|
+ sysctl_hung_task_warnings--;
|
|
|
+ pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n",
|
|
|
+ t->comm, t->pid, timeout);
|
|
|
+ pr_err(" %s %s %.*s\n",
|
|
|
+ print_tainted(), init_utsname()->release,
|
|
|
+ (int)strcspn(init_utsname()->version, " "),
|
|
|
+ init_utsname()->version);
|
|
|
+ pr_err("\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\""
|
|
|
+ " disables this message.\n");
|
|
|
+ sched_show_task(t);
|
|
|
+ debug_show_all_locks();
|
|
|
+ }
|
|
|
|
|
|
touch_nmi_watchdog();
|
|
|
|