mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
hung_task: log summary line when warning budget is exhausted
Once the warning budget is exhausted, hung_task_info() normally stops printing per-task details. When panic is triggered, full details are still printed so diagnostics remain available before panic. To retain visibility without restoring per-task output after budget exhaustion, emit a single aggregate summary line at the end of each watchdog scan that detects hung tasks with an exhausted budget. This keeps non-panic per-task reports budgeted during system-wide hangs. Link: https://lore.kernel.org/20261004163610.413506-3-atomlin@atomlin.com Signed-off-by: Aaron Tomlin <atomlin@atomlin.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Suggested-by: Petr Mladek <pmladek@suse.com> Suggested-by: Lance Yang <lance.yang@linux.dev> Reviewed-by: Petr Mladek <pmladek@suse.com> Reviewed-by: Lance Yang <lance.yang@linux.dev> Reviewed-by: Bradley Morgan <brads@mainlining.org> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: David Laight <david.laight.linux@gmail.com> Cc: Daniel Vacek <neelx@suse.com> Cc: Sean Ashe <sean@ashe.io> Cc: <chjohnst@gmail.com> Cc: <steve@abita.co> Cc: <mproche@gmail.com> Cc: <nick.lange@gmail.com>
This commit is contained in:
parent
e614d360f3
commit
36dd57d0ae
|
|
@ -276,8 +276,8 @@ static void hung_task_info(struct task_struct *t, unsigned long timeout,
|
|||
sched_show_task(t);
|
||||
debug_show_blocker(t, timeout);
|
||||
|
||||
if (!hung_task_warnings_budget)
|
||||
pr_info("Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings\n");
|
||||
if (!hung_task_warnings_budget && !hung_task_call_panic)
|
||||
pr_info("hung_task: further per-task details suppressed until warning budget is reset (see sysctl kernel.hung_task_warnings)\n");
|
||||
}
|
||||
|
||||
touch_nmi_watchdog();
|
||||
|
|
@ -363,6 +363,10 @@ static void check_hung_uninterruptible_tasks(unsigned long timeout)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!hung_task_warnings_budget && !hung_task_call_panic)
|
||||
pr_info("hung_task: %lu hung tasks detected, warning budget exhausted\n",
|
||||
this_round_count);
|
||||
|
||||
if (need_warning || hung_task_call_panic) {
|
||||
si_mask |= SYS_INFO_LOCKS;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user