linux/drivers/gpu/drm/amd/amdkfd
Shashank Sharma 2105a15a20 drm/amdgpu: use doorbell mgr for kfd process doorbells
This patch:
- adds a doorbell object in kfd pdd structure.
- allocates doorbells for a process while creating its queue.
- frees the doorbells with pdd destroy.
- moves doorbell bitmap init function to kfd_doorbell.c

PS: This patch ensures that we don't break the existing KFD
    functionality, but now KFD userspace library should also
    create doorbell pages as AMDGPU GEM objects using libdrm
    functions in userspace. The reference code for the same
    is available with AMDGPU Usermode queue libdrm MR. Once
    this is done, we will not need to create process doorbells
    in kernel.

V2: - Do not use doorbell wrapper API, use amdgpu_bo_create_kernel
      instead (Alex).
    - Do not use custom doorbell structure, instead use separate
      variables for bo and doorbell_bitmap (Alex)
V3:
   - Do not allocate doorbell page with PDD, delay doorbell process
     page allocation until really needed (Felix)

Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian Koenig <christian.koenig@amd.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Felix Kuehling <Felilx.Kuehling@amd.com>
Signed-off-by: Shashank Sharma <shashank.sharma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-08-07 17:14:07 -04:00
..
cik_event_interrupt.c drm/amdkfd: add send exception operation 2023-06-09 12:36:01 -04:00
cik_int.h
cik_regs.h
cwsr_trap_handler_gfx8.asm drm/amdkfd: Add aldebaran trap handler support 2021-03-10 00:02:24 -05:00
cwsr_trap_handler_gfx9.asm drm/amdkfd: Sign-extend TMA address in trap handler 2023-08-07 17:14:06 -04:00
cwsr_trap_handler_gfx10.asm drm/amdkfd: Sign-extend TMA address in trap handler 2023-08-07 17:14:06 -04:00
cwsr_trap_handler.h drm/amdkfd: Sign-extend TMA address in trap handler 2023-08-07 17:14:06 -04:00
Kconfig drm/amdkfd: Define config HSA_AMD_P2P to support peer-to-peer 2022-06-08 11:40:12 -04:00
kfd_chardev.c drm/amdgpu: use doorbell mgr for kfd process doorbells 2023-08-07 17:14:07 -04:00
kfd_crat.c drm/amdkfd: Remove DUMMY_VRAM_SIZE 2023-06-15 11:06:58 -04:00
kfd_crat.h drm/amdkfd: add gpu compute cores io links for gfx9.4.3 2023-06-09 09:44:07 -04:00
kfd_debug.c drm/amdkfd: fix and enable ttmp setup for gfx11 2023-07-27 14:59:29 -04:00
kfd_debug.h drm/amdkfd: fix and enable ttmp setup for gfx11 2023-07-27 14:59:29 -04:00
kfd_debugfs.c drm/amdkfd: Introduce kfd_node struct (v5) 2023-06-09 09:42:27 -04:00
kfd_device_queue_manager_cik.c drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_device_queue_manager_v9.c drm/amdkfd: Introduce kfd_node struct (v5) 2023-06-09 09:42:27 -04:00
kfd_device_queue_manager_v10.c drm/amdkfd: Fix leftover errors and warnings 2022-02-14 15:08:40 -05:00
kfd_device_queue_manager_v11.c drm/amdkfd: Add KFD support for soc21 v3 2022-05-04 10:43:54 -04:00
kfd_device_queue_manager_vi.c drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_device_queue_manager.c drm/amdgpu: use doorbell mgr for kfd process doorbells 2023-08-07 17:14:07 -04:00
kfd_device_queue_manager.h drm/amdkfd: add debug queue snapshot operation 2023-06-09 12:36:57 -04:00
kfd_device.c drm/amdgpu: use doorbell mgr for kfd kernel doorbells 2023-08-07 17:14:07 -04:00
kfd_doorbell.c drm/amdgpu: use doorbell mgr for kfd process doorbells 2023-08-07 17:14:07 -04:00
kfd_events.c drm/amdkfd: update user space last_event_age 2023-06-15 11:37:55 -04:00
kfd_events.h drm/amdkfd: add event_age tracking when receiving interrupt 2023-06-15 11:37:55 -04:00
kfd_flat_memory.c drm/amdkfd: Relocate TBA/TMA to opposite side of VM hole 2023-08-07 17:14:06 -04:00
kfd_int_process_v9.c drm/amdkfd: Update interrupt handling for GFX 9.4.3 2023-06-30 13:11:35 -04:00
kfd_int_process_v10.c drm/amdkfd: update process interrupt handling for debug events 2023-06-09 12:36:17 -04:00
kfd_int_process_v11.c drm/amdkfd: update process interrupt handling for debug events 2023-06-09 12:36:17 -04:00
kfd_interrupt.c drm/amdkfd: Introduce kfd_node struct (v5) 2023-06-09 09:42:27 -04:00
kfd_iommu.c drm/amdkfd: Add spatial partitioning support in KFD 2023-06-09 09:42:33 -04:00
kfd_iommu.h drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_kernel_queue.c drm/amdkfd: Introduce kfd_node struct (v5) 2023-06-09 09:42:27 -04:00
kfd_kernel_queue.h drm/amdkfd: Introduce kfd_node struct (v5) 2023-06-09 09:42:27 -04:00
kfd_migrate.c drm/amdkfd: avoid unmap dma address when svm_ranges are split 2023-08-07 16:36:44 -04:00
kfd_migrate.h drm/amdkfd: Refactor migrate init to support partition switch 2023-06-09 10:36:58 -04:00
kfd_module.c drm/amdkfd: Fixed kfd_process cleanup on module exit. 2023-03-15 18:45:26 -04:00
kfd_mqd_manager_cik.c drm/amdkfd: apply trap workaround for gfx11 2023-06-09 12:35:52 -04:00
kfd_mqd_manager_v9.c drm/amdkfd: Use KIQ to unmap HIQ 2023-07-07 13:51:48 -04:00
kfd_mqd_manager_v10.c drm/amdkfd: Use KIQ to unmap HIQ 2023-07-07 13:51:48 -04:00
kfd_mqd_manager_v11.c drm/amdkfd: Use KIQ to unmap HIQ 2023-07-07 13:51:48 -04:00
kfd_mqd_manager_vi.c drm/amdkfd: apply trap workaround for gfx11 2023-06-09 12:35:52 -04:00
kfd_mqd_manager.c drm/amdkfd: Use xcc mask for identifying xcc 2023-06-09 09:57:20 -04:00
kfd_mqd_manager.h drm/amdkfd: Update context save handling for multi XCC setup (v2) 2023-06-09 09:42:50 -04:00
kfd_packet_manager_v9.c drm/amdkfd: add kfd2kgd debugger callbacks for GC v9.4.3 2023-07-12 10:58:01 -04:00
kfd_packet_manager_vi.c drm/amdgpu: add configurable grace period for unmap queues 2023-06-09 12:35:31 -04:00
kfd_packet_manager.c drm/amdgpu: add configurable grace period for unmap queues 2023-06-09 12:35:31 -04:00
kfd_pasid.c drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_pm4_headers_ai.h drm/amdkfd: prepare map process for single process debug devices 2023-06-09 12:35:36 -04:00
kfd_pm4_headers_aldebaran.h drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_pm4_headers_vi.h drm/amdkfd: Fix leftover errors and warnings 2022-02-14 15:08:40 -05:00
kfd_pm4_headers.h drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_pm4_opcodes.h drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_priv.h drm/amdgpu: use doorbell mgr for kfd process doorbells 2023-08-07 17:14:07 -04:00
kfd_process_queue_manager.c drm/amdgpu: use doorbell mgr for kfd process doorbells 2023-08-07 17:14:07 -04:00
kfd_process.c drm/amdgpu: use doorbell mgr for kfd process doorbells 2023-08-07 17:14:07 -04:00
kfd_queue.c drm/amdkfd: update SPDX license header 2022-02-14 15:08:40 -05:00
kfd_smi_events.c drm/amdkfd: Update SMI events for GFX9.4.3 2023-06-09 09:46:31 -04:00
kfd_smi_events.h drm/amdkfd: Update SMI events for GFX9.4.3 2023-06-09 09:46:31 -04:00
kfd_svm.c drm/amdkfd: avoid unmap dma address when svm_ranges are split 2023-08-07 16:36:44 -04:00
kfd_svm.h drm/amdkfd: avoid unmap dma address when svm_ranges are split 2023-08-07 16:36:44 -04:00
kfd_topology.c drm/amdkfd: fix and enable ttmp setup for gfx11 2023-07-27 14:59:29 -04:00
kfd_topology.h drm/amdkfd: restore debugger additional info for gfx v9_4_3 2023-07-12 11:10:19 -04:00
Makefile drm/amdkfd: update process interrupt handling for debug events 2023-06-09 12:36:17 -04:00
soc15_int.h drm/amdkfd: Update interrupt handling for GFX 9.4.3 2023-06-30 13:11:35 -04:00