STRUCT CPUIDLE_COUPLED(9)
π struct cpuidle_coupled(9) π
okay bestie so this is a page from the Kernel API Manual and it's literally all about struct cpuidle_coupled β the lil data bundle for a set of cpus that share a coupled idle state. yes it's as iconic as it sounds, no cap π«Ά
β¨ NAME β¨
struct cpuidle_coupled β data for set of cpus that share a coupled idle state
like, that's the whole vibe. a struct. for coupled idle. for the cpu girlies that refuse to nap alone. π¦
πΈ SYNOPSIS πΈ
struct cpuidle_coupled {
cpumask_t coupled_cpus;
int requested_state[NR_CPUS];
atomic_t ready_waiting_counts;
atomic_t abort_barrier;
int online_count;
int refcnt;
int prevent;
};
okay so it's giving "small struct, big responsibilities" and honestly? we love to see it π
π Members π
here's the breakdown of every single field, and yes i'm doing all of them, because skipping fields is not the move π€
coupled_cpusβ mask of cpus that are part of the coupled set. the guest list, basically. only these cpus are in the group chat πrequested_stateβ array of requested states for cpus in the coupled set. lowkey each cpu's own personal wishlist, indexed by cpu πready_waiting_countsβ combined count of cpus in ready or waiting loops. one single atomic number doing double duty, and the way that it just holds both counts at once? main character energy fr fr β¨abort_barrierβ synchronisation point for abort cases. the "okay everyone stop, we're bailing" meeting spot πonline_countβ count of cpus that are online. just the headcount of who actually showed up πrefcntβ reference count of cpuidle devices that are using this struct. keep track of your friends, bestie, or you'll free something that's still in use πpreventβ flag to prevent coupled idle while a cpu is hotplugging. literally a "do not disturb" sign while the cpu is coming or going π«
π SEE ALSO π
- Kernel file
./drivers/cpuidle/coupled.c Coupled cpuidle states(9)cpuidle_coupled_parallel_barrier(9)cpuidle_state_is_coupled(9)cpuidle_coupled_state_verify(9)cpuidle_coupled_set_ready(9)cpuidle_coupled_set_not_ready(9)cpuidle_coupled_no_cpus_ready(9)cpuidle_coupled_cpus_ready(9)cpuidle_coupled_cpus_waiting(9)cpuidle_coupled_no_cpus_waiting(9)cpuidle_coupled_get_state(9)cpuidle_coupled_poke(9)cpuidle_coupled_poke_others(9)cpuidle_coupled_set_waiting(9)cpuidle_coupled_set_not_waiting(9)cpuidle_coupled_set_done(9)cpuidle_coupled_clear_pokes(9)cpuidle_enter_state_coupled(9)cpuidle_coupled_register_device(9)cpuidle_coupled_unregister_device(9)cpuidle_coupled_prevent_idle(9)cpuidle_coupled_allow_idle(9)
like, that's the whole friend group right there. go read all of them, i'll wait π§
and that's the page, bestie! it lives under ./drivers/cpuidle, dated October 2026, and it's filed as struct cpuidle_coupled(9) π
iykyk β now go off and couple some idle states, slay π₯π
π¦ 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