Messages in this thread Patch in this message | | | From | Lai Jiangshan <> | Subject | [PATCH 08/10] workqueue: reorganize workqueue_online_cpu() | Date | Mon, 14 Dec 2020 23:54:55 +0800 |
| |
From: Lai Jiangshan <laijs@linux.alibaba.com>
Just move around the code, no functionality changed.
It prepares for later patch protecting wq_online_cpumask in wq_pool_attach_mutex.
Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com> --- kernel/workqueue.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index eea58f77a37b..fa29b7a083a6 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -5085,12 +5085,17 @@ int workqueue_online_cpu(unsigned int cpu) mutex_lock(&wq_pool_mutex); cpumask_set_cpu(cpu, wq_online_cpumask); + for_each_cpu_worker_pool(pool, cpu) { + mutex_lock(&wq_pool_attach_mutex); + rebind_workers(pool); + mutex_unlock(&wq_pool_attach_mutex); + } + + /* update CPU affinity of workers of unbound pools */ for_each_pool(pool, pi) { mutex_lock(&wq_pool_attach_mutex); - if (pool->cpu == cpu) - rebind_workers(pool); - else if (pool->cpu < 0) + if (pool->cpu < 0) update_unbound_workers_cpumask(pool, cpu); mutex_unlock(&wq_pool_attach_mutex); -- 2.19.1.6.gb485710b
| |