On Wed, Mar 23, 2011 at 03:18:04PM -0700, Stepan Moskovchenko wrote: > Consistency between multiple IOMMUs can be maintained. Map and unmap > operations happen on a 'domain' structure (which is intended to abstract > a page table), and a domain can be attached to one or more IOMMU > devices, assuming that all your IOMMUs use the same page table format. The IOMMU-API even supports it if your IOMMUs have different page-table formats. The driver can just setup page-tables in every possible format on map/unmap and use the appropriate one for each device. So this is possible if wanted. > The IOMMU layer itself does not handle virtual space management. Its > sole responsibility is to set up the mappings. You would need something > else to do the management for you. There have been some discussions > about it in the past... Which is by the way the point of the IOMMU-API. If you want address space management done the the DMA-API is the better choice to implement for your IOMMU. The DMA-API manages the address space itself. Something was needed that allows the driver to manage the address space itself (for KVM device passthrough). This was not possible with the DMA-API so the IOMMU-API was introduced. Your IOMMU driver can also implement both APIs like the x86 IOMMU drivers do (VT-d and AMD-Vi). Regards, Joerg -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html