Searched hist:a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 (Results 1 – 1 of 1) sorted by relevance
/linux/drivers/gpu/drm/amd/amdkfd/ ! |
H A D | kfd_queue.c | a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 Fri Aug 02 15:28:45 UTC 2024 Philip Yang <Philip.Yang@amd.com> drm/amdkfd: Handle queue destroy buffer access race
Add helper function kfd_queue_unreference_buffers to reduce queue buffer refcount, separate it from release queue buffers.
Because it is circular locking to hold dqm_lock to take vm lock, kfd_ioctl_destroy_queue should take vm lock, unreference queue buffers first, but not release queue buffers, to handle error in case failed to hold vm lock. Then hold dqm_lock to remove queue from queue list and then release queue buffers.
Restore process worker restore queue hold dqm_lock, will always find the queue with valid queue buffers.
v2 (Felix): - renamed kfd_queue_unreference_buffer(s) to kfd_queue_unref_bo_va(s) - added two FIXME comments for follow up
Signed-off-by: Philip Yang <Philip.Yang@amd.com> Signed-off-by: Felix Kuehling <felix.kuehling@amd.com> Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> a1fc9f584c4aaf8bc1ebfa459fc57a3f26a290d8 Fri Aug 02 15:28:45 UTC 2024 Philip Yang <Philip.Yang@amd.com> drm/amdkfd: Handle queue destroy buffer access race
Add helper function kfd_queue_unreference_buffers to reduce queue buffer refcount, separate it from release queue buffers.
Because it is circular locking to hold dqm_lock to take vm lock, kfd_ioctl_destroy_queue should take vm lock, unreference queue buffers first, but not release queue buffers, to handle error in case failed to hold vm lock. Then hold dqm_lock to remove queue from queue list and then release queue buffers.
Restore process worker restore queue hold dqm_lock, will always find the queue with valid queue buffers.
v2 (Felix): - renamed kfd_queue_unreference_buffer(s) to kfd_queue_unref_bo_va(s) - added two FIXME comments for follow up
Signed-off-by: Philip Yang <Philip.Yang@amd.com> Signed-off-by: Felix Kuehling <felix.kuehling@amd.com> Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|