On Friday 13 June 2008 12:27:07 Christoph Lameter wrote:
Yes, this is where it gets nasty. We shouldn't even allocate the initial
chunk in a non-NUMA aware way (I'm using the term chunk loosely, it's a chunk
per cpu of course).
Definitely. We also need to reserve virtual address space to create more
areas with congruent mappings; that's the fun part.
Maybe a simpler non-NUMA variant too, but it's trivial if we want it.
Unfortunately this breaks the current percpu semantics: that if you iterate
over all possible cpus you can access percpu vars. This means you don't need
to have hotplug CPU notifiers for simple percpu counters. We could do this
with helpers, but AFAICT it's orthogonal to the other plans.
IA64 is going to need some work, since dynamic percpu addresses won't be able
to use their pinned TLB trick to get the local version.
And as always, lkml will offer feedback; useful and otherwise :)
Cheers,
Rusty.
--