[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20250812074132.27810-1-yaozhenguo@jd.com>
Date: Tue, 12 Aug 2025 15:41:32 +0800
From: yaozhenguo <yaozhenguo1@...il.com>
To: tglx@...utronix.de,
yaoma@...ux.alibaba.com,
akpm@...ux-foundation.org
Cc: max.kellermann@...os.com,
lihuafei1@...wei.com,
yaozhenguo@...com,
linux-kernel@...r.kernel.org,
ZhenguoYao <yaozhenguo1@...il.com>
Subject: [PATCH] watchdog/softlockup: fix wrong output when watchdog_thresh < 3
From: ZhenguoYao <yaozhenguo1@...il.com>
When watchdog_thresh is below 3, sample_period will be less than 1 second.
So the following output will print when softlockup:
CPU#3 Utilization every 0s during lockup
Fix this by changing time unit from seconds to milliseconds.
Signed-off-by: ZhenguoYao <yaozhenguo1@...il.com>
---
kernel/watchdog.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index 80b56c002c7f..9c7134f7d2c4 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -455,17 +455,17 @@ static void print_cpustat(void)
{
int i, group;
u8 tail = __this_cpu_read(cpustat_tail);
- u64 sample_period_second = sample_period;
+ u64 sample_period_msecond = sample_period;
- do_div(sample_period_second, NSEC_PER_SEC);
+ do_div(sample_period_msecond, NSEC_PER_MSEC);
/*
* Outputting the "watchdog" prefix on every line is redundant and not
* concise, and the original alarm information is sufficient for
* positioning in logs, hence here printk() is used instead of pr_crit().
*/
- printk(KERN_CRIT "CPU#%d Utilization every %llus during lockup:\n",
- smp_processor_id(), sample_period_second);
+ printk(KERN_CRIT "CPU#%d Utilization every %llums during lockup:\n",
+ smp_processor_id(), sample_period_msecond);
for (i = 0; i < NUM_SAMPLE_PERIODS; i++) {
group = (tail + i) % NUM_SAMPLE_PERIODS;
--
2.43.5
Powered by blists - more mailing lists