]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
sched_ext: Fix inconsistent NUMA node lookup in scx_select_cpu_dfl()
authorCheng-Yang Chou <yphbchou0911@gmail.com>
Sat, 21 Mar 2026 10:54:58 +0000 (18:54 +0800)
committerTejun Heo <tj@kernel.org>
Sun, 22 Mar 2026 00:22:37 +0000 (14:22 -1000)
commitdb08b1940f4beb25460b4a4e9da3446454f2e8fe
tree34461e6d46a6b730d46ca9fb02408bfd457f74bd
parent2fcfe5951eb2e8440fc5e1dd6ea977336ff83a1d
sched_ext: Fix inconsistent NUMA node lookup in scx_select_cpu_dfl()

In the WAKE_SYNC path of scx_select_cpu_dfl(), waker_node was computed
with cpu_to_node(), while node (for prev_cpu) was computed with
scx_cpu_node_if_enabled(). When scx_builtin_idle_per_node is disabled,
idle_cpumask(waker_node) is called with a real node ID even though
per-node idle tracking is disabled, resulting in undefined behavior.

Fix by using scx_cpu_node_if_enabled() for waker_node as well, ensuring
both variables are computed consistently.

Fixes: 48849271e6611 ("sched_ext: idle: Per-node idle cpumasks")
Cc: stable@vger.kernel.org # v6.15+
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/sched/ext_idle.c