Skip to content

Commit b09d6ac

Browse files
drm/amdgpu: handle gang submit before VMID
Otherwise it can happen that not all gang members can get a VMID assigned and we deadlock. Signed-off-by: Christian König <[email protected]> Tested-by: Timur Kristóf <[email protected]> Acked-by: Timur Kristóf <[email protected]> Fixes: 68ce8b2 ("drm/amdgpu: add gang submit backend v2") Reviewed-by: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 5954acb commit b09d6ac

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_job.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,9 @@ static struct dma_fence *amdgpu_job_dependency(struct drm_sched_job *sched_job,
254254
DRM_ERROR("Error adding fence (%d)\n", r);
255255
}
256256

257+
if (!fence && job->gang_submit)
258+
fence = amdgpu_device_switch_gang(ring->adev, job->gang_submit);
259+
257260
while (fence == NULL && vm && !job->vmid) {
258261
r = amdgpu_vmid_grab(vm, ring, &job->sync,
259262
&job->base.s_fence->finished,
@@ -264,9 +267,6 @@ static struct dma_fence *amdgpu_job_dependency(struct drm_sched_job *sched_job,
264267
fence = amdgpu_sync_get_fence(&job->sync);
265268
}
266269

267-
if (!fence && job->gang_submit)
268-
fence = amdgpu_device_switch_gang(ring->adev, job->gang_submit);
269-
270270
return fence;
271271
}
272272

0 commit comments

Comments
 (0)