Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5dee3f1c authored by Joonwoo Park's avatar Joonwoo Park
Browse files

sched: EAS: prevent excessive task packing



At present, task placement algorithm blindly selects a CPU if the task's
projected utilization fits within the CPU's capacity at current frequency
and the CPU has running task.  However this is often suboptimal and can
lead excessive task packing when :
  1) Enqueue task B onto a CPU X which has running task A.
  2) Start execution B and then task_util() increases.
  3) CPU X raises OPP.
  4) B sleeps and dequeues
  5) CPU X keeps raised OPP for reasons.
  6) New task wakes up on CPU X instead of idle CPU.

Consequently wake up placement bias towards busy CPU than idle CPU which
results in excessive wake up latency as well as unnecessary OPP
increases.

Fix such suboptimality by taking into account of projected OPP of all
the CPUs in the domain.

Change-Id: Iee692d43ac09a38953eaf3e108d93ec3331d42fc
Signed-off-by: default avatarJoonwoo Park <joonwoop@codeaurora.org>
parent 4d546c99
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment