Lai-san, Tejun-san, Thank you for review, this a fix v3. This has been tested on NUMA node hotplug machine and seems work well.
The probelm is memory allocation failure because pool->node information can be stale after node hotplug. This patch(1,2) tries to fix pool->node calculation. Patch (3,4) tries to update cpumask calculation. (Fixing memory allocation bug just requires patch 1,2. But cpumask should be update I think.) Changelog since v2. - reordered patch and split for each problem cases. - removed unnecessary calls pointed out by Lai-san. - restore node/cpu relationship when a new node comes online. - handle corner case at CPU_ONLINE. 1/4 .... fix unbound workqueue's memory node affinity calculation. 2/4 ... update percpu workqueue's memory node affinity at online/offline 3/4 ... update workqueue's possible cpumask when a new node onlined. 4/4 ... handle cpu-node affinity change at CPU_ONLINE. Thanks, -Kame -- 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/