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.guit...@linaro.org/ 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