Messages in this thread Patch in this message | | | From | Vincent Guittot <> | Subject | [PATCH 2/3] sched/fair: don't set LBF_ALL_PINNED unnecessarily | Date | Wed, 6 Jan 2021 14:34:18 +0100 |
| |
Setting LBF_ALL_PINNED during active load balance is only valid when there is only 1 running task on the rq otherwise this ends up increasing the balance interval whereas other tasks could migrate after the next interval once they become cache-cold as an example.
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org> --- kernel/sched/fair.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 5428b8723e61..69a455113b10 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9759,7 +9759,8 @@ static int load_balance(int this_cpu, struct rq *this_rq, if (!cpumask_test_cpu(this_cpu, busiest->curr->cpus_ptr)) { raw_spin_unlock_irqrestore(&busiest->lock, flags); - env.flags |= LBF_ALL_PINNED; + if (busiest->nr_running == 1) + env.flags |= LBF_ALL_PINNED; goto out_one_pinned; } -- 2.17.1
| |