[PATCH v4 0/5] iommu/vt-d: Add page request draining support

Tian, Kevin kevin.tian at intel.com
Thu May 7 06:38:42 UTC 2020


> From: Lu Baolu <baolu.lu at linux.intel.com>
> Sent: Thursday, May 7, 2020 8:55 AM
> 
> When a PASID is stopped or terminated, there can be pending PRQs
> (requests that haven't received responses) in the software and
> remapping hardware. The pending page requests must be drained
> so that the pasid could be reused. The chapter 7.10 in the VT-d
> specification specifies the software steps to drain pending page
> requests and responses.
> 
> This includes two parts:
>  - PATCH 1/4 ~ 2/4: refactor the qi_submit_sync() to support multiple
>    descriptors per submission which will be used in the following
>    patch.
>  - PATCH 3/4 ~ 4/4: add page request drain support after a pasid entry
>    is torn down.
> 

I think you should mention that this series depends on Jacob's nested
SVA series.

> Best regards,
> baolu
> 
> Change log:
> v3->v4:
>   - Remove prq drain in mm notifier;
>   - Set PASID FPD bit when pasid is cleared in mm notifier and clear
>     it in unbound().
> 
>  v2->v3:
>   - Address Kevin's review comments
>     - Squash the first 2 patches together;
>     - The prq thread is serialized, no need to consider reentrance;
>     - Ensure no new-coming prq before drain prq in queue;
>     - Handle page request overflow case.
> 
>  v1->v2:
>   - Fix race between multiple prq handling threads.
> 
> Lu Baolu (5):
>   iommu/vt-d: Multiple descriptors per qi_submit_sync()
>   iommu/vt-d: debugfs: Add support to show inv queue internals
>   iommu/vt-d: Disable non-recoverable fault processing before unbind
>   iommu/vt-d: Add page request draining support
>   iommu/vt-d: Remove redundant IOTLB flush
> 
>  drivers/iommu/dmar.c                |  63 ++++++++------
>  drivers/iommu/intel-iommu-debugfs.c |  62 ++++++++++++++
>  drivers/iommu/intel-iommu.c         |   4 +-
>  drivers/iommu/intel-pasid.c         |  30 +++++--
>  drivers/iommu/intel-pasid.h         |   3 +-
>  drivers/iommu/intel-svm.c           | 123 ++++++++++++++++++++++++----
>  drivers/iommu/intel_irq_remapping.c |   2 +-
>  include/linux/intel-iommu.h         |  13 ++-
>  8 files changed, 247 insertions(+), 53 deletions(-)
> 
> --
> 2.17.1



More information about the iommu mailing list