Hi Dave, This is amdkfd pull for 4.18. The major new features are: - Add support for GFXv9 dGPUs (VEGA) - Add support for userptr memory mapping In addition, there are a couple of small fixes and improvements, such as: - Fix lock handling - Fix rollback packet in kernel kfd_queue - Optimize kfd signal handling - Fix CP hang in APU Thanks, Oded The following changes since commit 6d08b06e67cd117f6992c46611dfb4ce267cd71e: Linux 4.17-rc2 (2018-04-22 19:20:09 -0700) are available in the Git repository at: git://people.freedesktop.org/~gabbayo/linux tags/drm-amdkfd-next-2018-05-14 for you to fetch changes up to af47b390273f1068bdb1d01263a81948c4e2f97a: drm/amdkfd: Remove vla (2018-04-13 14:24:12 -0700) ---------------------------------------------------------------- Ben Goz (1): drm/amdkfd: Locking PM mutex while allocating IB buffer Dan Carpenter (1): drm/amdkfd: Integer overflows in ioctl Felix Kuehling (29): drm/amdgpu: Add MMU notifier type for KFD userptr drm/amdgpu: Enable amdgpu_ttm_tt_get_user_pages in worker threads drm/amdgpu: Avoid reclaim while holding locks taken in MMU notifier drm/amdkfd: GFP_NOIO while holding locks taken in MMU notifier drm/amdkfd: Add quiesce_mm and resume_mm to kgd2kfd_calls drm/amdgpu: Add userptr support for KFD drm/amdgpu: Remove unused interface from kfd2kgd interface drm/amd: Update GFXv9 SDMA MQD structure drm/amdgpu: Add GFXv9 TLB invalidation packet definition drm/amdgpu: Add GFXv9 kfd2kgd interface functions drm/amdgpu: Add doorbell routing info to kgd2kfd_shared_resources drm/amdkfd: Make doorbell size ASIC-dependent drm/amdkfd: Implement doorbell allocation for SOC15 drm/amdkfd: Move packet writer functions into ASIC-specific file drm/amdkfd: Add GFXv9 PM4 packet writer functions drm/amdkfd: Add GFXv9 MQD manager drm/amdkfd: Add GFXv9 device queue manager drm/amdkfd: Add SOC15 interrupt processing support drm/amdkfd: Fix goto usage drm/amdkfd: Fix kernel queue rollback_packet drm/amdkfd: Add 64-bit doorbell and wptr support to kernel queue drm/amdkfd: Remove limit on number of GPUs (follow-up) drm/amdkfd: Support flat memory apertures for GFXv9 drm/amdkfd: Add GFXv9 CWSR trap handler drm/amdkfd: Add Vega10 topology and device info drm/amdkfd: Remove redundant include of amd-iommu.h drm/amdkfd: Fix signal handling performance again drm/amdkfd: Remove initialization of cp_hqd_ib_control on CIK drm/amdkfd: Add sanity checks in IRQ handlers Harish Kasiviswanathan (1): drm/amdkfd: Clean up KFD_MMAP_ offset handling Jay Cornwall (2): drm/amdkfd: Reduce priority of context-saving waves before spin-wait drm/amdkfd: Use volatile MTYPE in default/alternate apertures Laura Abbott (1): drm/amdkfd: Remove vla Oak Zeng (1): drm/amdkfd: Dump HQD of HIQ Philip Yang (1): drm/amdkfd: use %px to print user space address instead of %p Shaoyun Liu (1): drm/amdkfd: Remove queue node when destroy queue failed Yong Zhao (2): drm/amdkfd: Separate trap handler assembly code and its hex values drm/amdkfd: Fix CP soft hang on APUs welu (1): drm/amdkfd: Try to enable atomics for all GPUs MAINTAINERS | 2 + drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 26 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 13 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 10 - drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 10 - drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 1043 +++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 572 ++++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 111 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mn.h | 11 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 38 +- drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 1 + drivers/gpu/drm/amd/amdgpu/soc15d.h | 5 + drivers/gpu/drm/amd/amdkfd/Makefile | 10 +- drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c | 20 +- drivers/gpu/drm/amd/amdkfd/cik_regs.h | 3 +- drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h | 560 +++++++++ .../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx8.asm | 274 +---- .../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx9.asm | 1214 ++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 52 +- drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 11 + drivers/gpu/drm/amd/amdkfd/kfd_device.c | 131 ++- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 114 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 2 + .../drm/amd/amdkfd/kfd_device_queue_manager_v9.c | 84 ++ drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 65 +- drivers/gpu/drm/amd/amdkfd/kfd_events.c | 4 +- drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 119 +- drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 92 ++ drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 8 +- drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 39 +- drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h | 7 +- drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_cik.c | 9 + drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c | 340 ++++++ drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c | 319 +++++ drivers/gpu/drm/amd/amdkfd/kfd_module.c | 7 + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 3 + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 6 +- drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c | 443 +++++++ drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 392 ++----- drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_ai.h | 583 ++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 112 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 50 +- .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 22 +- drivers/gpu/drm/amd/amdkfd/kfd_queue.c | 8 +- drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 6 + drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 1 + drivers/gpu/drm/amd/amdkfd/soc15_int.h | 47 + drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 26 +- drivers/gpu/drm/amd/include/v9_structs.h | 48 +- 52 files changed, 6222 insertions(+), 858 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h create mode 100644 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx9.asm create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_ai.h create mode 100644 drivers/gpu/drm/amd/amdkfd/soc15_int.h