Skip to content

iommu/vt-d: Fix mapping PSI missing for iommu_map()

Peter Xu linux-iommu lkml 3 versions – Applied

Status from this message: Applied, thanks.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest2 patches 2 repliesApplied
  2. v23 patches 2 repliesSuperseded
  3. v13 patches 2 repliesSuperseded

Changes in v3 from the cover letter

- drop the pr_debug patch [Joerg]
- rename all the subjects as suggested [Joerg]
- rebase

Patches in v3 Applied

#Subject and filesSizeRepliesApplied
1/2iommu/vt-d: Introduce __mapping_notify_one()drivers/iommu/intel-iommu.c+14 -120 replies
2/2iommu/vt-d: Fix iotlb psi missing for mappingsdrivers/iommu/intel-iommu.c+34 -90 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCH v3 0/2] iommu/vt-d: Fix mapping PSI missing for iommu_map()

v3:
- drop the pr_debug patch [Joerg]
- rename all the subjects as suggested [Joerg]
- rebase

v2:
- cc correct people and iommu list

(PSI stands for: Page Selective Invalidations)

Intel IOMMU has the caching mode to ease emulation of the device. When that bit is set, we need to send PSIs even for newly mapped pages. However current driver is not fully obey the rule. E.g., iommu_map() API will only do the mapping but it never sent the PSIs before. That can be problematic to emulated IOMMU devices since they'll never be able to build up the shadow page tables if without such information. This patchset tries to fix the problem.

Patch 1 introduces a helper to notify the MAP PSIs.

Patch 2 fixes the real problem by making sure every domain mapping will trigger the MAP PSI notifications.

Without the patchset, nested device assignment (assign one device firstly to L1 guest, then to L2 guest) won't work for QEMU. After applying the patchset, it works.

Please review. Thanks.

Peter Xu (2):
iommu/vt-d: Introduce __mapping_notify_one()
iommu/vt-d: Fix iotlb psi missing for mappings

 drivers/iommu/intel-iommu.c | 65 ++++++++++++++++++++++++++-----------
 1 file changed, 46 insertions(+), 19 deletions(-)
Signature · 1 line
2.17.0