IOMMU overhead optimizations and observability
summary
Observed IOMMU page table overhead reaches many gigabytes on real workloads; a small reproducer iova_stress cycles VA space and shows system free memory dropping. Proposed changes add IOMMUPageTables: XXX kB to /proc/meminfo, charge page table memory to the DMA owner, expose walkable IOMMU pagetables like /proc/PID/pagemap and kdump extensions, and limit empty page-table levels using refcounts, a free list and RCU-batched freeing at flush time. Also propose per-IOMMU counters and kernel selftest integration to prevent regressions.
AI-written summary · about
chapters (8)
- 0:00Introduction to IOMMU issues
- 1:07Analyzing page table growth
- 5:29Proposal for page table cleanup
- 11:16Lockless design and scalability
- 17:03Performance and hardware caching
- 23:41Observability and accounting
- 34:06Memory corruption debugging
- 42:27Stability rules and conclusion
related talks
21mI/O Virtualization Use Cases and the RISC-V IOMMU Overview
38mUnmapped Private Memory for Confidential Guests
28mConfidential Devices (TEE I/O): A series of modest proposals
27mIOMMUFD Integration in QEMU
34mGetting on the Same (Virtual Memory) Page: A Roundtable on Data-only Attack Mitigations
28mIMA Update: Lessons Learned from Re-implementing IMA-measurement in User Space
29mvfio, iommufd: Enabling user space drivers to vend more granular access to client pro...
18mGuest Memory Protection -- Current Status and Future
