This patch series is to optimize performance.
Patch 0001 is to optimize CPU selection flow so let task has more chance to stay on previous CPU. Patch 0002 actually is a big change for EAS's policy for CPU selection, it trys to select idle CPU as possible. From profiling result, 0002 have good effect that spread tasks out if there have many tasks are running at the meantime.
Patches 0003~0004 are to optimize the scenario for single thread case. In this case, the thread has relative high utilization value, but the value cannot easily over tipping point. So patche 0004 try to set criteria to in some condition change to use load_avg rather than util_avg to boost the single thread.
Patch 0005 is to optimize the flow for spreading tasks within big cluster.
Patches 0006~0007 is to fix the signal for avg_load.
Leo Yan (8): sched/fair: optimize to more chance to select previous CPU sched/fair: select idle CPU for waken up task sched/fair: add path to migrate to higher capacity CPU sched/fair: use load to replace util when have big difference sched/fair: spread tasks in cluster when over tipping point sched/fair: correct avg_load as CPU average load sched/fair: fix to calculate average load cross cluster sched/fair: set imbn to 1 for too many tasks on rq
include/linux/sched.h | 1 + kernel/sched/fair.c | 93 +++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 84 insertions(+), 10 deletions(-)
-- 1.9.1