scx_bpf_create_dsq(9)
π
scx_bpf_create_dsq (9) β from the Kernel API Manual, bestie π«Ά
okay so real talk, this is a kernel-level sched-ext function from the Kernel API Manual, and it's literally the "make me a brand new DSQ" button. custom queue, your own vibes, your own rules. let's get into it π
β¨ NAME β¨
scx_bpf_create_dsq β the one where you create a custom DSQ β¨
π¦ SYNOPSIS π¦
__bpf_kfunc s32 scx_bpf_create_dsq (u64 dsq_id , s32 node , const struct
bpf_prog_aux *aux );
like... that's the whole signature, no cap. s32 coming back at you, three args going in πΈ
π ARGUMENTS π
dsq_idβ the DSQ you wanna create. that's the ID, that's the name tag, that's the whole identity πͺͺnodeβ the NUMA node you're allocating from. pick your fave, it's literally a NUMA node choice moment β¨auxβ ok so this one's implicit. it's the BPF argument that gives you access tobpf_prog_aux, and it is hidden from BPF progs. so your prog doesn't see it, doesn't touch it, it's giving backstage pass energy π
π DESCRIPTION π
so you call this, and it creates a custom DSQ identified by dsq_id. that's it, that's the whole flex π
where can you call it from? glad you asked bestie:
- any sleepable
scxcallback β yes, sleepable ones, go off π΄β¨ - any
BPF_PROG_TYPE_SYSCALLprog β those count too, we love a syscall prog π«Ά
and that's the entire description, no filler, no side quests. iconic behaviour honestly π
π SEE ALSO π
okay this list is long long, so buckle up, we're going through all of it, every single one, i'm not skipping a crumb π
first up, the kernel file itself: ./kernel/sched/ext/ext.c β that's where the sauce lives, iykyk π₯
then the whole friend group:
scx_is_descendant(9),rq_is_open(9),scx_fill_cmask_scratch(9),scx_call_op_set_cpumask(9)nldsq_next_task(9),nldsq_cursor_next_task(9),nldsq_cursor_lost_task(9)scx_task_iter_start(9),scx_task_iter_unlock(9),scx_task_iter_relock(9),scx_task_iter_stop(9),scx_task_iter_next(9),scx_task_iter_next_locked(9)scx_dump_event(9),wait_ops_state(9),scx_cpu_valid(9)schedule_deferred(9),schedule_deferred_locked(9),dsq_insert_head(9)set_task_slice_keep_oob(9),scx_task_slice_ended(9)move_remote_task_to_local_dsq(9),unlink_dsq_and_switch_rq_lock(9),move_task_between_dsqs(9),dispatch_to_local_dsq(9),finish_dispatch(9)scx_prio_less(9),__scx_init_task(9),task_dead_and_done(9)scx_tg_sched(9),scx_tg_knob_sched(9)handle_lockup(9),scx_rcu_cpu_stall(9),scx_softlockup(9),scx_hardlockup(9)unbypass_renotify_idle(9),scx_bypass(9)scx_propagate_exit_irq_workfn(9),scx_flush_disable_work(9),print_scx_info(9)scx_bpf_dsq_insert___v2(9),__scx_bpf_dsq_insert_vtime(9)scx_bpf_dispatch_nr_slots(9),scx_bpf_dispatch_cancel(9)scx_bpf_dsq_move_to_local___v2(9),scx_bpf_dsq_move_set_slice(9),scx_bpf_dsq_move_set_vtime(9),scx_bpf_dsq_move(9),scx_bpf_dsq_move_vtime(9)scx_bpf_reenqueue_local(9),scx_bpf_task_set_slice(9),scx_bpf_task_set_dsq_vtime(9)scx_bpf_kick_cpu(9),scx_bpf_kick_cid(9),scx_bpf_dsq_nr_queued(9),scx_bpf_destroy_dsq(9)bpf_iter_scx_dsq_new(9),bpf_iter_scx_dsq_next(9),bpf_iter_scx_dsq_destroy(9)scx_bpf_dsq_peek(9),scx_bpf_dsq_reenq(9),scx_bpf_reenqueue_local___v2(9)scx_bpf_exit_bstr(9),scx_bpf_error_bstr(9),scx_bpf_dump_bstr(9)scx_bpf_cpuperf_cap(9),scx_bpf_cidperf_cap(9),scx_bpf_cpuperf_cur(9),scx_bpf_cidperf_cur(9),scx_bpf_cpuperf_set(9),scx_bpf_cidperf_set(9)scx_bpf_nr_node_ids(9),scx_bpf_nr_cpu_ids(9),scx_bpf_nr_cids(9),scx_bpf_nr_online_cids(9)scx_bpf_online_cmask(9),scx_bpf_this_cid(9)scx_bpf_get_possible_cpumask(9),scx_bpf_get_online_cpumask(9),scx_bpf_put_cpumask(9)scx_bpf_task_running(9),scx_bpf_task_cpu(9),scx_bpf_task_cid(9)scx_bpf_locked_rq(9),scx_bpf_cpu_curr(9),scx_bpf_cid_curr(9)scx_bpf_tid_to_task(9),scx_bpf_now(9),scx_bpf_events(9),scx_bpf_task_cgroup(9)
like i said. everyone's here. the whole extended universe ππ
and that's the tea ββ¨ go create your DSQ bestie, you got this π π¦
this little gem lives in ./kernel/sched/ext and it's stamped October 2026 β so yeah, save the date, screenshot it, whatever, mwah ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms