workqueue: add wokrqueue_struct->maydays list to replace mayday cpu iterators
authorTejun Heo <tj@kernel.org>
Tue, 12 Mar 2013 18:29:59 +0000 (11:29 -0700)
committerTejun Heo <tj@kernel.org>
Tue, 12 Mar 2013 18:29:59 +0000 (11:29 -0700)
commit493a1724fef9a3e931d9199f1a19e358e526a6e7
tree5cb9ae483904b26b885ae5fb9fc7e7fdca635e71
parent24b8a84718ed28a51b452881612c267ba3f2b263
workqueue: add wokrqueue_struct->maydays list to replace mayday cpu iterators

Similar to how pool_workqueue iteration used to be, raising and
servicing mayday requests is based on CPU numbers.  It's hairy because
cpumask_t may not be able to handle WORK_CPU_UNBOUND and cpumasks are
assumed to be always set on UP.  This is ugly and can't handle
multiple unbound pools to be added for unbound workqueues w/ custom
attributes.

Add workqueue_struct->maydays.  When a pool_workqueue needs rescuing,
it gets chained on the list through pool_workqueue->mayday_node and
rescuer_thread() consumes the list until it's empty.

This patch doesn't introduce any visible behavior changes.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Lai Jiangshan <laijs@cn.fujitsu.com>
kernel/workqueue.c