AllocAPI: Designing and Introducing a Flexible Page Allocator API in Linux
- Typ der Arbeit: Masterarbeit
- Status der Arbeit: reserviert
- Projekte: ParPerOS
- Betreuer: Lars Wrenger, Daniel Lohmann
The Linux memory subsystem has become very complex, with a lot of tightly coupled parts: from physical memory allocation (page allocator), and NUMA policies to swapping, out-of-memory handling, and transparent huge pages. The design of the physical page allocator, on the other hand, mostly remained unchanged for the past decades, even though, hardware changed and new allocator designs like LLFree are more scalable. Unfortunately, Linux's current page allocator is deeply entangled with the rest of the memory subsystem. Other parts, like OOM handling, memory statistics, or NUMA policies, directly access internal data structures. Moreover, there are a lot of similar but different allocation functions, leading to a large and difficult interface. Consequently, it is very challenging to change the allocator and test new designs and not possible to use different allocator implementations concurrently.
This topic focuses on designing and implementing a new minimal but powerful API that decouples the allocator implementation from its users. Ideally, this API would allow supporting different allocator implementations at once or via a compile-time configuration. This new interface should be integrated with the current Linux page allocator and with LLFree. It would also be interesting to see how involved the required changes in the kernel are and if the API introduces any overhead. Potentially we could even allow using different allocator implementations for different memory zones or support changing implementations during runtime via kernel modules. The latter would allow users (e.g., cloud providers) to deploy optimized allocators for their workloads.
Topics: Linux, Memory Management, Allocator

Links
Related Publications
-
USENIX
Conference
A
Distinguished Artifact Award
LLFree: Scalable and Optionally-Persistent Page-Frame Allocation -
2023 USENIX Annual Technical Conference (USENIX '23)USENIX Association2023Distinguished Artifact Award.
PDF Details Slides [BibTex]
