IOMMU overhead optimizations and observability - Pasha Tatashin, Yu Zhao
IOMMU overhead memory, which is primarily page table memory, is allocated directly from the buddy allocator, and is not charged or accounted for. Also, there is no easy way to debug IOMMU translations as there are no user interfaces that allow walking through IOMMU page tables. Below are the proposals to solve the problems. Add an observability for IOMMU page table memory into /proc/meminfo: PageTables: XXX kB SecPageTables: XXX kB IOMMUPageTables: XXX kB This would allow users to see how much IOMMU page table memory is being used, which could help them identify and troubleshoot performance problems. Charge the IOMMU page table memory to the proper owner when DMA mappings are established: This would allow users to control and limit the amount of IOMMU page table memory that is used by each process. Allow walking through IOMMU page tables on live systems and in kdumps: This would allow users to debug IOMMU translations and identify problems. For live systems the interface should be similar to /proc/PID/pagemap, so users could walk through IOMMU page tables, and study which physical pages are currently mapped into page tables. For kdumps, it should be a crash-utility extension to dump IOMMU page tables. Limit the growth of page tables: Currently, when pages are removed unmapped from the page table, the free page table levels are not returned back to the system, see [1] for example. This can cause substantial overheads in cases where VA addresses are not recycled. On the other hand, recycling VA addresses in order to save memory can be a security risk, and in general a bad practice. We propose to limit the maximum number of empty page table levels to a certain amount. Add iova_stress[1] into kernel selftest: This would allow us to verify that page table overhead does not regress in the future. [1] https://github.com/soleen/iova_stress

iommufd discussion - Mr Jason Gunthorpe

RISC-V IOMMU - Ved Shanbhogue, Rivos

RISC-V IOMMU Architecture Overview - Perrine Peresse

Things not to do when using an IOMMU | Ilja van Sprundel & Joseph Tartaro

Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

From Child Prodigy to Winning Fields Medal, Nobel of Math

Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones

Keynote: After the AI Hype – What’s Real, and What’s Next - Richard Campbell - 2026

The French Do Not Care About Work

The Bob Newhart Toupee Sketch That Broke Dean Martin

Google & AWS Veteran: What Top Tier Software Architects Do Differently

Keynote: Linus Torvalds in Conversation with Dirk Hohndel

Update from Ukraine | Crazy! Russia Lost Azov Sea aster 75 Ships were hit | Magyar Rules!

Introduction to Memory Management in Linux

USENIX ATC '15 - Utilizing the IOMMU Scalably

Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)

Something is jamming GPS over Europe. Here's what we found

IOMMUFD and Generic Page Table - Jason Gunthorpe (NVIDIA Networking)

