Messages in this thread Patch in this message | | | From | Lai Jiangshan <> | Subject | [PATCH 16/21] workqueue: rename rebind_workers() to associate_cpu_pool() | Date | Wed, 20 Mar 2013 03:28:16 +0800 |
| |
merge the code of clearing POOL_DISASSOCIATED to rebind_workers(), and rename rebind_workers() to associate_cpu_pool().
It merges high related code together and simplify workqueue_cpu_up_callback().
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> --- kernel/workqueue.c | 21 ++++++++++----------- 1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 12e3e3a..29c5baa 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -2167,7 +2167,7 @@ recheck: * worker or that someone else has already assumed the manager * role. This is where @worker starts participating in concurrency * management if applicable and concurrency management is restored - * after being rebound. See rebind_workers() for details. + * after being rebound. See associate_cpu_pool() for details. */ worker_clr_flags(worker, WORKER_PREP | WORKER_REBOUND); @@ -4000,12 +4000,13 @@ static void wq_unbind_fn(struct work_struct *work) } /** - * rebind_workers - rebind all workers of a pool to the associated CPU + * associate_cpu_pool - rebind all workers of a pool to the associated CPU * @pool: pool of interest * - * @pool->cpu is coming online. Rebind all workers to the CPU. + * @pool->cpu is coming online. Rebind all workers to the CPU and + * set the pool associated */ -static void rebind_workers(struct worker_pool *pool) +static void associate_cpu_pool(struct worker_pool *pool) { struct worker *worker; int wi; @@ -4020,8 +4021,9 @@ static void rebind_workers(struct worker_pool *pool) * from CPU_ONLINE, the following shouldn't fail. */ for_each_pool_worker(worker, wi, pool) - WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, - pool->attrs->cpumask) < 0); + if (WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, + pool->attrs->cpumask) < 0)) + return; spin_lock_irq(&pool->lock); @@ -4060,6 +4062,7 @@ static void rebind_workers(struct worker_pool *pool) ACCESS_ONCE(worker->flags) = worker_flags; } + pool->flags &= ~POOL_DISASSOCIATED; spin_unlock_irq(&pool->lock); } @@ -4126,11 +4129,7 @@ static int __cpuinit workqueue_cpu_up_callback(struct notifier_block *nfb, mutex_lock(&pool->manager_mutex); if (pool->cpu == cpu) { - spin_lock_irq(&pool->lock); - pool->flags &= ~POOL_DISASSOCIATED; - spin_unlock_irq(&pool->lock); - - rebind_workers(pool); + associate_cpu_pool(pool); } else if (pool->cpu < 0) { restore_unbound_workers_cpumask(pool, cpu); } -- 1.7.7.6
| |