]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/xe: Restore engine registers before restarting schedulers after GT reset
authorJan Maslak <jan.maslak@intel.com>
Wed, 10 Dec 2025 14:56:18 +0000 (15:56 +0100)
committerMatthew Brost <matthew.brost@intel.com>
Fri, 12 Dec 2025 21:32:08 +0000 (13:32 -0800)
commit825aed0328588b2837636c1c5a0c48795d724617
tree822f499fe325b8772c8fb23627fd713de538d2cd
parentd69d3636f5f7a84bae7cd43473b3701ad9b7d544
drm/xe: Restore engine registers before restarting schedulers after GT reset

During GT reset recovery in do_gt_restart(), xe_uc_start() was called
before xe_reg_sr_apply_mmio() restored engine-specific registers. This
created a race window where the scheduler could run jobs before hardware
state was fully restored.

This caused failures in eudebug tests (xe_exec_sip_eudebug@breakpoint-
waitsip-*) where TD_CTL register (containing TD_CTL_GLOBAL_DEBUG_ENABLE)
wasn't restored before jobs started executing. Breakpoints would fail to
trigger SIP entry because the debug enable bit wasn't set yet.

Fix by moving xe_uc_start() after all MMIO register restoration,
including engine registers and CCS mode configuration, ensuring all
hardware state is fully restored before any jobs can be scheduled.

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Signed-off-by: Jan Maslak <jan.maslak@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20251210145618.169625-2-jan.maslak@intel.com
drivers/gpu/drm/xe/xe_gt.c