Also add checking for if destination CPU can meet task boosted value, if not then directly skip task migration.
Signed-off-by: Leo Yan leo.yan@linaro.org --- kernel/sched/fair.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 11d438b..1001e27 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6768,6 +6768,13 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) if (cpu_overutilized(env->dst_cpu) && !idle_cpu(env->dst_cpu)) return 0; + + if (!is_idle_task(env->dst_rq->curr)) { + + if (capacity_orig_of(env->dst_cpu) * 1024 < + (boosted_task_util(env->dst_rq->curr) * capacity_margin)) + return 0; + } }
if (throttled_lb_pair(task_group(p), env->src_cpu, env->dst_cpu)) -- 1.9.1