Skip to content

Commit

Permalink
drm/xe: Resume TDR after GT reset
Browse files Browse the repository at this point in the history
[ Upstream commit 1b30f87 ]

Not starting the TDR after GT reset on exec queue which have been
restarted can lead to jobs being able to be run forever. Fix this by
restarting the TDR.

Fixes: dd08ebf ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Signed-off-by: Matthew Brost <[email protected]>
Reviewed-by: Nirmoy Das <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
(cherry picked from commit 8ec5a4e)
Signed-off-by: Lucas De Marchi <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
  • Loading branch information
mbrost05 authored and gregkh committed Oct 10, 2024
1 parent d88f9ba commit 8e0f384
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/gpu/drm/xe/xe_gpu_scheduler.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@ void xe_sched_submission_stop(struct xe_gpu_scheduler *sched)
cancel_work_sync(&sched->work_process_msg);
}

void xe_sched_submission_resume_tdr(struct xe_gpu_scheduler *sched)
{
drm_sched_resume_timeout(&sched->base, sched->base.timeout);
}

void xe_sched_add_msg(struct xe_gpu_scheduler *sched,
struct xe_sched_msg *msg)
{
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/xe/xe_gpu_scheduler.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ void xe_sched_fini(struct xe_gpu_scheduler *sched);
void xe_sched_submission_start(struct xe_gpu_scheduler *sched);
void xe_sched_submission_stop(struct xe_gpu_scheduler *sched);

void xe_sched_submission_resume_tdr(struct xe_gpu_scheduler *sched);

void xe_sched_add_msg(struct xe_gpu_scheduler *sched,
struct xe_sched_msg *msg);

Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/xe/xe_guc_submit.c
Original file line number Diff line number Diff line change
Expand Up @@ -1740,6 +1740,7 @@ static void guc_exec_queue_start(struct xe_exec_queue *q)
}

xe_sched_submission_start(sched);
xe_sched_submission_resume_tdr(sched);
}

int xe_guc_submit_start(struct xe_guc *guc)
Expand Down

0 comments on commit 8e0f384

Please sign in to comment.