aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
AgeCommit message (Expand)AuthorFilesLines
2025-09-16workqueue: WQ_PERCPU added to alloc_workqueue usersMarco Crivellari1-10/+10
2025-09-05workqueue: replace use of system_wq with system_percpu_wqMarco Crivellari1-1/+1
2025-09-05workqueue: replace use of system_unbound_wq with system_dfl_wqMarco Crivellari1-1/+1
2025-09-04workqueue: Provide a handshake for canceling BH workersSebastian Andrzej Siewior1-9/+41
2025-09-04workqueue: Remove rcu_read_lock/unlock() in wq_watchdog_timer_fn()Zqiang1-4/+0
2025-09-04workqueue: Remove redundant rcu_read_lock/unlock() in workqueue_congested()Zqiang1-2/+0
2025-07-31Merge tag 'wq-for-6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-50/+24
2025-07-17workqueue: Use atomic_try_cmpxchg_relaxed() in tryinc_node_nr_active()Uros Bizjak1-8/+5
2025-06-23workqueue: Remove unused work_on_cpu_safeDr. David Alan Gilbert1-25/+0
2025-06-17workqueue: Initialize wq_isolated_cpumask in workqueue_init_early()Chuyi Zhou1-1/+2
2025-06-17Merge branch 'WQ_PERCPU' into for-6.17Tejun Heo1-4/+9
2025-06-17workqueue: Add system_percpu_wq and system_dfl_wqMarco Crivellari1-4/+9
2025-06-16workqueue: Basic memory allocation profiling supportKent Overstreet1-7/+7
2025-06-09workqueue: fix opencoded cpumask_next_and_wrap() in wq_select_unbound_cpu()Yury Norov [NVIDIA]1-6/+3
2025-06-08treewide, timers: Rename from_timer() to timer_container_of()Ingo Molnar1-3/+3
2025-05-27Merge tag 'wq-for-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-1/+14
2025-05-08treewide, timers: Rename destroy_timer_on_stack() as timer_destroy_on_stack()Ingo Molnar1-1/+1
2025-04-23workqueue: Fix race condition in wq->stats incrementationJiayuan Chen1-1/+3
2025-04-14workqueue: Better document teardown for delayed_workPhilipp Stanner1-0/+11
2025-04-05treewide: Switch/rename to timer_delete[_sync]()Thomas Gleixner1-7/+7
2025-02-26Merge tag 'wq-for-6.14-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-1/+3
2025-02-14Merge tag 'wq-for-6.14-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-6/+6
2025-02-14workqueue: Log additional details when rejecting workWill Deacon1-1/+3
2025-01-26Merge tag 'mm-stable-2025-01-26-14-59' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-1/+1
2025-01-24workqueue: Put the pwq after detaching the rescuer from the poolLai Jiangshan1-6/+6
2025-01-21Merge tag 'kthread-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel...Linus Torvalds1-1/+1
2025-01-13kasan: make kasan_record_aux_stack_noalloc() the default behaviourPeter Zijlstra1-1/+1
2025-01-10workqueue: warn if delayed_work is queued to an offlined cpu.Imran Khan1-0/+7
2025-01-08treewide: Introduce kthread_run_worker[_on_cpu]()Frederic Weisbecker1-1/+1
2024-12-24workqueue: add printf attribute to __alloc_workqueue()Su Hui1-0/+1
2024-12-19workqueue: Do not warn when cancelling WQ_MEM_RECLAIM work from !WQ_MEM_RECLA...Tvrtko Ursulin1-9/+13
2024-11-15workqueue: Reduce expensive locks for unbound workqueueWangyang Guo1-4/+18
2024-09-18Merge tag 'wq-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-25/+82
2024-09-11workqueue: Clear worker->pool in the worker thread contextLai Jiangshan1-2/+6
2024-09-11kernel/workqueue.c: fix DEFINE_PER_CPU_SHARED_ALIGNED expansionBaoquan He1-6/+3
2024-08-21workqueue: fix null-ptr-deref on __alloc_workqueue() errorSergey Senozhatsky1-0/+3
2024-08-20workqueue: Don't call va_start / va_end twiceMatthew Brost1-5/+1
2024-08-13workqueue: Add interface for user-defined workqueue lockdep mapMatthew Brost1-0/+28
2024-08-13workqueue: Change workqueue lockdep map to pointerMatthew Brost1-7/+9
2024-08-13workqueue: Split alloc_workqueue into internal function and lockdep initMatthew Brost1-8/+23
2024-08-06workqueue: add cmdline parameter workqueue.panic_on_stallSangmoon Kim1-0/+16
2024-08-05workqueue: Correct declaration of cpu_pwq in struct workqueue_structUros Bizjak1-1/+1
2024-08-05workqueue: Fix spruious data race in __flush_work()Tejun Heo1-20/+25
2024-08-05workqueue: Remove incorrect "WARN_ON_ONCE(!list_empty(&worker->entry));" from...Lai Jiangshan1-1/+0
2024-08-05workqueue: Fix UBSAN 'subtraction overflow' error in shift_and_mask()Will Deacon1-1/+1
2024-07-15workqueue: Remove unneeded lockdep_assert_cpus_held()Lai Jiangshan1-10/+2
2024-07-15Merge tag 'wq-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-189/+157
2024-07-14workqueue: Always queue work items to the newest PWQ for order workqueuesLai Jiangshan1-1/+5
2024-07-11workqueue: Rename wq_update_pod() to unbound_wq_update_pwq()Lai Jiangshan1-17/+15
2024-07-11workqueue: Remove the arguments @hotplug_cpu and @online from wq_update_pod()Lai Jiangshan1-8/+5
2024-07-11workqueue: Remove the argument @cpu_going_down from wq_calc_pod_cpumask()Lai Jiangshan1-8/+4
2024-07-11workqueue: Remove the unneeded cpumask empty check in wq_calc_pod_cpumask()Lai Jiangshan1-4/+0
2024-07-11workqueue: Remove cpus_read_lock() from apply_wqattrs_lock()Lai Jiangshan1-3/+0
2024-07-11workqueue: Simplify wq_calc_pod_cpumask() with wq_online_cpumaskLai Jiangshan1-9/+3
2024-07-11workqueue: Add wq_online_cpumaskLai Jiangshan1-0/+10
2024-07-05workqueue: Init rescuer's affinities as the wq's effective cpumaskLai Jiangshan1-4/+8
2024-07-05workqueue: Put PWQ allocation and WQ enlistment in the same lock C.S.Lai Jiangshan1-26/+28
2024-07-05workqueue: Move kthread_flush_worker() out of alloc_and_link_pwqs()Lai Jiangshan1-7/+8
2024-07-05workqueue: Make rescuer initialization as the last step of the creation of a ...Lai Jiangshan1-3/+3
2024-07-05workqueue: Register sysfs after the whole creation of the new wqLai Jiangshan1-3/+3
2024-07-02workqueue: Simplify goto statementLai Jiangshan1-8/+3
2024-07-02workqueue: Update cpumasks after only applying it successfullyLai Jiangshan1-4/+6
2024-06-25workqueue: Improve scalability of workqueue watchdog touchNicholas Piggin1-2/+8
2024-06-25workqueue: wq_watchdog_touch is always called with valid CPUNicholas Piggin1-0/+2
2024-06-21workqueue: Remove useless pool->dying_workersLai Jiangshan1-3/+0
2024-06-21workqueue: Detach workers directly in idle_cull_fn()Lai Jiangshan1-26/+19
2024-06-21workqueue: Don't bind the rescuer in the last working cpuLai Jiangshan1-12/+12
2024-06-21workqueue: Reap workers via kthread_stop() and remove detach_completionLai Jiangshan1-16/+19
2024-06-19workqueue: Avoid nr_active manipulation in grabbing inactive itemsLai Jiangshan1-33/+9
2024-06-10workqueue: replace call_rcu by kfree_rcu for simple kmem_cache_free callbackJulia Lawall1-7/+1
2024-06-07workqueue: Clean code in alloc_and_link_pwqs()Wenchao Hao1-6/+7
2024-05-20workqueue: Refactor worker ID formatting and make wq_worker_comm() use full I...Tejun Heo1-17/+34
2024-05-15Merge branch 'for-6.10' into test-merge-for-6.10Tejun Heo1-178/+275
2024-05-13Merge tag 'sched-core-2024-05-13' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-1/+1
2024-04-24workqueue: Fix divide error in wq_update_node_max_active()Lai Jiangshan1-0/+9
2024-04-23workqueue: The default node_nr_active should have its max set to max_activeTejun Heo1-1/+1
2024-04-23workqueue: Fix selection of wake_cpu in kick_pool()Sven Schnelle1-2/+6
2024-04-08workqueue: Add destroy_work_on_stack() in workqueue_softirq_dead()Zqiang1-0/+1
2024-03-25workqueue: Cleanup subsys attribute registrationDan Williams1-32/+17
2024-03-25workqueue: Use list_last_entry() to get the last idle workerLai Jiangshan1-2/+2
2024-03-25workqueue: Move attrs->cpumask out of worker_pool's properties when attrs->af...Lai Jiangshan1-5/+8
2024-03-25workqueue: Use INIT_WORK_ONSTACK in workqueue_softirq_dead()Lai Jiangshan1-1/+1
2024-03-25workqueue: Allow cancel_work_sync() and disable_work() from atomic contexts o...Tejun Heo1-19/+55
2024-03-25workqueue: Remember whether a work item was on a BH workqueueTejun Heo1-2/+8
2024-03-25workqueue: Remove WORK_OFFQ_CANCELINGTejun Heo1-121/+19
2024-03-25workqueue: Implement disable/enable for (delayed) work itemsTejun Heo1-10/+167
2024-03-25workqueue: Preserve OFFQ bits in cancel[_sync] pathsTejun Heo1-20/+31
2024-03-25Merge tag 'v6.9-rc1' into sched/core, to pick up fixes and to refresh the branchIngo Molnar1-1/+1
2024-03-21Merge tag 'driver-core-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/...Linus Torvalds1-1/+1
2024-03-12sched/balancing: Rename scheduler_tick() => sched_tick()Ingo Molnar1-1/+1
2024-03-11Merge tag 'timers-core-2024-03-10' of git://git.kernel.org/pub/scm/linux/kern...Linus Torvalds1-1/+1
2024-02-29workqueue: Drain BH work items on hot-unplugged CPUsTejun Heo1-3/+88
2024-02-22workqueue: Control intensive warning threshold through cmdlineXuewen Yan1-3/+11
2024-02-22workqueue: Use global variant for add_timer()Anna-Maria Behnsen1-1/+1
2024-02-20workqueue: Make @flags handling consistent across set_work_data() and friendsTejun Heo1-16/+16
2024-02-20workqueue: Remove clear_work_data()Tejun Heo1-16/+8
2024-02-20workqueue: Factor out work_grab_pending() from __cancel_work_sync()Tejun Heo1-52/+80
2024-02-20workqueue: Clean up enum work_bits and related constantsTejun Heo1-4/+4
2024-02-20workqueue: Introduce work_cancel_flagsTejun Heo1-12/+17
2024-02-20workqueue: Use variable name irq_flags for saving local irq flagsTejun Heo1-38/+38
2024-02-20workqueue: Reorganize flush and cancel[_sync] functionsTejun Heo1-68/+68
2024-02-20workqueue: Rename __cancel_work_timer() to __cancel_timer_sync()Tejun Heo1-3/+3
2024-02-20workqueue: Use rcu_read_lock_any_held() instead of rcu_read_lock_held()Tejun Heo1-2/+2
2024-02-20workqueue: Cosmetic changesTejun Heo1-16/+14
2024-02-19Merge 6.8-rc5 into driver-core-nextGreg Kroah-Hartman1-6/+2
2024-02-16workqueue, irq_work: Build fix for !CONFIG_IRQ_WORKTejun Heo1-9/+15
2024-02-14workqueue: Fix queue_work_on() with BH workqueuesTejun Heo1-5/+36
2024-02-09workqueue: Implement workqueue_set_min_active()Tejun Heo1-0/+27
2024-02-09workqueue: Fix kernel-doc comment of unplug_oldest_pwq()Waiman Long1-7/+10
2024-02-08workqueue: Bind unbound workqueue rescuer to wq_unbound_cpumaskWaiman Long1-1/+1
2024-02-08kernel/workqueue: Let rescuers follow unbound wq cpumask changesJuri Lelli1-0/+5
2024-02-08workqueue: Enable unbound cpumask update on ordered workqueuesWaiman Long1-10/+59
2024-02-08workqueue: Link pwq's into wq->pwqs from oldest to newestWaiman Long1-1/+1
2024-02-08workqueue: make wq_subsys constRicardo B. Marliere1-1/+1
2024-02-05Merge branch 'for-6.8-fixes' into for-6.9Tejun Heo1-6/+2
2024-02-05Revert "workqueue: Override implicit ordered attribute in workqueue_apply_unb...Tejun Heo1-6/+2
2024-02-05workqueue: Don't implicitly make UNBOUND workqueues w/ @max_active==1 orderedTejun Heo1-18/+4
2024-02-05workqueue: Skip __WQ_DESTROYING workqueues when updating global unbound cpumaskWaiman Long1-1/+1
2024-02-05workqueue: fix a typo in commentWang Jinchao1-1/+1
2024-02-05Revert "workqueue: make wq_subsys const"Tejun Heo1-1/+1
2024-02-04workqueue: Implement BH workqueues to eventually replace taskletsTejun Heo1-53/+238
2024-02-04workqueue: Factor out init_cpu_worker_pool()Tejun Heo1-14/+18
2024-02-04workqueue: Update lock debugging codeTejun Heo1-17/+34
2024-02-04workqueue: make wq_subsys constRicardo B. Marliere1-1/+1
2024-02-04workqueue: Fix pwq->nr_in_flight corruption in try_to_grab_pending()Tejun Heo1-2/+8
2024-01-30workqueue: Avoid premature init of wq->node_nr_active[].maxTejun Heo1-0/+8
2024-01-30workqueue: Don't call cpumask_test_cpu() with -1 CPU in wq_update_node_max_ac...Tejun Heo1-1/+1
2024-01-29workqueue: Avoid using isolated cpus' timers on queue_delayed_workLeonardo Bras1-3/+11
2024-01-29workqueue: Implement system-wide nr_active enforcement for unbound workqueuesTejun Heo1-32/+309
2024-01-29workqueue: Introduce struct wq_node_nr_activeTejun Heo1-7/+135
2024-01-29workqueue: Move pwq_dec_nr_in_flight() to the end of work item handlingTejun Heo1-1/+10
2024-01-29workqueue: RCU protect wq->dfl_pwq and implement accessors for itTejun Heo1-24/+40
2024-01-29workqueue: Make wq_adjust_max_active() round-robin pwqs while activatingTejun Heo1-12/+19
2024-01-29workqueue: Move nr_active handling into helpersTejun Heo1-19/+67
2024-01-29workqueue: Replace pwq_activate_inactive_work() with [__]pwq_activate_work()Tejun Heo1-6/+25
2024-01-29workqueue: Factor out pwq_is_empty()Tejun Heo1-4/+9
2024-01-29workqueue: Move pwq->max_active to wq->max_activeTejun Heo1-67/+66
2024-01-26workqueue: Break up enum definitions and give names to the typesTejun Heo1-1/+5
2024-01-26workqueue: Drop unnecessary kick_pool() in create_worker()Tejun Heo1-3/+2
2024-01-25workqueue: Shorten events_freezable_power_efficient nameAudra Mitchell1-1/+1
2024-01-19workqueue: mark power efficient workqueue as unbounded if nohz_full enabledMarcelo Tosatti1-0/+7
2024-01-16workqueue: Add rcu lock check at the end of work item executionXuewen Yan1-4/+5
2024-01-16kernel/workqueue: Bind rescuer to unbound cpumask for WQ_UNBOUNDJuri Lelli1-1/+4
2024-01-16workqueue.c: Increase workqueue name lengthAudra Mitchell1-2/+6
2023-11-22Merge branch 'for-6.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...Tejun Heo1-6/+16
2023-11-22workqueue: Make sure that wq_unbound_cpumask is never emptyTejun Heo1-7/+15
2023-11-21workqueue: Move workqueue_set_unbound_cpumask() and its helpers inside CONFIG...Waiman Long1-51/+51
2023-11-12workqueue: Add workqueue_unbound_exclude_cpumask() to exclude CPUs from wq_un...Waiman Long1-8/+83
2023-11-02Merge tag 'mm-nonmm-stable-2023-11-02-14-08' of git://git.kernel.org/pub/scm/...Linus Torvalds1-8/+8
2023-10-18treewide: mark stuff as __ro_after_initAlexey Dobriyan1-8/+8
2023-10-17workqueue: Provide one lock class key per work_on_cpu() callsiteFrederic Weisbecker1-8/+12
2023-10-12workqueue: fix -Wformat-truncation in create_workerLucy Mielke1-1/+1
2023-10-12workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpu...Waiman Long1-2/+6
2023-10-12workqueue: Use the kmem_cache_free() instead of kfree() to release pwqZqiang1-2/+6
2023-10-04workqueue: Fix UAF report by KASAN in pwq_release_workfn()Zqiang1-0/+6
2023-09-18workqueue: Fix missed pwq_release_worker creation in wq_cpu_intensive_thresh_...Zqiang1-3/+3
2023-09-18workqueue: Removed double allocation of wq_update_pod_attrs_bufSteven Rostedt (Google)1-3/+0
2023-08-29workqueue: fix data race with the pwq->stats[] incrementMirsad Goran Todorovac1-1/+1
2023-08-14workqueue: Rename rescuer kworkerAaron Tomlin1-1/+1
2023-08-07workqueue: Make default affinity_scope dynamically updatableTejun Heo1-6/+39
2023-08-07workqueue: Implement non-strict affinity scope for unbound workqueuesTejun Heo1-2/+72
2023-08-07workqueue: Add workqueue_attrs->__pod_cpumaskTejun Heo1-37/+37
2023-08-07workqueue: Factor out need_more_worker() check and worker wake-upTejun Heo1-50/+37
2023-08-07workqueue: Factor out work to worker assignment and collision handlingTejun Heo1-28/+52
2023-08-07workqueue: Add multiple affinity scopes and interface to select themTejun Heo1-5/+105
2023-08-07workqueue: Modularize wq_pod_type initializationTejun Heo1-34/+50
2023-08-07workqueue: Generalize unbound CPU podsTejun Heo1-61/+110
2023-08-07workqueue: Factor out clearing of workqueue-only attrs fieldsTejun Heo1-6/+14
2023-08-07workqueue: Factor out actual cpumask calculation to reduce subtlety in wq_upd...Tejun Heo1-20/+29
2023-08-07workqueue: Initialize unbound CPU pods later in the bootTejun Heo1-27/+41
2023-08-07workqueue: Move wq_pod_init() below workqueue_init()Tejun Heo1-38/+40
2023-08-07workqueue: Rename NUMA related names to use pod insteadTejun Heo1-85/+76
2023-08-07workqueue: Rename workqueue_attrs->no_numa to ->orderedTejun Heo1-10/+9
2023-08-07workqueue: Make unbound workqueues to use per-cpu pool_workqueuesTejun Heo1-141/+77
2023-08-07workqueue: Call wq_update_unbound_numa() on all CPUs in NUMA node on CPU hotplugTejun Heo1-9/+25
2023-08-07workqueue: Make per-cpu pool_workqueues allocated and released like unbound onesTejun Heo1-34/+40
2023-08-07workqueue: Use a kthread_worker to release pool_workqueuesTejun Heo1-17/+23
2023-08-07workqueue: Remove module param disable_numa and sysfs knobs pool_ids and numaTejun Heo1-73/+0
2023-08-07workqueue: Relocate worker and work management functionsTejun Heo1-172/+168
2023-08-07workqueue: Rename wq->cpu_pwqs to wq->cpu_pwqTejun Heo1-7/+7
2023-08-07workqueue: Not all work insertion needs to wake up a workerTejun Heo1-19/+19
2023-08-07workqueue: Cleanups around process_scheduled_works()Tejun Heo1-18/+11
2023-08-07workqueue: Drop the special locking rule for worker->flags and worker_pool->f...Tejun Heo1-14/+3
2023-08-07workqueue: Merge branch 'for-6.5-fixes' into for-6.6Tejun Heo1-1/+42
2023-08-07workqueue: use LIST_HEAD to initialize cull_listYang Yingliang1-5/+2
2023-07-25workqueue: Scale up wq_cpu_intensive_thresh_us if BogoMIPS is below 4000Tejun Heo1-1/+42
2023-07-10workqueue: add cmdline parameter `workqueue.unbound_cpus` to further constrai...tiozhang1-0/+17
2023-07-10workqueue: Warn attempt to flush system-wide workqueues.Tetsuo Handa1-6/+5
2023-06-27Merge tag 'wq-for-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-64/+258
2023-06-23workqueue: clean up WORK_* constant types, clarify maskingLinus Torvalds1-5/+8
2023-05-25workqueue: Disable per-cpu CPU hog detection when wq_cpu_intensive_thresh_us ...Zqiang1-0/+3
2023-05-24workqueue: Fix WARN_ON_ONCE() triggers in worker_enter_idle()Zqiang1-5/+12
2023-05-17workqueue: Track and monitor per-workqueue CPU time usageTejun Heo1-0/+3
2023-05-17workqueue: Report work funcs that trigger automatic CPU_INTENSIVE mechanismTejun Heo1-0/+93
2023-05-17workqueue: Automatically mark CPU-hogging work items CPU_INTENSIVETejun Heo1-5/+63
2023-05-17workqueue: Improve locking rule description for worker fieldsTejun Heo1-0/+6
2023-05-17workqueue: Move worker_set/clr_flags() upwardsTejun Heo1-54/+54
2023-05-17workqueue: Add pwq->stats[] and a monitoring scriptTejun Heo1-1/+23
2023-05-09Further upgrade queue_work_on() commentPaul E. McKenney1-0/+2
2023-04-29Merge tag 'wq-for-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-13/+121