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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/