ParPerOS: Parallel Persistency OS (DFG: LO 1719/8-1 and DI 2840/2-1)

ParPerOS is a joint project with TUHH (Co-PI: Christian Dietrich) and part of the DFG Priority Program "Disruptive Memory Technologies" (SPP 2377, Speaker: Olaf Spinczyk).

The management of memory resources has always been a core task of the operating system. However, OS designers are now facing disruptive changes on the memory side: New memory types, such as high-bandwith memory (HBM) or non-volatile memory (NVM) have arrived and more types of processing elements, such as RDMA-capable NICs, GPGPUs, or FPGA-based accellerators, access virtual memory directly via the IO-MMU. These heterogenious memory systems (HMSs) put not only the suitability of the classical memory hierarchy and memory access patterns at question, but also challenge the way memory is managed inside the kernel.

In ParPerOS, we examine new abstractions for unified but efficient and optionally crash-consistent low-level memory management for data objects in heterogeneous memory systems that may consist of volatile, persistent, distributed and other types of main memory, accessed in parallel by a multitude of different processing elements (CPU, GPU, NIC, RDMA).

People

Latest News

2023-10-23 Morsels: Explicit Virtual Memory Objects at DIMES@SOSP

Alexander Halbuer presents our paper Morsels: Explicit Virtual Memory Objects at the 1st Workshop on Disruptive Memory Systems (DIMES@SOSP '23) in Koblenz, Germany. In the paper we present the first description of Morsels, a novel virtual-memory–management abstraction for the efficient sharing and mapping of large memory objects between processes and devices, which is well suited for volatile and nonvolatile memory. Morsels reduce the mapping time for a 6.82-GiB machine-learning model by up to 99.8 percent compared to conventional memory mapping in Linux. This is an important building block for the ParPerOS project.

2023-07-12 LLFree: Scalable and Optionally-Persistent Page-Frame Allocation at USENIX ATC '23

Lars Wrenger presents our paper LLFree: Scalable and Optionally-Persistent Page-Frame Allocation at the 2023 USENIX Annual Technical Conference (ATC '23) in Boston, MA, USA. The page-frame allocator ist the most fundamental memory-management component in any operating system. In the paper we present LLFree, the design and design principles for a new lock- and log-free page-frame allocator that provides for excellent scalability on multi-core platforms as well as crash consistency on nonvolatile memories. Compared to the Linux frame allocator, LLFree reduces the allocation time for concurrent 4 KiB allocations by up to 88 percent and for 2 MiB allocations by up to 98 percent. For memory compaction, LLFree decreases the number of required page movements by 64 percent. LLFree is an important building block for our ParPerOS project.

For the extensive and easy to reproduce benchmark results, we got the Distinguished Artifact Award. Congrats, Lars!

Publications

JSA Journal
Analyzing the memory ordering models of the Apple M1
Lars Wrenger, Dominik Töllner, Daniel LohmannJournal of Systems Architecture1492024.
PDF https://doi.org/10.1016/j.sysarc.2024.103102 [BibTex]
DIMES Workshop
Morsels: Explicit Virtual Memory Objects
Alexander Halbuer, Christian Dietrich, Florian Rommel, Daniel LohmannProceedings of the 1st Workshop on Disruptive Memory SystemsAssociation for Computing Machinery2023.
PDF Details Slides 10.1145/3609308.3625267 [BibTex]
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]
USENIX Conference A
MELF: Multivariant Executables for a Heterogeneous World
Dominik Töllner, Christian Dietrich, Illia Ostapyshyn, Florian Rommel, Daniel Lohmann2023 USENIX Annual Technical Conference (USENIX '23)USENIX Association2023.
PDF Details [BibTex]
ARCS Conference Best Paper Award
TOSTING: Investigating Total Store Ordering on ARM
Lars Wrenger, Dominik Töllner, Daniel LohmannProceedings of the 36th GI/ITG International Conference on Architecture of Computing Systems (ARCS 23)Springer International Publishing2023Best Paper Award.
PDF Details Slides [BibTex]
SIGMOD Conference A*
Virtual-Memory Assisted Buffer Management
Viktor Leis, Adnan Alhomssi, Tobias Ziegler, Yannick Loeck, Christian DietrichProceedings of the ACM SIGMOD/PODS International Conference on Management of DataACM2023.
PDF 10.1145/3588687 [BibTex]

Theses

Currently Running

Efficient Copy-on-Write for Virtual-Memory Objects

Implementing classical, full-featured COW with multiple nesting levels would introduce substantial management overhead on the operating system side. Our goal with Morsels is to eliminate this overhead while retaining limited COW functionality.

 
Typ
Masterarbeit

 
Status
laufend

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Pasha Fistanto

Fast Memory Ballooning for Virtual Machines with LLFree

Implementing hypervisor memory overcommitment with shared LLFree allocators.

 
Typ
Masterarbeit

 
Status
laufend

 
Supervisors
Lars Wrenger
Daniel Lohmann

Optimizing Memory Metadata: Dynamic Allocation of Struct Pages in the Linux Kernel

Dynamically allocate a struct page in cases where it is needed and omit the memory overhead in cases where it is not.

 
Typ
Masterarbeit

 
Status
laufend

 
Supervisors
Lars Wrenger
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Paul Aumann

Page Eviction for Shared Virtual-Memory Objects

The translation lookaside buffer (TLB) caches present page table entries, so that pages can not be unmapped by simply clearing the related page table entry. However, page eviction is vital for implementing advanced features like swapping and huge-page merging.

 
Typ
Masterarbeit

 
Status
laufend

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Tim Hollmann

Efficient Swapping of Shared Virtual-Memory Objects

By design, morsels exist in main memory without being just an intermediate representation of a file. However, for some applications it would be desirable to store objects on a disk in order to persist its data during reboots or to cope with limited main memory.

 
Typ
Bachelorarbeit

 
Status
laufend

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Julian-Dominik Helmsen

LLFreeBSD: Integrating the LLFree Page Frame Allocator into FreeBSD

We now have a C-based LLFree implementation that can be integrated into other OS's. This topic focuses on the integration of LLFree into the FreeBSD operating system.

 
Typ
Bachelorarbeit

 
Status
reserviert

 
Supervisors
Lars Wrenger
Daniel Lohmann

Finished Theses

Entwurf und Implementierung einer leichtgewichtigen Linux-Programmbibliothek für persistent-adressierte, nicht-flüchtige Speicherbereich

Eine leichtgewichtige User Space Bibliothek soll entworfen und implementiert werden um effizient mit einem persistent-addressierten nicht-flüchtigen Speicherbereich arbeiten zu können.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Stefan Naumann
Daniel Lohmann

 
Bearbeiter
Niklas Hoh

Erweiterung des Linux-Kerns um mehrstufige Seitenumlagerung für Systeme mit nichtflüchtigem Speicher (NVM)

Extending the Linux memory management to use NVM for swapping.

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Stefan Naumann
Daniel Lohmann

 
Bearbeiter
Christian Müller

Erweiterung des Python-Programmiermodells um NVRAM-persistierte Sprachobjekte

Entwurf eines Persistenz-Moduls für Python auf Basis von NVM

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Stefan Naumann
Daniel Lohmann

Vermeidung von Seitenfehlern zum Programmstart durch einen persistent-prädiktiven Seitenzwischenspeicher im Linux Kern

Seitenfehler beim Start von Programmen sollen durch einen Seitenzwischenspeicher im NVRAM vermieden werden. Dazu soll der Linux Kern entsprechend erweitert werden, die Zugriffe zu speichern und bei späteren Programmstarts ohne Pagefault einzublenden.

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Stefan Naumann
Daniel Lohmann

 
Bearbeiter
Simon Burandt

Lo(ck|g)-free Page Allocator for Non-Volatile Memory in the Linux Kernel

Designing and implementing a lock-free and log-free page allocator for morsels, a new abstraction for the management of non-volatile memory in the linux kernel [PDF]

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Christian Dietrich
Daniel Lohmann

 
Bearbeiter
Lars Wrenger (abgegeben: 04. Apr 2022)

Primitives and Abstractions for Self-Contained Virtual-Memory Areas in the Linux kernel

Implement the basic abstraction for self-contained virtual-address-space areas in Linux, by which we want to ease the allocation, the sharing, and the management of huge amounts of memory. [PDF]

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Lars Wrenger
Florian Rommel
Christian Dietrich
Daniel Lohmann

 
Bearbeiter
Alexander Halbuer (abgegeben: 16. Nov 2022)

Fast Memory Compaction for Page Allocators

Active memory defragmentation for page allocators.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Lars Wrenger
Daniel Lohmann

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

 
Bearbeiter
Helge Misfeldt (abgegeben: 18. Aug 2023)

Investigating Suspend to Disk in Linux

Researching and optionally extending the Linux Suspend to Disk Mechanism.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Lars Wrenger
Daniel Lohmann

 
Bearbeiter
Jannik Jahn (abgegeben: 25. Sep 2023)

Databases on NVRAM

Bringing the advantages of non-volatile memory to database applications using the new morsel memory primitive as efficient abstraction layer.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Matthias Wormann (abgegeben: 02. Oct 2023)

Morsel Managment Layer: Making Morsels Actually Useful

Bringing the new morsel memory abstraction to applications.

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Darian Biastoch (abgegeben: 26. Oct 2023)

IOMMU-assisted Memory Management: Sharing Virtual Memory Objects for Efficient Computing

Efficient Memory Management for Modern Computing Systems: Sharing Morsel Virtual Memory Objects between Processors and Devices via IOMMU.

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Kenny Albes (abgegeben: 05. Dec 2023)

Context-Based Mitigations for Side-Channel Attacks via Kernel Address-Space Views in Linux

Using Linux kernel address-space views to selectively enable kernel side-channel mitigations for specific tasks

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Daniel Lohmann

Efficient Serialization of Page-Table-Based Virtual Memory Objects

With the discontinuation of Intel Optane and persistent memory being rarely available in general, alternative solutions need to be considered. One approach is to persist virtual memory objects on disk when persistent memory is not available.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

Investigating Total Store Ordering on the ARM M1

Analyzing the performance impact of Total Store Ordering on the M1 ARM Processor.

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Lars Wrenger
Dominik Töllner
Daniel Lohmann

Huge Pages for Virtual-Memory Objects

Currently, Morsels only support 4-KiB pages, but with larger page sizes the management overhead could be further reduced and the average memory access could be sped up, due to faster page-table walks and an increased TLB coverage.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Alexander Halbuer
Daniel Lohmann

 
Bearbeiter
Marko Bolowski (abgegeben: 18. Mar 2024)