Page Eviction for Shared Virtual-Memory Objects

With Morsels we introduced a novel new memory-management paradigm, that shifts from the management of individual pages to larger virtual-memory objects, technically represented as subtrees of the page-table hierarchy. This reduces management overhead and enables very fast transfer between address spaces.

As of the current implementation, it allows for the lazy population of the Morsel surface but lacks support for page eviction. This limitation arises from the translation lookaside buffer (TLB) which caches present page table entries and, as a result, prohibits page eviction by simply clearing the related page table entries. However, page eviction is vital for implementing advanced features like swapping and huge-page merging.

To incorporate page eviction functionality into the Morsel implementation within the Linux kernel, several essential steps must be taken. Firstly, it necessitates the identification of all mapping locations and the involvement of all associated CPU cores to invalidate the relevant TLB entries. This step is critical to ensure that evicted pages are effectively removed and no longer accessible.

Your task involves extending the current Morsel implementation in the Linux kernel to support page eviction through an explicit system call. This system call should enable users or applications to request the eviction of specific pages.

Topics: Linux kernel, C, Virtual Memory, Translation Lookaside Buffer (TLB)

image

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

 
Project
ParPerOS

 
Bearbeiter
Kenny Albes (abgegeben: 05. Dec 2023)

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

 
Project
ParPerOS

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

 
Project
ParPerOS

 
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

 
Project
ParPerOS

 
Bearbeiter
Darian Biastoch (abgegeben: 26. Oct 2023)

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

 
Project
ParPerOS

 
Bearbeiter
Alexander Halbuer (abgegeben: 16. Nov 2022)