On Thu, Jun 23, 2011 at 11:38:54AM -0400, David Woodhouse wrote: > On Thu, 2011-06-23 at 17:31 +0200, Joerg Roedel wrote: > > David, I think especially VT-d can benefit from such a callback. I will > > implement support for it in the AMD IOMMU driver and post a patch-set > > soon. > > > > Any comments, thoughts? > > Ick. We *already* do the flushes as appropriate while we're filling the > page tables. So every time we move on from one page table page to the > next, we'll flush the old one. And when we've *done* filling the page > tables for the range we've been asked to map, we flush the last writes > too. It doesn't sound too complicated to make this work with iommu_commit. All the VT-d driver needs to do is to keep track of the last page-table page a map/unmap request was targeted to (per domain). Subsequent map/unmap calls check if the same page is targeted and flushes the old one if not. The last writes are flushed in the iommu_commit() call (together with the IOMMU cache flushes). It is basically the same algorithm you use now except that it works accross iommu_map/iommu_unmap calls. Joerg -- AMD Operating System Research Center Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach General Managers: Alberto Bozzo, Andrew Bowd Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632 -- 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