On Wed, 2015-10-28 at 13:35 +0200, Michael S. Tsirkin wrote: > E.g. on intel x86, there's an option iommu=pt which does the 1:1 > thing for devices when used by kernel, but enables > the iommu if used by userspace/VMs. That's none of your business. You call the DMA API when you do DMA. That's all there is to it. If the IOMMU happens to be in passthrough mode, or your device happens to not to be routed through an IOMMU today, then I/O virtual address you get back from the DMA API will look a *lot* like the physical address you asked the DMA to map. You might think there's no IOMMU. We couldn't possibly comment. Use the DMA API. Always. Let the platform worry about whether it actually needs to *do* anything or not. -- dwmw2