summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorLai Jiangshan <laijs@cn.fujitsu.com>2012-09-18 09:59:22 -0700
committerTejun Heo <tj@kernel.org>2012-09-18 09:59:22 -0700
commiteab6d82843ee1df244f8847d1bf8bb89160ec4aa (patch)
tree86a43e6ae1734779fe54ea5e62408395e6d0b36a /mm
parentea1abd6197d5805655da1bb589929762f4b4aa08 (diff)
downloadop-kernel-dev-eab6d82843ee1df244f8847d1bf8bb89160ec4aa.zip
op-kernel-dev-eab6d82843ee1df244f8847d1bf8bb89160ec4aa.tar.gz
workqueue: WORKER_REBIND is no longer necessary for busy rebinding
Because the old unbind/rebinding implementation wasn't atomic w.r.t. GCWQ_DISASSOCIATED manipulation which is protected by global_cwq->lock, we had to use two flags, WORKER_UNBOUND and WORKER_REBIND, to avoid incorrectly losing all NOT_RUNNING bits with back-to-back CPU hotplug operations; otherwise, completion of rebinding while another unbinding is in progress could clear UNBIND prematurely. Now that both unbind/rebinding are atomic w.r.t. GCWQ_DISASSOCIATED, there's no need to use two flags. Just one is enough. Don't use WORKER_REBIND for busy rebinding. tj: Updated description. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud