Skip to contentSkip to conversation

workqueue changes for v3.6-rc1

GIT PULL Tejun Heo 1 participant 1 message Jul 25, 2012

lore
Share & tools
lore

Tejun Heo

author
#0 lore raw

Hello, Linus.

Please pull from the following branch to receive workqueue changes for v3.6-rc1.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-3.6

There are three major changes.

* WQ_HIGHPRI has been reimplemented so that high priority work items are served by worker threads with -20 nice value from dedicated highpri worker pools.

* CPU hotplug support has been reimplemented such that idle workers are kept across CPU hotplug events. This makes CPU hotplug cheaper (for PM) and makes the code simpler.

* flush_kthread_work() has been reimplemented so that a work item can be freed while executing. This removes an annoying behavior difference between kthread_worker and workqueue.

Thanks.

Tejun Heo (18):
workqueue: don't use WQ_HIGHPRI for unbound workqueues
workqueue: factor out worker_pool from global_cwq
workqueue: use @pool instead of @gcwq or @cpu where applicable
workqueue: separate out worker_pool flags
workqueue: introduce NR_WORKER_POOLS and for_each_worker_pool()
workqueue: reimplement WQ_HIGHPRI using a separate worker_pool
workqueue: perform cpu down operations from low priority cpu_notifier()
workqueue: drop CPU_DYING notifier operation
workqueue: ROGUE workers are UNBOUND workers
workqueue: use mutex for global_cwq manager exclusion
workqueue: drop @bind from create_worker()
workqueue: reimplement CPU online rebinding to handle idle workers
workqueue: don't butcher idle workers on an offline CPU
workqueue: remove CPU offline trustee
workqueue: simplify CPU hotplug code
kthread_worker: reorganize to prepare for flush_kthread_work() reimplementation
kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed
workqueue: fix spurious CPU locality WARN from process_one_work()

 Documentation/workqueue.txt      |  103 ++---
 include/linux/cpu.h              |    5 +-
 include/linux/kthread.h          |    8 +-
 include/trace/events/workqueue.h |    2 +-
 kernel/kthread.c                 |   88 ++--
 kernel/workqueue.c               | 1144 ++++++++++++++++++--------------------
 6 files changed, 628 insertions(+), 722 deletions(-)

--
tejun