[PATCH 0/8] workqueue: advance concurrency management

From: Lai Jiangshan
Date: Sun Apr 14 2013 - 12:42:38 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/