Files
linux/kernel
Hillf Danton 3772b93dc3 workqueue: don't use wq_select_unbound_cpu() for bound works
commit aa202f1f56 upstream.

wq_select_unbound_cpu() is designed for unbound workqueues only, but
it's wrongly called when using a bound workqueue too.

Fixing this ensures work queued to a bound workqueue with
cpu=WORK_CPU_UNBOUND always runs on the local CPU.

Before, that would happen only if wq_unbound_cpumask happened to include
it (likely almost always the case), or was empty, or we got lucky with
forced round-robin placement.  So restricting
/sys/devices/virtual/workqueue/cpumask to a small subset of a machine's
CPUs would cause some bound work items to run unexpectedly there.

Fixes: ef55718044 ("workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs")
Cc: stable@vger.kernel.org # v4.5+
Signed-off-by: Hillf Danton <hdanton@sina.com>
[dj: massage changelog]
Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-03-20 09:07:43 +01:00
..
2017-09-02 07:07:53 +02:00
2016-01-22 18:04:28 -05:00
2016-04-04 09:46:47 -04:00
2019-11-28 18:28:55 +01:00
2015-04-12 21:03:31 +02:00
2015-11-23 09:44:58 +01:00
2018-08-03 07:55:12 +02:00
2016-02-16 13:04:58 -05:00
2020-02-28 15:42:13 +01:00
2015-01-17 10:02:23 +13:00
2016-03-01 20:36:56 +01:00
2018-08-03 07:55:24 +02:00
2020-01-12 11:24:12 +01:00
2018-05-09 09:50:20 +02:00
2016-09-22 20:00:36 -05:00