From: Nicolin Chen <nicolinc@nvidia.com>
To: Michael Shavit <mshavit@google.com>
Cc: Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
"Joerg Roedel" <joro@8bytes.org>, <jean-philippe@linaro.org>,
<jgg@nvidia.com>, <baolu.lu@linux.intel.com>,
<linux-arm-kernel@lists.infradead.org>, <iommu@lists.linux.dev>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 03/13] iommu/arm-smmu-v3: Refactor write_strtab_ent
Date: Wed, 12 Jul 2023 18:41:46 -0700 [thread overview]
Message-ID: <ZK9WWilcF6GwqHiu@Asurada-Nvidia> (raw)
In-Reply-To: <20230621063825.268890-4-mshavit@google.com>
On Wed, Jun 21, 2023 at 02:37:15PM +0800, Michael Shavit wrote:
> Explicity keep track of the s1_cfg and s2_cfg that are attached to a
> master in arm_smmu_master, regardless of whether they are owned by
> arm_smmu_master, arm_smmu_domain or userspace.
An s1_cfg is in a master while an s2_cfg is in a domain. So we
we know where they are. I kinda get that having these two ptrs
could ease the cleanup, especially in arm_smmu_write_strtab_ent.
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> index 053cc14c23969..3c614fbe2b8b9 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> @@ -689,6 +689,8 @@ struct arm_smmu_master {
> struct list_head domain_head;
> struct arm_smmu_stream *streams;
> struct arm_smmu_s1_cfg owned_s1_cfg;
> + struct arm_smmu_s1_cfg *s1_cfg;
> + struct arm_smmu_s2_cfg *s2_cfg;
Yet, this looks a bit overcomplicated to me by having an s1_cfg
that points to master->owned_s1_cfg?
I am wondering if it'd be neater to have a new struct for STE,
replacing the owned_s1_cfg, s1_cfg and s2_cfg above. It could
be something like struct arm_smmu_cmdq_ent, which contains all
the STE fields so that in arm_smmu_write_strtab_ent we can just
plainly copy to the dst[]. Also, whenever a device attaches to
a domain having the necessary info needed by the STE, we update
the STE struct owned by the master.
Thanks
Nic
WARNING: multiple messages have this Message-ID (diff)
From: Nicolin Chen <nicolinc@nvidia.com>
To: Michael Shavit <mshavit@google.com>
Cc: Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
"Joerg Roedel" <joro@8bytes.org>, <jean-philippe@linaro.org>,
<jgg@nvidia.com>, <baolu.lu@linux.intel.com>,
<linux-arm-kernel@lists.infradead.org>, <iommu@lists.linux.dev>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 03/13] iommu/arm-smmu-v3: Refactor write_strtab_ent
Date: Wed, 12 Jul 2023 18:41:46 -0700 [thread overview]
Message-ID: <ZK9WWilcF6GwqHiu@Asurada-Nvidia> (raw)
In-Reply-To: <20230621063825.268890-4-mshavit@google.com>
On Wed, Jun 21, 2023 at 02:37:15PM +0800, Michael Shavit wrote:
> Explicity keep track of the s1_cfg and s2_cfg that are attached to a
> master in arm_smmu_master, regardless of whether they are owned by
> arm_smmu_master, arm_smmu_domain or userspace.
An s1_cfg is in a master while an s2_cfg is in a domain. So we
we know where they are. I kinda get that having these two ptrs
could ease the cleanup, especially in arm_smmu_write_strtab_ent.
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> index 053cc14c23969..3c614fbe2b8b9 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
> @@ -689,6 +689,8 @@ struct arm_smmu_master {
> struct list_head domain_head;
> struct arm_smmu_stream *streams;
> struct arm_smmu_s1_cfg owned_s1_cfg;
> + struct arm_smmu_s1_cfg *s1_cfg;
> + struct arm_smmu_s2_cfg *s2_cfg;
Yet, this looks a bit overcomplicated to me by having an s1_cfg
that points to master->owned_s1_cfg?
I am wondering if it'd be neater to have a new struct for STE,
replacing the owned_s1_cfg, s1_cfg and s2_cfg above. It could
be something like struct arm_smmu_cmdq_ent, which contains all
the STE fields so that in arm_smmu_write_strtab_ent we can just
plainly copy to the dst[]. Also, whenever a device attaches to
a domain having the necessary info needed by the STE, we update
the STE struct owned by the master.
Thanks
Nic
_______________________________________________
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-07-13 1:42 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-21 6:37 [PATCH v4 00/13] Add PASID support to SMMUv3 unmanaged domains Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 01/13] iommu/arm-smmu-v3: Move ctx_desc out of s1_cfg Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 02/13] iommu/arm-smmu-v3: Add smmu_s1_cfg to smmu_master Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-07-13 1:22 ` Nicolin Chen
2023-07-13 1:22 ` Nicolin Chen
2023-07-13 8:34 ` Michael Shavit
2023-07-13 8:34 ` Michael Shavit
2023-07-13 14:29 ` Jason Gunthorpe
2023-07-13 14:29 ` Jason Gunthorpe
2023-07-13 16:16 ` Michael Shavit
2023-07-13 16:16 ` Michael Shavit
2023-07-13 16:34 ` Michael Shavit
2023-07-13 16:34 ` Michael Shavit
2023-07-13 16:41 ` Jason Gunthorpe
2023-07-13 16:41 ` Jason Gunthorpe
2023-07-13 19:54 ` Nicolin Chen
2023-07-13 19:54 ` Nicolin Chen
2023-07-13 23:48 ` Jason Gunthorpe
2023-07-13 23:48 ` Jason Gunthorpe
2023-07-14 1:14 ` Nicolin Chen
2023-07-14 1:14 ` Nicolin Chen
2023-07-14 1:14 ` Nicolin Chen
2023-07-14 9:12 ` Michael Shavit
2023-07-14 9:12 ` Michael Shavit
2023-07-14 11:58 ` Will Deacon
2023-07-14 11:58 ` Will Deacon
2023-07-14 12:50 ` Jason Gunthorpe
2023-07-14 12:50 ` Jason Gunthorpe
2023-07-14 8:02 ` Michael Shavit
2023-07-14 8:02 ` Michael Shavit
2023-07-14 13:21 ` Jason Gunthorpe
2023-07-14 13:21 ` Jason Gunthorpe
2023-07-17 10:06 ` Michael Shavit
2023-07-17 10:06 ` Michael Shavit
2023-07-17 12:29 ` Jason Gunthorpe
2023-07-17 12:29 ` Jason Gunthorpe
2023-07-18 8:56 ` Michael Shavit
2023-07-18 8:56 ` Michael Shavit
2023-07-27 11:22 ` Michael Shavit
2023-07-27 11:22 ` Michael Shavit
2023-07-27 11:54 ` Jason Gunthorpe
2023-07-27 11:54 ` Jason Gunthorpe
2023-07-27 14:04 ` Michael Shavit
2023-07-27 14:04 ` Michael Shavit
2023-07-27 14:21 ` Jason Gunthorpe
2023-07-27 14:21 ` Jason Gunthorpe
2023-06-21 6:37 ` [PATCH v4 03/13] iommu/arm-smmu-v3: Refactor write_strtab_ent Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-07-13 1:41 ` Nicolin Chen [this message]
2023-07-13 1:41 ` Nicolin Chen
2023-06-21 6:37 ` [PATCH v4 04/13] iommu/arm-smmu-v3: Refactor write_ctx_desc Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 05/13] iommu/arm-smmu-v3: Use the master-owned s1_cfg Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-07-13 1:57 ` Nicolin Chen
2023-07-13 1:57 ` Nicolin Chen
2023-07-13 4:25 ` Nicolin Chen
2023-07-13 4:25 ` Nicolin Chen
2023-06-21 6:37 ` [PATCH v4 06/13] iommu/arm-smmu-v3: Simplify arm_smmu_enable_ats Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 07/13] iommu/arm-smmu-v3: Keep track of attached ssids Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-07-13 2:09 ` Nicolin Chen
2023-07-13 2:09 ` Nicolin Chen
2023-07-21 6:48 ` Michael Shavit
2023-07-21 6:48 ` Michael Shavit
2023-07-27 4:44 ` Nicolin Chen
2023-07-27 4:44 ` Nicolin Chen
2023-07-13 4:45 ` Nicolin Chen
2023-07-13 4:45 ` Nicolin Chen
2023-07-14 9:30 ` Michael Shavit
2023-07-14 9:30 ` Michael Shavit
2023-07-15 0:35 ` Nicolin Chen
2023-07-15 0:35 ` Nicolin Chen
2023-07-15 0:35 ` Nicolin Chen
2023-07-18 8:51 ` Michael Shavit
2023-07-18 8:51 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 08/13] iommu/arm-smmu-v3: Add helper for atc invalidation Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 09/13] iommu/arm-smmu-v3: Implement set_dev_pasid Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-23 0:32 ` Nicolin Chen
2023-06-23 0:32 ` Nicolin Chen
2023-06-26 2:33 ` Michael Shavit
2023-06-26 2:33 ` Michael Shavit
2023-06-26 18:14 ` Nicolin Chen
2023-06-26 18:14 ` Nicolin Chen
2023-06-28 13:36 ` Michael Shavit
2023-06-28 13:36 ` Michael Shavit
2023-07-13 8:44 ` Michael Shavit
2023-07-13 8:44 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 10/13] iommu/arm-smmu-v3-sva: Remove bond refcount Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 11/13] iommu/arm-smmu-v3-sva: Clean unused iommu_sva Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 12/13] iommu/arm-smmu-v3-sva: Remove arm_smmu_bond Michael Shavit
2023-06-21 6:37 ` Michael Shavit
2023-07-13 8:41 ` Michael Shavit
2023-07-13 8:41 ` Michael Shavit
2023-06-21 6:37 ` [PATCH v4 13/13] iommu/arm-smmu-v3-sva: Add check when enabling sva Michael Shavit
2023-06-21 6:37 ` Michael Shavit
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=ZK9WWilcF6GwqHiu@Asurada-Nvidia \
--to=nicolinc@nvidia.com \
--cc=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=jean-philippe@linaro.org \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mshavit@google.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.