Sharing Page Tables in the Linux Kernel
An ongoing barrier to scalability has been the amount of memory taken by page tables, especially when large numbers of tasks are mapping the same shared region. A solution for this problem is for those tasks to share a common set of page tables for those regions.
An additional benefit to implementing shared page tables is the ability to share all the page tables during fork in a copy-on-write fashion. This sharing speeds up fork immensely for large processes, especially given the increased overhead introduced by rmap.
This paper discusses my implementation of shared page tables. It covers the areas that are improved by sharing as well as its limitations. I will also cover the highlights of how shared page tables was implemented and discuss some of the remaining issues around it.
This implementation is based on an initial design and implementation done by Daniel Phillips last year and posted to the kernel mailing list.
...
Download PDF.
- Add new comment
- 1860 reads








Recent comments
3 weeks 3 days ago
3 weeks 3 days ago
5 weeks 1 day ago
9 weeks 1 day ago
11 weeks 1 day ago
11 weeks 1 day ago
11 weeks 1 day ago
11 weeks 5 days ago
15 weeks 23 hours ago
16 weeks 2 days ago