RE: [PATCH v4 0/5] iommu/vt-d: Add page request draining support
From: Tian, Kevin
Date: Thu May 07 2020 - 02:38:47 EST
> From: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
> 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