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

Huang Shijie posted 2 patches 4 days, 12 hours ago
There is a newer version of this series
kernel/sched/core.c | 36 ++++++++++++++++++++++++------------
kernel/sched/fair.c | 12 ++++++++----
2 files changed, 32 insertions(+), 16 deletions(-)
[PATCH v3 0/2] sched: update the rq->avg_idle when a task is moved to an idle CPU
Posted by Huang Shijie 4 days, 12 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.

v2--> v3:
  -- merge patch 3 into patch 2:
      move update_rq_avg_idle() to enqueue_task().

   v2: https://lkml.org/lkml/2025/11/27/214   

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 (2):
  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

 kernel/sched/core.c | 36 ++++++++++++++++++++++++------------
 kernel/sched/fair.c | 12 ++++++++----
 2 files changed, 32 insertions(+), 16 deletions(-)

-- 
2.40.1