Integrate LLFree-C in Operating Systems

The Lo(ck|g)-free allocator, short LLFree, is a new cache-optimized, highly-parallel and optionally-persistent page frame allocator. It uses atomic instructions, provided by the CPU, instead of locks or logging. This has two main benefits: (1) the allocator scales very well on multicore systems, and (2) it can be used to efficiently manage persistent memory. It was already successfully integrated into Linux, replacing its page frame allocator.

In this topic, we want to integrate our C-based LLFree implementation into new operating systems, like FreeBSD or DragonflyBSD. This includes researching a few OSs, determining whether they would profit from a parallel allocator, and replacing their page frame allocator with LLFree.

Apart from better multicore performance, LLFree reduces fragmentation over time and supports persistent memory. There is ongoing work on making FreeBSD persistent on Intel's Optane Memory. Thus, having a persistent allocator for those OSs might be very interesting.

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]

Previous Work

LLC: DeRUSTing the Lo(ck|g)-Free Allocator for a C-Based OS Integration

Porting the LLFree concept from Rust to C, to simplify the integration into C-based OSs.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Lars Wrenger
Daniel Lohmann

 
Project
ParPerOS

 
Bearbeiter
Helge Misfeldt (abgegeben: 18. Aug 2023)