linux-stable/drivers/iommu
Robin Murphy 4b123757ee iommu/io-pgtable-arm: Make allocations NUMA-aware
We would generally expect pagetables to be read by the IOMMU more than
written by the CPU, so in NUMA systems it makes sense to locate them
close to the former and avoid cross-node pagetable walks if at all
possible. As it turns out, we already have a handle on the IOMMU device
for the sake of coherency management, so it's trivial to grab the
appropriate NUMA node when allocating new pagetable pages.

Note that we drop the semantics of alloc_pages_exact(), but that's fine
since they have never been necessary: the only time we're allocating
more than one page is for stage 2 top-level concatenation, but since
that is based on the number of IPA bits, the size is always some exact
power of two anyway.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2018-05-29 16:57:58 +02:00
..
amd_iommu.c IOMMU Updates for Linux v4.17 2018-04-11 18:50:41 -07:00
amd_iommu_init.c iommu/amd: Use raw locks on atomic context paths 2018-02-13 14:18:06 +01:00
amd_iommu_proto.h IOMMU Updates for Linux v4.14 2017-09-09 15:03:24 -07:00
amd_iommu_types.h iommu/amd: Turn dev_data_list into a lock less list 2018-03-29 10:38:14 +02:00
amd_iommu_v2.c pci-v4.16-changes 2018-02-06 09:59:40 -08:00
arm-smmu-regs.h iommu/arm-smmu: Split out register defines 2017-08-15 17:34:48 +02:00
arm-smmu-v3.c iommu/arm-smmu-v3: Support 52-bit virtual address 2018-03-27 14:12:06 +01:00
arm-smmu.c iommu: Clean up of_iommu_init_fn 2018-01-17 15:25:50 +01:00
dma-iommu.c iommu/dma: Add HW MSI(GICv3 ITS) address regions reservation 2018-02-14 15:15:41 +01:00
dmar.c iommu/vt-d: Add __init for dmar_register_bus_notifier() 2018-02-13 17:40:53 +01:00
exynos-iommu.c IOMMU Updates for Linux v4.17 2018-04-11 18:50:41 -07:00
fsl_pamu.c Merge branches 'arm/exynos', 'arm/renesas', 'arm/rockchip', 'arm/omap', 'arm/mediatek', 'arm/tegra', 'arm/qcom', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd', 's390' and 'core' into next 2017-09-01 11:31:42 +02:00
fsl_pamu.h iommu/pamu: Fix PAMU boot crash 2017-08-23 16:28:09 +02:00
fsl_pamu_domain.c Merge branches 'arm/exynos', 'arm/renesas', 'arm/rockchip', 'arm/omap', 'arm/mediatek', 'arm/tegra', 'arm/qcom', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd', 's390' and 'core' into next 2017-09-01 11:31:42 +02:00
fsl_pamu_domain.h iommu/pamu: Fix PAMU boot crash 2017-08-23 16:28:09 +02:00
intel-iommu.c IOMMU Updates for Linux v4.17 2018-04-11 18:50:41 -07:00
intel-svm.c Merge branches 'x86/amd', 'x86/vt-d', 'arm/rockchip', 'arm/omap', 'arm/mediatek', 'arm/exynos', 'arm/renesas', 'arm/smmu' and 'core' into next 2018-03-29 15:24:40 +02:00
intel_irq_remapping.c genirq/irqdomain: Rename early argument of irq_domain_activate_irq() 2017-12-29 21:13:04 +01:00
io-pgtable-arm-v7s.c iommu/io-pgtable-arm: Use for_each_set_bit to simplify code 2018-05-03 15:31:07 +02:00
io-pgtable-arm.c iommu/io-pgtable-arm: Make allocations NUMA-aware 2018-05-29 16:57:58 +02:00
io-pgtable.c iommu/io-pgtable: Fix a brace coding style issue. 2016-04-05 15:34:29 +02:00
io-pgtable.h iommu/io-pgtable: Use size_t return type for all foo_unmap 2018-02-13 19:31:32 +01:00
iommu-sysfs.c iommu: Fix wrong freeing of iommu_device->dev 2017-08-15 13:58:48 +02:00
iommu-traces.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
iommu.c iommu: Do not return error code for APIs with size_t return type 2018-02-13 19:31:20 +01:00
iova.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
ipmmu-vmsa.c iommu: Clean up of_iommu_init_fn 2018-01-17 15:25:50 +01:00
irq_remapping.c x86/apic: Rename variables and functions related to x86_io_apic_ops 2018-02-17 11:47:45 +01:00
irq_remapping.h
Kconfig iommu/intel-iommu: Enable CONFIG_DMA_DIRECT_OPS=y and clean up intel_{alloc,free}_coherent() 2018-03-20 10:01:58 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msm_iommu.c iommu: Clean up of_iommu_init_fn 2018-01-17 15:25:50 +01:00
msm_iommu.h iommu/msm: Make use of iommu_device_register interface 2017-02-10 13:44:57 +01:00
msm_iommu_hw-8xxx.h
mtk_iommu.c iommu/mediatek: Fix protect memory setting 2018-03-21 06:13:57 -05:00
mtk_iommu.h iommu/mediatek: Fix protect memory setting 2018-03-21 06:13:57 -05:00
mtk_iommu_v1.c IOMMU Updates for Linux v4.17 2018-04-11 18:50:41 -07:00
of_iommu.c iommu: Clean up of_iommu_init_fn 2018-01-17 15:25:50 +01:00
omap-iommu-debug.c iommu/omap: Fix debugfs_create_*() usage 2018-01-17 14:23:33 +01:00
omap-iommu.c iommu/omap: Increase group ref in .device_group() 2018-03-15 15:54:52 +01:00
omap-iommu.h iommu/omap: Add support to program multiple iommus 2017-09-19 11:32:05 +02:00
omap-iopgtable.h
qcom_iommu.c iommu: Clean up of_iommu_init_fn 2018-01-17 15:25:50 +01:00
rockchip-iommu.c iommu/rockchip: Support sharing IOMMU between masters 2018-03-29 12:22:29 +02:00
s390-iommu.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tegra-gart.c iommu/tegra-gart: Add support for struct iommu_device 2017-08-17 16:31:34 +02:00
tegra-smmu.c iommu/tegra-smmu: Fix return value check in tegra_smmu_group_get() 2017-12-20 18:32:08 +01:00