diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index f362c58ec9d6..24faaddb386b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -203,6 +203,7 @@ unsigned int sysctl_sched_min_task_util_for_boost = 51; /* 0.68ms default for 20ms window size scaled to 1024 */ unsigned int sysctl_sched_min_task_util_for_colocation = 35; #endif +static unsigned int __maybe_unused sched_small_task_threshold = 102; static inline void update_load_add(struct load_weight *lw, unsigned long inc) { @@ -10709,7 +10710,8 @@ static struct rq *find_busiest_queue(struct lb_env *env, */ if (env->sd->flags & SD_ASYM_CPUCAPACITY && capacity_of(env->dst_cpu) < capacity && - rq->nr_running == 1) + (rq->nr_running == 1 || (rq->nr_running == 2 && + task_util(rq->curr) < sched_small_task_threshold))) continue; wl = weighted_cpuload(rq);