Messages in this thread Patch in this message | | | From | Vincent Guittot <> | Subject | [PATCH v3] sched/fair: use utilization to select misfit task | Date | Fri, 2 Aug 2019 14:56:12 +0200 |
| |
utilization is used to detect a misfit task but the load is then used to select the task on the CPU which can lead to select a small task with high weight instead of the task that triggered the misfit migration.
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> --- Keep tracking load instead of utilization but check that task doesn't fit CPU's capacity when selecting the task to detach as suggested by Valentin
kernel/sched/fair.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 53e64a7..8496118 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7487,15 +7487,9 @@ static int detach_tasks(struct lb_env *env) break; case migrate_misfit: - load = task_h_load(p); - - /* - * utilization of misfit task might decrease a bit - * since it has been recorded. Be conservative in the - * condition. - */ - if (load < env->imbalance) - goto next; + /* This is not a misfit task */ + if (task_fits_capacity(p, capacity_of(env->src_cpu))) + goto next; env->imbalance = 0; break; -- 2.7.4
| |