From: Jason Gunthorpe <jgg@nvidia.com> To: iommu@lists.linux.dev, Joerg Roedel <joro@8bytes.org>, linux-arm-kernel@lists.infradead.org, Robin Murphy <robin.murphy@arm.com>, Will Deacon <will@kernel.org> Cc: Eric Auger <eric.auger@redhat.com>, Moritz Fischer <mdf@kernel.org>, Moritz Fischer <moritzf@google.com>, Michael Shavit <mshavit@google.com>, Nicolin Chen <nicolinc@nvidia.com>, patches@lists.linux.dev, Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>, Mostafa Saleh <smostafa@google.com> Subject: [PATCH v7 0/9] Make the SMMUv3 CD logic match the new STE design (part 2a/3) Date: Tue, 16 Apr 2024 16:28:11 -0300 [thread overview] Message-ID: <0-v7-cb149db3a320+3b5-smmuv3_newapi_p2_jgg@nvidia.com> (raw) This is split out from the larger part two which aimes to rework the PASID related code. No new functionality is introduced in theses commits, it just reorganizes the CD logic to follow the same design of the new STE logic using make functions and a single programming flow without leaking details to callers. CD does not have as strong a need for this as STE, but all the code exists and continuing with the same pattern makes for fewer things to understand inside the driver. The following PASID code makes use of this to rethread how the CD programming works to take a caller created struct arm_smmu_cd and then stick whatever that is into the live CD entry. This allows the actual PASID and CD logic to be general and then the PAGING and SVA domain types can sit on top of it. There are four kinds of CDs: - Blocking (ie cleared) - S1 PAGING - SVA - SVA with a released MM (all fault) The last two have to transition hitlessly. v7: - Rebase on Will's for-next & v6.9-rc2 - Split series in half - Include the kunit test - Update comments to refer to the STE & CD in the writer logic v6: https://lore.kernel.org/r/0-v6-228e7adf25eb+4155-smmuv3_newapi_p2_jgg@nvidia.com Jason Gunthorpe (9): iommu/arm-smmu-v3: Add an ops indirection to the STE code iommu/arm-smmu-v3: Make CD programming use arm_smmu_write_entry() iommu/arm-smmu-v3: Move the CD generation for S1 domains into a function iommu/arm-smmu-v3: Consolidate clearing a CD table entry iommu/arm-smmu-v3: Make arm_smmu_alloc_cd_ptr() iommu/arm-smmu-v3: Allocate the CD table entry in advance iommu/arm-smmu-v3: Move the CD generation for SVA into a function iommu/arm-smmu-v3: Build the whole CD in arm_smmu_make_s1_cd() iommu/arm-smmu-v3: Add unit tests for arm_smmu_write_entry drivers/iommu/Kconfig | 12 +- drivers/iommu/arm/arm-smmu-v3/Makefile | 2 + .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 163 ++++-- .../iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c | 467 ++++++++++++++++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 499 +++++++++--------- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 50 +- 6 files changed, 896 insertions(+), 297 deletions(-) create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c base-commit: e8e4398d53f98be7ac48e0bda9ea6e26df24136d -- 2.43.2
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@nvidia.com> To: iommu@lists.linux.dev, Joerg Roedel <joro@8bytes.org>, linux-arm-kernel@lists.infradead.org, Robin Murphy <robin.murphy@arm.com>, Will Deacon <will@kernel.org> Cc: Eric Auger <eric.auger@redhat.com>, Moritz Fischer <mdf@kernel.org>, Moritz Fischer <moritzf@google.com>, Michael Shavit <mshavit@google.com>, Nicolin Chen <nicolinc@nvidia.com>, patches@lists.linux.dev, Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>, Mostafa Saleh <smostafa@google.com> Subject: [PATCH v7 0/9] Make the SMMUv3 CD logic match the new STE design (part 2a/3) Date: Tue, 16 Apr 2024 16:28:11 -0300 [thread overview] Message-ID: <0-v7-cb149db3a320+3b5-smmuv3_newapi_p2_jgg@nvidia.com> (raw) This is split out from the larger part two which aimes to rework the PASID related code. No new functionality is introduced in theses commits, it just reorganizes the CD logic to follow the same design of the new STE logic using make functions and a single programming flow without leaking details to callers. CD does not have as strong a need for this as STE, but all the code exists and continuing with the same pattern makes for fewer things to understand inside the driver. The following PASID code makes use of this to rethread how the CD programming works to take a caller created struct arm_smmu_cd and then stick whatever that is into the live CD entry. This allows the actual PASID and CD logic to be general and then the PAGING and SVA domain types can sit on top of it. There are four kinds of CDs: - Blocking (ie cleared) - S1 PAGING - SVA - SVA with a released MM (all fault) The last two have to transition hitlessly. v7: - Rebase on Will's for-next & v6.9-rc2 - Split series in half - Include the kunit test - Update comments to refer to the STE & CD in the writer logic v6: https://lore.kernel.org/r/0-v6-228e7adf25eb+4155-smmuv3_newapi_p2_jgg@nvidia.com Jason Gunthorpe (9): iommu/arm-smmu-v3: Add an ops indirection to the STE code iommu/arm-smmu-v3: Make CD programming use arm_smmu_write_entry() iommu/arm-smmu-v3: Move the CD generation for S1 domains into a function iommu/arm-smmu-v3: Consolidate clearing a CD table entry iommu/arm-smmu-v3: Make arm_smmu_alloc_cd_ptr() iommu/arm-smmu-v3: Allocate the CD table entry in advance iommu/arm-smmu-v3: Move the CD generation for SVA into a function iommu/arm-smmu-v3: Build the whole CD in arm_smmu_make_s1_cd() iommu/arm-smmu-v3: Add unit tests for arm_smmu_write_entry drivers/iommu/Kconfig | 12 +- drivers/iommu/arm/arm-smmu-v3/Makefile | 2 + .../iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 163 ++++-- .../iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c | 467 ++++++++++++++++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 499 +++++++++--------- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 50 +- 6 files changed, 896 insertions(+), 297 deletions(-) create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c base-commit: e8e4398d53f98be7ac48e0bda9ea6e26df24136d -- 2.43.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2024-04-16 19:28 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-04-16 19:28 Jason Gunthorpe [this message] 2024-04-16 19:28 ` [PATCH v7 0/9] Make the SMMUv3 CD logic match the new STE design (part 2a/3) Jason Gunthorpe 2024-04-16 19:28 ` [PATCH v7 1/9] iommu/arm-smmu-v3: Add an ops indirection to the STE code Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-16 20:18 ` Nicolin Chen 2024-04-16 20:18 ` Nicolin Chen 2024-04-19 21:02 ` Mostafa Saleh 2024-04-19 21:02 ` Mostafa Saleh 2024-04-22 13:09 ` Jason Gunthorpe 2024-04-22 13:09 ` Jason Gunthorpe 2024-04-16 19:28 ` [PATCH v7 2/9] iommu/arm-smmu-v3: Make CD programming use arm_smmu_write_entry() Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-16 20:48 ` Nicolin Chen 2024-04-16 20:48 ` Nicolin Chen 2024-04-18 13:01 ` Robin Murphy 2024-04-18 13:01 ` Robin Murphy 2024-04-18 16:08 ` Jason Gunthorpe 2024-04-18 16:08 ` Jason Gunthorpe 2024-04-19 21:07 ` Mostafa Saleh 2024-04-19 21:07 ` Mostafa Saleh 2024-04-22 13:29 ` Jason Gunthorpe 2024-04-22 13:29 ` Jason Gunthorpe 2024-04-27 22:08 ` Mostafa Saleh 2024-04-27 22:08 ` Mostafa Saleh 2024-04-29 14:29 ` Jason Gunthorpe 2024-04-29 14:29 ` Jason Gunthorpe 2024-04-29 15:30 ` Mostafa Saleh 2024-04-29 15:30 ` Mostafa Saleh 2024-04-16 19:28 ` [PATCH v7 3/9] iommu/arm-smmu-v3: Move the CD generation for S1 domains into a function Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-16 21:22 ` Nicolin Chen 2024-04-16 21:22 ` Nicolin Chen 2024-04-19 21:10 ` Mostafa Saleh 2024-04-19 21:10 ` Mostafa Saleh 2024-04-22 13:52 ` Jason Gunthorpe 2024-04-22 13:52 ` Jason Gunthorpe 2024-04-16 19:28 ` [PATCH v7 4/9] iommu/arm-smmu-v3: Consolidate clearing a CD table entry Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-16 19:28 ` [PATCH v7 5/9] iommu/arm-smmu-v3: Make arm_smmu_alloc_cd_ptr() Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-16 22:19 ` Nicolin Chen 2024-04-16 22:19 ` Nicolin Chen 2024-04-19 21:14 ` Mostafa Saleh 2024-04-19 21:14 ` Mostafa Saleh 2024-04-22 14:20 ` Jason Gunthorpe 2024-04-22 14:20 ` Jason Gunthorpe 2024-04-27 22:19 ` Mostafa Saleh 2024-04-27 22:19 ` Mostafa Saleh 2024-04-29 14:01 ` Jason Gunthorpe 2024-04-29 14:01 ` Jason Gunthorpe 2024-04-29 14:47 ` Mostafa Saleh 2024-04-29 14:47 ` Mostafa Saleh 2024-04-29 14:55 ` Jason Gunthorpe 2024-04-29 14:55 ` Jason Gunthorpe 2024-04-16 19:28 ` [PATCH v7 6/9] iommu/arm-smmu-v3: Allocate the CD table entry in advance Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-16 19:28 ` [PATCH v7 7/9] iommu/arm-smmu-v3: Move the CD generation for SVA into a function Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-17 7:37 ` Nicolin Chen 2024-04-17 7:37 ` Nicolin Chen 2024-04-17 13:17 ` Jason Gunthorpe 2024-04-17 13:17 ` Jason Gunthorpe 2024-04-17 16:25 ` Nicolin Chen 2024-04-17 16:25 ` Nicolin Chen 2024-04-17 16:26 ` Nicolin Chen 2024-04-17 16:26 ` Nicolin Chen 2024-04-18 4:40 ` Michael Shavit 2024-04-18 4:40 ` Michael Shavit 2024-04-18 14:28 ` Jason Gunthorpe 2024-04-18 14:28 ` Jason Gunthorpe 2024-04-16 19:28 ` [PATCH v7 8/9] iommu/arm-smmu-v3: Build the whole CD in arm_smmu_make_s1_cd() Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-17 7:43 ` Nicolin Chen 2024-04-17 7:43 ` Nicolin Chen 2024-04-16 19:28 ` [PATCH v7 9/9] iommu/arm-smmu-v3: Add unit tests for arm_smmu_write_entry Jason Gunthorpe 2024-04-16 19:28 ` Jason Gunthorpe 2024-04-17 8:09 ` Nicolin Chen 2024-04-17 8:09 ` Nicolin Chen 2024-04-17 14:16 ` Jason Gunthorpe 2024-04-17 14:16 ` Jason Gunthorpe 2024-04-17 16:13 ` Nicolin Chen 2024-04-17 16:13 ` Nicolin Chen 2024-04-18 4:39 ` Michael Shavit 2024-04-18 4:39 ` Michael Shavit 2024-04-18 12:48 ` Jason Gunthorpe 2024-04-18 12:48 ` Jason Gunthorpe 2024-04-18 14:34 ` Michael Shavit 2024-04-18 14:34 ` Michael Shavit 2024-04-19 21:24 ` Mostafa Saleh 2024-04-19 21:24 ` Mostafa Saleh 2024-04-22 14:24 ` Jason Gunthorpe 2024-04-22 14:24 ` Jason Gunthorpe 2024-04-27 22:33 ` Mostafa Saleh 2024-04-27 22:33 ` Mostafa Saleh 2024-04-16 19:40 ` [PATCH v7 0/9] Make the SMMUv3 CD logic match the new STE design (part 2a/3) Nicolin Chen 2024-04-16 19:40 ` 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=0-v7-cb149db3a320+3b5-smmuv3_newapi_p2_jgg@nvidia.com \ --to=jgg@nvidia.com \ --cc=eric.auger@redhat.com \ --cc=iommu@lists.linux.dev \ --cc=joro@8bytes.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=mdf@kernel.org \ --cc=moritzf@google.com \ --cc=mshavit@google.com \ --cc=nicolinc@nvidia.com \ --cc=patches@lists.linux.dev \ --cc=robin.murphy@arm.com \ --cc=shameerali.kolothum.thodi@huawei.com \ --cc=smostafa@google.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: linkBe 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.