workqueue: kill cpu_populated_map
authorTejun Heo <tj@kernel.org>
Tue, 29 Jun 2010 08:07:11 +0000 (10:07 +0200)
committerTejun Heo <tj@kernel.org>
Tue, 29 Jun 2010 08:07:11 +0000 (10:07 +0200)
commit1537663f5763892cacf1409ac0efef1b4f332d1e
treeb2fe110d52315438c71b16f14d8a1b043b91deb4
parent64166699752006f1a23a9cf7c96ae36654ccfc2c
workqueue: kill cpu_populated_map

Worker management is about to be overhauled.  Simplify things by
removing cpu_populated_map, creating workers for all possible cpus and
making single threaded workqueues behave more like multi threaded
ones.

After this patch, all cwqs are always initialized, all workqueues are
linked on the workqueues list and workers for all possibles cpus
always exist.  This also makes CPU hotplug support simpler - checking
->cpus_allowed before processing works in worker_thread() and flushing
cwqs on CPU_POST_DEAD are enough.

While at it, make get_cwq() always return the cwq for the specified
cpu, add target_cwq() for cases where single thread distinction is
necessary and drop all direct usage of per_cpu_ptr() on wq->cpu_wq.

Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c