ANDROID: sched/fair: streamline find_best_target heuristics
The find_best_target() code has evolved over time to integrate different micro-optimizations to the point to be quite difficult now to follow exactly what it's doing. This patch rafactors the existing code to make it more readable and easy to maintain. It does that by properly identifying the three main use-cases and addressing them in priority order: A) latency sensitive tasks B) non latency sensitive tasks on IDLE CPUs C) non latency sensitive tasks on ACTIVE CPUs The original behaviors are preserved. Some tests to compare power/performances before and after this patch have been done using Jankbench and YouTube and we did not noticed sensible differences. The only difference with respect of the original code is a small update to favor lower-capacity idle CPUs in case B. The same preference is not enforce in case A since this can lead to a selection of a non-reserved CPU for TOP_APP tasks, which ultimately can lead to non desirable co-scheduling side-effects. Change-Id: I871e5d95af89176217e4e239b64d44a420baabe8 Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com> (removed checkpatch whitespace error) Signed-off-by: Chris Redpath <chris.redpath@arm.com> [Fixed cherry-pick issue] (cherry picked from commit 6b0008b7d7be7d141f9855337eb09ad0c9217cfb) Signed-off-by: Quentin Perret <quentin.perret@arm.com>
Loading
Please register or sign in to comment