for_each_pool(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… for_each_pool(9) β€” Kernel API Manual ✨

okay bestie, welcome to the Kernel API Manual page for for_each_pool(9) β€” yes, that’s the title and the manual name all folded in near the top, we are so back. 🫢


🌸 NAME 🌸

for_each_pool - iterate through all worker_pools in the system. periodt. πŸ‘‘

✨ SYNOPSIS ✨

for_each_pool (pool , pi );

πŸŽ€ ARGUMENTS πŸŽ€

  • pool β€” iteration cursor. it’s giving β€œwe are walking through the pools”, bestie. πŸšΆβ€β™€οΈ
  • pi β€” integer used for iteration. just an integer doing its little iteration job. πŸ”’

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so the big rule, no cap: this must be called either with wq_pool_mutex held or RCU read locked. ngl, this is highkey the whole vibe check. πŸ”’

If the pool needs to be used beyond the locking in effect, the caller is responsible for guaranteeing that the pool stays online. fr fr β€” if you’re gonna keep using it after the lock situation changes, that’s on you, bestie. keep that pool online. 🫢

The if/else clause exists only for the lockdep assertion and can be ignored. not me lowkey explaining that the if/else is just there for the lockdep assertion β€” you can literally ignore it. πŸ’…

🌈 SEE ALSO 🌈

Kernel file ./kernel/workqueue.c is main character energy, and the SEE ALSO besties are: for_each_pool_worker(9), for_each_pwq(9), worker_pool_assign_id(9), unbound_effective_cpumask(9), get_work_pool(9), worker_set_flags(9), worker_clr_flags(9), worker_enter_idle(9), worker_leave_idle(9), find_worker_executing_work(9), move_linked_works(9), assign_work(9), kick_pool_pick(9), kick_pool(9), wq_worker_running(9), wq_worker_sleeping(9), wq_worker_tick(9), wq_worker_last_func(9), wq_node_nr_active(9), wq_update_node_max_active(9), get_pwq(9), put_pwq(9), put_pwq_unlocked(9), pwq_tryinc_nr_active(9), pwq_activate_first_inactive(9), unplug_oldest_pwq(9), node_activate_pending_pwq(9), pwq_dec_nr_active(9), pwq_dec_nr_in_flight(9), try_to_grab_pending(9), work_grab_pending(9), insert_work(9), queue_work_on(9), select_numa_node_cpu(9), queue_work_node(9), queue_delayed_work_on(9), mod_delayed_work_on(9), queue_rcu_work(9), worker_attach_to_pool(9), worker_detach_from_pool(9), create_worker(9), set_worker_dying(9), idle_worker_timeout(9), idle_cull_fn(9), maybe_create_worker(9), manage_workers(9), process_one_work(9), process_scheduled_works(9), worker_thread(9), rescuer_thread(9), check_flush_dependency(9), insert_wq_barrier(9), flush_workqueue_prep_pwqs(9), __flush_workqueue(9), drain_workqueue(9), flush_work(9), flush_delayed_work(9), flush_rcu_work(9), cancel_work_sync(9), cancel_delayed_work(9), cancel_delayed_work_sync(9), disable_work(9), disable_work_sync(9), enable_work(9), disable_delayed_work(9), disable_delayed_work_sync(9), enable_delayed_work(9), schedule_on_each_cpu(9), execute_in_process_context(9), free_workqueue_attrs(9), alloc_workqueue_attrs(9), init_worker_pool(9), put_unbound_pool(9), get_unbound_pool(9), wq_calc_pod_cpumask(9), apply_workqueue_attrs(9), unbound_wq_update_pwq(9), wq_adjust_max_active(9), destroy_workqueue(9), workqueue_set_max_active(9), workqueue_set_min_active(9), current_work(9), current_is_workqueue_rescuer(9), current_is_workqueue_mem_reclaim(9), workqueue_congested(9), work_busy(9), set_worker_desc(9), print_worker_info(9), show_one_workqueue(9), show_one_worker_pool(9), show_all_workqueues(9), show_freezable_workqueues(9), rebind_workers(9), restore_unbound_workers_cpumask(9), work_on_cpu_key(9), freeze_workqueues_begin(9), freeze_workqueues_busy(9), thaw_workqueues(9), workqueue_unbound_housekeeping_update(9), workqueue_set_unbound_cpumask(9), workqueue_sysfs_register(9), workqueue_sysfs_unregister(9), workqueue_init_early(9), workqueue_init(9), llc_count_cores(9), llc_populate_cpu_shard_id(9), precompute_cache_shard_ids(9), workqueue_init_topology(9).

iykyk β€” this list ate, and honestly? obsessed. πŸ’…πŸ”₯


πŸ’– okay that’s the whole for_each_pool(9) moment, bestie β€” source/version ./kernel, date October 2026. this page is iconic, the locking rule is iconic, you are iconic. mwah! πŸ’‹βœ¨πŸŽ€

πŸ“¦ where this page comes from