From: Uladzislau 2 Rezki <[email protected]> It is possible that busiest run queue has multiple RT tasks, whereas no CFS tasks, that is why it is reasonable to use h_nr_running instead, because a load balance only applies for CFS related tasks.
Signed-off-by: Uladzislau 2 Rezki <[email protected]> --- kernel/sched/fair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 4be7193..232ef3c 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8081,7 +8081,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, * Set loop_max when rq's lock is taken to prevent a race. */ env.loop_max = min(sysctl_sched_nr_migrate, - busiest->nr_running); + busiest->cfs.h_nr_running); /* * cur_ld_moved - load moved in current iteration -- 2.1.4

