Messages in this thread | | | From | Michael Shavit <> | Date | Tue, 18 Jul 2023 16:51:59 +0800 | Subject | Re: [PATCH v4 07/13] iommu/arm-smmu-v3: Keep track of attached ssids |
| |
On Sat, Jul 15, 2023 at 8:35 AM Nicolin Chen <nicolinc@nvidia.com> wrote: > Well, firstly it's kinda odd to have this optimization hidden in > a big rework patch. And I am not sure if it alone would work for > all use cases, as it impacts the arm_smmu_atc_inv_domain() that > passes in a zero ssid, in which case the affected function is not > used by a pasid case all the time:
To clarify, we haven't changed anything for the existing flow. Before the latter set_dev_pasid patch is introduced, there's only ever a single {master,domain} pair in the attached_domain list. When arm_smmu_atc_inv_domain() is called on a non-pasid domain, it issues a single atc inv command with substream_valid=false, same as before. When SVA wants to invalidate a domain, it calls arm_smmu_atc_inv_domain_ssid to issue a single atc inv command with that specific PASID, same as before. At no point does the driver ever rely on the fact that invalidating with substream_valid=false would invalidate all PASIDs.
This patch series simply follows the precedent set by SVA: when a domain is attached with a pasid, invalidates those specific pasids. It'd feel kinda hacky to rely on the fact that invalidating with substream_valid=false would invalidate all PASIDs.
| |