diff options
author | Valentin Schneider <valentin.schneider@arm.com> | 2021-04-08 00:06:27 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-04-09 18:02:20 +0200 |
commit | 23fb06d9602b0fcfa1a16357a5d7a7f7076a39e2 (patch) | |
tree | 0bc37392e963efb879485f353270c94c6d634d35 /kernel/kexec.c | |
parent | sched/fair: Ignore percpu threads for imbalance pulls (diff) | |
download | linux-23fb06d9602b0fcfa1a16357a5d7a7f7076a39e2.tar.xz linux-23fb06d9602b0fcfa1a16357a5d7a7f7076a39e2.zip |
sched/fair: Clean up active balance nr_balance_failed trickery
When triggering an active load balance, sd->nr_balance_failed is set to
such a value that any further can_migrate_task() using said sd will ignore
the output of task_hot().
This behaviour makes sense, as active load balance intentionally preempts a
rq's running task to migrate it right away, but this asynchronous write is
a bit shoddy, as the stopper thread might run active_load_balance_cpu_stop
before the sd->nr_balance_failed write either becomes visible to the
stopper's CPU or even happens on the CPU that appended the stopper work.
Add a struct lb_env flag to denote active balancing, and use it in
can_migrate_task(). Remove the sd->nr_balance_failed write that served the
same purpose. Cleanup the LBF_DST_PINNED active balance special case.
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Link: https://lkml.kernel.org/r/20210407220628.3798191-3-valentin.schneider@arm.com
Diffstat (limited to 'kernel/kexec.c')
0 files changed, 0 insertions, 0 deletions