Re: [PATCH v4 05/13] iommu/arm-smmu-v3: Use the master-owned s1_cfg

From: Nicolin Chen
Date: Thu Jul 13 2023 - 00:28:37 EST


On Wed, Jul 12, 2023 at 06:57:33PM -0700, Nicolin Chen wrote:
> On Wed, Jun 21, 2023 at 02:37:17PM +0800, Michael Shavit wrote:
>
> > Insert CDs for STAGE_1 domains into a CD table owned by the
> > arm_smmu_master. Remove the CD table that was owned by arm_smmu_domain.
>
> > @@ -718,10 +718,7 @@ struct arm_smmu_domain {
> >
> > enum arm_smmu_domain_stage stage;
> > union {
> > - struct {
> > struct arm_smmu_ctx_desc cd;
> > - struct arm_smmu_s1_cfg s1_cfg;
> > - };
> > struct arm_smmu_s2_cfg s2_cfg;
> > };
>
> So the arm_smmu_domain looks like an object representing either:
> 1) a CD table + (if !IDENTITY) an S1 IOPT for default substream
> 2) an S2 IOPT

["]
> I wonder if we need something like struct arm_smmu_subdomain to
> represent a substream, because now an IOMMU_DOMAIN_SVA domain is
> represented by this struct arm_smmu_domain too, which is neither
> of the two cases in the list above.
["]

I got this part incorrect: an SVA domain is actually represented
by an arm_smmu_sva_domain, so there's no nested arm_smmu_domain
situation. And we use arm_smmu_domain for other purpose, where I
got confused.

Please ignore this part, though I am still wondering if we could
name it in a way having a clear topology.

Thanks
Nicolin