diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 073fbed7caf6..715a8df20d10 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -11349,6 +11349,7 @@ static struct sched_group *sched_balance_find_src_group(struct lb_env *env) { struct sg_lb_stats *local, *busiest; struct sd_lb_stats sds; + int out_balance = 1; init_sd_lb_stats(&sds); @@ -11368,8 +11369,9 @@ static struct sched_group *sched_balance_find_src_group(struct lb_env *env) if (busiest->group_type == group_misfit_task) goto force_balance; + trace_android_rvh_find_busiest_group(sds.busiest, env->dst_rq, &out_balance); if (!is_rd_overutilized(env->dst_rq->rd) && - rcu_dereference(env->dst_rq->rd->pd)) + rcu_dereference(env->dst_rq->rd->pd) && out_balance) goto out_balanced; /* ASYM feature bypasses nice load balance check */