kick_pool(9)
β¨ kick_pool(9) β¨
okay so this is a page from the Kernel API Manual (section 9, kernel-space club only π), and honestly? it's a little one but it's a loud one. it's the "hey bestie, wake up" syscall-adjacent moment of the workqueue world. let's get into it π
π NAME π
kick_pool β wake up an idle worker if necessary
like, that's it. that's the whole job. wake the sleepy little worker. no cap.
π¦ SYNOPSIS π¦
bool kick_pool (struct worker_pool *pool );
she takes one pointer and gives you back a bool. short, sweet, iconic π
πΈ ARGUMENTS πΈ
poolβ the pool to kick. yes. that's the pool. you kick it. π¦΅π₯ the original page literally just says "pool to kick" and honestly? respect the brevity.
β¨ DESCRIPTION β¨
so here's the vibe check: pool may have pending work items sitting there, justβ¦ waiting. and this function's whole main-character moment is to wake up a worker if necessary. that's the assignment and she ate. π₯
and she's not just doing it silently β she returns whether a worker was woken up. so you get receipts. true if somebody got got out of bed, false if nobody needed to. fr fr, that's the entire contract π«Ά
ngl there is nothing else on this page β no options, no env vars, no exit statuses, no signal drama, no bugs section. it's a one-job function and it knows it π
π SEE ALSO π
first up, the source neighborhood: the kernel file ./kernel/workqueue.c π§ β that's where the whole party lives. and then, bestie, buckle up, because the cross-reference list here is long. like, scroll-for-days long. every single one matters, so here's the full roll call in the order the page gives them:
for_each_pool(9)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)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)
like. she said "here's my whole friend group, meet everyone" ππ and yes, that's every single one β no gatekeeping on this page.
π cute sign-off π
this absolute gem comes from the source tree at ./kernel, dated October 2026 β so yeah, she's from the future-ish and she's thriving. read her, cite her, kick your pools responsibly. periodt. π
β¨π¦
π¦ 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