public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] watchdog/softlockup: Fix sample ring index wrap in need_counting_irqs()
@ 2026-01-19 13:59 shengminghu512
  2026-01-28 17:52 ` Petr Mladek
  0 siblings, 1 reply; 5+ messages in thread
From: shengminghu512 @ 2026-01-19 13:59 UTC (permalink / raw)
  To: akpm, tglx; +Cc: pmladek, mingo, broonie, linux-kernel, hu.shengming, zhang.run

From: Shengming Hu <hu.shengming@zte.com.cn>

cpustat_tail indexes cpustat_util[], which is a NUM_SAMPLE_PERIODS-sized
ring buffer. need_counting_irqs() currently wraps the index using
NUM_HARDIRQ_REPORT, which only happens to match NUM_SAMPLE_PERIODS.

Use NUM_SAMPLE_PERIODS for the wrap to keep the ring math correct even if
the NUM_HARDIRQ_REPORT or  NUM_SAMPLE_PERIODS changes.

Signed-off-by: Shengming Hu <hu.shengming@zte.com.cn>
---
 kernel/watchdog.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index b4d5fbdb9..7d675781b 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -550,7 +550,7 @@ static bool need_counting_irqs(void)
 	u8 util;
 	int tail = __this_cpu_read(cpustat_tail);
 
-	tail = (tail + NUM_HARDIRQ_REPORT - 1) % NUM_HARDIRQ_REPORT;
+	tail = (tail + NUM_SAMPLE_PERIODS - 1) % NUM_SAMPLE_PERIODS;
 	util = __this_cpu_read(cpustat_util[tail][STATS_HARDIRQ]);
 	return util > HARDIRQ_PERCENT_THRESH;
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [PATCH] watchdog/softlockup: Fix sample ring index wrap in need_counting_irqs()
@ 2026-01-18  9:14 shengminghu512
  0 siblings, 0 replies; 5+ messages in thread
From: shengminghu512 @ 2026-01-18  9:14 UTC (permalink / raw)
  To: broonie; +Cc: linux-kernel, hu.shengming, zhang.run

From: Shengming Hu <hu.shengming@zte.com.cn>

cpustat_tail indexes cpustat_util[], which is a NUM_SAMPLE_PERIODS-sized
ring buffer. need_counting_irqs() currently wraps the index using
NUM_HARDIRQ_REPORT, which only happens to match NUM_SAMPLE_PERIODS.

Use NUM_SAMPLE_PERIODS for the wrap to keep the ring math correct even if
the NUM_HARDIRQ_REPORT or  NUM_SAMPLE_PERIODS changes.

Signed-off-by: Shengming Hu <hu.shengming@zte.com.cn>
---
 kernel/watchdog.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index b4d5fbdb9..7d675781b 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -550,7 +550,7 @@ static bool need_counting_irqs(void)
 	u8 util;
 	int tail = __this_cpu_read(cpustat_tail);
 
-	tail = (tail + NUM_HARDIRQ_REPORT - 1) % NUM_HARDIRQ_REPORT;
+	tail = (tail + NUM_SAMPLE_PERIODS - 1) % NUM_SAMPLE_PERIODS;
 	util = __this_cpu_read(cpustat_util[tail][STATS_HARDIRQ]);
 	return util > HARDIRQ_PERCENT_THRESH;
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-01-29  9:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-19 13:59 [PATCH] watchdog/softlockup: Fix sample ring index wrap in need_counting_irqs() shengminghu512
2026-01-28 17:52 ` Petr Mladek
2026-01-28 18:13   ` Andrew Morton
2026-01-29  9:42     ` Petr Mladek
  -- strict thread matches above, loose matches on Subject: below --
2026-01-18  9:14 shengminghu512

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox