Consolidating IOMMU Drivers

This proposal has been accepted as a session.


One Line Summary

Lots of code in the current IOMMU drivers can be consolidated into core code. This discussion presents some ideas on this.


The IOMMU drivers currently in the Linux kernel re-implement a lot of functionality (often in different ways). These differences, for example in domain assignment and de-assignment, are often visible to the users of the IOMMU-API, making it difficult to write IOMMU independent code.

In this discussion I will present some ideas on what functionality should be moved from the drivers into the IOMMU core to make the behavior of the IOMMU-API more consistent and to reduce the code duplication in all the drivers.


drivers, IOMMU, DMA-API

Presentation Materials



  • Joro


    Joerg started to work as a Linux Kernel engineer at AMD in 2006. At this time KVM was equally new to the kernel as he was, so he thought working on it would be a good fit. He contributed support for Nested Paging and worked a lot on the Nested SVM implementation on KVM, including the emulation of Nested Paging in the guest. Later he extended his areas of interest and became an active IOMMU developer, with the driver for the AMD IOMMU being his first contribution. Over time he contributed to the generic IOMMU code in the Linux Kernel and became the maintainer of it in 2011.

    In the end of 2012 Joerg left AMD and joined Amazon to work on the Web Services. But after 16 month he decided that it is much more fun to contribute his work back to the community, so he left Amazon and joined SUSE.

    There he is working on IOMMU code again to make Linux ready for the next generation of compute offload hardware.