Shared address translation revisited

Modern operating systems avoid duplication of code and data when they are mapped by multiple processes by sharing physical memory through mechanisms like copy-on-write. Nonetheless, a separate copy of the virtual address translation structures, such as page tables, are still maintained for each process, even if they are identical. This duplication can lead to inefficiencies in the address translation process and interference within the memory hierarchy. In this paper, we show that on Android platforms, sharing address translation structures, specifically, page tables and TLB entries, for shared libraries can improve performance. For example, at a low level, sharing address translation structures reduces the cost of fork by more than half by reducing page table construction overheads. At a higher level, application launch and IPC are faster due to page fault elimination coupled with better cache and TLB performance when context switching.

[1]  Michael M. Swift,et al.  Efficient virtual memory for big memory servers , 2013, ISCA.

[2]  Dam Sunwoo,et al.  A structured approach to the simulation, analysis and characterization of smartphone applications , 2013, 2013 IEEE International Symposium on Workload Characterization (IISWC).

[3]  Gabriel H. Loh,et al.  Increasing TLB reach by exploiting clustering in page translations , 2014, 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA).

[4]  Yousef A. Khalidi,et al.  Improving the Address Translation Performance of Widely Shared Pages , 1995 .

[5]  Richard McDougall,et al.  Solaris Internals (2nd Edition) , 2006 .

[6]  Alan L. Cox,et al.  Distributed operating systems based on a protected global virtual address space , 1992, [1992] Proceedings Third Workshop on Workstation Operating Systems.

[7]  Krisztián Flautner,et al.  Evolution of thread-level parallelism in desktop applications , 2010, ISCA.

[8]  Jeffrey S. Chase,et al.  Lightweight shared objects in a 64-bit operating system , 1992, OOPSLA '92.

[9]  Jeffrey S. Chase,et al.  How to Use a 64-Bit Virtual Address Space , 1992 .

[10]  Osman S. Unsal,et al.  Redundant Memory Mappings for fast access to large memories , 2015, 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA).

[11]  Jeffrey S. Chase,et al.  Architecture support for single address space operating systems , 1992, ASPLOS V.

[12]  Lixin Zhang,et al.  Moby: A mobile benchmark suite for architectural simulators , 2014, 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[13]  Ronald G. Dreslinski,et al.  Full-system analysis and characterization of interactive smartphone applications , 2011, 2011 IEEE International Symposium on Workload Characterization (IISWC).