[PATCH] sched/pelt: Fix truncation of the PELT period count

From: Hui Su

Date: Wed Oct 21 2026 - 23:53:02 EST


accumulate_sum() computes the number of elapsed PELT periods in a
u64 but returns u32. When the count is a multiple of 2^32, it is
truncated to zero even though the PELT sums have been updated.

The caller interprets zero as no period boundary crossed and skips
recomputing the averages, leaving *_avg stale relative to *_sum.

Return only whether any period elapsed, which is all the caller
needs.

Signed-off-by: Hui Su <sh_def@xxxxxxx>
---
kernel/sched/pelt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c
index 779eb58a4261..519bc9c40043 100644
--- a/kernel/sched/pelt.c
+++ b/kernel/sched/pelt.c
@@ -146,7 +146,7 @@ accumulate_sum(u64 delta, struct sched_avg *sa,
if (running)
sa->util_sum += contrib << SCHED_CAPACITY_SHIFT;

- return periods;
+ return !!periods;
}

/*
--
2.55.0