Omer Peleg, M.Sc. Thesis Seminar
Wednesday, 1.4.2015, 13:00
IOMMUs provided by modern hardware allow the OS to enforce memory protection controls on the DMA operations of its I/O devices. An IOMMU translation management design must scalably handle frequent concurrent updates of IOMMU translations made by multiple cores, as occur in high throughput I/O workloads. Today, however, OSes experience performance meltdowns under these workloads.
In this talk we will explore scalable IOMMU management designs, which would address the two main bottlenecks we find in current OSes: (1) assignment of IO virtual addresses (IOVAs), and (2) management of the IOMMU's TLB.
We will describe and evaluate three approaches for scalable IOVA assignment: (1) dynamic identity mappings, which eschew IOVA allocation altogether, (2) allocating IOVAs using the kernel's kmalloc, and (3) per-core caching of IOVAs allocated by a globally-locked IOVA allocator. To complement them, we will also present a scalable IOMMU TLB management scheme that is compatible with all these approaches.