From: Jason Gunthorpe <jgg@nvidia.com>
To: Michael Shavit <mshavit@google.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Joerg Roedel <joro@8bytes.org>,
jean-philippe@linaro.org, baolu.lu@linux.intel.com,
linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 02/13] iommu/arm-smmu-v3: Add smmu_s1_cfg to smmu_master
Date: Thu, 27 Jul 2023 11:21:53 -0300 [thread overview]
Message-ID: <ZMJ9gYM+Rp8yxpv2@nvidia.com> (raw)
In-Reply-To: <CAKHBV27kr540gTDbgGwzYt6_X7J=NfdNONVe-_y0-XpAQjc4jQ@mail.gmail.com>
On Thu, Jul 27, 2023 at 10:04:04PM +0800, Michael Shavit wrote:
> Awesome that helps a lot. These are the patches I have in mind:
>
> 1. Move ctx_desc out of s1_cfg
> 2. Replace domain->s1_cfg with `struct arm_smmu_ctx_desc_cfg cd_table`
> 3. Move stall_enabled from domain to arm_smmu_ctx_desc_cfg
> 4. Accept an arm_smmu_master instead of an arm_smmu_domain as the
> parameter for arm_smmu_write_ctx_desc
> --- arm_smmu_write_ctx_desc can simply get the cd_table it writes to
> from master->domain->cd_table; this get's replaced by master->cd_table
> in subsequent commits.
Makes sense
> --- SVA is weird if we cut changes here: it iterates over all masters
> a domain is attached to in order to call arm_smmu_write_ctx_desc(),
> which ends up writing to the shared cd_table since in master->domain.
> This becomes more sensible once masters stop sharing the cd _table in
> subsequent commits.
Seems like it is OK inside the series
> --- arm_smmu_write_ctx_desc is used to sync the cd for all masters the
> domain was attached to. Now that SVA is calling it in a loop, and to
> break the dependency on arm_smmu_domain, we should only sync for the
> master passed in as the parameter
Sounds correct
> 5. Introduce a skip_cd_sync parameter to arm_smmu_write_ctx_desc so
> that arm_smmu_domain_finalise_s1 can skip the sync_cd before the
> cd_table is attached to the master. Before the previous commit,
> arm_smmu_domain_finalise_s1 was calling arm_smmu_write_ctx_desc()
> before adding the master to the domain->devices list, which was used
> by arm_sync_smmu() to issue sync commands to masters. This
> optimization was broken by the previous commit since we stopped
> depending on domain->devices.
Tracking if the cd table is not yet installed in a STE might be a
cleaner approach than a flag?
> 6. Move cd_table from domain to arm_smmu_master->cd_table.
Yep
Jason
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com>
To: Michael Shavit <mshavit@google.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Joerg Roedel <joro@8bytes.org>,
jean-philippe@linaro.org, baolu.lu@linux.intel.com,
linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 02/13] iommu/arm-smmu-v3: Add smmu_s1_cfg to smmu_master
Date: Thu, 27 Jul 2023 11:21:53 -0300 [thread overview]
Message-ID: <ZMJ9gYM+Rp8yxpv2@nvidia.com> (raw)
In-Reply-To: <CAKHBV27kr540gTDbgGwzYt6_X7J=NfdNONVe-_y0-XpAQjc4jQ@mail.gmail.com>
On Thu, Jul 27, 2023 at 10:04:04PM +0800, Michael Shavit wrote:
> Awesome that helps a lot. These are the patches I have in mind:
>
> 1. Move ctx_desc out of s1_cfg
> 2. Replace domain->s1_cfg with `struct arm_smmu_ctx_desc_cfg cd_table`
> 3. Move stall_enabled from domain to arm_smmu_ctx_desc_cfg
> 4. Accept an arm_smmu_master instead of an arm_smmu_domain as the
> parameter for arm_smmu_write_ctx_desc
> --- arm_smmu_write_ctx_desc can simply get the cd_table it writes to
> from master->domain->cd_table; this get's replaced by master->cd_table
> in subsequent commits.
Makes sense
> --- SVA is weird if we cut changes here: it iterates over all masters
> a domain is attached to in order to call arm_smmu_write_ctx_desc(),
> which ends up writing to the shared cd_table since in master->domain.
> This becomes more sensible once masters stop sharing the cd _table in
> subsequent commits.
Seems like it is OK inside the series
> --- arm_smmu_write_ctx_desc is used to sync the cd for all masters the
> domain was attached to. Now that SVA is calling it in a loop, and to
> break the dependency on arm_smmu_domain, we should only sync for the
> master passed in as the parameter
Sounds correct
> 5. Introduce a skip_cd_sync parameter to arm_smmu_write_ctx_desc so
> that arm_smmu_domain_finalise_s1 can skip the sync_cd before the
> cd_table is attached to the master. Before the previous commit,
> arm_smmu_domain_finalise_s1 was calling arm_smmu_write_ctx_desc()
> before adding the master to the domain->devices list, which was used
> by arm_sync_smmu() to issue sync commands to masters. This
> optimization was broken by the previous commit since we stopped
> depending on domain->devices.
Tracking if the cd table is not yet installed in a STE might be a
cleaner approach than a flag?
> 6. Move cd_table from domain to arm_smmu_master->cd_table.
Yep
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-07-27 14:21 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 [this message]
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
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=ZMJ9gYM+Rp8yxpv2@nvidia.com \
--to=jgg@nvidia.com \
--cc=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=jean-philippe@linaro.org \
--cc=joro@8bytes.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.