All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched_ext: Fix scx_bpf_dsq_move_to_local___v2() to handle SCX_DSQ_GLOBAL
@ 2026-03-26  9:17 Cheng-Yang Chou
  2026-03-26 11:22 ` Tejun Heo
  0 siblings, 1 reply; 5+ messages in thread
From: Cheng-Yang Chou @ 2026-03-26  9:17 UTC (permalink / raw)
  To: sched-ext, Tejun Heo, David Vernet, Andrea Righi, Changwoo Min
  Cc: Ching-Chun Huang, Chia-Ping Tsai, yphbchou0911

scx_bpf_dsq_move_to_local___v2() called find_user_dsq() for all dsq_id
values, but find_user_dsq() only searches the rhashtable of user-created
DSQs. SCX_DSQ_GLOBAL is a builtin DSQ stored in the per-node pnode and
not in the rhashtable, so passing SCX_DSQ_GLOBAL caused find_user_dsq()
to return NULL, triggering scx_error() and aborting the scheduler.

Add an explicit check for SCX_DSQ_GLOBAL and use find_global_dsq() in
that case, matching the pattern used in find_dsq_for_dispatch().

Fixes: 860683763ebf ("sched_ext: Add enq_flags to scx_bpf_dsq_move_to_local()")
Signed-off-by: Cheng-Yang Chou <yphbchou0911@gmail.com>
---
 kernel/sched/ext.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index 551bfb99157d..0d0780c77ffd 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -8249,7 +8249,10 @@ __bpf_kfunc bool scx_bpf_dsq_move_to_local___v2(u64 dsq_id, u64 enq_flags,
 
 	flush_dispatch_buf(sch, dspc->rq);
 
-	dsq = find_user_dsq(sch, dsq_id);
+	if (dsq_id == SCX_DSQ_GLOBAL)
+		dsq = find_global_dsq(sch, cpu_of(dspc->rq));
+	else
+		dsq = find_user_dsq(sch, dsq_id);
 	if (unlikely(!dsq)) {
 		scx_error(sch, "invalid DSQ ID 0x%016llx", dsq_id);
 		return false;
-- 
2.48.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-03-26 19:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-26  9:17 [PATCH] sched_ext: Fix scx_bpf_dsq_move_to_local___v2() to handle SCX_DSQ_GLOBAL Cheng-Yang Chou
2026-03-26 11:22 ` Tejun Heo
2026-03-26 14:24   ` Cheng-Yang Chou
2026-03-26 19:46     ` Tejun Heo
2026-03-26 19:47       ` Tejun Heo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.