Hi Dave, amdkfd stuff for 4.16: - Add CWSR (compute wave save restore) support for GFX8 (Carrizo) - Fix SDMA user-mode queues support for GFX7 (Kaveri) - Add SDMA user-mode queues support for GFX8 (Carrizo) - Allow HWS (hardware scheduling) to schedule multiple processes concurrently - Add debugfs support - Simplify process locking and lock dependencies - Refactoring topology code to prepare for dGPU support + fixes to that code - Add option to generate dummy/virtual CRAT table when its missing or deformed - Recognize CPUs other then APUs as compute entities - Various clean ups and bug fixes I have not yet sent the dGPU topology code because it depends on a patch for the PCI subsystem that adds PCIe atomics support. Once that patch is upstreamed we can continue with the rest of the dGPU code. Thanks and happy new year, Oded The following changes since commit df2869abd92b740af141ee2eb081bfc69bd80877: Merge branch 'drm-next-4.16' of git://people.freedesktop.org/~agd5f/linux into drm-next (2017-12-21 11:17:45 +1000) are available in the Git repository at: git://people.freedesktop.org/~gabbayo/linux tags/drm-amdkfd-next-2017-12-24 for you to fetch changes up to 9f0a0b41ffccf9a76b19ea263ae16d2d5888093e: drm/amdgpu: Add support for reporting VRAM usage (2017-12-08 23:09:05 -0500) ---------------------------------------------------------------- Amber Lin (1): drm/amdkfd: Add perf counters to topology Ben Goz (1): drm/amdkfd: Add AQL Queue Memory flag on topology Felix Kuehling (25): drm/amd: Update kgd_kfd interface for resuming SDMA queues drm/amdgpu: Add support for resuming SDMA queues w/o HWS drm/amdkfd: Use ASIC-specific SDMA MQD type drm/amdkfd: Hardware DWORD size is 4 bytes drm/amdkfd: Use order_base_2 to get log2 of buffes sizes drm/amdkfd: Cleanup qpd.pqm initialization drm/amdkfd: Add trap handler for CWSR drm/amdkfd: Add CWSR support drm/amdkfd: Add support for user-mode trap handlers drm/amdgpu: fix get_max_engine_clock_in_mhz drm/amdkfd: map multiple processes to HW scheduler drm/amdkfd: Fix oversubscription accounting drm/amdgpu: Fix definition of KFD_CIK_SDMA_QUEUE_OFFSET drm/amdgpu: Add kfd2kgd APIs for dumping HQDs drm/amdkfd: Add debugfs support to KFD drm/amdkfd: Get reference to lead_thread task struct drm/amdkfd: Make kfd_process reference counted drm/amdkfd: Use ref count to prevent kfd_process destruction drm/amdkfd: Reduce nesting in kfd_create_process_device_data drm/amdkfd: Factor PDD destruction out of kfd_process_wq_release drm/amdkfd: Group up CRAT related functions drm/amdkfd: Turn verbose topology messages into pr_debug drm/amdkfd: Simplify counting of memory banks drm/amdkfd: Add topology support for CPUs drm/amdkfd: Module option to disable CRAT table Flora Cui (3): drm/amd: add new interface to query cu info drm/amdgpu: add amdgpu interface to query cu info drm/amdkfd: Update number of compute unit from KGD Harish Kasiviswanathan (13): drm/amd: Add get_local_mem_info to KGD-KFD interface drm/amdgpu: Implement get_local_mem_info drm/amdkfd: Stop using get_vmem_size KGD-KFD interface drm/amdkfd: Remove deprecated get_vmem_size drm/amd: Remove get_vmem_size from KGD-KFD interface drm/amdkfd: Topology: Fix location_id drm/amdkfd: Reorganize CRAT fetching from ACPI drm/amdkfd: Decouple CRAT parsing from device list update drm/amdkfd: Support enumerating non-GPU devices drm/amdkfd: sync IOLINK defines to thunk spec drm/amdkfd: Fix sibling_map[] size drm/amdkfd: Add topology support for dGPUs drm/amdkfd: Ignore ACPI CRAT for non-APU systems Kent Russell (2): drm/amdkfd: Fix printing pointer cast drm/amdgpu: Add support for reporting VRAM usage Philip Cox (3): drm/amdgpu: Implement amdgpu SDMA functions for VI drm/amdkfd: Implement amdkfd SDMA functions for VI drm/amdkfd: Fixup incorrect info in the CZ CRAT table Philip Yang (1): drm/amdkfd: Add crash protection in debugger register path Yong Zhao (4): drm/amdkfd: Delete a useless parameter from create_queue function pointer drm/amdkfd: Return NULL if kfd_lookup_process_by_pasid fails drm/amdkfd: Simplify locking during process creation drm/amdkfd: Fix memory leaks in kfd topology drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 67 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 5 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 111 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 184 ++- drivers/gpu/drm/amd/amdgpu/cikd.h | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 7 + drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 5 + drivers/gpu/drm/amd/amdgpu/vid.h | 2 + drivers/gpu/drm/amd/amdkfd/Makefile | 4 +- .../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx8.asm | 1384 ++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 46 +- drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 1267 ++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_crat.h | 42 +- drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c | 14 +- drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c | 75 ++ drivers/gpu/drm/amd/amdkfd/kfd_device.c | 31 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 112 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 8 +- drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 9 +- drivers/gpu/drm/amd/amdkfd/kfd_events.c | 14 +- drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 7 +- drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_module.c | 17 + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h | 4 + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 48 +- drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_vi.c | 167 ++- drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 59 +- drivers/gpu/drm/amd/amdkfd/kfd_pasid.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 79 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 259 +++- .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 78 +- drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 1061 ++++++++------- drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 33 +- drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 52 +- drivers/gpu/drm/amd/include/vi_structs.h | 2 + include/uapi/linux/kfd_ioctl.h | 15 +- 37 files changed, 4632 insertions(+), 643 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx8.asm create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_crat.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c