linux-yocto/drivers/gpu/drm/amd/amdkfd
Philip Yang c8cc14eeb2 drm/amdkfd: KFD release_work possible circular locking
[ Upstream commit 1b9366c601039d60546794c63fbb83ce8e53b978 ]

If waiting for gpu reset done in KFD release_work, thers is WARNING:
possible circular locking dependency detected

  #2  kfd_create_process
        kfd_process_mutex
          flush kfd release work

  #1  kfd release work
        wait for amdgpu reset work

  #0  amdgpu_device_gpu_reset
        kgd2kfd_pre_reset
          kfd_process_mutex

  Possible unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock((work_completion)(&p->release_work));
                  lock((wq_completion)kfd_process_wq);
                  lock((work_completion)(&p->release_work));
   lock((wq_completion)amdgpu-reset-dev);

To fix this, KFD create process move flush release work outside
kfd_process_mutex.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-06-04 14:40:10 +02:00
..
cik_event_interrupt.c
cik_int.h
cik_regs.h
cwsr_trap_handler_gfx8.asm
cwsr_trap_handler_gfx9.asm
cwsr_trap_handler_gfx10.asm
cwsr_trap_handler.h
Kconfig
kfd_chardev.c drm/amdkfd: clamp queue size to minimum 2025-04-25 10:43:33 +02:00
kfd_crat.c
kfd_crat.h drm/amdkfd: Reconcile the definition and use of oem_id in struct kfd_topology_device 2024-09-08 07:53:07 +02:00
kfd_debugfs.c
kfd_device_queue_manager_cik.c
kfd_device_queue_manager_v9.c
kfd_device_queue_manager_v10.c
kfd_device_queue_manager_v11.c
kfd_device_queue_manager_vi.c
kfd_device_queue_manager.c drm/amdkfd: amdkfd_free_gtt_mem clear the correct pointer 2024-11-17 15:07:22 +01:00
kfd_device_queue_manager.h
kfd_device.c drm/amdkfd: amdkfd_free_gtt_mem clear the correct pointer 2024-11-17 15:07:22 +01:00
kfd_doorbell.c
kfd_events.c
kfd_events.h
kfd_flat_memory.c
kfd_int_process_v9.c
kfd_int_process_v11.c
kfd_interrupt.c
kfd_iommu.c
kfd_iommu.h
kfd_kernel_queue.c
kfd_kernel_queue.h
kfd_migrate.c drm/amdkfd: Correct the migration DMA map direction 2025-01-09 13:30:03 +01:00
kfd_migrate.h
kfd_module.c
kfd_mqd_manager_cik.c
kfd_mqd_manager_v9.c
kfd_mqd_manager_v10.c
kfd_mqd_manager_v11.c
kfd_mqd_manager_vi.c
kfd_mqd_manager.c drm/amdkfd: amdkfd_free_gtt_mem clear the correct pointer 2024-11-17 15:07:22 +01:00
kfd_mqd_manager.h
kfd_packet_manager_v9.c
kfd_packet_manager_vi.c
kfd_packet_manager.c
kfd_pasid.c
kfd_pm4_headers_ai.h
kfd_pm4_headers_aldebaran.h
kfd_pm4_headers_diq.h
kfd_pm4_headers_vi.h
kfd_pm4_headers.h
kfd_pm4_opcodes.h
kfd_priv.h drm/amdkfd: fix TLB flush after unmap for GFX9.4.2 2024-04-03 15:19:49 +02:00
kfd_process_queue_manager.c drm/amdkfd: Fix pqm_destroy_queue race with GPU reset 2025-04-25 10:43:33 +02:00
kfd_process.c drm/amdkfd: KFD release_work possible circular locking 2025-06-04 14:40:10 +02:00
kfd_queue.c
kfd_smi_events.c
kfd_smi_events.h
kfd_svm.c drm/amdkfd: Fix 'node' NULL check in 'svm_range_get_range_boundaries()' 2024-02-05 20:13:00 +00:00
kfd_svm.h
kfd_topology.c drm/amdkfd: Reconcile the definition and use of oem_id in struct kfd_topology_device 2024-09-08 07:53:07 +02:00
kfd_topology.h drm/amdkfd: Reconcile the definition and use of oem_id in struct kfd_topology_device 2024-09-08 07:53:07 +02:00
Makefile
soc15_int.h