Indeed, the VM basically has 2 components in this area:
1) the TLB information and possibly an extended TLB in RAM
2) the information needed to construct (1), which could be
either page tables or VMAs and page cache metadata
On most architectures there is some overlap between (1) and (2),
but on eg. mmap() we never store the complete info on the file
in the page tables but build that _on the fly_ as we page fault
along.
Having said that, obviously we do need a way to store the info
needed to construct (1) somewhere and anonymous pages don't fit
into the pagecache cleanly because of COW and MAP_PRIVATE semantics.
> IMHO it would be interesting to compare the size and complexity of
> using a hash table for the page tables with a 5-level tree. For a
> 32-bit address space I think the tree wins hands down but for a full
> 64-bit address space I am not convinced either way at present.
This is a good question, especially considering the fact that for
databases page table overhead is already bogging us down on 32-bit
systems.
Reconstructing hash table entries directly from VMA + page cache
might just be more efficient for PPC in this scenario, what would
be best for other architectures I really don't know.
regards,
Rik
-- <insert bitkeeper endorsement here>http://www.surriel.com/ http://distro.conectiva.com/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/