From: Bradley Morgan <include@grrlz.net>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Petr Mladek <pmladek@suse.com>,
Feng Tang <feng.tang@linux.alibaba.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <chleroy@kernel.org>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Douglas Anderson <dianders@chromium.org>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
stable@vger.kernel.org, Bradley Morgan <include@grrlz.net>
Subject: [PATCH v3 1/4] sys_info: add helper for callers that print some sys_info on their own
Date: Thu, 25 Jun 2026 15:25:55 +0000 [thread overview]
Message-ID: <20260625152558.7450-2-include@grrlz.net> (raw)
In-Reply-To: <20260625152558.7450-1-include@grrlz.net>
Some callers print some sys_info on their own before calling sys_info().
Add a helper which would allow to prevent a duplicated output.
It is a bit tricky because kernel_si_mask should be used only
when the call-specific si_mask is empty. But the duplicated
output must be prevented there as well.
Fixes: a9af76a78760 ("watchdog: add sys_info sysctls to dump sys info on system lockup")
Cc: stable@vger.kernel.org
Suggested-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Bradley Morgan <include@grrlz.net>
---
include/linux/sys_info.h | 1 +
lib/sys_info.c | 20 ++++++++++++++++++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/include/linux/sys_info.h b/include/linux/sys_info.h
index a5bc3ea3d44b..f1c2552ca3d1 100644
--- a/include/linux/sys_info.h
+++ b/include/linux/sys_info.h
@@ -18,6 +18,7 @@
#define SYS_INFO_BLOCKED_TASKS 0x00000080
void sys_info(unsigned long si_mask);
+void sys_info_with_filter(unsigned long si_mask, unsigned long si_ignore_mask);
unsigned long sys_info_parse_param(char *str);
#ifdef CONFIG_SYSCTL
diff --git a/lib/sys_info.c b/lib/sys_info.c
index f32a06ec9ed4..d411fee10415 100644
--- a/lib/sys_info.c
+++ b/lib/sys_info.c
@@ -136,8 +136,10 @@ static int __init sys_info_sysctl_init(void)
subsys_initcall(sys_info_sysctl_init);
#endif
-static void __sys_info(unsigned long si_mask)
+static void __sys_info(unsigned long si_mask, unsigned long si_ignore_mask)
{
+ si_mask &= ~si_ignore_mask;
+
if (si_mask & SYS_INFO_TASKS)
show_state();
@@ -160,7 +162,21 @@ static void __sys_info(unsigned long si_mask)
show_state_filter(TASK_UNINTERRUPTIBLE);
}
+void sys_info_with_filter(unsigned long si_mask, unsigned long si_ignore_mask)
+{
+ unsigned long dump_mask = si_mask & ~si_ignore_mask;
+
+ /*
+ * Do not fall back to kernel_si_mask when the caller context
+ * required only the ignored information.
+ */
+ if (si_mask && !dump_mask)
+ return;
+
+ __sys_info(dump_mask ? : kernel_si_mask, si_ignore_mask);
+}
+
void sys_info(unsigned long si_mask)
{
- __sys_info(si_mask ? : kernel_si_mask);
+ sys_info_with_filter(si_mask, 0);
}
--
2.53.0
next prev parent reply other threads:[~2026-06-25 15:26 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-25 15:25 [PATCH v3 0/4] sys_info: prevent duplicate backtraces Bradley Morgan
2026-06-25 15:25 ` Bradley Morgan [this message]
2026-06-25 15:25 ` [PATCH v3 2/4] watchdog: use sys_info_with_filter() to avoid " Bradley Morgan
2026-06-25 15:25 ` [PATCH v3 3/4] powerpc/watchdog: " Bradley Morgan
2026-06-26 9:42 ` Petr Mladek
2026-06-25 15:25 ` [PATCH v3 4/4] panic: " Bradley Morgan
2026-06-26 10:23 ` Petr Mladek
2026-06-26 10:27 ` Bradley Morgan
2026-06-26 12:06 ` Feng Tang
2026-06-26 12:14 ` Petr Mladek
2026-06-26 12:17 ` Bradley Morgan
2026-06-26 12:32 ` Bradley Morgan
2026-06-26 14:26 ` Petr Mladek
2026-06-26 14:35 ` Bradley Morgan
2026-06-26 14:47 ` Petr Mladek
2026-06-26 14:58 ` Bradley Morgan
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=20260625152558.7450-2-include@grrlz.net \
--to=include@grrlz.net \
--cc=akpm@linux-foundation.org \
--cc=chleroy@kernel.org \
--cc=dianders@chromium.org \
--cc=feng.tang@linux.alibaba.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=pmladek@suse.com \
--cc=stable@vger.kernel.org \
/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.