Messages in this thread | | | From | Valentin Schneider <> | Subject | [PATCH 0/3] sched/fair: Active balancer RT/DL preemption fix | Date | Wed, 7 Aug 2019 18:40:23 +0100 |
| |
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@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
| |