mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
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
This commit is contained in:
parent
8f8bb68ebd
commit
1774baa64f
@ -671,7 +671,7 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
|
||||
static struct drm_sched_job *
|
||||
drm_sched_get_cleanup_job(struct drm_gpu_scheduler *sched)
|
||||
{
|
||||
struct drm_sched_job *job;
|
||||
struct drm_sched_job *job, *next;
|
||||
|
||||
/*
|
||||
* 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)
|
||||
if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
|
||||
/* remove job from pending_list */
|
||||
list_del_init(&job->list);
|
||||
/* make the scheduled timestamp more accurate */
|
||||
next = list_first_entry_or_null(&sched->pending_list,
|
||||
typeof(*next), list);
|
||||
if (next)
|
||||
next->s_fence->scheduled.timestamp =
|
||||
job->s_fence->finished.timestamp;
|
||||
|
||||
} else {
|
||||
job = NULL;
|
||||
/* queue timeout for next job */
|
||||
|
Loading…
Reference in New Issue
Block a user