Re: [PATCH 17/31] workqueue: implement attribute-based unbound worker_pool management

2013-03-10 Thread Tejun Heo
On Sun, Mar 10, 2013 at 05:58:21AM -0700, Tejun Heo wrote: > > > + if (WARN_ON(pool->nr_workers != pool->nr_idle)) > > > + return; > > > > This can be false-negative. we should remove this WARN_ON(). > > How would the test fail spuriously? Can you please elaborate? I got it. It'll be s

Re: [PATCH 17/31] workqueue: implement attribute-based unbound worker_pool management

2013-03-10 Thread Tejun Heo
On Sun, Mar 10, 2013 at 06:08:57PM +0800, Lai Jiangshan wrote: > > @@ -3185,12 +3250,133 @@ static int init_worker_pool(struct worker_pool > > *pool) > > mutex_init(&pool->assoc_mutex); > > ida_init(&pool->worker_ida); > > > > + INIT_HLIST_NODE(&pool->hash_node); > > + atomic_set(&po

Re: [PATCH 17/31] workqueue: implement attribute-based unbound worker_pool management

2013-03-10 Thread Lai Jiangshan
On 02/03/13 11:24, Tejun Heo wrote: > This patch makes unbound worker_pools reference counted and > dynamically created and destroyed as workqueues needing them come and > go. All unbound worker_pools are hashed on unbound_pool_hash which is > keyed by the content of worker_pool->attrs. > > When

[PATCH 17/31] workqueue: implement attribute-based unbound worker_pool management

2013-03-01 Thread Tejun Heo
This patch makes unbound worker_pools reference counted and dynamically created and destroyed as workqueues needing them come and go. All unbound worker_pools are hashed on unbound_pool_hash which is keyed by the content of worker_pool->attrs. When an unbound workqueue is allocated, get_unbound_p