LLFreeBSD: Integrating the LLFree Page Frame Allocator into FreeBSD

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 into new operating systems, like FreeBSD. This includes researching the OS, determining whether it would profit from a parallel allocator, and replacing its page frame allocator with LLFree. Apart from better multicore performance, LLFree has the tendency to reduce fragmentation. These two properties should also be benchmarked and evaluated for LLFreeBSD.

Optional: There is ongoing work on making FreeBSD persistent on Intel's Optane Memory. Having LLFree as a persistent allocator for this OS might be interesting to investigate.

Topics: FreeBSD, 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]

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)