diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index af23c63eca32..4012266f4f64 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8798,6 +8798,9 @@ static int need_active_balance(struct lb_env *env) if (voluntary_active_balance(env)) return 1; + if (env->src_grp_type == group_overloaded && env->src_rq->misfit_task_load) + return 1; + return unlikely(sd->nr_balance_failed > sd->cache_nice_tries+2); }