diff options
| author | Tejun Heo <tj@kernel.org> | 2026-04-25 03:31:36 +0300 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-04-25 03:31:36 +0300 |
| commit | d292aa00de1aea72961f94c0db43f6b5c72684c9 (patch) | |
| tree | 05cc41ddda26a0aeea1e3c6729d5a7851c9a32b8 /include/linux/stackprotector.h | |
| parent | 4155fb489fa175ec74eedde7d02219cf2fe74303 (diff) | |
| download | linux-d292aa00de1aea72961f94c0db43f6b5c72684c9.tar.xz | |
sched_ext: Make bypass LB cpumasks per-scheduler
scx_bypass_lb_{donee,resched}_cpumask were file-scope statics shared by all
scheduler instances. With CONFIG_EXT_SUB_SCHED, multiple sched instances
each arm their own bypass_lb_timer; concurrent bypass_lb_node() calls RMW
the global cpumasks with no lock, corrupting donee/resched decisions.
Move the cpumasks into struct scx_sched, allocate them alongside the timer
in scx_alloc_and_add_sched(), free them in scx_sched_free_rcu_work().
Fixes: 95d1df610cdc ("sched_ext: Implement load balancer for bypass mode")
Cc: stable@vger.kernel.org # v6.19+
Reported-by: Chris Mason <clm@meta.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Diffstat (limited to 'include/linux/stackprotector.h')
0 files changed, 0 insertions, 0 deletions
