Messages in this thread | | | Date | Thu, 17 Aug 2023 20:41:08 +0100 | Subject | Re: [RFC PATCH v1 2/8] iommu/arm-smmu-v3: Perform invalidations over installed_smmus | From | Robin Murphy <> |
| |
On 2023-08-17 20:20, Jason Gunthorpe wrote: > On Fri, Aug 18, 2023 at 02:16:24AM +0800, Michael Shavit wrote: >> Prepare and batch invalidation commands for each SMMU that a domain is >> installed onto. >> Move SVA's check against the smmu's ARM_SMMU_FEAT_BTM bit into >> arm_smmu_tlb_inv_range_asid so that it can be checked against each >> installed SMMU. >> >> Signed-off-by: Michael Shavit <mshavit@google.com> >> --- >> It's not obvious to me whether skipping the tlb_inv_range_asid when >> ARM_SMMU_FEAT_BTM is somehow specific to SVA? Is moving the check into >> arm_smmu_tlb_inv_range_asid still valid if that function were called >> outside of SVA? > > Logically it should be linked to SVA, and specifically to the mmu > notifier callback. The mmu notifier callback is done whenever the CPU > did an invalidation and BTM means the SMMU tracks exactly those > automatically. Thus we don't need to duplicated it. Indeed, we should > probably not even register a mmu notifier on BTM capable devices.
Almost - broadcast invalidates from the CPU only apply to SMMU TLBs; we still need the notifier for the sake of issuing ATC invalidate commands to endpoints.
> It is certainly wrong to skip invalidations generated for any other > reason. > > From what I can tell SVA domains should have their CD table entry > programmed with "ASET=0" and normal paging domains should be > programmed with "ASET=1". This causes only the SVA domains to listen > to the BTM invalidations.
Correct.
Thanks, Robin.
| |