Sharing Page Tables in the Linux Kernel Dave McCracken IBM Linux Technology Center Austin, TX
[email protected] Abstract ever possible. The MM subsystem currently does not, however, make any attempt to share An ongoing barrier to scalability has been the the lowest layer of the page tables, even though amount of memory taken by page tables, es- these may also be identical between address pecially when large numbers of tasks are map- spaces. ping the same shared region. A solution for this Detecting when these page tables may be problem is for those tasks to share a common shared, and setting up sharing for them is fairly set of page tables for those regions. straightforward. In the following sections the An additional benefit to implementing shared current MM data structures are described, fol- page tables is the ability to share all the page lowed by an explanation of how and when the tables during fork in a copy-on-write fashion. page tables would be shared. Finally some is- This sharing speeds up fork immensely for sues in the implementation and some perfor- large processes, especially given the increased mance results are described. overhead introduced by rmap. 2 Major Data Structures This paper discusses my implementation of shared page tables. It covers the areas that are improved by sharing as well as its limitations. To understand the issues addressed by shared I will also cover the highlights of how shared page tables it is helpful to understand the struc- page tables was implemented and discuss some tures that make up the Linux MM.