From: Sanjay Yadav <sanjay.kumar.yadav@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org, rodrigo.vivi@intel.com,
nirmoy.das@intel.com, umesh.nerlige.ramappa@intel.com,
thomas.hellstrom@linux.intel.com, matthew.brost@intel.com,
niranjana.vishwanathapura@intel.com, thomas.hellstrom@intel.com,
fei.yang@intel.com, himal.prasad.ghimiray@intel.com,
matthew.d.roper@intel.com, maarten.lankhorst@intel.com,
joonas.lahtinen@intel.com, matthew.auld@intel.com
Subject: [RFC PATCH 3/3] drm/xe: don't cancel other pending jobs on kernel migration queue timeout
Date: Wed, 3 Jun 2026 17:36:42 +0530 [thread overview]
Message-ID: <20260603120641.473434-6-sanjay.kumar.yadav@intel.com> (raw)
In-Reply-To: <20260603120641.473434-4-sanjay.kumar.yadav@intel.com>
The kernel migration queue scheduler is shared across all VMs on a tile.
When a job times out and GT recovery is exhausted (karma > threshold),
guc_exec_queue_timedout_job() falls through to error out the job and
cancel all remaining pending jobs via drm_sched_for_each_pending_job().
After a GT reset, the hardware is recovered and those pending jobs can
run fine. Skip cancellation for kernel queues so that other VMs' migration
operations can complete after GT reset recovers the engine.
Fixes: 95f27831ee3c ("drm/xe: Stop abusing DRM scheduler internals")
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Assisted-by: Claude:claude-opus-4.6
Suggested-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Sanjay Yadav <sanjay.kumar.yadav@intel.com>
---
drivers/gpu/drm/xe/xe_guc_submit.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index e6ad57cbbf0e..dd3ae58019b1 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -1640,8 +1640,15 @@ guc_exec_queue_timedout_job(struct drm_sched_job *drm_job)
/* Mark all outstanding jobs as bad, thus completing them */
xe_sched_job_set_error(job, err);
- drm_sched_for_each_pending_job(tmp_job, &sched->base, NULL)
- xe_sched_job_set_error(to_xe_sched_job(tmp_job), -ECANCELED);
+
+ /*
+ * For kernel queues (migration), don't cancel other pending jobs.
+ * They belong to different VMs sharing the same scheduler and will
+ * be resubmitted after GT reset recovers the hardware.
+ */
+ if (!(q->flags & EXEC_QUEUE_FLAG_KERNEL))
+ drm_sched_for_each_pending_job(tmp_job, &sched->base, NULL)
+ xe_sched_job_set_error(to_xe_sched_job(tmp_job), -ECANCELED);
if (xe_exec_queue_is_multi_queue(q)) {
xe_guc_exec_queue_group_start(q);
--
2.52.0
next prev parent reply other threads:[~2026-06-03 12:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-03 12:06 [RFC PATCH 1/3] drm/xe: skip banning kernel migration queue on TDR timeout Sanjay Yadav
2026-06-03 12:06 ` [RFC PATCH 2/3] drm/sched: fix drm_sched_tdr_queue_imm to not corrupt timeout value Sanjay Yadav
2026-06-03 13:47 ` Rodrigo Vivi
2026-06-03 12:06 ` Sanjay Yadav [this message]
2026-06-03 12:42 ` [RFC PATCH 1/3] drm/xe: skip banning kernel migration queue on TDR timeout Matthew Auld
2026-06-03 13:52 ` Rodrigo Vivi
2026-06-03 15:13 ` Hellstrom, Thomas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260603120641.473434-6-sanjay.kumar.yadav@intel.com \
--to=sanjay.kumar.yadav@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=fei.yang@intel.com \
--cc=himal.prasad.ghimiray@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=joonas.lahtinen@intel.com \
--cc=maarten.lankhorst@intel.com \
--cc=matthew.auld@intel.com \
--cc=matthew.brost@intel.com \
--cc=matthew.d.roper@intel.com \
--cc=niranjana.vishwanathapura@intel.com \
--cc=nirmoy.das@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=thomas.hellstrom@intel.com \
--cc=thomas.hellstrom@linux.intel.com \
--cc=umesh.nerlige.ramappa@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox