Changes since v1: * Rebased * Several fixes * Conditional IOMMU change carried over from previous patch series and updated AMDGPU: Patches 1-5 are minor cleanups and fixes Patches 6-10 add and implement KFD->KGD interfaces for GPUVM AMDKFD: Patch 11: Make IOMMU conditional (carried over from previous patch series) Patch 12-13: small fixes Patches 14-25 add all the GPUVM memory management functionality Felix Kuehling (22): drm/amdgpu: remove useless BUG_ONs drm/amdgpu: Fix header file dependencies drm/amdgpu: Fix wrong mask in get_atc_vmid_pasid_mapping_pasid drm/amdgpu: Remove unused kfd2kgd interface drm/amdgpu: Add KFD eviction fence drm/amdgpu: Update kgd2kfd_shared_resources for dGPU support drm/amdgpu: add amdgpu_sync_clone drm/amdgpu: Add GPUVM memory management functions for KFD drm/amdgpu: Add submit IB function for KFD drm/amdkfd: Centralize IOMMUv2 code and make it conditional drm/amdkfd: Use per-device sched_policy drm/amdkfd: Add GPUVM virtual address space to PDD drm/amdkfd: Implement KFD process eviction/restore uapi: Fix type used in ioctl parameter structures drm/amdkfd: Remove limit on number of GPUs drm/amdkfd: Aperture setup for dGPUs drm/amdkfd: Add per-process IDR for buffer handles drm/amdkfd: Allocate CWSR trap handler memory for dGPUs drm/amdkfd: Add TC flush on VMID deallocation for Hawaii drm/amdkfd: Add ioctls for GPUVM memory management drm/amdkfd: Kmap event page for dGPUs drm/amdkfd: Add module option for testing large-BAR functionality Harish Kasiviswanathan (1): drm/amdkfd: Remove unaligned memory access Oak Zeng (1): drm/amdkfd: Populate DRM render device minor Yong Zhao (1): drm/amdgpu: Replace kgd_mem with amdgpu_bo for kernel pinned gtt mem drivers/gpu/drm/amd/amdgpu/Makefile | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 128 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 112 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 179 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 80 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 82 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 1501 ++++++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 + drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 6 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 56 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 25 + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 1 + drivers/gpu/drm/amd/amdkfd/Kconfig | 2 +- drivers/gpu/drm/amd/amdkfd/Makefile | 4 + drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 484 +++++++ drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 17 +- drivers/gpu/drm/amd/amdkfd/kfd_device.c | 192 ++- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 288 +++- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 9 + drivers/gpu/drm/amd/amdkfd/kfd_events.c | 34 +- drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 59 +- drivers/gpu/drm/amd/amdkfd/kfd_iommu.c | 356 +++++ drivers/gpu/drm/amd/amdkfd/kfd_iommu.h | 78 + drivers/gpu/drm/amd/amdkfd/kfd_module.c | 7 + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 9 +- drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 6 +- drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 37 + drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 91 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 599 ++++++-- drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 20 +- drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 7 +- drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 101 +- include/uapi/linux/kfd_ioctl.h | 87 +- 35 files changed, 4280 insertions(+), 386 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_iommu.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_iommu.h -- 2.7.4