On Tue, Aug 16, 2016 at 11:20:27AM -0400, Tejun Heo wrote: > As long as the mapping doesn't change after the first onlining of the > CPU, the workqueue side shouldn't be too difficult to fix up. I'll > look into it. For memory allocations, as long as the cpu <-> node > mapping is established before any memory allocation for the cpu takes > place, it should be fine too, I think.
Don't we allocate per-cpu memory for 'cpu_possible_map' on boot? There's a whole bunch of per-cpu memory users that does things like: for_each_possible_cpu(cpu) { struct foo *foo = per_cpu_ptr(&per_cpu_var, cpu); /* muck with foo */ } Which requires a cpu->node map for all possible cpus at boot time.