Messages in this thread | | | Date | Fri, 24 Jun 2022 14:54:53 +0800 | Subject | Re: [PATCH v3 1/1] iommu/vt-d: Fix RID2PASID setup/teardown failure | From | Baolu Lu <> |
| |
On 2022/6/24 14:02, Ethan Zhao wrote: > 在 2022/6/23 14:57, Lu Baolu 写道: >> The IOMMU driver shares the pasid table for PCI alias devices. When the >> RID2PASID entry of the shared pasid table has been filled by the first >> device, the subsequent device will encounter the "DMAR: Setup RID2PASID >> failed" failure as the pasid entry has already been marked as present. >> As the result, the IOMMU probing process will be aborted. >> >> On the contrary, when any alias device is hot-removed from the system, >> for example, by writing to /sys/bus/pci/devices/.../remove, the shared >> RID2PASID will be cleared without any notifications to other devices. >> As the result, any DMAs from those rest devices are blocked. >> >> Sharing pasid table among PCI alias devices could save two memory pages >> for devices underneath the PCIe-to-PCI bridges. Anyway, considering that >> those devices are rare on modern platforms that support VT-d in scalable >> mode and the saved memory is negligible, it's reasonable to remove this >> part of immature code to make the driver feasible and stable. > In my understanding, thus cleanning will make the pasid table become > per-dev datastructure whatever the dev is pci-alias or not, and the > pasid_pte_is_present(pte)will only check against every pci-alias' own > private pasid table,the setup stagewouldn't break, so does the > detach/release path, and little value to code otherreference counter > like complex implenmataion, looks good to me !
Thanks! Can I add a Reviewd-by from you?
Best regards, baolu
| |