sched/fair: Fix schedtune boosted tasks placement issues
The current code starts the CPU search with max capacity cluster for schedtune boosted tasks. If any of the CPU in this cluster can accommodate the task without exceeding its original capacity, the search is not extended to other clusters. This approach results in sub-optimal performance on tri-cluster systems with 1 CPU in the max capacity cluster. The max capacity CPU is packed with several tasks while the other mid capacity CPUs are idle. Fix this issue by starting the CPU search with mid capacity cluster as long as the task fits. The search is also expanded to the max capacity cluster and the best CPU is selected among the iterated CPUs. The best CPU is either an idle CPU in the shallowest c-state or CPU with maximum spare capacity when all the iterated CPUs are busy. The energy evaluation is also skipped for boosted tasks to maximize the performance. While at it, extend the sched_task_util trace point to print if the task is schedtune boosted or not. Change-Id: Iefb29e9d32f1c414bd6af31d66306f04c6f57f9c Signed-off-by:Pavankumar Kondeti <pkondeti@codeaurora.org> [satyap@codeaurora.org: resolve merge conflicts] Signed-off-by:
Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Loading
Please register or sign in to comment