Thread (3 messages) read the whole thread 3 messages, 2 authors, 2025-10-14

Re: [PATCH][v3] hung_task: Panic after fixed number of hung tasks

From: Petr Mladek <pmladek@suse.com>
Date: 2025-10-14 09:45:09
Also in: linux-aspeed, linux-doc, linux-kselftest, lkml, netdev

On Tue 2025-10-14 13:23:58, Lance Yang wrote:
Thanks for the patch!

I noticed the implementation panics only when N tasks are detected
within a single scan, because total_hung_task is reset for each
check_hung_uninterruptible_tasks() run.
Great catch!

Does it make sense?
Is is the intended behavior, please?
So some suggestions to align the documentation with the code's
behavior below :)
On 2025/10/12 19:50, lirongqing wrote:
quoted
From: Li RongQing <redacted>

Currently, when 'hung_task_panic' is enabled, the kernel panics
immediately upon detecting the first hung task. However, some hung
tasks are transient and the system can recover, while others are
persistent and may accumulate progressively.
My understanding is that this patch wanted to do:

   + report even temporary stalls
   + panic only when the stall was much longer and likely persistent

Which might make some sense. But the code does something else.
quoted
--- a/kernel/hung_task.c
+++ b/kernel/hung_task.c
@@ -229,9 +232,11 @@ static void check_hung_task(struct task_struct *t, unsigned long timeout)
  	 */
  	sysctl_hung_task_detect_count++;
+	total_hung_task = sysctl_hung_task_detect_count - prev_detect_count;
  	trace_sched_process_hang(t);
-	if (sysctl_hung_task_panic) {
+	if (sysctl_hung_task_panic &&
+			(total_hung_task >= sysctl_hung_task_panic)) {
  		console_verbose();
  		hung_task_show_lock = true;
  		hung_task_call_panic = true;
I would expect that this patch added another counter, similar to
sysctl_hung_task_detect_count. It would be incremented only
once per check when a hung task was detected. And it would
be cleared (reset) when no hung task was found.

Best Regards,
Petr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help