aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--kernel/sched/fair.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index f489f603f317..1fd6f3917fe7 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -7408,13 +7408,8 @@ static int detach_tasks(struct lb_env *env)
break;
case migrate_misfit:
- load = task_h_load(p);
-
- /*
- * Load of misfit task might decrease a bit since it has
- * been recorded. Be conservative in the condition.
- */
- if (load/2 < env->imbalance)
+ /* This is not a misfit task */
+ if (task_fits_capacity(p, capacity_of(env->src_cpu)))
goto next;
env->imbalance = 0;
@@ -8358,7 +8353,7 @@ static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *s
if (busiest->group_type == group_misfit_task) {
/* Set imbalance to allow misfit tasks to be balanced. */
env->migration_type = migrate_misfit;
- env->imbalance = busiest->group_misfit_task_load;
+ env->imbalance = 1;
return;
}