Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1658e57 authored by Maria Yu's avatar Maria Yu
Browse files

sched/fair: Check env src_grp_nr_running for active load balance



When do active load balance needed check, the environment
may changed, so check for env's src_grp_nr_running before
src rq h_nr_running check to ensure that's the same
envrionment data we tried to do active load balance.

Change-Id: Ia9539a43e9769c4936f06ecfcc11864984c50c29
Signed-off-by: default avatarMaria Yu <aiquny@codeaurora.org>
parent 2e04b40c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -10809,6 +10809,7 @@ static int need_active_balance(struct lb_env *env)
	 * available on dst_cpu.
	 */
	if ((env->idle != CPU_NOT_IDLE) &&
	    (env->src_grp_nr_running == 1) &&
	    (env->src_rq->cfs.h_nr_running == 1)) {
		if ((check_cpu_capacity(env->src_rq, sd)) &&
		    (capacity_of(env->src_cpu)*sd->imbalance_pct < capacity_of(env->dst_cpu)*100))
@@ -10818,6 +10819,7 @@ static int need_active_balance(struct lb_env *env)
	if ((env->idle != CPU_NOT_IDLE) &&
		(capacity_of(env->src_cpu) < capacity_of(env->dst_cpu)) &&
	    ((capacity_orig_of(env->src_cpu) < capacity_orig_of(env->dst_cpu))) &&
				(env->src_grp_nr_running == 1) &&
				env->src_rq->cfs.h_nr_running == 1 &&
				cpu_overutilized(env->src_cpu) &&
				!cpu_overutilized(env->dst_cpu)) {