linux/arch/powerpc
Alexey Kardashevskiy 0bd971676e powerpc/powernv/npu: Add compound IOMMU groups
At the moment the powernv platform registers an IOMMU group for each
PE. There is an exception though: an NVLink bridge which is attached
to the corresponding GPU's IOMMU group making it a master.

Now we have POWER9 systems with GPUs connected to each other directly
bypassing PCI. At the moment we do not control state of these links so
we have to put such interconnected GPUs to one IOMMU group which means
that the old scheme with one GPU as a master won't work - there will
be up to 3 GPUs in such group.

This introduces a npu_comp struct which represents a compound IOMMU
group made of multiple PEs - PCI PEs (for GPUs) and NPU PEs (for
NVLink bridges). This converts the existing NVLink1 code to use the
new scheme. >From now on, each PE must have a valid
iommu_table_group_ops which will either be called directly (for a
single PE group) or indirectly from a compound group handlers.

This moves IOMMU group registration for NVLink-connected GPUs to
npu-dma.c. For POWER8, this stores a new compound group pointer in the
PE (so a GPU is still a master); for POWER9 the new group pointer is
stored in an NPU (which is allocated per a PCI host controller).

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
[mpe: Initialise npdev to NULL in pnv_try_setup_npu_table_group()]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-12-21 16:20:46 +11:00
..
boot powerpc/44x/bamboo: Fix PCI range 2018-12-20 22:21:20 +11:00
configs powerpc/configs: Don't enable PPC_EARLY_DEBUG in defconfigs 2018-12-20 22:21:20 +11:00
crypto powerpc updates for 4.19 2018-08-17 11:32:50 -07:00
include powerpc/powernv/npu: Add compound IOMMU groups 2018-12-21 16:20:46 +11:00
kernel powerpc/powernv/pseries: Rework device adding to IOMMU groups 2018-12-21 16:20:46 +11:00
kvm powerpc/vfio/iommu/kvm: Do not pin device memory 2018-12-21 16:20:46 +11:00
lib powerpc/fsl: Add infrastructure to fixup branch predictor flush 2018-12-20 22:53:39 +11:00
math-emu
mm powerpc/vfio/iommu/kvm: Do not pin device memory 2018-12-21 16:20:46 +11:00
net powerpc updates for 4.19 2018-08-17 11:32:50 -07:00
oprofile powerpc: change CONFIG_6xx to CONFIG_PPC_BOOK3S_32 2018-11-26 22:33:37 +11:00
perf Powerpc/perf: Wire up PMI throttling 2018-12-21 11:32:49 +11:00
platforms powerpc/powernv/npu: Add compound IOMMU groups 2018-12-21 16:20:46 +11:00
purgatory powerpc updates for 4.19 2018-08-17 11:32:50 -07:00
sysdev powerpc/fsl-rio: fix spelling mistake "reserverd" -> "reserved" 2018-12-21 11:32:49 +11:00
tools powerpc/tools/checkpatch: Ignore DT_SPLIT_BINDING_PATCH 2018-12-04 19:45:01 +11:00
xmon powerpc/xmon: fix dump_segments() 2018-12-19 18:56:32 +11:00
Kbuild powerpc: Add -Werror at arch/powerpc level 2018-10-19 00:56:17 +11:00
Kconfig powerpc/8xx: Allow pinning IMMR TLB when using early debug console 2018-12-21 11:32:49 +11:00
Kconfig.debug powerpc: remove redundant 'default n' from Kconfig-s 2018-10-13 22:21:25 +11:00
Makefile powerpc: generate uapi header and system call table files 2018-12-21 14:46:50 +11:00
Makefile.postlink