LLMmap: Improving Memory Reclamation by Sharing the Allocation State in Linux

Linux usually cannot reclaim anonymous memory because it does not know if there is important data that might be lost. Instead, it has to rely on the swap if it runs out of memory. Still, userspace processes can manually communicate (over syscalls like madivce) if memory is not needed anymore. However, these syscalls can be costly.

In this thesis, we want to create a new virtual memory area, that contains an instance of the lock-free LLFree allocator. Its lock-freedom property allows the allocator to be shared between different privilege levels. The idea is that, using this allocator, the user can mark which memory is used in the memory area and at the same time, the kernel can see this and reclaim unused memory. If the reclaim state is also stored in the allocator, the userspace could use this information to improve the allocation strategy, focusing on non-reclaimed pages to reduce page faults.

For the evaluation, we also have to modify an userspace allocator (like jemalloc) to use these LLFree memory areas.

Topics: Linux, C, Allocator

image


USENIX Conference A Distinguished Artifact Award
LLFree: Scalable and Optionally-Persistent Page-Frame Allocation
Lars Wrenger, Florian Rommel, Alexander Halbuer, Christian Dietrich, Daniel Lohmann2023 USENIX Annual Technical Conference (USENIX '23)USENIX Association2023Distinguished Artifact Award.
PDF Details Slides [BibTex]