workqueue_sysfs_register(9)
π workqueue_sysfs_register(9) β the "put it in sysfs" era
Okay bestie, grab a snack π because we're looking at workqueue_sysfs_register(9) from the Kernel API Manual, and honestly? It's a lil function with big main character energy.
β¨ NAME β¨
workqueue_sysfs_register β literally just making a workqueue visible in sysfs π
πΈ SYNOPSIS πΈ
int workqueue_sysfs_register (struct workqueue_struct *wq );
π ARGUMENTS π
wqβ the workqueue we're about to register. that's the one, that's the girl π
π¦ DESCRIPTION π¦
So what does it do? It exposes wq in sysfs under /sys/bus/workqueue/devices. That's it, that's the vibe β¨
Now, here's the tea: alloc_workqueue*() calls this function automatically for you if WQ_SYSFS is set, and ngl, that's the preferred method. No cap, let the allocator handle it π«Ά
You (the workqueue user) should only call this function directly iff you wanna apply workqueue_attrs before making the workqueue visible in sysfs. Why? Because otherwise apply_workqueue_attrs may race against userland updating the attributes π like, actual chaos. Respect the ordering, bestie.
fr fr: direct call is a whole vibe only when you're setting attrs first. otherwise let alloc_workqueue*() do its thing.
β RETURN β
0on success π-errnoon failure π
π SEE ALSO π
Kernel file ./kernel/workqueue.c, plus the entire extended universe of workqueue functions. Buckle up, this list is giving "squad photo at the end of the school year" π
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), 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_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)
And that's the whole page, bestie π stay hydrated, register your workqueues responsibly, and remember β this gem is served up from ./kernel, dated October 2026 π§β¨ mwah π
π¦ 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