Cichlid: Explicit physical memory management for large machines

Authors

Simon Gerber, Gerd Zellweger, Reto Achermann, Moritz Hoffmann, Kornilios Kourtis, Timothy Roscoe and Dejan Milojicic

Venue

arXiv Preprint

Links

[ .doi ] [ .pdf ] [ .bib ]

Abstract

In this paper, we rethink how an OS supports virtual memory. Classical VM is an opaque abstraction of RAM, backed by demand paging. However, most systems today (from phones to data-centers) do not page, and indeed may require the performance benefits of non-paged physical memory, precise NUMA allocation, etc. Moreover, MMU hardware is now useful for other purposes, such as detecting page access or providing large page translation. Accordingly, the venerable VM abstraction in OSes like Windows and Linux has acquired a plethora of extra APIs to poke at the policy behind the illusion of a virtual address space.

Instead, we present Cichlid, a memory system which inverts this model. Applications explicitly manage their physical RAM of different types, and directly (though safely) program the translation hardware. Cichlid is implemented in Barrelfish, requires no virtualization support, and outperforms VMM-based approaches for all but the smallest working sets. We show that Cichlid enables use-cases for virtual memory not possible in Linux today, and other use-cases are simple to program and significantly faster.

Bibtex

@article{Gerber:2019:CEP,
 author = {Simon Gerber and Gerd Zellweger and Reto Achermann and Moritz Hoffmann and Kornilios Kourtis and Timothy Roscoe and Dejan Milojicic},
 doi = {10.48550/arXiv.1911.08367},
 eprint = {1911.08367},
 eprintclass = {cs.OS},
 eprinttype = {preprint},
 id = {Gerber:2019:CEP},
 journal = {arXiv Preprint},
 publisher = {1911.08367},
 title = {Cichlid: Explicit physical memory management for large machines},
 url = {https://doi.org/10.48550/arXiv.1911.08367},
 year = {2019}
}

Contact

The University of British Columbia
Department of Computer Science
2366 Main Mall
ICICS Building, Office 341
Vancouver, BC V6T 1Z4
Canada

achreto [at] cs.ubc.ca
+1 604 827 2446