Messages in this thread | | | From | "Tian, Kevin" <> | Subject | RE: [PATCH v4 0/5] iommu/vt-d: Add page request draining support | Date | Thu, 7 May 2020 06:38:42 +0000 |
| |
> From: Lu Baolu <baolu.lu@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
| |