diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 1436d6bb86ec..6efb1dfcd943 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9033,12 +9033,6 @@ idle: goto again; } - /* - * rq is about to be idle, check if we need to update the - * lost_idle_time of clock_pelt - */ - update_idle_rq_clock_pelt(rq); - return NULL; } diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c index 53bb9193c537..624ef809f671 100644 --- a/kernel/sched/idle.c +++ b/kernel/sched/idle.c @@ -462,6 +462,12 @@ static void set_next_task_idle(struct rq *rq, struct task_struct *next, bool fir scx_update_idle(rq, true, true); schedstat_inc(rq->sched_goidle); next->se.exec_start = rq_clock_task(rq); + + /* + * rq is about to be idle, check if we need to update the + * lost_idle_time of clock_pelt + */ + update_idle_rq_clock_pelt(rq); } struct task_struct *pick_task_idle(struct rq *rq)