scx_bpf_dispatch_nr_slots(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– scx_bpf_dispatch_nr_slots(9) πŸ’–

okay so welcome to the Kernel API Manual corner, bestie. this page is literally about scx_bpf_dispatch_nr_slots, and yes the vibes are very scheduler-coded πŸ’….


🌸 NAME 🌸

scx_bpf_dispatch_nr_slots β€” returns the number of remaining dispatch slots, no cap ✨. It’s giving β€œhow many slots do I still have left?” and honestly same.

✨ SYNOPSIS ✨

here’s the whole signature, copy it exactly bestie:

__bpf_kfunc u32 scx_bpf_dispatch_nr_slots (const struct bpf_prog_aux *aux );

πŸŽ€ ARGUMENTS πŸŽ€

  • aux β€” the implicit BPF argument used to access bpf_prog_aux; it’s hidden from BPF progs πŸ‘€. So like, it’s there, but not for your regular BPF-prog eyes.

πŸ¦‹ DESCRIPTION πŸ¦‹

vibe check: this one can only be called from ops.dispatch 🫢. That’s the approved hangout spot, periodt. If you’re calling it from anywhere else, that’s not the move.

πŸ’… SEE ALSO πŸ’…

all the sibling lore lives in the kernel file ./kernel/sched/ext/ext.c, and the whole group chat is right here:

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_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_create_dsq(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)

okay bye bestie, this iconic little page came from ./kernel/sched/ext and is dated October 2026 β€” mwah πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from