[PATCH v13 0/6] iommu: Enhance IOMMU default DMA mode build options

From: John Garry
Date: Wed Jun 16 2021 - 07:08:48 EST


This is a reboot of Zhen Lei's series from a couple of years ago, which
never made it across the line.

I still think that it has some value, so taking up the mantle.

Motivation:
Allow lazy mode be default mode for DMA domains for all ARCHs, and not
only those who hardcode it (to be lazy). For ARM64, currently we must use
a kernel command line parameter to use lazy mode, which is less than
ideal.

I have now included the print for strict/lazy mode, which I originally
sent in:
https://lore.kernel.org/linux-iommu/72eb3de9-1d1c-ae46-c5a9-95f26525d435@xxxxxxxxxx/

There was some concern there about drivers and their custom prints
conflicting with the print in that patch, but I think that it
should be ok.

Differences to v12:
- Rebase to next-20210611 and include patch "iommu: Update "iommu.strict"
documentation" as a baseline
- Add Robin's RB tags (thanks!)
- Please let me know if not ok with kernel-parameters.txt update
in 3/6
- Add a patch to mark x86 strict cmdline params as deprecated
- Improve wording in Kconfig change and tweak iommu_dma_strict declaration

Differences to v11:
- Rebase to next-20210610
- Drop strict mode globals in Intel and AMD drivers
- Include patch to print strict vs lazy mode
- Include patch to remove argument from iommu_set_dma_strict()

Differences to v10:
- Rebase to v5.13-rc4
- Correct comment and typo in Kconfig (Randy)
- Make Kconfig choice depend on relevant architectures
- Update kernel-parameters.txt for CONFIG_IOMMU_DEFAULT_{LAZY,STRICT}

John Garry (3):
iommu: Deprecate Intel and AMD cmdline methods to enable strict mode
iommu: Print strict or lazy mode at init time
iommu: Remove mode argument from iommu_set_dma_strict()

Zhen Lei (3):
iommu: Enhance IOMMU default DMA mode build options
iommu/vt-d: Add support for IOMMU default DMA mode build options
iommu/amd: Add support for IOMMU default DMA mode build options

.../admin-guide/kernel-parameters.txt | 8 ++--
drivers/iommu/Kconfig | 41 +++++++++++++++++++
drivers/iommu/amd/amd_iommu_types.h | 6 ---
drivers/iommu/amd/init.c | 7 ++--
drivers/iommu/amd/iommu.c | 6 ---
drivers/iommu/intel/iommu.c | 16 ++++----
drivers/iommu/iommu.c | 12 ++++--
include/linux/iommu.h | 2 +-
8 files changed, 66 insertions(+), 32 deletions(-)

--
2.26.2