Re: [PATCH 06/10 V2] workqueue: convert worker_idr to worker_ida

Lai Jiangshan
2014-05-13T06:38:50Z

On 05/13/2014 05:40 AM, Tejun Heo wrote:
> On Mon, May 12, 2014 at 02:56:18PM +0800, Lai Jiangshan wrote:
>> @@ -1681,7 +1682,6 @@ static void worker_detach_from_pool(struct worker *worker,
>> struct completion *detach_completion = NULL;
>>
>> mutex_lock(&pool->manager_mutex);
>> - idr_remove(&pool->worker_idr, worker->id);
>> list_del(&worker->node);
>> if (list_empty(&pool->workers))
>> detach_completion = pool->detach_completion;
>
> Why are we moving ida removal to the caller here? Does

ida is for worker ID
pool->workers list and worker_detach_from_pool() are for attaching/detaching

moving ida removal to the caller removes the unneeded coupling.

> worker_detach_from_pool() get used for something else later? Up until
> this point, the distinction seems pretty arbitrary.
>
>> @@ -1757,8 +1754,6 @@ static struct worker *create_worker(struct worker_pool *pool)
>> if (pool->flags & POOL_DISASSOCIATED)
>> worker->flags |= WORKER_UNBOUND;
>>
>> - /* successful, commit the pointer to idr */
>> - idr_replace(&pool->worker_idr, worker, worker->id);
>
> Ah, the comment is removed altogether. Please disregard my previous
> review on the comment.
>
> Thanks.
>