summaryrefslogtreecommitdiff
path: root/net/decnet
diff options
context:
space:
mode:
authorLai Jiangshan <laijs@cn.fujitsu.com>2014-06-03 07:32:07 (GMT)
committerTejun Heo <tj@kernel.org>2014-06-19 16:24:40 (GMT)
commite6a9a7712331b9d2f551cad8630f6a6c6428c721 (patch)
tree6cb4d8afd070d1300601596163c3cfbfcc638bd6 /net/decnet
parent61d0fbb4b6f707d57555c9dc6d8a69144e0e8641 (diff)
downloadlinux-e6a9a7712331b9d2f551cad8630f6a6c6428c721.tar.xz
workqueue: remove the empty check in too_many_workers()
The commit ea1abd6197d5 ("workqueue: reimplement idle worker rebinding") used a trick which simply removes all to-be-bound idle workers from the idle list and lets them add themselves back after completing rebinding. And this trick caused the @worker_pool->nr_idle may deviate than the actual number of idle workers on @worker_pool->idle_list. More specifically, nr_idle may be non-zero while ->idle_list is empty. All users of ->nr_idle and ->idle_list are audited. The only affected one is too_many_workers() which is updated to check %false if ->idle_list is empty regardless of ->nr_idle. The commit/trick was complicated due to it just tried to simplify an even more complicated problem (workers had to rebind itself). But the commit a9ab775bcadf ("workqueue: directly restore CPU affinity of workers from CPU_ONLINE") fixed all these problems and the mentioned trick was useless and is gone. So, now the @worker_pool->nr_idle is exactly the actual number of workers on @worker_pool->idle_list. too_many_workers() should recover as it was before the trick. So we remove the empty check. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'net/decnet')
0 files changed, 0 insertions, 0 deletions