There are three ways to fix this:
1. Process memory limits, and include page tables in the accounting.
Watch out for Slab/buddy/fragmentation overhead which is part of this.
(And architecture dependent).
2. Free page tables when they're emptied, by keeping up to date
per-page-directory counts of used entries.
Doesn't do anything about the overheads, but hopefully keeps them
bounded as a proportion of the actual page table memory used.
3. Pageable page tables.
I'm currently rustling up per-pte-table data right now to implement
discardable pages (see recent thread), so if the page table thing is
deemed critical I could be tempted to use the per-pte-table code to fix
it.
Then again I could be lazy and work on fun stuff instead :-)
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/