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

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.

image

The current implementation is done in the Rust programming language. This works well in the Linux Kernel, that supports Rust modules since 6.1. However, other OSs rarely support Rust and also the Rust support for Linux is still rudimentary. Thus, a C implementation of LLFree is essential if we want better OS integration.