lkml.org 
[lkml]   [2012]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[GIT PULL] workqueue fixes for 3.6-rc5
Hello, Linus.

Please consider pulling from the following branch to receive workqueue
fixes. It's later than I'd like but well the timing just didn't work
out this time.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git for-3.6-fixes

There are three bug fixes. One from before 3.6-rc1 and two from the
new CPU hotplug code. Kudos to Lai for discovering all of them and
providing fixes.

* Atomicity bug when clearing a flag and setting another. The two
operation should have been atomic but wasn't. This bug has existed
for a long time but is unlikely to have actually happened. Fix is
safe. Marked for -stable.

* If CPU hotplug cycles happen back-to-back before workers finish the
previous cycle, the states could get out of sync and it could get
stuck. Fixed by waiting for workers to complete before finishing
hotplug cycle.

* While CPU hotplug is in progress, idle workers could be depleted
which can then lead to deadlock. I think both happening together is
highly unlikely but still better to fix it and the fix isn't too
scary.

Lai Jiangshan (3):
workqueue: UNBOUND -> REBIND morphing in rebind_workers() should be atomic
workqueue: restore POOL_MANAGING_WORKERS
workqueue: fix possible idle worker depletion across CPU hotplug

Tejun Heo (2):
workqueue: move WORKER_REBIND clearing in rebind_workers() to the end of the function
workqueue: fix possible deadlock in idle worker rebinding

kernel/workqueue.c | 110 ++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 89 insertions(+), 21 deletions(-)

Thanks.

--
tejun


\
 
 \ /
  Last update: 2012-09-12 01:01    [W:0.066 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site