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

Morsels offer a new memory management paradigm that shifts management from individual pages to whole page-table subtrees, reducing operating system overhead and bookkeeping efforts. However, the current implementation is limited to the CPU cores as it relies on MMU-specific data structures.

To extend the benefits of morsels to other devices, such as PCI devices, the next step is to widen the scope to allow direct access via an IOMMU, which performs memory virtualization for DMA devices similar to the traditional MMU. Sharing morsels between the CPU and devices like graphics accelerators, network interfaces, or NVMe-SSDs would enable efficient operation with zero copy.

However, challenges arise as there is no widely adapted standard implementation of IOMMUs, and Intel and AMD use different implementations with potentially different data structures compared to MMUs. In context of your master thesis, your task will be to investigate the availability of different IOMMU implementations in emulators and commercially available hardware and develop a concept to allow sharing morsel virtual memory objects between the processor and PCI devices. This exciting opportunity will allow you to advance memory management and explore cutting-edge techniques to enhance the performance and efficiency of modern computing systems.

Topics: Linux, C, Virtual Memory, Direct Memory Access

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]



Lars Wrenger
Florian Rommel
Christian Dietrich
Daniel Lohmann


Alexander Halbuer (abgegeben: 16. Nov 2022)