If vm belongs to another process, this is fclose after fork, wait may enable signaling KFD eviction fence and cause parent process queue evicted.
Signed-off-by: Gang Ba <gang...@amd.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index f042372d9f2e..8ee1b7e62dee 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -2410,6 +2410,13 @@ void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint32_t min_vm_size, */ long amdgpu_vm_wait_idle(struct amdgpu_vm *vm, long timeout) { + /* If vm belongs to another process, this is fclose after fork, + * wait may enable signaling KFD eviction fence and cause parent process queue evicted. + */ + if (vm->task_info->tgid && + vm->task_info->tgid != current->group_leader->pid) + return 0; + timeout = dma_resv_wait_timeout(vm->root.bo->tbo.base.resv, DMA_RESV_USAGE_BOOKKEEP, true, timeout); -- 2.34.1