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

Ding, Pixel Pixel.Ding at amd.com
Thu Apr 26 03:47:11 UTC 2018

Hi Monk,

Please review it. Thanks.

Sincerely Yours,

On 2018/4/25, 4:39 PM, "Pixel Ding" <Pixel.Ding at amd.com> wrote:

    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: Pixel Ding <Pixel.Ding at amd.com>
     drivers/gpu/drm/scheduler/gpu_scheduler.c | 3 ---
     1 file changed, 3 deletions(-)
    diff --git a/drivers/gpu/drm/scheduler/gpu_scheduler.c b/drivers/gpu/drm/scheduler/gpu_scheduler.c
    index 088ff2b..1f1dd70 100644
    --- a/drivers/gpu/drm/scheduler/gpu_scheduler.c
    +++ b/drivers/gpu/drm/scheduler/gpu_scheduler.c
    @@ -575,9 +575,6 @@ void drm_sched_job_recovery(struct drm_gpu_scheduler *sched)
     		fence = sched->ops->run_job(s_job);
    -		dma_fence_put(s_job->entity->last_scheduled);
    -		s_job->entity->last_scheduled = dma_fence_get(&s_fence->finished);
     		if (fence) {
     			s_fence->parent = dma_fence_get(fence);
     			r = dma_fence_add_callback(fence, &s_fence->cb,

More information about the amd-gfx mailing list