Re: [PATCH 5/5] workqueue: retry on NUMA_NO_NODE when create_worker() fails

Tejun Heo
2014-12-12T17:29:54Z

On Fri, Dec 12, 2014 at 06:19:55PM +0800, Lai Jiangshan wrote:
...
> fail:
> - if (id >= 0)
> - ida_simple_remove(&pool->worker_ida, id);
> + if (node != NUMA_NO_NODE) {
> + node = NUMA_NO_NODE;
> + goto again;
> + }
> + ida_simple_remove(&pool->worker_ida, id);

The retry seems too general for the problem case it's trying to solve.
Can we interlock it properly with node offline event? On node
offline, grab pool_mutex and clear all pool->node's which match the
node which is going down and take it off circulation.

Thanks.

--
tejun