From: Nicolin Chen <nicolinc@nvidia.com>
To: <will@kernel.org>, <robin.murphy@arm.com>, <jgg@nvidia.com>
Cc: <joro@8bytes.org>, <linux-arm-kernel@lists.infradead.org>,
<iommu@lists.linux.dev>, <linux-kernel@vger.kernel.org>,
<shameerali.kolothum.thodi@huawei.com>
Subject: [PATCH v1 0/4] iommu/arm-smmu-v3: Allocate vmid per vsmmu instead of s2_parent
Date: Tue, 4 Mar 2025 21:03:59 -0800 [thread overview]
Message-ID: <cover.1741150594.git.nicolinc@nvidia.com> (raw)
With a system having multiple SMMU physical instances, multiple vSMMUs can
be allocated for a VM that deivces behind different SMMUs are assigned to.
In such a use case, the IPA->PA mappings (i.e. the stage-2 I/O page table)
can be shared across the vSMMU instances.
With a shareable S2 parent domain, it is more natural to store a vmid per
vSMMU instance v.s. a shared S2 domain, since each physical SMMU instance
maintains its own vmid bitmap.
Have a pair of patches getting the functions ready for the vmid migration.
Decouple the vmid from S2 parent domains and move its allocation to vSMMU
instances. Note that a regular S2 domain (!nest_parent) has to retain the
s2_cfg and vmid for non-nesting use cases, if the SMMU HW doesn't support
stage 1. Then, an S2 invalidation has to be iterated for all the vmids in
the vSMMU list introduced in the S2 parent domain.
This is on Github:
https://github.com/nicolinc/iommufd/commits/smmuv3_vmid-v1
To test it with RMR:
https://github.com/nicolinc/iommufd/commits/smmuv3_vmid-v1-with-rmr
Pairing QEMU branch:
https://github.com/nicolinc/qemu/commits/wip/for_smmuv3_vmid-v1
Thanks
Nicolin
Nicolin Chen (4):
iommu/arm-smmu-v3: Pass in vmid to arm_smmu_make_s2_domain_ste()
iommu/arm-smmu-v3: Share arm_smmu_cmdq_issue_cmd_with_sync() with
vsmmu
iommu/arm-smmu-v3: Decouple vmid from S2 nest_parent domain
iommu/arm-smmu-v3-iommufd: Allow a shared s2_parent to allocate vSMMU
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 14 ++++-
.../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 44 +++++++++++---
.../iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c | 3 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 57 ++++++++++++++-----
4 files changed, 93 insertions(+), 25 deletions(-)
base-commit: 7eb172143d5508b4da468ed59ee857c6e5e01da6
--
2.43.0
next reply other threads:[~2025-03-05 5:08 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-05 5:03 Nicolin Chen [this message]
2025-03-05 5:04 ` [PATCH v1 1/4] iommu/arm-smmu-v3: Pass in vmid to arm_smmu_make_s2_domain_ste() Nicolin Chen
2025-03-05 8:50 ` Shameerali Kolothum Thodi
2025-03-05 17:44 ` Nicolin Chen
2025-04-07 8:37 ` Pranjal Shrivastava
2025-03-05 16:55 ` Jason Gunthorpe
2025-04-07 8:32 ` Pranjal Shrivastava
2025-03-05 5:04 ` [PATCH v1 2/4] iommu/arm-smmu-v3: Share arm_smmu_cmdq_issue_cmd_with_sync() with vsmmu Nicolin Chen
2025-04-07 8:43 ` Pranjal Shrivastava
2025-03-05 5:04 ` [PATCH v1 3/4] iommu/arm-smmu-v3: Decouple vmid from S2 nest_parent domain Nicolin Chen
2025-03-05 17:01 ` Jason Gunthorpe
2025-03-05 18:45 ` Nicolin Chen
2025-04-07 10:51 ` Pranjal Shrivastava
2025-04-07 16:52 ` Jason Gunthorpe
2025-04-08 14:20 ` Pranjal Shrivastava
2025-04-15 0:05 ` Nicolin Chen
2025-03-05 5:04 ` [PATCH v1 4/4] iommu/arm-smmu-v3-iommufd: Allow a shared s2_parent to allocate vSMMU Nicolin Chen
2025-03-05 9:01 ` Shameerali Kolothum Thodi
2025-03-05 16:57 ` Jason Gunthorpe
2025-03-05 17:49 ` Nicolin Chen
2025-03-05 16:54 ` [PATCH v1 0/4] iommu/arm-smmu-v3: Allocate vmid per vsmmu instead of s2_parent Jason Gunthorpe
2025-03-05 18:23 ` Nicolin Chen
2025-03-05 18:31 ` Jason Gunthorpe
2025-03-05 18:51 ` Nicolin Chen
2025-03-05 19:29 ` Jason Gunthorpe
2025-03-05 19:46 ` Nicolin Chen
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=cover.1741150594.git.nicolinc@nvidia.com \
--to=nicolinc@nvidia.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=shameerali.kolothum.thodi@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).