I split this into an AMDGPU and AMDKFD part. The bigger patches that add lots of new code are not cherry-picked and squashed. Instead I copied, reorganized and cleaned up the code by hand and then split it into some semblance of a sensible history. I acknowledged major contributors with signed-off-by lines but didn't list everyone who ever touched that code (would probably be most of the team). I pushed an updated Thunk (rebased on ROCm 1.7) that works with this KFD update. Most testing was done on Fiji with KFDTest (Yong started working on open-sourcing it). I was also able to run the OpenCL version of SHOC, though most sub-tests still fail. KFDTest can manage VRAM and system memory, submit shader dispatches, receive events. I haven't tested multi-GPU yet, but in theory that should also work, with system memory buffers shared between multiple GPUs. The big missing piece at this point is support for userptr memory (user-allocated memory mapped for GPU access). That's giong to be my next patch series that should enable a much wider range of real-world applications. AMDGPU: Patches 1-5 are minor cleanups and fixes Patches 6-10 add and implement KFD->KGD interfaces for GPUVM AMDKFD: Patches 11-13 are minor cleanups and 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: Add missing #ifdef CONFIG_AMD_IOMMU_V2 guard 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 | 127 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 115 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 196 +++ 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 | 1500 ++++++++++++++++++++ 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 | 53 +- 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/kfd_chardev.c | 484 +++++++ drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 3 + drivers/gpu/drm/amd/amdkfd/kfd_device.c | 65 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 290 +++- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 9 + drivers/gpu/drm/amd/amdkfd/kfd_events.c | 31 +- drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 59 +- drivers/gpu/drm/amd/amdkfd/kfd_module.c | 7 + drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 37 + drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 79 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 490 ++++++- drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 4 + drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 1 + drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 101 +- include/uapi/linux/kfd_ioctl.h | 87 +- 29 files changed, 3811 insertions(+), 130 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 -- 2.7.4