aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
AgeCommit message (Expand)AuthorFilesLines
2013-05-15workqueue: don't perform NUMA-aware allocations on offline nodes in wq_numa_i...Tejun Heo1-1/+2
2013-05-14workqueue: Make schedule_work() available again to non GPL modulesMarc Dionne1-3/+3
2013-05-14workqueue: correct handling of the pool spin_lockJoonsoo Kim1-0/+1
2013-05-10workqueue: workqueue_congested() shouldn't translate WORK_CPU_UNBOUND into no...Tejun Heo1-0/+9
2013-04-30workqueue: include workqueue info when printing debug dump of a worker taskTejun Heo1-0/+79
2013-04-09workqueue: use kmem_cache_free() instead of kfree()Wei Yongjun1-1/+1
2013-04-04workqueue: avoid false negative WARN_ON() in destroy_workqueue()Lai Jiangshan1-1/+1
2013-04-01Merge tag 'v3.9-rc5' into wq/for-3.10Tejun Heo1-25/+30
2013-04-01workqueue: update sysfs interface to reflect NUMA awareness and a kernel para...Tejun Heo1-23/+59
2013-04-01workqueue: implement NUMA affinity for unbound workqueuesTejun Heo1-19/+259
2013-04-01workqueue: introduce put_pwq_unlocked()Tejun Heo1-13/+23
2013-04-01workqueue: introduce numa_pwq_tbl_install()Tejun Heo1-9/+26
2013-04-01workqueue: use NUMA-aware allocation for pool_workqueuesTejun Heo1-2/+4
2013-04-01workqueue: break init_and_link_pwq() into two functions and introduce alloc_u...Tejun Heo1-29/+49
2013-04-01workqueue: map an unbound workqueues to multiple per-node pool_workqueuesTejun Heo1-11/+37
2013-04-01workqueue: move hot fields of workqueue_struct to the endTejun Heo1-2/+4
2013-04-01workqueue: make workqueue->name[] fixed lenTejun Heo1-11/+8
2013-04-01workqueue: add workqueue->unbound_attrsTejun Heo1-12/+24
2013-04-01workqueue: determine NUMA node of workers accourding to the allowed cpumaskTejun Heo1-2/+16
2013-04-01workqueue: drop 'H' from kworker names of unbound worker poolsTejun Heo1-7/+8
2013-04-01workqueue: add wq_numa_tbl_len and wq_numa_possible_cpumask[]Tejun Heo1-0/+46
2013-04-01workqueue: move pwq_pool_locking outside of get/put_unbound_pool()Tejun Heo1-14/+22
2013-04-01workqueue: fix memory leak in apply_workqueue_attrs()Tejun Heo1-3/+8
2013-04-01workqueue: fix unbound workqueue attrs hashing / comparisonTejun Heo1-32/+22
2013-04-01workqueue: fix race condition in unbound workqueue free pathTejun Heo1-1/+3
2013-03-25workqueue: remove pwq_lock which is no longer usedLai Jiangshan1-11/+2
2013-03-25workqueue: protect wq->saved_max_active with wq->mutexLai Jiangshan1-17/+16
2013-03-25workqueue: protect wq->pwqs and iteration with wq->mutexLai Jiangshan1-24/+18
2013-03-25workqueue: protect wq->nr_drainers and ->flags with wq->mutexLai Jiangshan1-6/+6
2013-03-25workqueue: rename wq->flush_mutex to wq->mutexLai Jiangshan1-26/+26
2013-03-25workqueue: rename wq_mutex to wq_pool_mutexLai Jiangshan1-54/+55
2013-03-20workqueue: avoid false negative in assert_manager_or_pool_lock()Lai Jiangshan1-1/+2
2013-03-20workqueue: use rcu_read_lock_sched() instead for accessing pwq in RCULai Jiangshan1-5/+5
2013-03-20workqueue: kick a worker in pwq_adjust_max_active()Lai Jiangshan1-7/+6
2013-03-20workqueue: simplify current_is_workqueue_rescuer()Lai Jiangshan1-1/+1
2013-03-20workqueue: add missing POOL_FREEZINGLai Jiangshan1-0/+3
2013-03-19workqueue: restore CPU affinity of unbound workers on CPU_ONLINETejun Heo1-5/+47
2013-03-19workqueue: directly restore CPU affinity of workers from CPU_ONLINETejun Heo1-128/+64
2013-03-19workqueue: relocate rebind_workers()Tejun Heo1-71/+71
2013-03-19workqueue: convert worker_pool->worker_ida to idr and implement for_each_pool...Tejun Heo1-12/+51
2013-03-19sched: replace PF_THREAD_BOUND with PF_NO_SETAFFINITYTejun Heo1-7/+3
2013-03-18Merge branch 'for-3.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...Linus Torvalds1-19/+25
2013-03-13workqueue: rename workqueue_lock to wq_mayday_lockTejun Heo1-12/+12
2013-03-13workqueue: separate out pool_workqueue locking into pwq_lockTejun Heo1-33/+36
2013-03-13workqueue: separate out pool and workqueue locking into wq_mutexTejun Heo1-69/+77
2013-03-13workqueue: relocate global variable defs and function decls in workqueue.cTejun Heo1-19/+19
2013-03-13workqueue: better define locking rules around worker creation / destructionTejun Heo1-1/+12
2013-03-13workqueue: factor out initial worker creation into create_and_start_worker()Tejun Heo1-24/+23
2013-03-13workqueue: rename worker_pool->assoc_mutex to ->manager_mutexTejun Heo1-24/+38
2013-03-13workqueue: inline trivial wrappersTejun Heo1-111/+0
2013-03-13workqueue: rename @id to @pi in for_each_each_pool()Tejun Heo1-8/+8
2013-03-13workqueue: update comments and a warning messageTejun Heo1-40/+44
2013-03-13workqueue: fix max_active handling in init_and_link_pwq()Tejun Heo1-5/+9
2013-03-13workqueue: implement and use pwq_adjust_max_active()Tejun Heo1-45/+38
2013-03-13workqueue: relocate pwq_set_max_active()Tejun Heo1-20/+20
2013-03-13workqueue: convert to idr_alloc()Tejun Heo1-3/+4
2013-03-12workqueue: implement current_is_workqueue_rescuer()Tejun Heo1-0/+13
2013-03-12workqueue: implement sysfs interface for workqueuesTejun Heo1-0/+288
2013-03-12workqueue: reject adjusting max_active or applying attrs to ordered workqueuesTejun Heo1-0/+9
2013-03-12workqueue: make it clear that WQ_DRAINING is an internal flagTejun Heo1-4/+4
2013-03-12workqueue: implement apply_workqueue_attrs()Tejun Heo1-20/+71
2013-03-12workqueue: perform non-reentrancy test when queueing to unbound workqueues tooTejun Heo1-23/+19
2013-03-12workqueue: prepare flush_workqueue() for dynamic creation and destrucion of u...Tejun Heo1-2/+23
2013-03-12workqueue: implement get/put_pwq()Tejun Heo1-23/+114
2013-03-12workqueue: restructure __alloc_workqueue_key()Tejun Heo1-29/+38
2013-03-12workqueue: drop WQ_RESCUER and test workqueue->rescuer for NULL insteadTejun Heo1-12/+10
2013-03-12workqueue: add pool ID to the names of unbound kworkersTejun Heo1-1/+2
2013-03-12workqueue: drop "std" from cpu_std_worker_pools and for_each_std_worker_pool()Tejun Heo1-11/+11
2013-03-12workqueue: remove unbound_std_worker_pools[] and related helpersTejun Heo1-60/+6
2013-03-12workqueue: implement attribute-based unbound worker_pool managementTejun Heo1-13/+224
2013-03-12workqueue: introduce workqueue_attrsTejun Heo1-22/+81
2013-03-12workqueue: separate out init_worker_pool() from init_workqueues()Tejun Heo1-16/+21
2013-03-12workqueue: replace POOL_MANAGING_WORKERS flag with worker_pool->manager_arbTejun Heo1-11/+10
2013-03-12workqueue: update synchronization rules on worker_pool_idrTejun Heo1-25/+46
2013-03-12workqueue: update synchronization rules on workqueue->pwqsTejun Heo1-17/+70
2013-03-12workqueue: replace get_pwq() with explicit per_cpu_ptr() accesses and first_p...Tejun Heo1-15/+14
2013-03-12workqueue: remove workqueue_struct->pool_wq.singleTejun Heo1-14/+12
2013-03-12workqueue: consistently use int for @cpu variablesTejun Heo1-13/+11
2013-03-12workqueue: add wokrqueue_struct->maydays list to replace mayday cpu iteratorsTejun Heo1-49/+28
2013-03-12workqueue: restructure pool / pool_workqueue iterations in freeze/thaw functionsTejun Heo1-42/+45
2013-03-12workqueue: introduce for_each_pool()Tejun Heo1-15/+21
2013-03-12workqueue: replace for_each_pwq_cpu() with for_each_pwq()Tejun Heo1-31/+22
2013-03-12workqueue: add workqueue_struct->pwqs listTejun Heo1-6/+27
2013-03-12workqueue: introduce kmem_cache for pool_workqueuesTejun Heo1-31/+12
2013-03-12workqueue: make workqueue_lock irq-safeTejun Heo1-22/+22
2013-03-12workqueue: make sanity checks less punshing using WARN_ON[_ONCE]()sTejun Heo1-39/+46
2013-03-08workqueue: fix possible pool stall bug in wq_unbind_fn()Lai Jiangshan1-19/+25
2013-03-04workqueue: better define synchronization rule around rescuer->pool updatesLai Jiangshan1-1/+2
2013-03-04workqueue: change argument of worker_maybe_bind_and_lock() to @poolLai Jiangshan1-9/+9
2013-03-04workqueue: use %current instead of worker->task in worker_maybe_bind_and_lock()Lai Jiangshan1-4/+3
2013-02-27hlist: drop the node parameter from iteratorsSasha Levin1-8/+5
2013-02-19workqueue: un-GPL function delayed_work_timer_fn()Konstantin Khlebnikov1-1/+1
2013-02-13workqueue: rename cpu_workqueue to pool_workqueueTejun Heo1-217/+216
2013-02-13workqueue: reimplement is_chained_work() using current_wq_worker()Tejun Heo1-25/+8
2013-02-13workqueue: fix is_chained_work() regressionTejun Heo1-1/+1
2013-02-07workqueue: pick cwq instead of pool in __queue_work()Lai Jiangshan1-16/+13
2013-02-07workqueue: make get_work_pool_id() cheaperLai Jiangshan1-2/+6
2013-02-07workqueue: move nr_running into worker_poolTejun Heo1-41/+22
2013-02-06workqueue: cosmetic update in try_to_grab_pending()Tejun Heo1-21/+17
2013-02-06workqueue: simplify is-work-item-queued-here testLai Jiangshan1-24/+16
2013-02-06workqueue: make work->data point to pool after try_to_grab_pending()Lai Jiangshan1-0/+10
2013-02-06workqueue: add delayed_work->wq to simplify reentrancy handlingLai Jiangshan1-29/+3
2013-02-06workqueue: make work_busy() test WORK_STRUCT_PENDING firstLai Jiangshan1-10/+6
2013-02-06workqueue: replace WORK_CPU_NONE/LAST with WORK_CPU_ENDLai Jiangshan1-5/+5
2013-01-24workqueue: post global_cwq removal cleanupsTejun Heo1-52/+52
2013-01-24workqueue: rename nr_running variablesTejun Heo1-4/+5
2013-01-24workqueue: remove global_cwqTejun Heo1-29/+17
2013-01-24workqueue: remove worker_pool->gcwqTejun Heo1-7/+5
2013-01-24workqueue: replace for_each_worker_pool() with for_each_std_worker_pool()Tejun Heo1-22/+17
2013-01-24workqueue: make freezing/thawing per-poolTejun Heo1-26/+20
2013-01-24workqueue: make hotplug processing per-poolTejun Heo1-87/+62
2013-01-24workqueue: move global_cwq->lock to worker_poolTejun Heo1-162/+154
2013-01-24workqueue: move global_cwq->cpu to worker_poolTejun Heo1-21/+21
2013-01-24workqueue: move busy_hash from global_cwq to worker_poolTejun Heo1-52/+59
2013-01-24workqueue: record pool ID instead of CPU in work->data when off-queueTejun Heo1-44/+67
2013-01-24workqueue: add worker_pool->idTejun Heo1-0/+21
2013-01-24workqueue: introduce WORK_OFFQ_CPU_NONETejun Heo1-2/+2
2013-01-24workqueue: make GCWQ_FREEZING a pool flagTejun Heo1-13/+15
2013-01-24workqueue: make GCWQ_DISASSOCIATED a pool flagTejun Heo1-31/+35
2013-01-24workqueue: use std_ prefix for the standard per-cpu poolsTejun Heo1-11/+11
2013-01-24workqueue: unexport work_cpu()Tejun Heo1-2/+2
2013-01-18workqueue: move struct worker definition to workqueue_internal.hTejun Heo1-31/+1
2013-01-18workqueue: rename kernel/workqueue_sched.h to kernel/workqueue_internal.hTejun Heo1-1/+1
2013-01-17workqueue: set PF_WQ_WORKER on rescuersTejun Heo1-7/+28
2012-12-19workqueue: fix find_worker_executing_work() brekage from hashtable conversionTejun Heo1-1/+1
2012-12-18workqueue: consider work function when searching for busy work itemsTejun Heo1-8/+31
2012-12-18workqueue: use new hashtable implementationSasha Levin1-71/+15
2012-12-12Merge branch 'for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-2/+4
2012-12-04workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()sTejun Heo1-2/+2
2012-12-01workqueue: add WARN_ON_ONCE() on CPU number to wq_worker_waking_up()Joonsoo Kim1-1/+3
2012-12-01workqueue: trivial fix for return statement in work_busy()Joonsoo Kim1-1/+1
2012-12-01workqueue: mod_delayed_work_on() shouldn't queue timer on 0 delayTejun Heo1-3/+11
2012-12-01workqueue: exit rescuer_thread() as TASK_RUNNINGMike Galbraith1-1/+3
2012-10-24workqueue: cancel_delayed_work() should return %false if work item is idleDan Magenheimer1-1/+1
2012-10-02Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wqLinus Torvalds1-578/+639
2012-09-20workqueue: remove spurious WARN_ON_ONCE(in_irq()) from try_to_grab_pending()Tejun Heo1-2/+0
2012-09-19workqueue: use cwq_set_max_active() helper for workqueue_set_max_active()Lai Jiangshan1-1/+1
2012-09-19workqueue: introduce cwq_set_max_active() helper for thaw_workqueues()Lai Jiangshan1-5/+21
2012-09-19workqueue: reimplement work_on_cpu() using system_wqTejun Heo1-17/+8
2012-09-18workqueue: remove @delayed from cwq_dec_nr_in_flight()Lai Jiangshan1-13/+8
2012-09-18workqueue: fix possible stall on try_to_grab_pending() of a delayed work itemLai Jiangshan1-3/+22
2012-09-18workqueue: use hotcpu_notifier() for workqueue_cpu_down_callback()Lai Jiangshan1-1/+1
2012-09-18workqueue: use __cpuinit instead of __devinit for cpu callbacksLai Jiangshan1-2/+2
2012-09-18workqueue: rename manager_mutex to assoc_mutexLai Jiangshan1-19/+19
2012-09-18workqueue: WORKER_REBIND is no longer necessary for idle rebindingLai Jiangshan1-26/+15
2012-09-18workqueue: WORKER_REBIND is no longer necessary for busy rebindingLai Jiangshan1-16/+2
2012-09-18workqueue: reimplement idle worker rebindingLai Jiangshan1-99/+42
2012-09-17Merge branch 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...Tejun Heo1-23/+99
2012-09-17workqueue: always clear WORKER_REBIND in busy_worker_rebind_fn()Lai Jiangshan1-2/+10
2012-09-10workqueue: fix possible idle worker depletion across CPU hotplugLai Jiangshan1-1/+36
2012-09-10workqueue: restore POOL_MANAGING_WORKERSLai Jiangshan1-1/+4
2012-09-05workqueue: fix possible deadlock in idle worker rebindingTejun Heo1-2/+27
2012-09-05workqueue: move WORKER_REBIND clearing in rebind_workers() to the end of the ...Tejun Heo1-13/+13
2012-09-04workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be atomicLai Jiangshan1-6/+11
2012-08-21workqueue: reimplement cancel_delayed_work() using try_to_grab_pending()Tejun Heo1-0/+30
2012-08-21workqueue: use irqsafe timer for delayed_workTejun Heo1-9/+11
2012-08-20workqueue: gut system_nrt[_freezable]_wq()Tejun Heo1-9/+1
2012-08-20workqueue: gut flush[_delayed]_work_sync()Tejun Heo1-112/+10
2012-08-20workqueue: make all workqueues non-reentrantTejun Heo1-6/+7
2012-08-20workqueue: fix checkpatch issuesValentin Ilie1-16/+13
2012-08-16workqueue: use system_highpri_wq for unbind_workJoonsoo Kim1-1/+1
2012-08-16workqueue: use system_highpri_wq for highpri workers in rebind_workers()Joonsoo Kim1-4/+14
2012-08-16workqueue: introduce system_highpri_wqJoonsoo Kim1-3/+6
2012-08-16workqueue: change value of lcpu in __queue_delayed_work_on()Joonsoo Kim1-2/+8
2012-08-16workqueue: correct req_cpu in trace_workqueue_queue_work()Joonsoo Kim1-1/+2
2012-08-16workqueue: use enum value to set array size of pools in gcwqJoonsoo Kim1-1/+2
2012-08-13workqueue: add missing wmb() in clear_work_data()Tejun Heo1-7/+12
2012-08-13workqueue: fix CPU binding of flush_delayed_work[_sync]()Tejun Heo1-3/+4
2012-08-03workqueue: implement mod_delayed_work[_on]()Tejun Heo1-0/+53
2012-08-03workqueue: mark a work item being canceled as suchTejun Heo1-18/+72
2012-08-03workqueue: reorganize try_to_grab_pending() and __cancel_timer_work()Tejun Heo1-15/+32
2012-08-03workqueue: factor out __queue_delayed_work() from queue_delayed_work_on()Tejun Heo1-33/+41
2012-08-03workqueue: introduce WORK_OFFQ_FLAG_*Tejun Heo1-5/+9
2012-08-03workqueue: move try_to_grab_pending() upwardsTejun Heo1-143/+143
2012-08-03workqueue: fix zero @delay handling of queue_delayed_work_on()Tejun Heo1-5/+7
2012-08-03workqueue: unify local CPU queueing handlingTejun Heo1-12/+7
2012-08-03workqueue: set delayed_work->timer function on initializationTejun Heo1-3/+4
2012-08-03workqueue: disable irq while manipulating PENDINGTejun Heo1-20/+53
2012-08-03workqueue: add missing smp_wmb() in process_one_work()Tejun Heo1-0/+2
2012-08-03workqueue: make queueing functions return boolTejun Heo1-24/+23
2012-08-03workqueue: reorder queueing functions so that _on() variants are on topTejun Heo1-62/+62
2012-07-22workqueue: fix spurious CPU locality WARN from process_one_work()Tejun Heo1-0/+6
2012-07-17workqueue: simplify CPU hotplug codeTejun Heo1-54/+25
2012-07-17workqueue: remove CPU offline trusteeTejun Heo1-252/+36
2012-07-17workqueue: don't butcher idle workers on an offline CPUTejun Heo1-80/+14
2012-07-17workqueue: reimplement CPU online rebinding to handle idle workersTejun Heo1-49/+166
2012-07-17workqueue: drop @bind from create_worker()Tejun Heo1-19/+45
2012-07-17workqueue: use mutex for global_cwq manager exclusionTejun Heo1-39/+26
2012-07-17workqueue: ROGUE workers are UNBOUND workersTejun Heo1-25/+21
2012-07-17workqueue: drop CPU_DYING notifier operationTejun Heo1-16/+13
2012-07-17workqueue: perform cpu down operations from low priority cpu_notifier()Tejun Heo1-1/+37
2012-07-13workqueue: reimplement WQ_HIGHPRI using a separate worker_poolTejun Heo1-73/+27
2012-07-13workqueue: introduce NR_WORKER_POOLS and for_each_worker_pool()Tejun Heo1-70/+153
2012-07-12workqueue: separate out worker_pool flagsTejun Heo1-22/+25
2012-07-12workqueue: use @pool instead of @gcwq or @cpu where applicableTejun Heo1-107/+111
2012-07-12workqueue: factor out worker_pool from global_cwqTejun Heo1-99/+117
2012-07-12workqueue: don't use WQ_HIGHPRI for unbound workqueuesTejun Heo1-7/+11
2012-05-15lockdep: fix oops in processing workqueuePeter Zijlstra1-1/+3
2012-05-14workqueue: skip nr_running sanity check in worker_enter_idle() if trustee is ...Tejun Heo1-2/+7
2012-04-23workqueue: Catch more locking problems with flush_work()Stephen Boyd1-0/+3