On Tuesday 20 November 2007 04:50, Christoph Lameter wrote:
That would either require more than 4 levels or larger pages
in page tables.
Above -2GB, otherwise you cannot address them
If you can move all the other CPUs somewhere else it might work.
But even then 16MB/cpu max is unrealistic. Perhaps 1M/CPU
max -- then 16k CPU would be 128GB which could still fit into the existing
vmalloc area.
For everything that needs the -31bit offsets; that is everything linked
The kernel model requires kernel and modules and everything else
linked be in negative -31bit space. That is how the kernel code model is
defined.
You could in theory move the modules, but then you would need to implement
a full PIC dynamic linker for them first and also increase runtime overhead
for them because they would need to use a GOT/PLT.
Or you could switch kernel over to the large model, which is very costly
and has toolkit problems.
Or use the UML trick and run the kernel PIC but again that causes
overhead.
I suspect all of this would cause far more overhead all over the kernel than
you could ever save with the per cpu data in your fast paths.
-Andi
-