From: Jason Gunthorpe <jgg@nvidia.com>
To: Michael Shavit <mshavit@google.com>
Cc: iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, will@kernel.org,
robin.murphy@arm.com, nicolinc@nvidia.com,
jean-philippe@linaro.org
Subject: Re: [PATCH v2 2/8] iommu/arm-smmu-v3: Replace s1_cfg with cdtab_cfg
Date: Tue, 1 Aug 2023 10:43:51 -0300 [thread overview]
Message-ID: <ZMkMF4e7w1GTln7s@nvidia.com> (raw)
In-Reply-To: <20230731184817.v2.2.I1ef1ed19d7786c8176a0d05820c869e650c8d68f@changeid>
On Mon, Jul 31, 2023 at 06:48:12PM +0800, Michael Shavit wrote:
> arm_smmu_ctx_desc_cfg is renamed to arm_smmu_cdtab_cfg to make it more
> obvious that it represents a cd table. The max number of CDs that can be
> represented by the CD table is stored in this truct in its log2 form
> since it is more useful for users of the CD table, and replaces the
> s1cdmax field in s1_cfg. Instead of storing s1_cfg.s1fmt, it can also be
> trivially computed from the cdtab_cfg, and is therefore removed from
> s1_cfg.
To Nicolin's suggestion, how about
Remove struct arm_smmu_s1_cfg. This is really just a CD table with a
bit of extra information. Enhance the existing CD table structure,
struct arm_smmu_ctx_desc_cfg, with max_cds_bits and replace all usage
of arm_smmu_s1_cfg with arm_smmu_ctx_desc_cfg.
Compute the other values that were stored in s1cfg directly from
existing arm_smmu_ctx_desc_cfg.
For clarity the name "cd_table" for the variables pointing to
arm_smmu_ctx_desc_cfg in the new code. A later patch will make this
fully consistent.
> @@ -2082,11 +2083,11 @@ static void arm_smmu_domain_free(struct iommu_domain *domain)
>
> /* Free the CD and ASID, if we allocated them */
> if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
> - struct arm_smmu_s1_cfg *cfg = &smmu_domain->s1_cfg;
> + struct arm_smmu_ctx_desc_cfg *cdcfg = &smmu_domain->cd_table;
Use cd_table here
> /* Prevent SVA from touching the CD while we're freeing it */
> mutex_lock(&arm_smmu_asid_lock);
> - if (cfg->cdcfg.cdtab)
> + if (cdcfg->cdtab)
> arm_smmu_free_cd_tables(smmu_domain);
> arm_smmu_free_asid(&smmu_domain->cd);
> mutex_unlock(&arm_smmu_asid_lock);
> @@ -2106,7 +2107,7 @@ static int arm_smmu_domain_finalise_s1(struct arm_smmu_domain *smmu_domain,
> int ret;
> u32 asid;
> struct arm_smmu_device *smmu = smmu_domain->smmu;
> - struct arm_smmu_s1_cfg *cfg = &smmu_domain->s1_cfg;
> + struct arm_smmu_ctx_desc_cfg *cdcfg = &smmu_domain->cd_table;
And here
Jason
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com>
To: Michael Shavit <mshavit@google.com>
Cc: iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, will@kernel.org,
robin.murphy@arm.com, nicolinc@nvidia.com,
jean-philippe@linaro.org
Subject: Re: [PATCH v2 2/8] iommu/arm-smmu-v3: Replace s1_cfg with cdtab_cfg
Date: Tue, 1 Aug 2023 10:43:51 -0300 [thread overview]
Message-ID: <ZMkMF4e7w1GTln7s@nvidia.com> (raw)
In-Reply-To: <20230731184817.v2.2.I1ef1ed19d7786c8176a0d05820c869e650c8d68f@changeid>
On Mon, Jul 31, 2023 at 06:48:12PM +0800, Michael Shavit wrote:
> arm_smmu_ctx_desc_cfg is renamed to arm_smmu_cdtab_cfg to make it more
> obvious that it represents a cd table. The max number of CDs that can be
> represented by the CD table is stored in this truct in its log2 form
> since it is more useful for users of the CD table, and replaces the
> s1cdmax field in s1_cfg. Instead of storing s1_cfg.s1fmt, it can also be
> trivially computed from the cdtab_cfg, and is therefore removed from
> s1_cfg.
To Nicolin's suggestion, how about
Remove struct arm_smmu_s1_cfg. This is really just a CD table with a
bit of extra information. Enhance the existing CD table structure,
struct arm_smmu_ctx_desc_cfg, with max_cds_bits and replace all usage
of arm_smmu_s1_cfg with arm_smmu_ctx_desc_cfg.
Compute the other values that were stored in s1cfg directly from
existing arm_smmu_ctx_desc_cfg.
For clarity the name "cd_table" for the variables pointing to
arm_smmu_ctx_desc_cfg in the new code. A later patch will make this
fully consistent.
> @@ -2082,11 +2083,11 @@ static void arm_smmu_domain_free(struct iommu_domain *domain)
>
> /* Free the CD and ASID, if we allocated them */
> if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
> - struct arm_smmu_s1_cfg *cfg = &smmu_domain->s1_cfg;
> + struct arm_smmu_ctx_desc_cfg *cdcfg = &smmu_domain->cd_table;
Use cd_table here
> /* Prevent SVA from touching the CD while we're freeing it */
> mutex_lock(&arm_smmu_asid_lock);
> - if (cfg->cdcfg.cdtab)
> + if (cdcfg->cdtab)
> arm_smmu_free_cd_tables(smmu_domain);
> arm_smmu_free_asid(&smmu_domain->cd);
> mutex_unlock(&arm_smmu_asid_lock);
> @@ -2106,7 +2107,7 @@ static int arm_smmu_domain_finalise_s1(struct arm_smmu_domain *smmu_domain,
> int ret;
> u32 asid;
> struct arm_smmu_device *smmu = smmu_domain->smmu;
> - struct arm_smmu_s1_cfg *cfg = &smmu_domain->s1_cfg;
> + struct arm_smmu_ctx_desc_cfg *cdcfg = &smmu_domain->cd_table;
And here
Jason
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-08-01 13:43 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-31 10:48 [PATCH v2 0/8] Refactor the SMMU's CD table ownership Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-07-31 10:48 ` [PATCH v2 1/8] iommu/arm-smmu-v3: Move ctx_desc out of s1_cfg Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 14:08 ` Jason Gunthorpe
2023-08-01 14:08 ` Jason Gunthorpe
2023-07-31 10:48 ` [PATCH v2 2/8] iommu/arm-smmu-v3: Replace s1_cfg with cdtab_cfg Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 4:14 ` Nicolin Chen
2023-08-01 4:14 ` Nicolin Chen
2023-08-01 8:00 ` Michael Shavit
2023-08-01 8:00 ` Michael Shavit
2023-08-01 13:43 ` Jason Gunthorpe [this message]
2023-08-01 13:43 ` Jason Gunthorpe
2023-07-31 10:48 ` [PATCH v2 3/8] iommu/arm-smmu-v3: Encapsulate ctx_desc_cfg init in alloc_cd_tables Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 14:09 ` Jason Gunthorpe
2023-08-01 14:09 ` Jason Gunthorpe
2023-07-31 10:48 ` [PATCH v2 4/8] iommu/arm-smmu-v3: move stall_enabled to the cd table Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 4:28 ` Nicolin Chen
2023-08-01 4:28 ` Nicolin Chen
2023-08-01 4:52 ` Nicolin Chen
2023-08-01 4:52 ` Nicolin Chen
2023-08-01 8:09 ` Michael Shavit
2023-08-01 8:09 ` Michael Shavit
2023-08-01 13:31 ` Jason Gunthorpe
2023-08-01 13:31 ` Jason Gunthorpe
2023-08-01 14:12 ` Jason Gunthorpe
2023-08-01 14:12 ` Jason Gunthorpe
2023-07-31 10:48 ` [PATCH v2 5/8] iommu/arm-smmu-v3: Skip cd sync if CD table isn't active Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 14:13 ` Jason Gunthorpe
2023-08-01 14:13 ` Jason Gunthorpe
2023-07-31 10:48 ` [PATCH v2 6/8] iommu/arm-smmu-v3: Refactor write_ctx_desc Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 14:18 ` Jason Gunthorpe
2023-08-01 14:18 ` Jason Gunthorpe
2023-08-01 17:03 ` Michael Shavit
2023-08-01 17:03 ` Michael Shavit
2023-07-31 10:48 ` [PATCH v2 7/8] iommu/arm-smmu-v3: Move CD table to arm_smmu_master Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 14:42 ` Jason Gunthorpe
2023-08-01 14:42 ` Jason Gunthorpe
2023-07-31 10:48 ` [PATCH v2 8/8] iommu/arm-smmu-v3: Rename cdcfg to cd_table Michael Shavit
2023-07-31 10:48 ` Michael Shavit
2023-08-01 14:44 ` Jason Gunthorpe
2023-08-01 14:44 ` Jason Gunthorpe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZMkMF4e7w1GTln7s@nvidia.com \
--to=jgg@nvidia.com \
--cc=iommu@lists.linux.dev \
--cc=jean-philippe@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mshavit@google.com \
--cc=nicolinc@nvidia.com \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.