[PATCH 0/4] iommu/amd, vfio: Reduce IOTLB Flushm Rate

From: Joerg Roedel
Date: Fri Oct 13 2017 - 10:40:50 EST


Hi,

these patches implement the new IOTLB flush interface in the
AMD IOMMU driver. But for it to take effect, changes in VFIO
are also necessary, because VFIO unpins the pages after
every successful iommu_unmap() call. This requires an IOTLB
flush, so that we don't save flushes.

So I implemented vfio-gather code to collect up to 32 ranges
before they are unpinned together. This significantly
reduces the number of necessary IOTLB flushes in my tests.

Please review.

Thanks,

Joerg

Joerg Roedel (4):
iommu/amd: Finish TLB flush in amd_iommu_unmap()
iommu/amd: Implement IOMMU-API TLB flush interface
vfio/type1: Make use of iommu_unmap_fast()
vfio/type1: Gather TLB-syncs and pages to unpin

drivers/iommu/amd_iommu.c | 12 +++-
drivers/vfio/vfio_iommu_type1.c | 128 ++++++++++++++++++++++++++++++++++++----
2 files changed, 128 insertions(+), 12 deletions(-)

--
2.7.4