Hi Longpeng,

On 4/1/21 3:18 PM, Longpeng(Mike) wrote:
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index ee09323..cbcb434 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -2342,9 +2342,20 @@ static inline int hardware_largepage_caps(struct 
dmar_domain *domain,
                                 * removed to make room for superpage(s).
                                 * We're adding new large pages, so make sure
                                 * we don't remove their parent tables.
+                                *
+                                * We also need to flush the iotlb before 
creating
+                                * superpage to ensure it does not perserves any
+                                * obsolete info.
                                 */
-                               dma_pte_free_pagetable(domain, iov_pfn, end_pfn,
-                                                      largepage_lvl + 1);
+                               if (dma_pte_present(pte)) {

The dma_pte_free_pagetable() clears a batch of PTEs. So checking current
PTE is insufficient. How about removing this check and always performing
cache invalidation?

+                                       int i;
+
+                                       dma_pte_free_pagetable(domain, iov_pfn, 
end_pfn,
+                                                              largepage_lvl + 
1);
+                                       for_each_domain_iommu(i, domain)
+                                               
iommu_flush_iotlb_psi(g_iommus[i], domain,
+                                                                     iov_pfn, 
nr_pages, 0, 0);
+                               

Best regards,
baolu
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
  • [PATCH] iommu/... Longpeng(Mike)
    • Re: [PATC... Lu Baolu
      • Re: [... Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
    • Re: [PATC... Lu Baolu
      • RE: [... Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
        • R... Lu Baolu
          • ... Longpeng (Mike, Cloud Infrastructure Service Product Dept.)

Reply via email to