Skip to content

Commit 53dcd0e

Browse files
committed
drm/xe: Use DRM_GPU_SCHED_STAT_NO_HANG to skip the reset
Xe can skip the reset if TDR has fired before the free job worker and can also re-arm the timeout timer in some scenarios. Instead of manipulating scheduler's internals, inform the scheduler that the job did not actually timeout and no reset was performed through the new status code DRM_GPU_SCHED_STAT_NO_HANG. Note that, in the first case, there is no need to restart submission if it hasn't been stopped. Reviewed-by: Matthew Brost <matthew.brost@intel.com> Link: https://lore.kernel.org/r/20250714-sched-skip-reset-v6-7-5c5ba4f55039@igalia.com Signed-off-by: Maíra Canal <mcanal@igalia.com>
1 parent 8902c2b commit 53dcd0e

1 file changed

Lines changed: 3 additions & 9 deletions

File tree

drivers/gpu/drm/xe/xe_guc_submit.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,12 +1092,8 @@ guc_exec_queue_timedout_job(struct drm_sched_job *drm_job)
10921092
* list so job can be freed and kick scheduler ensuring free job is not
10931093
* lost.
10941094
*/
1095-
if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &job->fence->flags)) {
1096-
xe_sched_add_pending_job(sched, job);
1097-
xe_sched_submission_start(sched);
1098-
1099-
return DRM_GPU_SCHED_STAT_RESET;
1100-
}
1095+
if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &job->fence->flags))
1096+
return DRM_GPU_SCHED_STAT_NO_HANG;
11011097

11021098
/* Kill the run_job entry point */
11031099
xe_sched_submission_stop(sched);
@@ -1275,10 +1271,8 @@ guc_exec_queue_timedout_job(struct drm_sched_job *drm_job)
12751271
* but there is not currently an easy way to do in DRM scheduler. With
12761272
* some thought, do this in a follow up.
12771273
*/
1278-
xe_sched_add_pending_job(sched, job);
12791274
xe_sched_submission_start(sched);
1280-
1281-
return DRM_GPU_SCHED_STAT_RESET;
1275+
return DRM_GPU_SCHED_STAT_NO_HANG;
12821276
}
12831277

12841278
static void __guc_exec_queue_fini_async(struct work_struct *w)

0 commit comments

Comments
 (0)