Nguyen, DustinWiedemann, OleNolte, JörgSchröder-Preikschat, Wolfgang2023-09-212023-09-212023https://dl.gi.de/handle/20.500.12116/42411Byte-addressable non-volatile memory is essentially persistent, but slower main memory that needs to be managed accordingly. Typical memory allocators for volatile memory are highly efficient today, but usually never had to be designed to keep their state in main memory consistent at all times against the background of system crashes. In this paper we present NVall, a crash-resistant kernel-level memory allocator for non-volatile RAM (NVRAM). The allocator works in a transactional manner, uses existing volatile memory to improve the performance of normal operation and is able to recover its volatile state from persistent data after a system crash. We implemented the allocator for the FreeBSD kernel and compare its performance against the standard (non-crash-resistant) in-kernel allocator of FreeBSD.enOperating SystemNVRAMMemoryStorageFreeBSDNVall: A Crash-Resistant and Kernel-Compatible Memory Allocator for NVRAMText10.18420/fgbs2023h-02