sched: Trivial forced-newidle balancer
authorPeter Zijlstra <peterz@infradead.org>
Tue, 17 Nov 2020 23:19:43 +0000 (18:19 -0500)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 12 May 2021 09:43:30 +0000 (11:43 +0200)
commitd2dfa17bc7de67e99685c4d6557837bf801a102c
tree6583db24d9515ffcd05dd6369b5094ceb7e6b8ff
parentc6047c2e3af68dae23ad884249e0d42ff28d2d1b
sched: Trivial forced-newidle balancer

When a sibling is forced-idle to match the core-cookie; search for
matching tasks to fill the core.

rcu_read_unlock() can incur an infrequent deadlock in
sched_core_balance(). Fix this by using the RCU-sched flavor instead.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Don Hiatt <dhiatt@digitalocean.com>
Tested-by: Hongyu Ning <hongyu.ning@linux.intel.com>
Tested-by: Vincent Guittot <vincent.guittot@linaro.org>
Link: https://lkml.kernel.org/r/20210422123308.800048269@infradead.org
include/linux/sched.h
kernel/sched/core.c
kernel/sched/idle.c
kernel/sched/sched.h