[PATCH 0/3] sched/fair: Active balancer RT/DL preemption fix

From: Valentin Schneider
Date: Wed Aug 07 2019 - 13:41:16 EST


Vincent's load balance rework [1] got me thinking about how and where we
use rq.nr_running vs rq.cfs.h_nr_running checks, and this lead me to
stare intently at the active load balancer.

I haven't seen it happen (yet), but from reading the code it really looks
like we can have some scenarios where the cpu_stopper ends up preempting
a > CFS class task.

- Patch 1 is a preparatory code move
- Patch 2 is the actual fix
- Patch 3 is a related fix for the cpu_stopper function

This is based on top of today's tip/sched/core:
a1dc0446d649 ("sched/core: Silence a warning in sched_init()")

@Vincent: I don't think this should conflict too badly with your rework,
but if you have any issues I'll try to give you a version rebased on top
of the rework.

[1]: https://lore.kernel.org/lkml/1564670424-26023-1-git-send-email-vincent.guittot@xxxxxxxxxx/

Valentin Schneider (3):
sched/fair: Move active balance logic to its own function
sched/fair: Prevent active LB from preempting higher sched classes
sched/fair: Check for CFS tasks in active_load_balance_cpu_stop()

kernel/sched/fair.c | 130 +++++++++++++++++++++++++++-----------------
1 file changed, 79 insertions(+), 51 deletions(-)

--
2.22.0