Commit 5dd3f9ef authored by Pixel Ding's avatar Pixel Ding Committed by Alex Deucher

drm/scheduler: don't update last scheduled fence in TDR

The current sequence in scheduler thread is:
1. update last sched fence
2. job begin (adding to mirror list)
3. job finish (remove from mirror list)
4. back to 1

Since we update last sched prior to joining mirror list, the jobs
in mirror list already pass the last sched fence. TDR just run
the jobs in mirror list, so we should not update the last sched
fences in TDR.
Signed-off-by: default avatarPixel Ding <Pixel.Ding@amd.com>
Reviewed-by: default avatarMonk Liu <monk.liu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent eda8377d
...@@ -575,9 +575,6 @@ void drm_sched_job_recovery(struct drm_gpu_scheduler *sched) ...@@ -575,9 +575,6 @@ void drm_sched_job_recovery(struct drm_gpu_scheduler *sched)
fence = sched->ops->run_job(s_job); fence = sched->ops->run_job(s_job);
atomic_inc(&sched->hw_rq_count); atomic_inc(&sched->hw_rq_count);
dma_fence_put(s_job->entity->last_scheduled);
s_job->entity->last_scheduled = dma_fence_get(&s_fence->finished);
if (fence) { if (fence) {
s_fence->parent = dma_fence_get(fence); s_fence->parent = dma_fence_get(fence);
r = dma_fence_add_callback(fence, &s_fence->cb, r = dma_fence_add_callback(fence, &s_fence->cb,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment