IOMMUs are commonly used for two purposes: DMA address translation and interrupt remapping. In principle both of these can be used independently. For historic reasons such independent operation is not implemented in Xen, resulting in ambiguity and confusion about what e.g. “iommu=off” is intended to mean. While changing the implementation might be possible (at the very least by, as was suggested for other reasons as well, completely re-writing IOMMU related code), the primary goal here is to gain an understanding on the overall direction we want to follow with this.