IOMMUs are hardware devices that translate device DMA addresses to proper machine physical addresses. IOMMUs have long been used for RAS (prohibiting devices from DMA'ing into the wrong memory) and for performance optimization (avoiding bounce buffers and simplifying scatter/gather). With the increasing emphasis on virtualization, IOMMUs from IBM, Intel and AMD are being used and re-designed in new ways, e.g., to enforce isolation between multiple operating systems with direct device access. These new IOMMUs and their usage scenarios have a profound impact on some of the OS and hypervisor abstractions and implementation.
In this talk I will present the work we've done to add IOMMU support to Linux and Xen. I will also discuss interesting design and implementation issues, the key research challenges and our proposed roadmap. This is the same talk we'll give at the 2006 Ottawa Linux Symposium. The talk will be given in English.
Joint work with Jon Mason (IBM), Orran Krieger (IBM), Jimi Xenidis (IBM), Leendert Van Doorn (IBM), Asit Mallick (Intel), Jun Nakajim (Intel) and Elsie Wahlig (AMD).
Lecture slides in PDF format