Messages in this thread | | | From | "Tian, Kevin" <> | Subject | RE: [PATCH v6 12/12] iommu: Improve iopf_queue_flush_dev() | Date | Thu, 28 Sep 2023 05:00:15 +0000 |
| |
> From: Lu Baolu <baolu.lu@linux.intel.com> > Sent: Thursday, September 28, 2023 12:28 PM > > The iopf_queue_flush_dev() is called by the iommu driver before releasing > a PASID. It ensures that all pending faults for this PASID have been > handled or cancelled, and won't hit the address space that reuses this > PASID. The driver must make sure that no new fault is added to the queue. > > The SMMUv3 driver doesn't use it because it only implements the > Arm-specific stall fault model where DMA transactions are held in the SMMU > while waiting for the OS to handle iopf's. Since a device driver must > complete all DMA transactions before detaching domain, there are no > pending iopf's with the stall model. PRI support requires adding a call to > iopf_queue_flush_dev() after flushing the hardware page fault queue. > > The current implementation of iopf_queue_flush_dev() is a simplified > version. It is only suitable for SVA case in which the processing of iopf > is implemented in the inner loop of the iommu subsystem. > > Improve this interface to make it also work for handling iopf out of the > iommu core. Rename the function with a more meaningful name. Remove a > warning message in iommu_page_response() since the iopf queue might get > flushed before possible pending responses. > > Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
| |