sched/fair: Allow idle local group to pull tasks from overloaded group
When the local group has idle CPUs and there is no imbalance
within the group, allow pulling the task from an overloaded group
by boosting the imbalance. The boost is needed for scenarios
where busiest group is overloaded but it's avg_load is not much
higher than the local group's avg_load.
For example, local group has 4 smaller capacity CPUs with 1024 as
total capacity and running two CPU intensive (load=1024) tasks.
Its avg_load is 1024. The busiest group has 1 highest capacity CPU
with 1024 as total capacity and running two CPU intensive (load=1024)
tasks. Its avg_load is also 1024. There is no difference in avg_load
between local group and busiest group. But the busiest group is
clearly overloaded.
The imbalance is derived from PELT runnable load average which takes
more time to reflect the full load. Since the group overloaded
condition uses WALT utilization metric, it reflects the full load
faster. So allowing idle load balance to pull more tasks when the
busiest group is overloaded would be beneficial for the performance.
This load balancer behavior is also inline with the current
task placement policy where a BIG task would be placed on the
lower capacity CPU when the higher capacity CPUs are overloaded.
Change-Id: I58ce198f38f6b949a0ef910550ef1a8b2b0528ca
Signed-off-by:
Pavankumar Kondeti <pkondeti@codeaurora.org>
Loading
Please register or sign in to comment