Messages in this thread | | | From | Lai Jiangshan <> | Subject | [PATCH 0/8] workqueue: advance concurrency management | Date | Mon, 15 Apr 2013 00:41:48 +0800 |
| |
I found the early-increasing nr_running in wq_worker_waking_up() is useless in many cases. it tries to avoid waking up idle workers for pending work item. but delay increasing nr_running does not increase waking up idle workers.
so we delay increasing and remove wq_worker_waking_up() and ...
enjoy a simpler concurrency management.
Lai Jiangshan (8): workqueue: remove @cpu from wq_worker_sleeping() workqueue: use create_and_start_worker() in manage_workers() workqueue: remove cpu_intensive from process_one_work() workqueue: quit cm mode when sleeping workqueue: remove disabled wq_worker_waking_up() workqueue: make nr_running non-atomic workqueue: move worker->flags up workqueue: rename ->nr_running to ->nr_cm_workers
kernel/sched/core.c | 6 +- kernel/workqueue.c | 234 +++++++++++++++--------------------------- kernel/workqueue_internal.h | 9 +- 3 files changed, 89 insertions(+), 160 deletions(-)
-- 1.7.7.6
| |