linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/23] iommu: Refactor DMA domain strictness
@ 2021-07-21 18:20 Robin Murphy
  2021-07-21 18:20 ` [PATCH 01/23] iommu: Pull IOVA cookie management into the core Robin Murphy
                   ` (24 more replies)
  0 siblings, 25 replies; 41+ messages in thread
From: Robin Murphy @ 2021-07-21 18:20 UTC (permalink / raw)
  To: joro, will
  Cc: iommu, linux-arm-kernel, linux-kernel, suravee.suthikulpanit,
	baolu.lu, john.garry, dianders

Hi all,

First off, yes, this conflicts with just about everything else
currently in-flight. Sorry about that. If it stands up to initial review
then I'll start giving some thought to how to fit everything together
(particularly John's cleanup of strictness defaults, which I'd be
inclined to fold into a v2 of this series).

Anyway, this is my take on promoting the strict vs. non-strict DMA
domain choice to distinct domain types, so that it can fit logically
into the existing sysfs and Kconfig controls. The first 13 patches are
effectively preparatory cleanup to reduce churn in the later changes,
but could be merged in their own right even if the rest is too
contentious. I ended up splitting patches #2-#11 by driver for ease of
review, since some of them are more than just trivial deletions, but
they could readily be squashed (even as far as with #1 and #12 too).

I'm slightly surprised at how straightforward it's turned out, but it
has survived some very basic smoke testing for arm-smmu using dmatest
on my Arm Juno board. Branch here for convenience:

https://gitlab.arm.com/linux-arm/linux-rm/-/tree/iommu/fq

Please let me know what you think!

Robin.


Robin Murphy (23):
  iommu: Pull IOVA cookie management into the core
  iommu/amd: Drop IOVA cookie management
  iommu/arm-smmu: Drop IOVA cookie management
  iommu/vt-d: Drop IOVA cookie management
  iommu/exynos: Drop IOVA cookie management
  iommu/ipmmu-vmsa: Drop IOVA cookie management
  iommu/mtk: Drop IOVA cookie management
  iommu/rockchip: Drop IOVA cookie management
  iommu/sprd: Drop IOVA cookie management
  iommu/sun50i: Drop IOVA cookie management
  iommu/virtio: Drop IOVA cookie management
  iommu/dma: Unexport IOVA cookie management
  iommu/dma: Remove redundant "!dev" checks
  iommu: Introduce explicit type for non-strict DMA domains
  iommu/amd: Prepare for multiple DMA domain types
  iommu/arm-smmu: Prepare for multiple DMA domain types
  iommu/vt-d: Prepare for multiple DMA domain types
  iommu: Express DMA strictness via the domain type
  iommu: Expose DMA domain strictness via sysfs
  iommu: Allow choosing DMA strictness at build time
  iommu/dma: Factor out flush queue init
  iommu: Allow enabling non-strict mode dynamically
  iommu/arm-smmu: Allow non-strict in pgtable_quirks interface

 .../ABI/testing/sysfs-kernel-iommu_groups     |  2 +
 drivers/iommu/Kconfig                         | 48 +++++++++++++++----
 drivers/iommu/amd/iommu.c                     | 21 +-------
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c   | 25 ++++++----
 drivers/iommu/arm/arm-smmu/arm-smmu.c         | 24 ++++++----
 drivers/iommu/arm/arm-smmu/qcom_iommu.c       |  8 ----
 drivers/iommu/dma-iommu.c                     | 44 +++++++++--------
 drivers/iommu/exynos-iommu.c                  | 18 ++-----
 drivers/iommu/intel/iommu.c                   | 23 +++------
 drivers/iommu/iommu.c                         | 44 +++++++++++------
 drivers/iommu/ipmmu-vmsa.c                    | 27 ++---------
 drivers/iommu/mtk_iommu.c                     |  6 ---
 drivers/iommu/rockchip-iommu.c                | 11 +----
 drivers/iommu/sprd-iommu.c                    |  6 ---
 drivers/iommu/sun50i-iommu.c                  | 12 +----
 drivers/iommu/virtio-iommu.c                  |  8 ----
 include/linux/dma-iommu.h                     |  9 ++--
 include/linux/iommu.h                         | 10 +++-
 18 files changed, 160 insertions(+), 186 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2021-07-26 18:44 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-21 18:20 [PATCH 00/23] iommu: Refactor DMA domain strictness Robin Murphy
2021-07-21 18:20 ` [PATCH 01/23] iommu: Pull IOVA cookie management into the core Robin Murphy
2021-07-21 18:20 ` [PATCH 02/23] iommu/amd: Drop IOVA cookie management Robin Murphy
2021-07-21 18:20 ` [PATCH 03/23] iommu/arm-smmu: " Robin Murphy
2021-07-21 18:20 ` [PATCH 04/23] iommu/vt-d: " Robin Murphy
2021-07-21 18:20 ` [PATCH 05/23] iommu/exynos: " Robin Murphy
2021-07-21 18:20 ` [PATCH 06/23] iommu/ipmmu-vmsa: " Robin Murphy
2021-07-21 18:20 ` [PATCH 07/23] iommu/mtk: " Robin Murphy
2021-07-21 18:20 ` [PATCH 08/23] iommu/rockchip: " Robin Murphy
2021-07-21 18:20 ` [PATCH 09/23] iommu/sprd: " Robin Murphy
2021-07-21 18:20 ` [PATCH 10/23] iommu/sun50i: " Robin Murphy
2021-07-21 18:20 ` [PATCH 11/23] iommu/virtio: " Robin Murphy
2021-07-21 18:20 ` [PATCH 12/23] iommu/dma: Unexport " Robin Murphy
2021-07-21 18:20 ` [PATCH 13/23] iommu/dma: Remove redundant "!dev" checks Robin Murphy
2021-07-26  8:28   ` John Garry
2021-07-21 18:20 ` [PATCH 14/23] iommu: Introduce explicit type for non-strict DMA domains Robin Murphy
2021-07-21 18:20 ` [PATCH 15/23] iommu/amd: Prepare for multiple DMA domain types Robin Murphy
2021-07-21 18:20 ` [PATCH 16/23] iommu/arm-smmu: " Robin Murphy
2021-07-26 12:46   ` Joerg Roedel
2021-07-26 13:09     ` Robin Murphy
2021-07-26 18:43       ` Joerg Roedel
2021-07-21 18:20 ` [PATCH 17/23] iommu/vt-d: " Robin Murphy
2021-07-22 16:44   ` kernel test robot
2021-07-22 17:30     ` Robin Murphy
2021-07-22 18:44   ` kernel test robot
2021-07-24  5:23   ` Lu Baolu
2021-07-26  8:30     ` Robin Murphy
2021-07-21 18:20 ` [PATCH 18/23] iommu: Express DMA strictness via the domain type Robin Murphy
2021-07-24  5:29   ` Lu Baolu
2021-07-26  8:27     ` Robin Murphy
2021-07-26 11:31       ` Lu Baolu
2021-07-26 12:29       ` Lu Baolu
2021-07-26 12:43         ` Robin Murphy
2021-07-21 18:20 ` [PATCH 19/23] iommu: Expose DMA domain strictness via sysfs Robin Murphy
2021-07-21 18:20 ` [PATCH 20/23] iommu: Allow choosing DMA strictness at build time Robin Murphy
2021-07-21 18:20 ` [PATCH 21/23] iommu/dma: Factor out flush queue init Robin Murphy
2021-07-21 18:20 ` [PATCH 22/23] iommu: Allow enabling non-strict mode dynamically Robin Murphy
2021-07-21 18:20 ` [PATCH 23/23] iommu/arm-smmu: Allow non-strict in pgtable_quirks interface Robin Murphy
2021-07-26  8:13 ` [PATCH 00/23] iommu: Refactor DMA domain strictness John Garry
2021-07-26 12:06   ` Robin Murphy
2021-07-26 13:02 ` Joerg Roedel

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).