sparsemem & sparsemem extreme question

Heiko Carstens
2005-10-04T06:51:23Z

Hi all,

I did an implementation of CONFIG_SPARSEMEM for s390, which indeed was quite
easy. Just to find out that it was not sufficient :)
SPARSEMEM_EXTREME looks better but unfortunately adds another layer of
indirection.
I'm just wondering why there is all this indirection stuff here and why not
have one contiguous aray of struct pages (residing in the vmalloc area) that
deals with whatever size of memory an architecture wants to support.
Unused areas just wouldn't have any backing with real pages and on access
generate a page fault (nobody is supposed to access these pages anyway).
This would have the advantage that all the primitives like e.g. pfn_to_page
would be as simple as before, no need to waste large parts of the page flags
and in addition it would easily allow for memory hotplug on page size
granularity.
The only drawbacks are (as far as I can see) a _huge_ virtual mem_map array,
but that shouldn't matter too much. A real problem could be that the mem_map
array and therefore the vmalloc area need to be generated quiete early.

Most probably this has already been thought about before, but I couldn't find
anything in the achives.

Heiko