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

From: Tejun Heo
Date: Fri Dec 12 2014 - 12:29:58 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/