diff options
author | Peter Zijlstra <peterz@infradead.org> | 2020-11-17 18:19:43 -0500 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-05-12 11:43:30 +0200 |
commit | d2dfa17bc7de67e99685c4d6557837bf801a102c (patch) | |
tree | 6583db24d9515ffcd05dd6369b5094ceb7e6b8ff /include/linux/sched.h | |
parent | c6047c2e3af68dae23ad884249e0d42ff28d2d1b (diff) | |
download | linux-stable-d2dfa17bc7de67e99685c4d6557837bf801a102c.tar.gz linux-stable-d2dfa17bc7de67e99685c4d6557837bf801a102c.tar.bz2 linux-stable-d2dfa17bc7de67e99685c4d6557837bf801a102c.zip |
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
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r-- | include/linux/sched.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 45eedccf86aa..9b822e383212 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -705,6 +705,7 @@ struct task_struct { #ifdef CONFIG_SCHED_CORE struct rb_node core_node; unsigned long core_cookie; + unsigned int core_occupation; #endif #ifdef CONFIG_CGROUP_SCHED |