[PATCH] sched/stats: correct the wait_start calculation logic

From: Honglei Wang

Date: Thu Nov 13 2025 - 07:54:47 EST


It's not necessary to do the delta-related subtraction if the task
is not on rq migrating. Add the migrating related judgment back.

Signed-off-by: Honglei Wang <jameshongleiwang@xxxxxxx>
---
kernel/sched/stats.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/stats.c b/kernel/sched/stats.c
index d1c9429a4ac5..60560fb31e63 100644
--- a/kernel/sched/stats.c
+++ b/kernel/sched/stats.c
@@ -12,7 +12,8 @@ void __update_stats_wait_start(struct rq *rq, struct task_struct *p,
wait_start = rq_clock(rq);
prev_wait_start = schedstat_val(stats->wait_start);

- if (p && likely(wait_start > prev_wait_start))
+ if (p && task_on_rq_migrating(p) &&
+ likely(wait_start > prev_wait_start))
wait_start -= prev_wait_start;

__schedstat_set(stats->wait_start, wait_start);
--
2.33.0