From: Bradley Morgan <include@grrlz.net>
To: Michael Ellerman <mpe@ellerman.id.au>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <chleroy@kernel.org>
Cc: Feng Tang <feng.tang@linux.alibaba.com>,
Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Petr Mladek <pmladek@suse.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: [PATCH 1/1] powerpc/watchdog: avoid extra sys_info dumps for all_bt
Date: Sat, 20 Jun 2026 22:02:04 +0000 [thread overview]
Message-ID: <20260620220204.15756-1-include@grrlz.net> (raw)
The powerpc watchdog handles SYS_INFO_ALL_BT itself. When that is the
only hardlockup_sys_info bit, sys_info(0) falls back to kernel_sys_info.
Skip sys_info() for that case.
Fixes: e561383a39ed ("powerpc/watchdog: add support for hardlockup_sys_info sysctl")
Signed-off-by: Bradley Morgan <include@grrlz.net>
---
arch/powerpc/kernel/watchdog.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/kernel/watchdog.c b/arch/powerpc/kernel/watchdog.c
index c40c69368476..6338e12651e3 100644
--- a/arch/powerpc/kernel/watchdog.c
+++ b/arch/powerpc/kernel/watchdog.c
@@ -92,6 +92,16 @@ static cpumask_t wd_smp_cpus_pending;
static cpumask_t wd_smp_cpus_stuck;
static u64 wd_smp_last_reset_tb;
+static void watchdog_sys_info(unsigned long si_mask)
+{
+ unsigned long dump_mask = si_mask & ~SYS_INFO_ALL_BT;
+
+ if (si_mask && !dump_mask)
+ return;
+
+ sys_info(dump_mask);
+}
+
#ifdef CONFIG_PPC_PSERIES
static u64 wd_timeout_pct;
#endif
@@ -201,6 +211,7 @@ static bool set_cpu_stuck(int cpu)
static void watchdog_smp_panic(int cpu)
{
static cpumask_t wd_smp_cpus_ipi; // protected by reporting
+ unsigned long si_mask;
unsigned long flags;
u64 tb, last_reset;
int c;
@@ -236,8 +247,9 @@ static void watchdog_smp_panic(int cpu)
pr_emerg("CPU %d TB:%lld, last SMP heartbeat TB:%lld (%lldms ago)\n",
cpu, tb, last_reset, tb_to_ns(tb - last_reset) / 1000000);
+ si_mask = READ_ONCE(hardlockup_si_mask);
if (sysctl_hardlockup_all_cpu_backtrace ||
- (hardlockup_si_mask & SYS_INFO_ALL_BT)) {
+ (si_mask & SYS_INFO_ALL_BT)) {
trigger_allbutcpu_cpu_backtrace(cpu);
cpumask_clear(&wd_smp_cpus_ipi);
} else {
@@ -251,7 +263,7 @@ static void watchdog_smp_panic(int cpu)
}
}
- sys_info(hardlockup_si_mask & ~SYS_INFO_ALL_BT);
+ watchdog_sys_info(si_mask);
if (hardlockup_panic)
nmi_panic(NULL, "Hard LOCKUP");
@@ -371,6 +383,7 @@ static void watchdog_timer_interrupt(int cpu)
DEFINE_INTERRUPT_HANDLER_NMI(soft_nmi_interrupt)
{
+ unsigned long si_mask;
unsigned long flags;
int cpu = raw_smp_processor_id();
u64 tb;
@@ -418,11 +431,12 @@ DEFINE_INTERRUPT_HANDLER_NMI(soft_nmi_interrupt)
xchg(&__wd_nmi_output, 1); // see wd_lockup_ipi
+ si_mask = READ_ONCE(hardlockup_si_mask);
if (sysctl_hardlockup_all_cpu_backtrace ||
- (hardlockup_si_mask & SYS_INFO_ALL_BT))
+ (si_mask & SYS_INFO_ALL_BT))
trigger_allbutcpu_cpu_backtrace(cpu);
- sys_info(hardlockup_si_mask & ~SYS_INFO_ALL_BT);
+ watchdog_sys_info(si_mask);
if (hardlockup_panic)
nmi_panic(regs, "Hard LOCKUP");
--
2.53.0
reply other threads:[~2026-06-20 23:31 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20260620220204.15756-1-include@grrlz.net \
--to=include@grrlz.net \
--cc=akpm@linux-foundation.org \
--cc=chleroy@kernel.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=mchauras@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=pmladek@suse.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox