On Mon, Jun 6, 2011 at 10:20 PM, Roedel, Joerg <Joerg.Roedel@amd.com> wrote:> Well, it certainly makes sense to have a single implementation for this.> But I want to hide this complexity to the user of the IOMMU-API. The> best choice is to put this into the layer between the IOMMU-API and the> backend implementation.

I agree.

The IOMMU API should take physically contiguous regions from the user,split them up according to page-sizes (/alignment requirements)supported by the hardware, and then tell the underlying implementationwhat to map where.

> That interface is not put into stone. There were other complains about> the ->unmap part recently, so there is certainly room for improvement> there.

Once the supported page sizes are exposed to the framework, thecurrent ->unmap API should probably be enough. 'va' + 'order' soundslike all the information an implementation needs to unmap a page.