scx_bpf_cpuperf_cur(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… scx_bpf_cpuperf_cur(9) β€” like, the Kernel API Manual edition ✨

okay so bestie, gather round, because we're diving into scx_bpf_cpuperf_cur(9) from the Kernel API Manual and honestly? she's a little icon. she answers exactly one question and she answers it flawlessly. no notes. πŸŽ€


🌸 NAME 🌸

scx_bpf_cpuperf_cur β€” query the current relative performance of a CPU. that's it. that's the whole job. and she ate. πŸ’…


✨ SYNOPSIS ✨

__bpf_kfunc u32 scx_bpf_cpuperf_cur (s32 cpu , const struct bpf_prog_aux
*aux );

look at her signature. iconic. copy it exactly, don't be weird about it. 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • cpu β€” the CPU you're curious about. your CPU of interest, if you will. main character CPU. πŸ‘‘
  • aux β€” the implicit BPF argument used to access bpf_prog_aux, and it's hidden from BPF progs. so like… not your business, babe. it's there, it's doing its thing, you don't touch it. πŸ™ˆ

πŸ’– DESCRIPTION πŸ’–

so what does she actually do? she returns the current relative performance of cpu in relation to its maximum. lowkey the whole point of the function. and the return value lives in the range [1, SCX_CPUPERF_ONE]. yes, the brackets are inclusive, yes, that matters. πŸ”₯

now, if you wanna figure out the current performance level of a CPU in relation to the maximum performance available in the system, the math is literally this:

scx_bpf_cpuperf_cap * scx_bpf_cpuperf_cur / SCX_CPUPERF_ONE

and the result of that little formula? also in the range [1, SCX_CPUPERF_ONE]. so cute, so consistent. 🌈

ngl bestie, that's the entire description. no hidden lore, no extra lore drops. just vibes and a range. πŸ’œ

🧚 SEE ALSO 🧚

this list is long β€” like, longer than my screen time report β€” but every single one of these is invited to the party, so here they all are, in order, no gatekeeping. the kernel file ./kernel/sched/ext/ext.c is the source of truth for this 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_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_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. a lot of friends. iykyk. πŸ“


okay that's the page!! and before you go β€” this whole thing lives under ./kernel/sched/ext and it's dated October 2026, so jot that down bestie, it's giving very much "future classic". bye, love you, go query some CPU perf πŸ’œβœ¨πŸŽ€

πŸ“¦ where this page comes from