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

Commit e77a201e authored by Joonwoo Park's avatar Joonwoo Park
Browse files

sched: EAS: upmigrate misfit current task more efficiently



At present EAS kicks an random (not necessarily big CPU) NOHZ idle
CPU when a CPU bound task is in need of upmigration.  But it's not
efficient as that way needs following unnecessary steps and wakeups:

  1. Busy little CPU A kicks idle CPU B
  2. CPU B runs idle balancer and enqueue migration/A
  3. B goes idle
  4. A runs migration/A, enqueues busy task on B.
  5. B wakes up again.

This change makes active upmigration more efficiently by doing:

  1. Busy little CPU A find target CPU B upon tick.
  2. CPU A enqueues migration/A.

Also to prevent race between try_to_wake_up() and migration, mark
target CPU as reserved during migration and prevent from being selected
by energy_aware_wake_cpu().

Change-Id: Ie865738054ea3296f28e6ba01710635efa7193c0
Signed-off-by: default avatarJoonwoo Park <joonwoop@codeaurora.org>
parent 2a308ae5
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