[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZkcqDrFmd4ZHv7Qf@8bytes.org>
Date: Fri, 17 May 2024 11:57:34 +0200
From: Joerg Roedel <joro@...tes.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Will Deacon <will@...nel.org>, linux-kernel@...r.kernel.org,
iommu@...ts.linux.dev
Subject: [git pull] IOMMU Updates for Linux v6.10
Hi Linus,
There is a small and easy to resolve conflict with these changes in
drivers/acpi/scan.c. Please take the version that comes from the iommu
tree. With this being said:
The following changes since commit a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6:
Linux 6.9 (2024-05-12 14:12:29 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v6.10
for you to fetch changes up to 2bd5059c6cc04b02073d4d9f57137ab74e1d8e7a:
Merge branches 'arm/renesas', 'arm/smmu', 'x86/amd', 'core' and 'x86/vt-d' into next (2024-05-13 14:06:54 +0200)
----------------------------------------------------------------
IOMMU Updates for Linux v6.10
Including:
- Core:
- IOMMU memory usage observability - This will make the memory used
for IO page tables explicitly visible.
- Simplify arch_setup_dma_ops()
- Intel VT-d:
- Consolidate domain cache invalidation
- Remove private data from page fault message
- Allocate DMAR fault interrupts locally
- Cleanup and refactoring
- ARM-SMMUv2:
- Support for fault debugging hardware on Qualcomm implementations
- Re-land support for the ->domain_alloc_paging() callback
- ARM-SMMUv3:
- Improve handling of MSI allocation failure
- Drop support for the "disable_bypass" cmdline option
- Major rework of the CD creation code, following on directly from the
STE rework merged last time around.
- Add unit tests for the new STE/CD manipulation logic
- AMD-Vi:
- Final part of SVA changes with generic IO page fault handling
- Renesas IPMMU:
- Add support for R8A779H0 hardware
- A couple smaller fixes and updates across the sub-tree
----------------------------------------------------------------
Aleksandr Aprelkov (1):
iommu/arm-smmu-v3: Free MSIs in case of ENOMEM
Andy Shevchenko (1):
iommu/amd: Fix compilation error
Colin Ian King (1):
iommu/vt-d: Remove redundant assignment to variable err
Dimitri Sivanich (1):
iommu/vt-d: Allocate DMAR fault interrupts locally
Georgi Djakov (5):
dt-bindings: iommu: Add Qualcomm TBU
iommu/arm-smmu-qcom-debug: Add support for TBUs
iommu/arm-smmu: Allow using a threaded handler for context interrupts
iommu/arm-smmu-qcom: Use a custom context fault handler for sdm845
iommu/arm-smmu-qcom: Use the custom fault handler on more platforms
Jason Gunthorpe (16):
iommu/arm-smmu-v3: Do not allow a SVA domain to be set on the wrong PASID
iommu/arm-smmu-v3: Do not ATC invalidate the entire domain
iommu/arm-smmu-v3: Add a type for the CD entry
iommu/arm-smmu: Convert to domain_alloc_paging()
iommu: Add ops->domain_alloc_sva()
iommu: Add ops->domain_alloc_sva()
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
iommu/arm-smmu-v3: Make the kunit into a module
Jingqi Liu (2):
iommu/vt-d: Remove debugfs use of private data field
iommu/vt-d: Remove private data use in fault message
Joerg Roedel (4):
Merge branch 'iommu/fixes' into x86/amd
Merge branch 'memory-observability' into x86/amd
Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
Merge branches 'arm/renesas', 'arm/smmu', 'x86/amd', 'core' and 'x86/vt-d' into next
Lu Baolu (13):
iommu/vt-d: Remove caching mode check before device TLB flush
iommu/vt-d: Add cache tag assignment interface
iommu/vt-d: Add cache tag invalidation helpers
iommu/vt-d: Add trace events for cache tag interface
iommu/vt-d: Use cache_tag_flush_all() in flush_iotlb_all
iommu/vt-d: Use cache_tag_flush_range() in tlb_sync
iommu/vt-d: Use cache_tag_flush_range_np() in iotlb_sync_map
iommu/vt-d: Cleanup use of iommu_flush_iotlb_psi()
iommu/vt-d: Use cache_tag_flush_range() in cache_invalidate_user
iommu/vt-d: Use cache helpers in arch_invalidate_secondary_tlbs
iommu/vt-d: Remove intel_svm_dev
iommu/vt-d: Remove struct intel_svm
iommu/vt-d: Decouple igfx_off from graphic identity mapping
Pasha Tatashin (11):
iommu/vt-d: add wrapper functions for page allocations
iommu/dma: use iommu_put_pages_list() to releae freelist
iommu/amd: use page allocation function provided by iommu-pages.h
iommu/io-pgtable-arm: use page allocation function provided by iommu-pages.h
iommu/io-pgtable-dart: use page allocation function provided by iommu-pages.h
iommu/exynos: use page allocation function provided by iommu-pages.h
iommu/rockchip: use page allocation function provided by iommu-pages.h
iommu/sun50i: use page allocation function provided by iommu-pages.h
iommu/tegra-smmu: use page allocation function provided by iommu-pages.h
iommu: observability of the IOMMU allocations
iommu: account IOMMU allocated memory
Robin Murphy (9):
iommu/arm-smmu-v3: Retire disable_bypass parameter
OF: Retire dma-ranges mask workaround
OF: Simplify DMA range calculations
ACPI/IORT: Handle memory address size limits as limits
dma-mapping: Add helpers for dma_range_map bounds
iommu/dma: Make limit checks self-contained
iommu/dma: Centralise iommu_setup_dma_ops()
dma-mapping: Simplify arch_setup_dma_ops()
arm64: Properly clean up iommu-dma remnants
Suravee Suthikulpanit (3):
iommu/amd: Move PPR-related functions into ppr.c
iommu/amd: Define per-IOMMU iopf_queue
iommu/amd: Add support for page response
Thanh Le (1):
dt-bindings: iommu: renesas,ipmmu-vmsa: add r8a779h0 support
Uros Bizjak (1):
iommu/vt-d: Use try_cmpxchg64{,_local}() in iommu.c
Vasant Hegde (10):
iommu/amd: Rename amd_iommu_v2_supported() as amd_iommu_pasid_supported()
iommu/amd: Introduce per device DTE update function
iommu/amd: Fix PPR interrupt processing logic
iommu/amd: Introduce iommu_dev_data.max_pasids
iommu/amd: Setup GCR3 table in advance if domain is SVA capable
iommu/amd: Enable PCI features based on attached domain capability
iommu/amd: Add support for enable/disable IOPF
iommu/amd: Initial SVA support for AMD IOMMU
iommu/amd: Add SVA domain support
iommu/amd: Enable Guest Translation after reading IOMMU feature register
Wei Huang (2):
iommu/amd: Add support for enabling/disabling IOMMU features
iommu/amd: Add IO page fault notifier handler
Will Deacon (1):
iommu/arm-smmu-qcom: Don't build debug features as a kernel module
Yi Liu (2):
iommu: Undo pasid attachment only for the devices that have succeeded
iommu: Pass domain to remove_dev_pasid() op
Documentation/admin-guide/cgroup-v2.rst | 2 +-
.../devicetree/bindings/iommu/qcom,tbu.yaml | 69 +++
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 1 +
Documentation/filesystems/proc.rst | 4 +-
arch/arc/mm/dma.c | 3 +-
arch/arm/mm/dma-mapping-nommu.c | 3 +-
arch/arm/mm/dma-mapping.c | 16 +-
arch/arm64/Kconfig | 1 -
arch/arm64/mm/dma-mapping.c | 13 +-
arch/loongarch/kernel/dma.c | 9 +-
arch/mips/mm/dma-noncoherent.c | 3 +-
arch/riscv/mm/dma-noncoherent.c | 3 +-
drivers/acpi/arm64/dma.c | 17 +-
drivers/acpi/arm64/iort.c | 20 +-
drivers/acpi/scan.c | 7 +-
drivers/hv/hv_common.c | 6 +-
drivers/iommu/Kconfig | 25 +-
drivers/iommu/amd/Kconfig | 3 +
drivers/iommu/amd/Makefile | 2 +-
drivers/iommu/amd/amd_iommu.h | 60 ++-
drivers/iommu/amd/amd_iommu_types.h | 33 ++
drivers/iommu/amd/init.c | 177 +++----
drivers/iommu/amd/io_pgtable.c | 13 +-
drivers/iommu/amd/io_pgtable_v2.c | 18 +-
drivers/iommu/amd/iommu.c | 302 +++++++----
drivers/iommu/amd/pasid.c | 198 +++++++
drivers/iommu/amd/ppr.c | 288 +++++++++++
drivers/iommu/arm/arm-smmu-v3/Makefile | 2 +
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 168 ++++--
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c | 468 +++++++++++++++++
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 568 +++++++++++----------
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 60 ++-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 496 ++++++++++++++++++
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 8 +
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h | 2 +
drivers/iommu/arm/arm-smmu/arm-smmu.c | 20 +-
drivers/iommu/arm/arm-smmu/arm-smmu.h | 3 +
drivers/iommu/dma-iommu.c | 46 +-
drivers/iommu/dma-iommu.h | 14 +-
drivers/iommu/exynos-iommu.c | 14 +-
drivers/iommu/intel/Makefile | 2 +-
drivers/iommu/intel/cache.c | 419 +++++++++++++++
drivers/iommu/intel/debugfs.c | 7 -
drivers/iommu/intel/dmar.c | 26 +-
drivers/iommu/intel/iommu.c | 383 +++-----------
drivers/iommu/intel/iommu.h | 88 +++-
drivers/iommu/intel/irq_remapping.c | 16 +-
drivers/iommu/intel/nested.c | 69 +--
drivers/iommu/intel/pasid.c | 18 +-
drivers/iommu/intel/perf.h | 1 -
drivers/iommu/intel/svm.c | 383 ++++----------
drivers/iommu/intel/trace.h | 97 ++++
drivers/iommu/io-pgtable-arm.c | 15 +-
drivers/iommu/io-pgtable-dart.c | 37 +-
drivers/iommu/iommu-pages.h | 186 +++++++
drivers/iommu/iommu-sva.c | 16 +-
drivers/iommu/iommu.c | 48 +-
drivers/iommu/irq_remapping.c | 5 +-
drivers/iommu/irq_remapping.h | 2 +-
drivers/iommu/rockchip-iommu.c | 14 +-
drivers/iommu/s390-iommu.c | 6 -
drivers/iommu/sun50i-iommu.c | 7 +-
drivers/iommu/tegra-smmu.c | 18 +-
drivers/iommu/virtio-iommu.c | 10 -
drivers/of/device.c | 42 +-
include/linux/acpi_iort.h | 4 +-
include/linux/dma-direct.h | 18 +
include/linux/dma-map-ops.h | 6 +-
include/linux/dmar.h | 2 +-
include/linux/iommu.h | 16 +-
include/linux/mmzone.h | 5 +-
mm/vmstat.c | 3 +
72 files changed, 3536 insertions(+), 1598 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iommu/qcom,tbu.yaml
create mode 100644 drivers/iommu/amd/pasid.c
create mode 100644 drivers/iommu/amd/ppr.c
create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c
create mode 100644 drivers/iommu/intel/cache.c
create mode 100644 drivers/iommu/iommu-pages.h
Please pull.
Thanks,
Joerg
Powered by blists - more mailing lists