Shared Address Translation Revisited

Share page tables across processes for shared libraries → reduce TLB overhead and page faults on Android

Featured image

Venue: EuroSys 2016
Link: ACM DL

Topic: Modern OSes share physical memory for code/data via copy-on-write, but maintain separate page table copies per process even when identical. SEUSS shows that sharing address translation structures (page tables and TLB entries) for shared libraries improves performance.


Summary

Physical memory is shared across processes for shared libraries, but each process maintains its own copy of the virtual address translation structures. This duplication causes inefficiencies in address translation and interference in the memory hierarchy. By sharing page table pages (PTPs) for shared libraries, the number of page faults and PTPs allocated are reduced, improving performance for fork, application launch, and IPC on Android.


Background

The duplication problem

Why this matters on Android


Key Idea

Share page table pages (PTPs) for shared libraries


Design

Sharing mechanism

On page fault (read access) for a shared PTP:

On write access:

Key property


Evaluation


Meeting Notes

(to be filled)