Messages in this thread | | | From | Suravee Suthikulpanit <> | Subject | [RFC PATCH v2 0/2] Reduce IOTLB flush when pass-through dGPU devices | Date | Wed, 27 Dec 2017 04:20:33 -0500 |
| |
From: Suravee Suthikulpanit <ssuthiku@redhat.com>
Currently, when pass-through dGPU to a guest VM, there are thousands of IOTLB flush commands sent from IOMMU to end-point-device. This cause performance issue when launching new VMs, and could cause IOTLB invalidate time-out issue on certain dGPUs.
This can be avoided by adopting the new fast IOTLB flush APIs.
Cc: Alex Williamson <alex.williamson@redhat.com> Cc: Joerg Roedel <jroedel@suse.de>
Changes from V1: (https://lkml.org/lkml/2017/11/17/764)
* Rebased on top of v4.15-rc5
* Patch 1/2: Fix iommu_tlb_range_add() size parameter to use unmapped instead of len. (per Alex)
* Patch 1/2: Use a list to keep track unmapped IOVAs for VFIO remote unpinning. Although, I am still not sure if using a list is the best way to keep track the IOVAs. (per Alex)
* Patch 2/2: Fix logic due to missing spin unlock. (per Tom)
Suravee Suthikulpanit (2): vfio/type1: Adopt fast IOTLB flush interface when unmap IOVAs iommu/amd: Add support for fast IOTLB flushing
drivers/iommu/amd_iommu.c | 73 ++++++++++++++++++++++++++++++++- drivers/iommu/amd_iommu_init.c | 7 ++++ drivers/iommu/amd_iommu_types.h | 7 ++++ drivers/vfio/vfio_iommu_type1.c | 89 +++++++++++++++++++++++++++++++++++------ 4 files changed, 163 insertions(+), 13 deletions(-)
-- 1.8.3.1
| |