All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: Aaron Tomlin <atomlin@atomlin.com>
Cc: akpm@linux-foundation.org, lance.yang@linux.dev,
	mhiramat@kernel.org, gregkh@linuxfoundation.org, sean@ashe.io,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/2] hung_task: Introduce helper for hung task warning
Date: Wed, 17 Dec 2025 10:39:07 +0100	[thread overview]
Message-ID: <aUJ6O9cYXd_9ANF1@pathway.suse.cz> (raw)
In-Reply-To: <20251216030036.1822217-2-atomlin@atomlin.com>

On Mon 2025-12-15 22:00:35, Aaron Tomlin wrote:
> Consolidate the multi-line console output block for reporting a hung
> task into a new helper function, hung_task_diagnostics(). This improves
> readability in the main check_hung_task() loop and makes the diagnostic
> output structure easier to maintain and update in the future.
> 
> Signed-off-by: Aaron Tomlin <atomlin@atomlin.com>
> ---
>  kernel/hung_task.c | 37 +++++++++++++++++++++++++++----------
>  1 file changed, 27 insertions(+), 10 deletions(-)
> 
> diff --git a/kernel/hung_task.c b/kernel/hung_task.c
> index d2254c91450b..5902573200c0 100644
> --- a/kernel/hung_task.c
> +++ b/kernel/hung_task.c
> @@ -223,6 +223,32 @@ static inline void debug_show_blocker(struct task_struct *task, unsigned long ti
>  }
>  #endif
>  
> +/**
> + * hung_task_diagnostics - Print structured diagnostic info for a hung task.
> + * @t: Pointer to the detected hung task.
> + *
> + * This function consolidates the printing of core diagnostic information
> + * for a task found to be blocked.
> + */
> +static inline void hung_task_diagnostics(struct task_struct *t)
> +{
> +	unsigned long blocked_secs = (jiffies - t->last_switch_time) / HZ;

It makes sense to make the computation separately.

> +	const char *coredump_msg = "      Blocked by coredump.";

Honestly, I do not see any advantage in storing the string into a
variable and passing it via %s. It does not help with readability
because the reader has to lookup the variable definition. And it
is less effective code (not a big deal but...).

Instead, I would add "\n". It will allow to show the message
immediately on consoles. Without the trailing "\n", the message
is not finalized because it might still get extended by pr_cont().

> +	const char *disable_msg =
> +		"\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\""
> +		" disables this message.";

Same here. I would avoid the %s and add the trailing '\n'.

Also the message should be on a single line. It makes it easier
to find it via "git grep". ./scripts/checkpatch.pl even complain
about it:

WARNING: quoted string split across lines
#37: FILE: kernel/hung_task.c:239:
+		"\"echo 0 > /proc/sys/kernel/hung_task_timeout_secs\""
+		" disables this message.";


> +	pr_err("INFO: task %s:%d blocked for more than %ld seconds.\n",
> +	       t->comm, t->pid, blocked_secs);
> +	pr_err("      %s %s %.*s\n",
> +	       print_tainted(), init_utsname()->release,
> +	       (int)strcspn(init_utsname()->version, " "),
> +	       init_utsname()->version);
> +	if (t->flags & PF_POSTCOREDUMP)
> +		pr_err("%s\n", coredump_msg);
> +	pr_err("%s\n", disable_msg);
> +}

Otherwise, I like the change.

Best Regards,
Petr

  reply	other threads:[~2025-12-17  9:39 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-16  3:00 [PATCH v3 0/2] hung_task: Provide runtime reset interface for hung task detector Aaron Tomlin
2025-12-16  3:00 ` [PATCH v3 1/2] hung_task: Introduce helper for hung task warning Aaron Tomlin
2025-12-17  9:39   ` Petr Mladek [this message]
2025-12-21 21:52     ` Aaron Tomlin
2025-12-16  3:00 ` [PATCH v3 2/2] hung_task: Enable runtime reset of hung_task_detect_count Aaron Tomlin
2025-12-17  7:31   ` Lance Yang
2025-12-17 13:09     ` Petr Mladek
2025-12-17 13:36       ` Lance Yang
2025-12-19  3:09       ` Aaron Tomlin
2025-12-19 12:03         ` Petr Mladek
2025-12-19 14:15           ` Lance Yang
2025-12-21 21:00             ` Aaron Tomlin
2025-12-17 12:48   ` Petr Mladek
2025-12-17 13:21     ` Lance Yang
2025-12-18  9:08       ` Joel Granados
2025-12-19 14:18         ` Lance Yang
2025-12-21 21:26         ` Aaron Tomlin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aUJ6O9cYXd_9ANF1@pathway.suse.cz \
    --to=pmladek@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=atomlin@atomlin.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=lance.yang@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=sean@ashe.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.