Skip to content

Commit 1774baa

Browse files
Roy SunChristianKoenigAMD
authored andcommitted
drm/scheduler: Change scheduled fence track v2
Update the timestamp of scheduled fence on HW completion of the previous fences This allow more accurate tracking of the fence execution in HW v2 (chk): drop the flag check and improve the comment Signed-off-by: David M Nieto <david.nieto@amd.com> Signed-off-by: Roy Sun <Roy.Sun@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210426062701.39732-1-Roy.Sun@amd.com
1 parent 8f8bb68 commit 1774baa

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

drivers/gpu/drm/scheduler/sched_main.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
671671
static struct drm_sched_job *
672672
drm_sched_get_cleanup_job(struct drm_gpu_scheduler *sched)
673673
{
674-
struct drm_sched_job *job;
674+
struct drm_sched_job *job, *next;
675675

676676
/*
677677
* Don't destroy jobs while the timeout worker is running OR thread
@@ -690,6 +690,13 @@ drm_sched_get_cleanup_job(struct drm_gpu_scheduler *sched)
690690
if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
691691
/* remove job from pending_list */
692692
list_del_init(&job->list);
693+
/* make the scheduled timestamp more accurate */
694+
next = list_first_entry_or_null(&sched->pending_list,
695+
typeof(*next), list);
696+
if (next)
697+
next->s_fence->scheduled.timestamp =
698+
job->s_fence->finished.timestamp;
699+
693700
} else {
694701
job = NULL;
695702
/* queue timeout for next job */

0 commit comments

Comments
 (0)