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
- 1490 reads








Recent comments
1 week 3 days ago
1 week 3 days ago
1 week 6 days ago
3 weeks 2 days ago
4 weeks 11 hours ago
9 weeks 2 days ago
10 weeks 13 hours ago
10 weeks 1 day ago
10 weeks 5 days ago
11 weeks 5 days ago