linux/drivers/iommu
Robin Murphy 911aa1245d iommu/iova: Make the rcache depot scale better
The algorithm in the original paper specifies the storage of full
magazines in the depot as an unbounded list rather than a fixed-size
array. It turns out to be pretty straightforward to do this in our
implementation with no significant loss of efficiency. This allows
the depot to scale up to the working set sizes of larger systems,
while also potentially saving some memory on smaller ones too.

Since this involves touching struct iova_magazine with the requisite
care, we may as well reinforce the comment with a proper assertion too.

Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/f597aa72fc3e1d315bc4574af0ce0ebe5c31cd22.1694535580.git.robin.murphy@arm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2023-09-25 12:07:43 +02:00
..
amd IOMMU Updates for Linux v6.6 2023-09-01 16:54:25 -07:00
arm iommu: Convert simple drivers with DOMAIN_DMA to domain_alloc_paging() 2023-09-25 11:41:04 +02:00
intel IOMMU Updates for Linux v6.6 2023-09-01 16:54:25 -07:00
iommufd iommu: Add IOMMU_DOMAIN_PLATFORM 2023-09-25 11:40:52 +02:00
apple-dart.c iommu/apple-dart: mark apple_dart_pm_ops static 2023-08-07 14:28:06 +02:00
dma-iommu.c iommu: Optimise PCI SAC address trick 2023-07-14 16:14:17 +02:00
dma-iommu.h iommu: Optimise PCI SAC address trick 2023-07-14 16:14:17 +02:00
exynos-iommu.c iommu/exynos: Update to {map,unmap}_pages 2023-09-25 12:04:36 +02:00
fsl_pamu_domain.c iommu/fsl_pamu: Implement a PLATFORM domain 2023-09-25 11:40:54 +02:00
fsl_pamu_domain.h iommu/fsl_pamu: remove the snoop_id field 2021-04-07 10:56:52 +02:00
fsl_pamu.c iommu/fsl: fix all kernel-doc warnings in fsl_pamu.c 2023-03-22 14:50:15 +01:00
fsl_pamu.h iommu/fsl_pamu: hardcode the window address and size in pamu_config_ppaace 2021-04-07 10:56:52 +02:00
hyperv-iommu.c x86/vector: Rename send_cleanup_vector() to vector_schedule_cleanup() 2023-08-06 14:15:09 +02:00
io-pgfault.c iommu: Rename iommu-sva-lib.{c,h} 2022-11-03 15:47:54 +01:00
io-pgtable-arm-v7s.c iommu/io-pgtable-arm-v7s: Remove map/unmap 2022-11-19 10:44:15 +01:00
io-pgtable-arm.c iommu/io-pgtable-arm: Remove map/unmap 2022-11-19 10:44:15 +01:00
io-pgtable-arm.h
io-pgtable-dart.c iommu/io-pgtable-dart: Add DART PTE support for t6000 2022-09-26 13:49:40 +02:00
io-pgtable.c Merge branches 'apple/dart', 'arm/mediatek', 'arm/omap', 'arm/smmu', 'virtio', 'x86/vt-d', 'x86/amd' and 'core' into next 2022-09-26 15:52:31 +02:00
iommu-debugfs.c
iommu-priv.h iommu: Move dev_iommu_ops() to private header 2023-08-18 12:52:15 -03:00
iommu-sva.c iommu: Move global PASID allocation from SVA to core 2023-08-09 17:44:36 +02:00
iommu-sva.h iommu: Remove ioasid infrastructure 2023-03-31 10:03:31 +02:00
iommu-sysfs.c iommu: Do not export iommu_device_link/unlink() 2023-07-14 16:14:15 +02:00
iommu-traces.c iommu: Remove detach_dev callback 2023-01-13 16:39:18 +01:00
iommu.c iommu: Improve map/unmap sanity checks 2023-09-25 12:04:38 +02:00
iova.c iommu/iova: Make the rcache depot scale better 2023-09-25 12:07:43 +02:00
ipmmu-vmsa.c iommu/ipmmu-vmsa: Convert to generic_single_device_group() 2023-09-25 11:51:07 +02:00
irq_remapping.c
irq_remapping.h
Kconfig iommu/tegra-gart: Remove tegra-gart 2023-09-25 11:40:54 +02:00
Makefile iommu/tegra-gart: Remove tegra-gart 2023-09-25 11:40:54 +02:00
msm_iommu_hw-8xxx.h
msm_iommu.c iommu: Convert remaining simple drivers to domain_alloc_paging() 2023-09-25 11:41:06 +02:00
msm_iommu.h
mtk_iommu_v1.c iommu: Convert remaining simple drivers to domain_alloc_paging() 2023-09-25 11:41:06 +02:00
mtk_iommu.c iommu: Convert simple drivers with DOMAIN_DMA to domain_alloc_paging() 2023-09-25 11:41:04 +02:00
of_iommu.c iommu: Have __iommu_probe_device() check for already probed devices 2023-07-14 16:14:12 +02:00
omap-iommu-debug.c iommu/omap: Fix buffer overflow in debugfs 2022-09-07 10:42:28 +02:00
omap-iommu.c iommu/omap: Update to {map,unmap}_pages 2023-09-25 12:04:36 +02:00
omap-iommu.h iommu/omap: Convert to generic_single_device_group() 2023-09-25 11:52:08 +02:00
omap-iopgtable.h
rockchip-iommu.c iommu/rockchip: Update to {map,unmap}_pages 2023-09-25 12:04:37 +02:00
s390-iommu.c iommu: Convert remaining simple drivers to domain_alloc_paging() 2023-09-25 11:41:06 +02:00
sprd-iommu.c iommu/sprd: Convert to generic_single_device_group() 2023-09-25 11:48:23 +02:00
sun50i-iommu.c iommu/sun50i: Update to {map,unmap}_pages 2023-09-25 12:04:37 +02:00
tegra-smmu.c iommu/tegra-smmu: Update to {map,unmap}_pages 2023-09-25 12:04:37 +02:00
virtio-iommu.c iommu: Explicitly include correct DT includes 2023-08-21 14:17:59 +02:00