On 01/04/2021 21:30, Valentin Schneider wrote: > 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.schnei...@arm.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggem...@arm.com> [...]