[PATCH v2 0/3] sched: update the rq->avg_idle when a task is moved to an idle CPU

Huang Shijie posted 3 patches 4 days, 16 hours ago
There is a newer version of this series
kernel/sched/core.c  | 28 ++++++++++++++++------------
kernel/sched/fair.c  | 24 ++++++++++++++++--------
kernel/sched/sched.h |  2 ++
3 files changed, 34 insertions(+), 20 deletions(-)
[PATCH v2 0/3] sched: update the rq->avg_idle when a task is moved to an idle CPU
Posted by Huang Shijie 4 days, 16 hours ago
In the newidle balance, the rq->idle_stamp may set to a non-zero value
if it cannot pull any task.

In the wakeup, it will detect the rq->idle_stamp, and updates
the rq->avg_idle, then ends the CPU idle status by setting rq->idle_stamp
to zero.

Besides the wakeup, current code does not end the CPU idle status
when a task is moved to the idle CPU, such as fork/clone, execve,
or other cases.

This patch set tries to resolve it.

v1--> v2:
  -- Put update_rq_avg_idle() to activate_task()
  -- Add Delay-dequeue task check.	

v1:
   https://lkml.org/lkml/2025/11/24/97

Huang Shijie (3):
  sched/fair: set rq->idle_stamp at the end of the sched_balance_newidle
  sched: update the rq->avg_idle when a task is moved to an idle CPU
  sched/fair: update rq->avg_idle for the delay-dequeue task

 kernel/sched/core.c  | 28 ++++++++++++++++------------
 kernel/sched/fair.c  | 24 ++++++++++++++++--------
 kernel/sched/sched.h |  2 ++
 3 files changed, 34 insertions(+), 20 deletions(-)

-- 
2.40.1