Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases
@ 2025-12-18 21:44 Matthew Brost
  2025-12-18 21:44 ` [PATCH v2 1/3] drm/xe: Always kill exec queues in xe_guc_submit_pause_abort Matthew Brost
                   ` (5 more replies)
  0 siblings, 6 replies; 17+ messages in thread
From: Matthew Brost @ 2025-12-18 21:44 UTC (permalink / raw)
  To: intel-xe

We have several bug reports [1], [2], [3] describing failures in reset,
wedge, and unload corner cases where memory is not properly freed or
fences fail to signal. This patch attempts to address the issue by
forcefully killing any remaining queues on driver unload and wedging the
device if not in mode 2.

Matt 

[1] https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/5466
[2] https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/5530
[3] https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/6029

Matthew Brost (3):
  drm/xe: Always kill exec queues in xe_guc_submit_pause_abort
  drm/xe: Forcefully tear down exec queues in GuC submit fini
  drm/xe: Trigger queue cleanup if not in wedged mode 2

 drivers/gpu/drm/xe/xe_guc_submit.c | 61 ++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 21 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v2 1/3] drm/xe: Always kill exec queues in xe_guc_submit_pause_abort
  2025-12-18 21:44 [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases Matthew Brost
@ 2025-12-18 21:44 ` Matthew Brost
  2025-12-18 23:36   ` Summers, Stuart
  2025-12-18 21:44 ` [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini Matthew Brost
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 17+ messages in thread
From: Matthew Brost @ 2025-12-18 21:44 UTC (permalink / raw)
  To: intel-xe

xe_guc_submit_pause_abort is intended to be called after something
disastrous occurs (e.g., VF migration fails, device wedging, or driver
unload) and should immediately trigger the teardown of remaining
submission state. With that, kill any remaining queues in this function.

Fixes: 7c4b7e34c83b ("drm/xe/vf: Abort VF post migration recovery on failure")
Cc: stable@vger.kernel.org
Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_guc_submit.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 43fd2069f9b2..071cbfec2401 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -2890,8 +2890,7 @@ void xe_guc_submit_pause_abort(struct xe_guc *guc)
 			continue;
 
 		xe_sched_submission_start(sched);
-		if (exec_queue_killed_or_banned_or_wedged(q))
-			xe_guc_exec_queue_trigger_cleanup(q);
+		guc_exec_queue_kill(q);
 	}
 	mutex_unlock(&guc->submission_state.lock);
 }
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2025-12-18 21:44 [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases Matthew Brost
  2025-12-18 21:44 ` [PATCH v2 1/3] drm/xe: Always kill exec queues in xe_guc_submit_pause_abort Matthew Brost
@ 2025-12-18 21:44 ` Matthew Brost
  2025-12-18 23:36   ` Summers, Stuart
  2026-01-08 19:00   ` Dong, Zhanjun
  2025-12-18 21:44 ` [PATCH v2 3/3] drm/xe: Trigger queue cleanup if not in wedged mode 2 Matthew Brost
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 17+ messages in thread
From: Matthew Brost @ 2025-12-18 21:44 UTC (permalink / raw)
  To: intel-xe

In GuC submit fini, forcefully tear down any exec queues by disabling
CTs, stopping the scheduler (which cleans up lost G2H), killing all
remaining queues, and resuming scheduling to allow any remaining cleanup
actions to complete and signal any remaining fences.

v2:
 - Fix VF failure (CI)

Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Cc: stable@vger.kernel.org
Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>

---

This fix will not apply outright to any stable kernel as it depeneds on
functions which have added in the KMD since the original commit. Likely
will have to manually send out patches to stable for kernel which we'd
like to fix.
---
 drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 071cbfec2401..58ec94439df1 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -289,6 +289,8 @@ static bool exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
 		 EXEC_QUEUE_STATE_BANNED));
 }
 
+static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
+
 static void guc_submit_fini(struct drm_device *drm, void *arg)
 {
 	struct xe_guc *guc = arg;
@@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device *drm, void *arg)
 	struct xe_gt *gt = guc_to_gt(guc);
 	int ret;
 
+	/* Forcefully kill any remaining exec queues */
+	xe_guc_ct_stop(&guc->ct);
+	__xe_guc_submit_reset_prepare(guc);
+	xe_guc_submit_stop(guc);
+	xe_guc_submit_pause_abort(guc);
+
 	ret = wait_event_timeout(guc->submission_state.fini_wq,
 				 xa_empty(&guc->submission_state.exec_queue_lookup),
 				 HZ * 5);
@@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
 	}
 }
 
-int xe_guc_submit_reset_prepare(struct xe_guc *guc)
+static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
 {
 	int ret;
 
-	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
-		return 0;
-
-	if (!guc->submission_state.initialized)
-		return 0;
-
 	/*
 	 * Using an atomic here rather than submission_state.lock as this
 	 * function can be called while holding the CT lock (engine reset
@@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc)
 	return ret;
 }
 
+int xe_guc_submit_reset_prepare(struct xe_guc *guc)
+{
+	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
+		return 0;
+
+	if (!guc->submission_state.initialized)
+		return 0;
+
+	return __xe_guc_submit_reset_prepare(guc);
+}
+
 void xe_guc_submit_reset_wait(struct xe_guc *guc)
 {
 	wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v2 3/3] drm/xe: Trigger queue cleanup if not in wedged mode 2
  2025-12-18 21:44 [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases Matthew Brost
  2025-12-18 21:44 ` [PATCH v2 1/3] drm/xe: Always kill exec queues in xe_guc_submit_pause_abort Matthew Brost
  2025-12-18 21:44 ` [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini Matthew Brost
@ 2025-12-18 21:44 ` Matthew Brost
  2025-12-18 23:45   ` Summers, Stuart
  2025-12-18 23:08 ` ✓ CI.KUnit: success for Attempt to fixup reset, wedge, unload corner cases Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 17+ messages in thread
From: Matthew Brost @ 2025-12-18 21:44 UTC (permalink / raw)
  To: intel-xe

The intent of wedging a device is to allow queues to continue running
only in wedged mode 2. In other modes, queues should initiate cleanup
and signal all remaining fences. Fix xe_guc_submit_wedge to correctly
clean up queues when wedge mode != 2.

Fixes: 7dbe8af13c18 ("drm/xe: Wedge the entire device")
Cc: stable@vger.kernel.org
Signed-off-by: Matthew Brost <matthew.brost@intel.com>

---

This fix will not apply outright to any stable kernel as it depeneds on
functions which have added in the KMD since the original commit. Likely
will have to manually send out patches to stable for kernel which we'd
like to fix.
---
 drivers/gpu/drm/xe/xe_guc_submit.c | 31 ++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 58ec94439df1..63b984f6d78d 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -1313,6 +1313,7 @@ static void disable_scheduling_deregister(struct xe_guc *guc,
  */
 void xe_guc_submit_wedge(struct xe_guc *guc)
 {
+	struct xe_device *xe = guc_to_xe(guc);
 	struct xe_gt *gt = guc_to_gt(guc);
 	struct xe_exec_queue *q;
 	unsigned long index;
@@ -1327,19 +1328,25 @@ void xe_guc_submit_wedge(struct xe_guc *guc)
 	if (!guc->submission_state.initialized)
 		return;
 
-	err = devm_add_action_or_reset(guc_to_xe(guc)->drm.dev,
-				       guc_submit_wedged_fini, guc);
-	if (err) {
-		xe_gt_err(gt, "Failed to register clean-up on wedged.mode=2; "
-			  "Although device is wedged.\n");
-		return;
-	}
+	if (xe->wedged.mode == 2) {
+		err = devm_add_action_or_reset(guc_to_xe(guc)->drm.dev,
+					       guc_submit_wedged_fini, guc);
+		if (err) {
+			xe_gt_err(gt, "Failed to register clean-up on wedged.mode=2; "
+				  "Although device is wedged.\n");
+			return;
+		}
 
-	mutex_lock(&guc->submission_state.lock);
-	xa_for_each(&guc->submission_state.exec_queue_lookup, index, q)
-		if (xe_exec_queue_get_unless_zero(q))
-			set_exec_queue_wedged(q);
-	mutex_unlock(&guc->submission_state.lock);
+		mutex_lock(&guc->submission_state.lock);
+		xa_for_each(&guc->submission_state.exec_queue_lookup, index, q)
+			if (xe_exec_queue_get_unless_zero(q))
+				set_exec_queue_wedged(q);
+		mutex_unlock(&guc->submission_state.lock);
+	} else {
+		/* Forcefully kill any remaining exec queues, signal fences */
+		xe_guc_submit_stop(guc);
+		xe_guc_submit_pause_abort(guc);
+	}
 }
 
 static bool guc_submit_hint_wedged(struct xe_guc *guc)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* ✓ CI.KUnit: success for Attempt to fixup reset, wedge, unload corner cases
  2025-12-18 21:44 [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases Matthew Brost
                   ` (2 preceding siblings ...)
  2025-12-18 21:44 ` [PATCH v2 3/3] drm/xe: Trigger queue cleanup if not in wedged mode 2 Matthew Brost
@ 2025-12-18 23:08 ` Patchwork
  2025-12-18 23:44 ` ✓ Xe.CI.BAT: " Patchwork
  2025-12-20  1:22 ` ✗ Xe.CI.Full: failure " Patchwork
  5 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2025-12-18 23:08 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

== Series Details ==

Series: Attempt to fixup reset, wedge, unload corner cases
URL   : https://patchwork.freedesktop.org/series/159247/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[23:07:39] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:07:43] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:08:15] Starting KUnit Kernel (1/1)...
[23:08:15] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:08:15] ================== guc_buf (11 subtests) ===================
[23:08:15] [PASSED] test_smallest
[23:08:15] [PASSED] test_largest
[23:08:15] [PASSED] test_granular
[23:08:15] [PASSED] test_unique
[23:08:15] [PASSED] test_overlap
[23:08:15] [PASSED] test_reusable
[23:08:15] [PASSED] test_too_big
[23:08:15] [PASSED] test_flush
[23:08:15] [PASSED] test_lookup
[23:08:15] [PASSED] test_data
[23:08:15] [PASSED] test_class
[23:08:15] ===================== [PASSED] guc_buf =====================
[23:08:15] =================== guc_dbm (7 subtests) ===================
[23:08:15] [PASSED] test_empty
[23:08:15] [PASSED] test_default
[23:08:15] ======================== test_size  ========================
[23:08:15] [PASSED] 4
[23:08:15] [PASSED] 8
[23:08:15] [PASSED] 32
[23:08:15] [PASSED] 256
[23:08:15] ==================== [PASSED] test_size ====================
[23:08:15] ======================= test_reuse  ========================
[23:08:15] [PASSED] 4
[23:08:15] [PASSED] 8
[23:08:15] [PASSED] 32
[23:08:15] [PASSED] 256
[23:08:15] =================== [PASSED] test_reuse ====================
[23:08:15] =================== test_range_overlap  ====================
[23:08:15] [PASSED] 4
[23:08:15] [PASSED] 8
[23:08:15] [PASSED] 32
[23:08:15] [PASSED] 256
[23:08:15] =============== [PASSED] test_range_overlap ================
[23:08:15] =================== test_range_compact  ====================
[23:08:15] [PASSED] 4
[23:08:15] [PASSED] 8
[23:08:15] [PASSED] 32
[23:08:15] [PASSED] 256
[23:08:15] =============== [PASSED] test_range_compact ================
[23:08:15] ==================== test_range_spare  =====================
[23:08:15] [PASSED] 4
[23:08:15] [PASSED] 8
[23:08:15] [PASSED] 32
[23:08:15] [PASSED] 256
[23:08:15] ================ [PASSED] test_range_spare =================
[23:08:15] ===================== [PASSED] guc_dbm =====================
[23:08:15] =================== guc_idm (6 subtests) ===================
[23:08:15] [PASSED] bad_init
[23:08:15] [PASSED] no_init
[23:08:15] [PASSED] init_fini
[23:08:15] [PASSED] check_used
[23:08:15] [PASSED] check_quota
[23:08:15] [PASSED] check_all
[23:08:15] ===================== [PASSED] guc_idm =====================
[23:08:15] ================== no_relay (3 subtests) ===================
[23:08:15] [PASSED] xe_drops_guc2pf_if_not_ready
[23:08:15] [PASSED] xe_drops_guc2vf_if_not_ready
[23:08:15] [PASSED] xe_rejects_send_if_not_ready
[23:08:15] ==================== [PASSED] no_relay =====================
[23:08:15] ================== pf_relay (14 subtests) ==================
[23:08:15] [PASSED] pf_rejects_guc2pf_too_short
[23:08:15] [PASSED] pf_rejects_guc2pf_too_long
[23:08:15] [PASSED] pf_rejects_guc2pf_no_payload
[23:08:15] [PASSED] pf_fails_no_payload
[23:08:15] [PASSED] pf_fails_bad_origin
[23:08:15] [PASSED] pf_fails_bad_type
[23:08:15] [PASSED] pf_txn_reports_error
[23:08:15] [PASSED] pf_txn_sends_pf2guc
[23:08:15] [PASSED] pf_sends_pf2guc
[23:08:15] [SKIPPED] pf_loopback_nop
[23:08:15] [SKIPPED] pf_loopback_echo
[23:08:15] [SKIPPED] pf_loopback_fail
[23:08:15] [SKIPPED] pf_loopback_busy
[23:08:15] [SKIPPED] pf_loopback_retry
[23:08:15] ==================== [PASSED] pf_relay =====================
[23:08:15] ================== vf_relay (3 subtests) ===================
[23:08:15] [PASSED] vf_rejects_guc2vf_too_short
[23:08:15] [PASSED] vf_rejects_guc2vf_too_long
[23:08:15] [PASSED] vf_rejects_guc2vf_no_payload
[23:08:15] ==================== [PASSED] vf_relay =====================
[23:08:15] ================ pf_gt_config (6 subtests) =================
[23:08:15] [PASSED] fair_contexts_1vf
[23:08:15] [PASSED] fair_doorbells_1vf
[23:08:15] [PASSED] fair_ggtt_1vf
[23:08:15] ====================== fair_contexts  ======================
[23:08:15] [PASSED] 1 VF
[23:08:15] [PASSED] 2 VFs
[23:08:15] [PASSED] 3 VFs
[23:08:15] [PASSED] 4 VFs
[23:08:15] [PASSED] 5 VFs
[23:08:15] [PASSED] 6 VFs
[23:08:15] [PASSED] 7 VFs
[23:08:15] [PASSED] 8 VFs
[23:08:15] [PASSED] 9 VFs
[23:08:15] [PASSED] 10 VFs
[23:08:15] [PASSED] 11 VFs
[23:08:15] [PASSED] 12 VFs
[23:08:15] [PASSED] 13 VFs
[23:08:15] [PASSED] 14 VFs
[23:08:15] [PASSED] 15 VFs
[23:08:15] [PASSED] 16 VFs
[23:08:15] [PASSED] 17 VFs
[23:08:15] [PASSED] 18 VFs
[23:08:15] [PASSED] 19 VFs
[23:08:15] [PASSED] 20 VFs
[23:08:15] [PASSED] 21 VFs
[23:08:15] [PASSED] 22 VFs
[23:08:15] [PASSED] 23 VFs
[23:08:15] [PASSED] 24 VFs
[23:08:15] [PASSED] 25 VFs
[23:08:15] [PASSED] 26 VFs
[23:08:15] [PASSED] 27 VFs
[23:08:15] [PASSED] 28 VFs
[23:08:15] [PASSED] 29 VFs
[23:08:15] [PASSED] 30 VFs
[23:08:15] [PASSED] 31 VFs
[23:08:15] [PASSED] 32 VFs
[23:08:15] [PASSED] 33 VFs
[23:08:15] [PASSED] 34 VFs
[23:08:15] [PASSED] 35 VFs
[23:08:15] [PASSED] 36 VFs
[23:08:15] [PASSED] 37 VFs
[23:08:15] [PASSED] 38 VFs
[23:08:15] [PASSED] 39 VFs
[23:08:15] [PASSED] 40 VFs
[23:08:15] [PASSED] 41 VFs
[23:08:15] [PASSED] 42 VFs
[23:08:15] [PASSED] 43 VFs
[23:08:15] [PASSED] 44 VFs
[23:08:15] [PASSED] 45 VFs
[23:08:15] [PASSED] 46 VFs
[23:08:15] [PASSED] 47 VFs
[23:08:15] [PASSED] 48 VFs
[23:08:15] [PASSED] 49 VFs
[23:08:15] [PASSED] 50 VFs
[23:08:15] [PASSED] 51 VFs
[23:08:15] [PASSED] 52 VFs
[23:08:15] [PASSED] 53 VFs
[23:08:15] [PASSED] 54 VFs
[23:08:15] [PASSED] 55 VFs
[23:08:15] [PASSED] 56 VFs
[23:08:15] [PASSED] 57 VFs
[23:08:15] [PASSED] 58 VFs
[23:08:15] [PASSED] 59 VFs
[23:08:15] [PASSED] 60 VFs
[23:08:15] [PASSED] 61 VFs
[23:08:15] [PASSED] 62 VFs
[23:08:15] [PASSED] 63 VFs
[23:08:15] ================== [PASSED] fair_contexts ==================
[23:08:15] ===================== fair_doorbells  ======================
[23:08:15] [PASSED] 1 VF
[23:08:15] [PASSED] 2 VFs
[23:08:15] [PASSED] 3 VFs
[23:08:15] [PASSED] 4 VFs
[23:08:15] [PASSED] 5 VFs
[23:08:15] [PASSED] 6 VFs
[23:08:15] [PASSED] 7 VFs
[23:08:15] [PASSED] 8 VFs
[23:08:15] [PASSED] 9 VFs
[23:08:15] [PASSED] 10 VFs
[23:08:15] [PASSED] 11 VFs
[23:08:15] [PASSED] 12 VFs
[23:08:15] [PASSED] 13 VFs
[23:08:15] [PASSED] 14 VFs
[23:08:15] [PASSED] 15 VFs
[23:08:15] [PASSED] 16 VFs
[23:08:15] [PASSED] 17 VFs
[23:08:15] [PASSED] 18 VFs
[23:08:15] [PASSED] 19 VFs
[23:08:15] [PASSED] 20 VFs
[23:08:15] [PASSED] 21 VFs
[23:08:15] [PASSED] 22 VFs
[23:08:15] [PASSED] 23 VFs
[23:08:15] [PASSED] 24 VFs
[23:08:15] [PASSED] 25 VFs
[23:08:15] [PASSED] 26 VFs
[23:08:15] [PASSED] 27 VFs
[23:08:15] [PASSED] 28 VFs
[23:08:15] [PASSED] 29 VFs
[23:08:15] [PASSED] 30 VFs
[23:08:15] [PASSED] 31 VFs
[23:08:15] [PASSED] 32 VFs
[23:08:15] [PASSED] 33 VFs
[23:08:15] [PASSED] 34 VFs
[23:08:15] [PASSED] 35 VFs
[23:08:15] [PASSED] 36 VFs
[23:08:15] [PASSED] 37 VFs
[23:08:15] [PASSED] 38 VFs
[23:08:15] [PASSED] 39 VFs
[23:08:15] [PASSED] 40 VFs
[23:08:15] [PASSED] 41 VFs
[23:08:15] [PASSED] 42 VFs
[23:08:15] [PASSED] 43 VFs
[23:08:15] [PASSED] 44 VFs
[23:08:15] [PASSED] 45 VFs
[23:08:15] [PASSED] 46 VFs
[23:08:15] [PASSED] 47 VFs
[23:08:15] [PASSED] 48 VFs
[23:08:15] [PASSED] 49 VFs
[23:08:15] [PASSED] 50 VFs
[23:08:15] [PASSED] 51 VFs
[23:08:15] [PASSED] 52 VFs
[23:08:15] [PASSED] 53 VFs
[23:08:15] [PASSED] 54 VFs
[23:08:15] [PASSED] 55 VFs
[23:08:15] [PASSED] 56 VFs
[23:08:15] [PASSED] 57 VFs
[23:08:15] [PASSED] 58 VFs
[23:08:15] [PASSED] 59 VFs
[23:08:15] [PASSED] 60 VFs
[23:08:15] [PASSED] 61 VFs
[23:08:15] [PASSED] 62 VFs
[23:08:15] [PASSED] 63 VFs
[23:08:15] ================= [PASSED] fair_doorbells ==================
[23:08:15] ======================== fair_ggtt  ========================
[23:08:15] [PASSED] 1 VF
[23:08:15] [PASSED] 2 VFs
[23:08:15] [PASSED] 3 VFs
[23:08:15] [PASSED] 4 VFs
[23:08:15] [PASSED] 5 VFs
[23:08:15] [PASSED] 6 VFs
[23:08:15] [PASSED] 7 VFs
[23:08:15] [PASSED] 8 VFs
[23:08:15] [PASSED] 9 VFs
[23:08:15] [PASSED] 10 VFs
[23:08:15] [PASSED] 11 VFs
[23:08:15] [PASSED] 12 VFs
[23:08:15] [PASSED] 13 VFs
[23:08:15] [PASSED] 14 VFs
[23:08:15] [PASSED] 15 VFs
[23:08:15] [PASSED] 16 VFs
[23:08:15] [PASSED] 17 VFs
[23:08:15] [PASSED] 18 VFs
[23:08:15] [PASSED] 19 VFs
[23:08:15] [PASSED] 20 VFs
[23:08:15] [PASSED] 21 VFs
[23:08:15] [PASSED] 22 VFs
[23:08:15] [PASSED] 23 VFs
[23:08:15] [PASSED] 24 VFs
[23:08:15] [PASSED] 25 VFs
[23:08:15] [PASSED] 26 VFs
[23:08:15] [PASSED] 27 VFs
[23:08:15] [PASSED] 28 VFs
[23:08:15] [PASSED] 29 VFs
[23:08:15] [PASSED] 30 VFs
[23:08:15] [PASSED] 31 VFs
[23:08:15] [PASSED] 32 VFs
[23:08:15] [PASSED] 33 VFs
[23:08:15] [PASSED] 34 VFs
[23:08:15] [PASSED] 35 VFs
[23:08:15] [PASSED] 36 VFs
[23:08:15] [PASSED] 37 VFs
[23:08:15] [PASSED] 38 VFs
[23:08:15] [PASSED] 39 VFs
[23:08:15] [PASSED] 40 VFs
[23:08:15] [PASSED] 41 VFs
[23:08:15] [PASSED] 42 VFs
[23:08:15] [PASSED] 43 VFs
[23:08:15] [PASSED] 44 VFs
[23:08:15] [PASSED] 45 VFs
[23:08:15] [PASSED] 46 VFs
[23:08:15] [PASSED] 47 VFs
[23:08:15] [PASSED] 48 VFs
[23:08:15] [PASSED] 49 VFs
[23:08:15] [PASSED] 50 VFs
[23:08:15] [PASSED] 51 VFs
[23:08:15] [PASSED] 52 VFs
[23:08:15] [PASSED] 53 VFs
[23:08:15] [PASSED] 54 VFs
[23:08:15] [PASSED] 55 VFs
[23:08:15] [PASSED] 56 VFs
[23:08:15] [PASSED] 57 VFs
[23:08:15] [PASSED] 58 VFs
[23:08:15] [PASSED] 59 VFs
[23:08:15] [PASSED] 60 VFs
[23:08:15] [PASSED] 61 VFs
[23:08:15] [PASSED] 62 VFs
[23:08:15] [PASSED] 63 VFs
[23:08:15] ==================== [PASSED] fair_ggtt ====================
[23:08:15] ================== [PASSED] pf_gt_config ===================
[23:08:15] ===================== lmtt (1 subtest) =====================
[23:08:15] ======================== test_ops  =========================
[23:08:15] [PASSED] 2-level
[23:08:15] [PASSED] multi-level
[23:08:15] ==================== [PASSED] test_ops =====================
[23:08:15] ====================== [PASSED] lmtt =======================
[23:08:15] ================= pf_service (11 subtests) =================
[23:08:15] [PASSED] pf_negotiate_any
[23:08:15] [PASSED] pf_negotiate_base_match
[23:08:15] [PASSED] pf_negotiate_base_newer
[23:08:15] [PASSED] pf_negotiate_base_next
[23:08:15] [SKIPPED] pf_negotiate_base_older
[23:08:15] [PASSED] pf_negotiate_base_prev
[23:08:15] [PASSED] pf_negotiate_latest_match
[23:08:15] [PASSED] pf_negotiate_latest_newer
[23:08:15] [PASSED] pf_negotiate_latest_next
[23:08:15] [SKIPPED] pf_negotiate_latest_older
[23:08:15] [SKIPPED] pf_negotiate_latest_prev
[23:08:15] =================== [PASSED] pf_service ====================
[23:08:15] ================= xe_guc_g2g (2 subtests) ==================
[23:08:15] ============== xe_live_guc_g2g_kunit_default  ==============
[23:08:15] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[23:08:15] ============== xe_live_guc_g2g_kunit_allmem  ===============
[23:08:15] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[23:08:15] =================== [SKIPPED] xe_guc_g2g ===================
[23:08:15] =================== xe_mocs (2 subtests) ===================
[23:08:15] ================ xe_live_mocs_kernel_kunit  ================
[23:08:15] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[23:08:15] ================ xe_live_mocs_reset_kunit  =================
[23:08:15] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[23:08:15] ==================== [SKIPPED] xe_mocs =====================
[23:08:15] ================= xe_migrate (2 subtests) ==================
[23:08:15] ================= xe_migrate_sanity_kunit  =================
[23:08:15] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[23:08:15] ================== xe_validate_ccs_kunit  ==================
[23:08:15] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[23:08:15] =================== [SKIPPED] xe_migrate ===================
[23:08:15] ================== xe_dma_buf (1 subtest) ==================
[23:08:15] ==================== xe_dma_buf_kunit  =====================
[23:08:15] ================ [SKIPPED] xe_dma_buf_kunit ================
[23:08:15] =================== [SKIPPED] xe_dma_buf ===================
[23:08:15] ================= xe_bo_shrink (1 subtest) =================
[23:08:15] =================== xe_bo_shrink_kunit  ====================
[23:08:15] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[23:08:15] ================== [SKIPPED] xe_bo_shrink ==================
[23:08:15] ==================== xe_bo (2 subtests) ====================
[23:08:15] ================== xe_ccs_migrate_kunit  ===================
[23:08:15] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[23:08:15] ==================== xe_bo_evict_kunit  ====================
[23:08:15] =============== [SKIPPED] xe_bo_evict_kunit ================
[23:08:15] ===================== [SKIPPED] xe_bo ======================
[23:08:15] ==================== args (13 subtests) ====================
[23:08:15] [PASSED] count_args_test
[23:08:15] [PASSED] call_args_example
[23:08:15] [PASSED] call_args_test
[23:08:15] [PASSED] drop_first_arg_example
[23:08:15] [PASSED] drop_first_arg_test
[23:08:15] [PASSED] first_arg_example
[23:08:15] [PASSED] first_arg_test
[23:08:15] [PASSED] last_arg_example
[23:08:15] [PASSED] last_arg_test
[23:08:15] [PASSED] pick_arg_example
[23:08:15] [PASSED] if_args_example
[23:08:15] [PASSED] if_args_test
[23:08:15] [PASSED] sep_comma_example
[23:08:15] ====================== [PASSED] args =======================
[23:08:15] =================== xe_pci (3 subtests) ====================
[23:08:15] ==================== check_graphics_ip  ====================
[23:08:15] [PASSED] 12.00 Xe_LP
[23:08:15] [PASSED] 12.10 Xe_LP+
[23:08:15] [PASSED] 12.55 Xe_HPG
[23:08:15] [PASSED] 12.60 Xe_HPC
[23:08:15] [PASSED] 12.70 Xe_LPG
[23:08:15] [PASSED] 12.71 Xe_LPG
[23:08:15] [PASSED] 12.74 Xe_LPG+
[23:08:15] [PASSED] 20.01 Xe2_HPG
[23:08:15] [PASSED] 20.02 Xe2_HPG
[23:08:15] [PASSED] 20.04 Xe2_LPG
[23:08:15] [PASSED] 30.00 Xe3_LPG
[23:08:15] [PASSED] 30.01 Xe3_LPG
[23:08:15] [PASSED] 30.03 Xe3_LPG
[23:08:15] [PASSED] 30.04 Xe3_LPG
[23:08:15] [PASSED] 30.05 Xe3_LPG
[23:08:15] [PASSED] 35.11 Xe3p_XPC
[23:08:15] ================ [PASSED] check_graphics_ip ================
[23:08:15] ===================== check_media_ip  ======================
[23:08:15] [PASSED] 12.00 Xe_M
[23:08:15] [PASSED] 12.55 Xe_HPM
[23:08:15] [PASSED] 13.00 Xe_LPM+
[23:08:15] [PASSED] 13.01 Xe2_HPM
[23:08:15] [PASSED] 20.00 Xe2_LPM
[23:08:15] [PASSED] 30.00 Xe3_LPM
[23:08:15] [PASSED] 30.02 Xe3_LPM
[23:08:15] [PASSED] 35.00 Xe3p_LPM
[23:08:15] [PASSED] 35.03 Xe3p_HPM
[23:08:15] ================= [PASSED] check_media_ip ==================
[23:08:15] =================== check_platform_desc  ===================
[23:08:15] [PASSED] 0x9A60 (TIGERLAKE)
[23:08:15] [PASSED] 0x9A68 (TIGERLAKE)
[23:08:15] [PASSED] 0x9A70 (TIGERLAKE)
[23:08:15] [PASSED] 0x9A40 (TIGERLAKE)
[23:08:15] [PASSED] 0x9A49 (TIGERLAKE)
[23:08:15] [PASSED] 0x9A59 (TIGERLAKE)
[23:08:15] [PASSED] 0x9A78 (TIGERLAKE)
[23:08:15] [PASSED] 0x9AC0 (TIGERLAKE)
[23:08:15] [PASSED] 0x9AC9 (TIGERLAKE)
[23:08:15] [PASSED] 0x9AD9 (TIGERLAKE)
[23:08:15] [PASSED] 0x9AF8 (TIGERLAKE)
[23:08:15] [PASSED] 0x4C80 (ROCKETLAKE)
[23:08:15] [PASSED] 0x4C8A (ROCKETLAKE)
[23:08:15] [PASSED] 0x4C8B (ROCKETLAKE)
[23:08:15] [PASSED] 0x4C8C (ROCKETLAKE)
[23:08:15] [PASSED] 0x4C90 (ROCKETLAKE)
[23:08:15] [PASSED] 0x4C9A (ROCKETLAKE)
[23:08:15] [PASSED] 0x4680 (ALDERLAKE_S)
[23:08:15] [PASSED] 0x4682 (ALDERLAKE_S)
[23:08:15] [PASSED] 0x4688 (ALDERLAKE_S)
[23:08:15] [PASSED] 0x468A (ALDERLAKE_S)
[23:08:15] [PASSED] 0x468B (ALDERLAKE_S)
[23:08:15] [PASSED] 0x4690 (ALDERLAKE_S)
[23:08:15] [PASSED] 0x4692 (ALDERLAKE_S)
[23:08:15] [PASSED] 0x4693 (ALDERLAKE_S)
[23:08:15] [PASSED] 0x46A0 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46A1 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46A2 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46A3 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46A6 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46A8 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46AA (ALDERLAKE_P)
[23:08:15] [PASSED] 0x462A (ALDERLAKE_P)
[23:08:15] [PASSED] 0x4626 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x4628 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[23:08:15] [PASSED] 0x46B0 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46B1 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46B2 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46B3 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46C0 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46C1 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46C2 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46C3 (ALDERLAKE_P)
[23:08:15] [PASSED] 0x46D0 (ALDERLAKE_N)
[23:08:15] [PASSED] 0x46D1 (ALDERLAKE_N)
[23:08:15] [PASSED] 0x46D2 (ALDERLAKE_N)
[23:08:15] [PASSED] 0x46D3 (ALDERLAKE_N)
[23:08:15] [PASSED] 0x46D4 (ALDERLAKE_N)
[23:08:15] [PASSED] 0xA721 (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7A1 (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7A9 (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7AC (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7AD (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA720 (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7A0 (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7A8 (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7AA (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA7AB (ALDERLAKE_P)
[23:08:15] [PASSED] 0xA780 (ALDERLAKE_S)
[23:08:15] [PASSED] 0xA781 (ALDERLAKE_S)
[23:08:15] [PASSED] 0xA782 (ALDERLAKE_S)
[23:08:15] [PASSED] 0xA783 (ALDERLAKE_S)
[23:08:15] [PASSED] 0xA788 (ALDERLAKE_S)
[23:08:15] [PASSED] 0xA789 (ALDERLAKE_S)
[23:08:15] [PASSED] 0xA78A (ALDERLAKE_S)
[23:08:15] [PASSED] 0xA78B (ALDERLAKE_S)
[23:08:15] [PASSED] 0x4905 (DG1)
[23:08:15] [PASSED] 0x4906 (DG1)
[23:08:15] [PASSED] 0x4907 (DG1)
[23:08:15] [PASSED] 0x4908 (DG1)
[23:08:15] [PASSED] 0x4909 (DG1)
[23:08:15] [PASSED] 0x56C0 (DG2)
[23:08:15] [PASSED] 0x56C2 (DG2)
[23:08:15] [PASSED] 0x56C1 (DG2)
[23:08:15] [PASSED] 0x7D51 (METEORLAKE)
[23:08:15] [PASSED] 0x7DD1 (METEORLAKE)
[23:08:15] [PASSED] 0x7D41 (METEORLAKE)
[23:08:15] [PASSED] 0x7D67 (METEORLAKE)
[23:08:15] [PASSED] 0xB640 (METEORLAKE)
[23:08:15] [PASSED] 0x56A0 (DG2)
[23:08:15] [PASSED] 0x56A1 (DG2)
[23:08:15] [PASSED] 0x56A2 (DG2)
[23:08:15] [PASSED] 0x56BE (DG2)
[23:08:15] [PASSED] 0x56BF (DG2)
[23:08:15] [PASSED] 0x5690 (DG2)
[23:08:15] [PASSED] 0x5691 (DG2)
[23:08:15] [PASSED] 0x5692 (DG2)
[23:08:15] [PASSED] 0x56A5 (DG2)
[23:08:15] [PASSED] 0x56A6 (DG2)
[23:08:15] [PASSED] 0x56B0 (DG2)
[23:08:15] [PASSED] 0x56B1 (DG2)
[23:08:15] [PASSED] 0x56BA (DG2)
[23:08:15] [PASSED] 0x56BB (DG2)
[23:08:15] [PASSED] 0x56BC (DG2)
[23:08:15] [PASSED] 0x56BD (DG2)
[23:08:15] [PASSED] 0x5693 (DG2)
[23:08:15] [PASSED] 0x5694 (DG2)
[23:08:15] [PASSED] 0x5695 (DG2)
[23:08:15] [PASSED] 0x56A3 (DG2)
[23:08:15] [PASSED] 0x56A4 (DG2)
[23:08:15] [PASSED] 0x56B2 (DG2)
[23:08:15] [PASSED] 0x56B3 (DG2)
[23:08:15] [PASSED] 0x5696 (DG2)
[23:08:15] [PASSED] 0x5697 (DG2)
[23:08:15] [PASSED] 0xB69 (PVC)
[23:08:15] [PASSED] 0xB6E (PVC)
[23:08:15] [PASSED] 0xBD4 (PVC)
[23:08:15] [PASSED] 0xBD5 (PVC)
[23:08:15] [PASSED] 0xBD6 (PVC)
[23:08:15] [PASSED] 0xBD7 (PVC)
[23:08:15] [PASSED] 0xBD8 (PVC)
[23:08:15] [PASSED] 0xBD9 (PVC)
[23:08:15] [PASSED] 0xBDA (PVC)
[23:08:15] [PASSED] 0xBDB (PVC)
[23:08:15] [PASSED] 0xBE0 (PVC)
[23:08:15] [PASSED] 0xBE1 (PVC)
[23:08:15] [PASSED] 0xBE5 (PVC)
[23:08:15] [PASSED] 0x7D40 (METEORLAKE)
[23:08:15] [PASSED] 0x7D45 (METEORLAKE)
[23:08:15] [PASSED] 0x7D55 (METEORLAKE)
[23:08:15] [PASSED] 0x7D60 (METEORLAKE)
[23:08:15] [PASSED] 0x7DD5 (METEORLAKE)
[23:08:15] [PASSED] 0x6420 (LUNARLAKE)
[23:08:15] [PASSED] 0x64A0 (LUNARLAKE)
[23:08:15] [PASSED] 0x64B0 (LUNARLAKE)
[23:08:15] [PASSED] 0xE202 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE209 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE20B (BATTLEMAGE)
[23:08:15] [PASSED] 0xE20C (BATTLEMAGE)
[23:08:15] [PASSED] 0xE20D (BATTLEMAGE)
[23:08:15] [PASSED] 0xE210 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE211 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE212 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE216 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE220 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE221 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE222 (BATTLEMAGE)
[23:08:15] [PASSED] 0xE223 (BATTLEMAGE)
[23:08:15] [PASSED] 0xB080 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB081 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB082 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB083 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB084 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB085 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB086 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB087 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB08F (PANTHERLAKE)
[23:08:15] [PASSED] 0xB090 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB0A0 (PANTHERLAKE)
[23:08:15] [PASSED] 0xB0B0 (PANTHERLAKE)
[23:08:15] [PASSED] 0xFD80 (PANTHERLAKE)
[23:08:15] [PASSED] 0xFD81 (PANTHERLAKE)
[23:08:15] [PASSED] 0xD740 (NOVALAKE_S)
[23:08:15] [PASSED] 0xD741 (NOVALAKE_S)
[23:08:15] [PASSED] 0xD742 (NOVALAKE_S)
[23:08:15] [PASSED] 0xD743 (NOVALAKE_S)
[23:08:15] [PASSED] 0xD744 (NOVALAKE_S)
[23:08:15] [PASSED] 0xD745 (NOVALAKE_S)
[23:08:15] [PASSED] 0x674C (CRESCENTISLAND)
[23:08:15] =============== [PASSED] check_platform_desc ===============
[23:08:15] ===================== [PASSED] xe_pci ======================
[23:08:15] =================== xe_rtp (2 subtests) ====================
[23:08:15] =============== xe_rtp_process_to_sr_tests  ================
[23:08:15] [PASSED] coalesce-same-reg
[23:08:15] [PASSED] no-match-no-add
[23:08:15] [PASSED] match-or
[23:08:15] [PASSED] match-or-xfail
[23:08:15] [PASSED] no-match-no-add-multiple-rules
[23:08:15] [PASSED] two-regs-two-entries
[23:08:15] [PASSED] clr-one-set-other
[23:08:15] [PASSED] set-field
[23:08:15] [PASSED] conflict-duplicate
[23:08:15] [PASSED] conflict-not-disjoint
[23:08:15] [PASSED] conflict-reg-type
[23:08:15] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[23:08:15] ================== xe_rtp_process_tests  ===================
[23:08:15] [PASSED] active1
[23:08:15] [PASSED] active2
[23:08:15] [PASSED] active-inactive
[23:08:15] [PASSED] inactive-active
[23:08:15] [PASSED] inactive-1st_or_active-inactive
[23:08:15] [PASSED] inactive-2nd_or_active-inactive
[23:08:15] [PASSED] inactive-last_or_active-inactive
[23:08:15] [PASSED] inactive-no_or_active-inactive
[23:08:15] ============== [PASSED] xe_rtp_process_tests ===============
[23:08:15] ===================== [PASSED] xe_rtp ======================
[23:08:15] ==================== xe_wa (1 subtest) =====================
[23:08:15] ======================== xe_wa_gt  =========================
[23:08:15] [PASSED] TIGERLAKE B0
[23:08:15] [PASSED] DG1 A0
[23:08:15] [PASSED] DG1 B0
[23:08:15] [PASSED] ALDERLAKE_S A0
[23:08:15] [PASSED] ALDERLAKE_S B0
[23:08:15] [PASSED] ALDERLAKE_S C0
[23:08:15] [PASSED] ALDERLAKE_S D0
[23:08:15] [PASSED] ALDERLAKE_P A0
[23:08:15] [PASSED] ALDERLAKE_P B0
[23:08:15] [PASSED] ALDERLAKE_P C0
[23:08:15] [PASSED] ALDERLAKE_S RPLS D0
[23:08:15] [PASSED] ALDERLAKE_P RPLU E0
[23:08:15] [PASSED] DG2 G10 C0
[23:08:15] [PASSED] DG2 G11 B1
[23:08:15] [PASSED] DG2 G12 A1
[23:08:15] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:08:15] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:08:15] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[23:08:15] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[23:08:15] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[23:08:15] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[23:08:15] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[23:08:15] ==================== [PASSED] xe_wa_gt =====================
[23:08:15] ====================== [PASSED] xe_wa ======================
[23:08:15] ============================================================
[23:08:15] Testing complete. Ran 512 tests: passed: 494, skipped: 18
[23:08:15] Elapsed time: 36.175s total, 4.225s configuring, 31.477s building, 0.460s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[23:08:16] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:08:17] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:08:43] Starting KUnit Kernel (1/1)...
[23:08:43] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:08:43] ============ drm_test_pick_cmdline (2 subtests) ============
[23:08:43] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[23:08:43] =============== drm_test_pick_cmdline_named  ===============
[23:08:43] [PASSED] NTSC
[23:08:43] [PASSED] NTSC-J
[23:08:43] [PASSED] PAL
[23:08:43] [PASSED] PAL-M
[23:08:43] =========== [PASSED] drm_test_pick_cmdline_named ===========
[23:08:43] ============== [PASSED] drm_test_pick_cmdline ==============
[23:08:43] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[23:08:43] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[23:08:43] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[23:08:43] =========== drm_validate_clone_mode (2 subtests) ===========
[23:08:43] ============== drm_test_check_in_clone_mode  ===============
[23:08:43] [PASSED] in_clone_mode
[23:08:43] [PASSED] not_in_clone_mode
[23:08:43] ========== [PASSED] drm_test_check_in_clone_mode ===========
[23:08:43] =============== drm_test_check_valid_clones  ===============
[23:08:43] [PASSED] not_in_clone_mode
[23:08:43] [PASSED] valid_clone
[23:08:43] [PASSED] invalid_clone
[23:08:43] =========== [PASSED] drm_test_check_valid_clones ===========
[23:08:43] ============= [PASSED] drm_validate_clone_mode =============
[23:08:43] ============= drm_validate_modeset (1 subtest) =============
[23:08:43] [PASSED] drm_test_check_connector_changed_modeset
[23:08:43] ============== [PASSED] drm_validate_modeset ===============
[23:08:43] ====== drm_test_bridge_get_current_state (2 subtests) ======
[23:08:43] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[23:08:43] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[23:08:43] ======== [PASSED] drm_test_bridge_get_current_state ========
[23:08:43] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[23:08:43] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[23:08:43] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[23:08:43] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[23:08:43] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[23:08:43] ============== drm_bridge_alloc (2 subtests) ===============
[23:08:43] [PASSED] drm_test_drm_bridge_alloc_basic
[23:08:43] [PASSED] drm_test_drm_bridge_alloc_get_put
[23:08:43] ================ [PASSED] drm_bridge_alloc =================
[23:08:43] ================== drm_buddy (8 subtests) ==================
[23:08:43] [PASSED] drm_test_buddy_alloc_limit
[23:08:43] [PASSED] drm_test_buddy_alloc_optimistic
[23:08:43] [PASSED] drm_test_buddy_alloc_pessimistic
[23:08:43] [PASSED] drm_test_buddy_alloc_pathological
[23:08:43] [PASSED] drm_test_buddy_alloc_contiguous
[23:08:43] [PASSED] drm_test_buddy_alloc_clear
[23:08:43] [PASSED] drm_test_buddy_alloc_range_bias
[23:08:43] [PASSED] drm_test_buddy_fragmentation_performance
[23:08:43] ==================== [PASSED] drm_buddy ====================
[23:08:43] ============= drm_cmdline_parser (40 subtests) =============
[23:08:43] [PASSED] drm_test_cmdline_force_d_only
[23:08:43] [PASSED] drm_test_cmdline_force_D_only_dvi
[23:08:43] [PASSED] drm_test_cmdline_force_D_only_hdmi
[23:08:43] [PASSED] drm_test_cmdline_force_D_only_not_digital
[23:08:43] [PASSED] drm_test_cmdline_force_e_only
[23:08:43] [PASSED] drm_test_cmdline_res
[23:08:43] [PASSED] drm_test_cmdline_res_vesa
[23:08:43] [PASSED] drm_test_cmdline_res_vesa_rblank
[23:08:43] [PASSED] drm_test_cmdline_res_rblank
[23:08:43] [PASSED] drm_test_cmdline_res_bpp
[23:08:43] [PASSED] drm_test_cmdline_res_refresh
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[23:08:43] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[23:08:43] [PASSED] drm_test_cmdline_res_margins_force_on
[23:08:43] [PASSED] drm_test_cmdline_res_vesa_margins
[23:08:43] [PASSED] drm_test_cmdline_name
[23:08:43] [PASSED] drm_test_cmdline_name_bpp
[23:08:43] [PASSED] drm_test_cmdline_name_option
[23:08:43] [PASSED] drm_test_cmdline_name_bpp_option
[23:08:43] [PASSED] drm_test_cmdline_rotate_0
[23:08:43] [PASSED] drm_test_cmdline_rotate_90
[23:08:43] [PASSED] drm_test_cmdline_rotate_180
[23:08:43] [PASSED] drm_test_cmdline_rotate_270
[23:08:43] [PASSED] drm_test_cmdline_hmirror
[23:08:43] [PASSED] drm_test_cmdline_vmirror
[23:08:43] [PASSED] drm_test_cmdline_margin_options
[23:08:43] [PASSED] drm_test_cmdline_multiple_options
[23:08:43] [PASSED] drm_test_cmdline_bpp_extra_and_option
[23:08:43] [PASSED] drm_test_cmdline_extra_and_option
[23:08:43] [PASSED] drm_test_cmdline_freestanding_options
[23:08:43] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[23:08:43] [PASSED] drm_test_cmdline_panel_orientation
[23:08:43] ================ drm_test_cmdline_invalid  =================
[23:08:43] [PASSED] margin_only
[23:08:43] [PASSED] interlace_only
[23:08:43] [PASSED] res_missing_x
[23:08:43] [PASSED] res_missing_y
[23:08:43] [PASSED] res_bad_y
[23:08:43] [PASSED] res_missing_y_bpp
[23:08:43] [PASSED] res_bad_bpp
[23:08:43] [PASSED] res_bad_refresh
[23:08:43] [PASSED] res_bpp_refresh_force_on_off
[23:08:43] [PASSED] res_invalid_mode
[23:08:43] [PASSED] res_bpp_wrong_place_mode
[23:08:43] [PASSED] name_bpp_refresh
[23:08:43] [PASSED] name_refresh
[23:08:43] [PASSED] name_refresh_wrong_mode
[23:08:43] [PASSED] name_refresh_invalid_mode
[23:08:43] [PASSED] rotate_multiple
[23:08:43] [PASSED] rotate_invalid_val
[23:08:43] [PASSED] rotate_truncated
[23:08:43] [PASSED] invalid_option
[23:08:43] [PASSED] invalid_tv_option
[23:08:43] [PASSED] truncated_tv_option
[23:08:43] ============ [PASSED] drm_test_cmdline_invalid =============
[23:08:43] =============== drm_test_cmdline_tv_options  ===============
[23:08:43] [PASSED] NTSC
[23:08:43] [PASSED] NTSC_443
[23:08:43] [PASSED] NTSC_J
[23:08:43] [PASSED] PAL
[23:08:43] [PASSED] PAL_M
[23:08:43] [PASSED] PAL_N
[23:08:43] [PASSED] SECAM
[23:08:43] [PASSED] MONO_525
[23:08:43] [PASSED] MONO_625
[23:08:43] =========== [PASSED] drm_test_cmdline_tv_options ===========
[23:08:43] =============== [PASSED] drm_cmdline_parser ================
[23:08:43] ========== drmm_connector_hdmi_init (20 subtests) ==========
[23:08:43] [PASSED] drm_test_connector_hdmi_init_valid
[23:08:43] [PASSED] drm_test_connector_hdmi_init_bpc_8
[23:08:43] [PASSED] drm_test_connector_hdmi_init_bpc_10
[23:08:43] [PASSED] drm_test_connector_hdmi_init_bpc_12
[23:08:43] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[23:08:43] [PASSED] drm_test_connector_hdmi_init_bpc_null
[23:08:43] [PASSED] drm_test_connector_hdmi_init_formats_empty
[23:08:43] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[23:08:43] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[23:08:43] [PASSED] supported_formats=0x9 yuv420_allowed=1
[23:08:43] [PASSED] supported_formats=0x9 yuv420_allowed=0
[23:08:43] [PASSED] supported_formats=0x3 yuv420_allowed=1
[23:08:43] [PASSED] supported_formats=0x3 yuv420_allowed=0
[23:08:43] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:08:43] [PASSED] drm_test_connector_hdmi_init_null_ddc
[23:08:43] [PASSED] drm_test_connector_hdmi_init_null_product
[23:08:43] [PASSED] drm_test_connector_hdmi_init_null_vendor
[23:08:43] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[23:08:43] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[23:08:43] [PASSED] drm_test_connector_hdmi_init_product_valid
[23:08:43] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[23:08:43] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[23:08:43] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[23:08:43] ========= drm_test_connector_hdmi_init_type_valid  =========
[23:08:43] [PASSED] HDMI-A
[23:08:43] [PASSED] HDMI-B
[23:08:43] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[23:08:43] ======== drm_test_connector_hdmi_init_type_invalid  ========
[23:08:43] [PASSED] Unknown
[23:08:43] [PASSED] VGA
[23:08:43] [PASSED] DVI-I
[23:08:43] [PASSED] DVI-D
[23:08:43] [PASSED] DVI-A
[23:08:43] [PASSED] Composite
[23:08:43] [PASSED] SVIDEO
[23:08:43] [PASSED] LVDS
[23:08:43] [PASSED] Component
[23:08:43] [PASSED] DIN
[23:08:43] [PASSED] DP
[23:08:43] [PASSED] TV
[23:08:43] [PASSED] eDP
[23:08:43] [PASSED] Virtual
[23:08:43] [PASSED] DSI
[23:08:43] [PASSED] DPI
[23:08:43] [PASSED] Writeback
[23:08:43] [PASSED] SPI
[23:08:43] [PASSED] USB
[23:08:43] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[23:08:43] ============ [PASSED] drmm_connector_hdmi_init =============
[23:08:43] ============= drmm_connector_init (3 subtests) =============
[23:08:43] [PASSED] drm_test_drmm_connector_init
[23:08:43] [PASSED] drm_test_drmm_connector_init_null_ddc
[23:08:43] ========= drm_test_drmm_connector_init_type_valid  =========
[23:08:43] [PASSED] Unknown
[23:08:43] [PASSED] VGA
[23:08:43] [PASSED] DVI-I
[23:08:43] [PASSED] DVI-D
[23:08:43] [PASSED] DVI-A
[23:08:43] [PASSED] Composite
[23:08:43] [PASSED] SVIDEO
[23:08:43] [PASSED] LVDS
[23:08:43] [PASSED] Component
[23:08:43] [PASSED] DIN
[23:08:43] [PASSED] DP
[23:08:43] [PASSED] HDMI-A
[23:08:43] [PASSED] HDMI-B
[23:08:43] [PASSED] TV
[23:08:43] [PASSED] eDP
[23:08:43] [PASSED] Virtual
[23:08:43] [PASSED] DSI
[23:08:43] [PASSED] DPI
[23:08:43] [PASSED] Writeback
[23:08:43] [PASSED] SPI
[23:08:43] [PASSED] USB
[23:08:43] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[23:08:43] =============== [PASSED] drmm_connector_init ===============
[23:08:43] ========= drm_connector_dynamic_init (6 subtests) ==========
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_init
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_init_properties
[23:08:43] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[23:08:43] [PASSED] Unknown
[23:08:43] [PASSED] VGA
[23:08:43] [PASSED] DVI-I
[23:08:43] [PASSED] DVI-D
[23:08:43] [PASSED] DVI-A
[23:08:43] [PASSED] Composite
[23:08:43] [PASSED] SVIDEO
[23:08:43] [PASSED] LVDS
[23:08:43] [PASSED] Component
[23:08:43] [PASSED] DIN
[23:08:43] [PASSED] DP
[23:08:43] [PASSED] HDMI-A
[23:08:43] [PASSED] HDMI-B
[23:08:43] [PASSED] TV
[23:08:43] [PASSED] eDP
[23:08:43] [PASSED] Virtual
[23:08:43] [PASSED] DSI
[23:08:43] [PASSED] DPI
[23:08:43] [PASSED] Writeback
[23:08:43] [PASSED] SPI
[23:08:43] [PASSED] USB
[23:08:43] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[23:08:43] ======== drm_test_drm_connector_dynamic_init_name  =========
[23:08:43] [PASSED] Unknown
[23:08:43] [PASSED] VGA
[23:08:43] [PASSED] DVI-I
[23:08:43] [PASSED] DVI-D
[23:08:43] [PASSED] DVI-A
[23:08:43] [PASSED] Composite
[23:08:43] [PASSED] SVIDEO
[23:08:43] [PASSED] LVDS
[23:08:43] [PASSED] Component
[23:08:43] [PASSED] DIN
[23:08:43] [PASSED] DP
[23:08:43] [PASSED] HDMI-A
[23:08:43] [PASSED] HDMI-B
[23:08:43] [PASSED] TV
[23:08:43] [PASSED] eDP
[23:08:43] [PASSED] Virtual
[23:08:43] [PASSED] DSI
[23:08:43] [PASSED] DPI
[23:08:43] [PASSED] Writeback
[23:08:43] [PASSED] SPI
[23:08:43] [PASSED] USB
[23:08:43] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[23:08:43] =========== [PASSED] drm_connector_dynamic_init ============
[23:08:43] ==== drm_connector_dynamic_register_early (4 subtests) =====
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[23:08:43] ====== [PASSED] drm_connector_dynamic_register_early =======
[23:08:43] ======= drm_connector_dynamic_register (7 subtests) ========
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[23:08:43] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[23:08:43] ========= [PASSED] drm_connector_dynamic_register ==========
[23:08:43] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[23:08:43] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[23:08:43] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[23:08:43] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[23:08:43] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[23:08:43] ========== drm_test_get_tv_mode_from_name_valid  ===========
[23:08:43] [PASSED] NTSC
[23:08:43] [PASSED] NTSC-443
[23:08:43] [PASSED] NTSC-J
[23:08:43] [PASSED] PAL
[23:08:43] [PASSED] PAL-M
[23:08:43] [PASSED] PAL-N
[23:08:43] [PASSED] SECAM
[23:08:43] [PASSED] Mono
[23:08:43] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[23:08:43] [PASSED] drm_test_get_tv_mode_from_name_truncated
[23:08:43] ============ [PASSED] drm_get_tv_mode_from_name ============
[23:08:43] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[23:08:43] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[23:08:43] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[23:08:43] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[23:08:43] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[23:08:43] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[23:08:43] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[23:08:43] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[23:08:43] [PASSED] VIC 96
[23:08:43] [PASSED] VIC 97
[23:08:43] [PASSED] VIC 101
[23:08:43] [PASSED] VIC 102
[23:08:43] [PASSED] VIC 106
[23:08:43] [PASSED] VIC 107
[23:08:43] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[23:08:43] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[23:08:43] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[23:08:43] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[23:08:43] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[23:08:43] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[23:08:43] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[23:08:43] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[23:08:43] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[23:08:43] [PASSED] Automatic
[23:08:43] [PASSED] Full
[23:08:43] [PASSED] Limited 16:235
[23:08:43] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[23:08:43] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[23:08:43] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[23:08:43] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[23:08:43] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[23:08:43] [PASSED] RGB
[23:08:43] [PASSED] YUV 4:2:0
[23:08:43] [PASSED] YUV 4:2:2
[23:08:43] [PASSED] YUV 4:4:4
[23:08:43] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[23:08:43] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[23:08:43] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[23:08:43] ============= drm_damage_helper (21 subtests) ==============
[23:08:43] [PASSED] drm_test_damage_iter_no_damage
[23:08:43] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[23:08:43] [PASSED] drm_test_damage_iter_no_damage_src_moved
[23:08:43] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[23:08:43] [PASSED] drm_test_damage_iter_no_damage_not_visible
[23:08:43] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[23:08:43] [PASSED] drm_test_damage_iter_no_damage_no_fb
[23:08:43] [PASSED] drm_test_damage_iter_simple_damage
[23:08:43] [PASSED] drm_test_damage_iter_single_damage
[23:08:43] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[23:08:43] [PASSED] drm_test_damage_iter_single_damage_outside_src
[23:08:43] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[23:08:43] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[23:08:43] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[23:08:43] [PASSED] drm_test_damage_iter_single_damage_src_moved
[23:08:43] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[23:08:43] [PASSED] drm_test_damage_iter_damage
[23:08:43] [PASSED] drm_test_damage_iter_damage_one_intersect
[23:08:43] [PASSED] drm_test_damage_iter_damage_one_outside
[23:08:43] [PASSED] drm_test_damage_iter_damage_src_moved
[23:08:43] [PASSED] drm_test_damage_iter_damage_not_visible
[23:08:43] ================ [PASSED] drm_damage_helper ================
[23:08:43] ============== drm_dp_mst_helper (3 subtests) ==============
[23:08:43] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[23:08:43] [PASSED] Clock 154000 BPP 30 DSC disabled
[23:08:43] [PASSED] Clock 234000 BPP 30 DSC disabled
[23:08:43] [PASSED] Clock 297000 BPP 24 DSC disabled
[23:08:43] [PASSED] Clock 332880 BPP 24 DSC enabled
[23:08:43] [PASSED] Clock 324540 BPP 24 DSC enabled
[23:08:43] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[23:08:43] ============== drm_test_dp_mst_calc_pbn_div  ===============
[23:08:43] [PASSED] Link rate 2000000 lane count 4
[23:08:43] [PASSED] Link rate 2000000 lane count 2
[23:08:43] [PASSED] Link rate 2000000 lane count 1
[23:08:43] [PASSED] Link rate 1350000 lane count 4
[23:08:43] [PASSED] Link rate 1350000 lane count 2
[23:08:43] [PASSED] Link rate 1350000 lane count 1
[23:08:43] [PASSED] Link rate 1000000 lane count 4
[23:08:43] [PASSED] Link rate 1000000 lane count 2
[23:08:43] [PASSED] Link rate 1000000 lane count 1
[23:08:43] [PASSED] Link rate 810000 lane count 4
[23:08:43] [PASSED] Link rate 810000 lane count 2
[23:08:43] [PASSED] Link rate 810000 lane count 1
[23:08:43] [PASSED] Link rate 540000 lane count 4
[23:08:43] [PASSED] Link rate 540000 lane count 2
[23:08:43] [PASSED] Link rate 540000 lane count 1
[23:08:43] [PASSED] Link rate 270000 lane count 4
[23:08:43] [PASSED] Link rate 270000 lane count 2
[23:08:43] [PASSED] Link rate 270000 lane count 1
[23:08:43] [PASSED] Link rate 162000 lane count 4
[23:08:43] [PASSED] Link rate 162000 lane count 2
[23:08:43] [PASSED] Link rate 162000 lane count 1
[23:08:43] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[23:08:43] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[23:08:43] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[23:08:43] [PASSED] DP_POWER_UP_PHY with port number
[23:08:43] [PASSED] DP_POWER_DOWN_PHY with port number
[23:08:43] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[23:08:43] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[23:08:43] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[23:08:43] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[23:08:43] [PASSED] DP_QUERY_PAYLOAD with port number
[23:08:43] [PASSED] DP_QUERY_PAYLOAD with VCPI
[23:08:43] [PASSED] DP_REMOTE_DPCD_READ with port number
[23:08:43] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[23:08:43] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[23:08:43] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[23:08:43] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[23:08:43] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[23:08:43] [PASSED] DP_REMOTE_I2C_READ with port number
[23:08:43] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[23:08:43] [PASSED] DP_REMOTE_I2C_READ with transactions array
[23:08:43] [PASSED] DP_REMOTE_I2C_WRITE with port number
[23:08:43] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[23:08:43] [PASSED] DP_REMOTE_I2C_WRITE with data array
[23:08:43] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[23:08:43] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[23:08:43] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[23:08:43] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[23:08:43] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[23:08:43] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[23:08:43] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[23:08:43] ================ [PASSED] drm_dp_mst_helper ================
[23:08:43] ================== drm_exec (7 subtests) ===================
[23:08:43] [PASSED] sanitycheck
[23:08:43] [PASSED] test_lock
[23:08:43] [PASSED] test_lock_unlock
[23:08:43] [PASSED] test_duplicates
[23:08:43] [PASSED] test_prepare
[23:08:43] [PASSED] test_prepare_array
[23:08:43] [PASSED] test_multiple_loops
[23:08:43] ==================== [PASSED] drm_exec =====================
[23:08:43] =========== drm_format_helper_test (17 subtests) ===========
[23:08:43] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[23:08:43] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[23:08:43] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[23:08:43] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[23:08:43] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[23:08:43] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[23:08:43] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[23:08:43] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[23:08:43] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[23:08:43] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[23:08:43] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[23:08:43] ============== drm_test_fb_xrgb8888_to_mono  ===============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[23:08:43] ==================== drm_test_fb_swab  =====================
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ================ [PASSED] drm_test_fb_swab =================
[23:08:43] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[23:08:43] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[23:08:43] [PASSED] single_pixel_source_buffer
[23:08:43] [PASSED] single_pixel_clip_rectangle
[23:08:43] [PASSED] well_known_colors
[23:08:43] [PASSED] destination_pitch
[23:08:43] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[23:08:43] ================= drm_test_fb_clip_offset  =================
[23:08:43] [PASSED] pass through
[23:08:43] [PASSED] horizontal offset
[23:08:43] [PASSED] vertical offset
[23:08:43] [PASSED] horizontal and vertical offset
[23:08:43] [PASSED] horizontal offset (custom pitch)
[23:08:43] [PASSED] vertical offset (custom pitch)
[23:08:43] [PASSED] horizontal and vertical offset (custom pitch)
[23:08:43] ============= [PASSED] drm_test_fb_clip_offset =============
[23:08:43] =================== drm_test_fb_memcpy  ====================
[23:08:43] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[23:08:43] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[23:08:43] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[23:08:43] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[23:08:43] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[23:08:43] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[23:08:43] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[23:08:43] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[23:08:43] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[23:08:43] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[23:08:43] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[23:08:43] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[23:08:43] =============== [PASSED] drm_test_fb_memcpy ================
[23:08:43] ============= [PASSED] drm_format_helper_test ==============
[23:08:43] ================= drm_format (18 subtests) =================
[23:08:43] [PASSED] drm_test_format_block_width_invalid
[23:08:43] [PASSED] drm_test_format_block_width_one_plane
[23:08:43] [PASSED] drm_test_format_block_width_two_plane
[23:08:43] [PASSED] drm_test_format_block_width_three_plane
[23:08:43] [PASSED] drm_test_format_block_width_tiled
[23:08:43] [PASSED] drm_test_format_block_height_invalid
[23:08:43] [PASSED] drm_test_format_block_height_one_plane
[23:08:43] [PASSED] drm_test_format_block_height_two_plane
[23:08:43] [PASSED] drm_test_format_block_height_three_plane
[23:08:43] [PASSED] drm_test_format_block_height_tiled
[23:08:43] [PASSED] drm_test_format_min_pitch_invalid
[23:08:43] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[23:08:43] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[23:08:43] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[23:08:43] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[23:08:43] [PASSED] drm_test_format_min_pitch_two_plane
[23:08:43] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[23:08:43] [PASSED] drm_test_format_min_pitch_tiled
[23:08:43] =================== [PASSED] drm_format ====================
[23:08:43] ============== drm_framebuffer (10 subtests) ===============
[23:08:43] ========== drm_test_framebuffer_check_src_coords  ==========
[23:08:43] [PASSED] Success: source fits into fb
[23:08:43] [PASSED] Fail: overflowing fb with x-axis coordinate
[23:08:43] [PASSED] Fail: overflowing fb with y-axis coordinate
[23:08:43] [PASSED] Fail: overflowing fb with source width
[23:08:43] [PASSED] Fail: overflowing fb with source height
[23:08:43] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[23:08:43] [PASSED] drm_test_framebuffer_cleanup
[23:08:43] =============== drm_test_framebuffer_create  ===============
[23:08:43] [PASSED] ABGR8888 normal sizes
[23:08:43] [PASSED] ABGR8888 max sizes
[23:08:43] [PASSED] ABGR8888 pitch greater than min required
[23:08:43] [PASSED] ABGR8888 pitch less than min required
[23:08:43] [PASSED] ABGR8888 Invalid width
[23:08:43] [PASSED] ABGR8888 Invalid buffer handle
[23:08:43] [PASSED] No pixel format
[23:08:43] [PASSED] ABGR8888 Width 0
[23:08:43] [PASSED] ABGR8888 Height 0
[23:08:43] [PASSED] ABGR8888 Out of bound height * pitch combination
[23:08:43] [PASSED] ABGR8888 Large buffer offset
[23:08:43] [PASSED] ABGR8888 Buffer offset for inexistent plane
[23:08:43] [PASSED] ABGR8888 Invalid flag
[23:08:43] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[23:08:43] [PASSED] ABGR8888 Valid buffer modifier
[23:08:43] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[23:08:43] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[23:08:43] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[23:08:43] [PASSED] NV12 Normal sizes
[23:08:43] [PASSED] NV12 Max sizes
[23:08:43] [PASSED] NV12 Invalid pitch
[23:08:43] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[23:08:43] [PASSED] NV12 different  modifier per-plane
[23:08:43] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[23:08:43] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[23:08:43] [PASSED] NV12 Modifier for inexistent plane
[23:08:43] [PASSED] NV12 Handle for inexistent plane
[23:08:43] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[23:08:43] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[23:08:43] [PASSED] YVU420 Normal sizes
[23:08:43] [PASSED] YVU420 Max sizes
[23:08:43] [PASSED] YVU420 Invalid pitch
[23:08:43] [PASSED] YVU420 Different pitches
[23:08:43] [PASSED] YVU420 Different buffer offsets/pitches
[23:08:43] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[23:08:43] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[23:08:43] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[23:08:43] [PASSED] YVU420 Valid modifier
[23:08:43] [PASSED] YVU420 Different modifiers per plane
[23:08:43] [PASSED] YVU420 Modifier for inexistent plane
[23:08:43] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[23:08:43] [PASSED] X0L2 Normal sizes
[23:08:43] [PASSED] X0L2 Max sizes
[23:08:43] [PASSED] X0L2 Invalid pitch
[23:08:43] [PASSED] X0L2 Pitch greater than minimum required
[23:08:43] [PASSED] X0L2 Handle for inexistent plane
[23:08:43] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[23:08:43] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[23:08:43] [PASSED] X0L2 Valid modifier
[23:08:43] [PASSED] X0L2 Modifier for inexistent plane
[23:08:43] =========== [PASSED] drm_test_framebuffer_create ===========
[23:08:43] [PASSED] drm_test_framebuffer_free
[23:08:43] [PASSED] drm_test_framebuffer_init
[23:08:43] [PASSED] drm_test_framebuffer_init_bad_format
[23:08:43] [PASSED] drm_test_framebuffer_init_dev_mismatch
[23:08:43] [PASSED] drm_test_framebuffer_lookup
[23:08:43] [PASSED] drm_test_framebuffer_lookup_inexistent
[23:08:43] [PASSED] drm_test_framebuffer_modifiers_not_supported
[23:08:43] ================= [PASSED] drm_framebuffer =================
[23:08:43] ================ drm_gem_shmem (8 subtests) ================
[23:08:43] [PASSED] drm_gem_shmem_test_obj_create
[23:08:43] [PASSED] drm_gem_shmem_test_obj_create_private
[23:08:43] [PASSED] drm_gem_shmem_test_pin_pages
[23:08:43] [PASSED] drm_gem_shmem_test_vmap
[23:08:43] [PASSED] drm_gem_shmem_test_get_pages_sgt
[23:08:43] [PASSED] drm_gem_shmem_test_get_sg_table
[23:08:43] [PASSED] drm_gem_shmem_test_madvise
[23:08:43] [PASSED] drm_gem_shmem_test_purge
[23:08:43] ================== [PASSED] drm_gem_shmem ==================
[23:08:43] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[23:08:43] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[23:08:43] [PASSED] Automatic
[23:08:43] [PASSED] Full
[23:08:43] [PASSED] Limited 16:235
[23:08:43] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[23:08:43] [PASSED] drm_test_check_disable_connector
[23:08:43] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[23:08:43] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[23:08:43] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[23:08:43] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[23:08:43] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[23:08:43] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[23:08:43] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[23:08:43] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[23:08:43] [PASSED] drm_test_check_output_bpc_dvi
[23:08:43] [PASSED] drm_test_check_output_bpc_format_vic_1
[23:08:43] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[23:08:43] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[23:08:43] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[23:08:43] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[23:08:43] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[23:08:43] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[23:08:43] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[23:08:43] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[23:08:43] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[23:08:43] [PASSED] drm_test_check_broadcast_rgb_value
[23:08:43] [PASSED] drm_test_check_bpc_8_value
[23:08:43] [PASSED] drm_test_check_bpc_10_value
[23:08:43] [PASSED] drm_test_check_bpc_12_value
[23:08:43] [PASSED] drm_test_check_format_value
[23:08:43] [PASSED] drm_test_check_tmds_char_value
[23:08:43] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[23:08:43] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[23:08:43] [PASSED] drm_test_check_mode_valid
[23:08:43] [PASSED] drm_test_check_mode_valid_reject
[23:08:43] [PASSED] drm_test_check_mode_valid_reject_rate
[23:08:43] [PASSED] drm_test_check_mode_valid_reject_max_clock
[23:08:43] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[23:08:43] ================= drm_managed (2 subtests) =================
[23:08:43] [PASSED] drm_test_managed_release_action
[23:08:43] [PASSED] drm_test_managed_run_action
[23:08:43] =================== [PASSED] drm_managed ===================
[23:08:43] =================== drm_mm (6 subtests) ====================
[23:08:43] [PASSED] drm_test_mm_init
[23:08:43] [PASSED] drm_test_mm_debug
[23:08:43] [PASSED] drm_test_mm_align32
[23:08:43] [PASSED] drm_test_mm_align64
[23:08:43] [PASSED] drm_test_mm_lowest
[23:08:43] [PASSED] drm_test_mm_highest
[23:08:43] ===================== [PASSED] drm_mm ======================
[23:08:43] ============= drm_modes_analog_tv (5 subtests) =============
[23:08:43] [PASSED] drm_test_modes_analog_tv_mono_576i
[23:08:43] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[23:08:43] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[23:08:43] [PASSED] drm_test_modes_analog_tv_pal_576i
[23:08:43] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[23:08:43] =============== [PASSED] drm_modes_analog_tv ===============
[23:08:43] ============== drm_plane_helper (2 subtests) ===============
[23:08:43] =============== drm_test_check_plane_state  ================
[23:08:43] [PASSED] clipping_simple
[23:08:43] [PASSED] clipping_rotate_reflect
[23:08:43] [PASSED] positioning_simple
[23:08:43] [PASSED] upscaling
[23:08:43] [PASSED] downscaling
[23:08:43] [PASSED] rounding1
[23:08:43] [PASSED] rounding2
[23:08:43] [PASSED] rounding3
[23:08:43] [PASSED] rounding4
[23:08:43] =========== [PASSED] drm_test_check_plane_state ============
[23:08:43] =========== drm_test_check_invalid_plane_state  ============
[23:08:43] [PASSED] positioning_invalid
[23:08:43] [PASSED] upscaling_invalid
[23:08:43] [PASSED] downscaling_invalid
[23:08:43] ======= [PASSED] drm_test_check_invalid_plane_state ========
[23:08:43] ================ [PASSED] drm_plane_helper =================
[23:08:43] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[23:08:43] ====== drm_test_connector_helper_tv_get_modes_check  =======
[23:08:43] [PASSED] None
[23:08:43] [PASSED] PAL
[23:08:43] [PASSED] NTSC
[23:08:43] [PASSED] Both, NTSC Default
[23:08:43] [PASSED] Both, PAL Default
[23:08:43] [PASSED] Both, NTSC Default, with PAL on command-line
[23:08:43] [PASSED] Both, PAL Default, with NTSC on command-line
[23:08:43] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[23:08:43] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[23:08:43] ================== drm_rect (9 subtests) ===================
[23:08:43] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[23:08:43] [PASSED] drm_test_rect_clip_scaled_not_clipped
[23:08:43] [PASSED] drm_test_rect_clip_scaled_clipped
[23:08:43] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[23:08:43] ================= drm_test_rect_intersect  =================
[23:08:43] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[23:08:43] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[23:08:43] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[23:08:43] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[23:08:43] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[23:08:43] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[23:08:43] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[23:08:43] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[23:08:43] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[23:08:43] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[23:08:43] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[23:08:43] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[23:08:43] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[23:08:43] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[23:08:43] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[23:08:43] ============= [PASSED] drm_test_rect_intersect =============
[23:08:43] ================ drm_test_rect_calc_hscale  ================
[23:08:43] [PASSED] normal use
[23:08:43] [PASSED] out of max range
[23:08:43] [PASSED] out of min range
[23:08:43] [PASSED] zero dst
[23:08:43] [PASSED] negative src
[23:08:43] [PASSED] negative dst
[23:08:43] ============ [PASSED] drm_test_rect_calc_hscale ============
[23:08:43] ================ drm_test_rect_calc_vscale  ================
[23:08:43] [PASSED] normal use
stty: 'standard input': Inappropriate ioctl for device
[23:08:43] [PASSED] out of max range
[23:08:43] [PASSED] out of min range
[23:08:43] [PASSED] zero dst
[23:08:43] [PASSED] negative src
[23:08:43] [PASSED] negative dst
[23:08:43] ============ [PASSED] drm_test_rect_calc_vscale ============
[23:08:43] ================== drm_test_rect_rotate  ===================
[23:08:43] [PASSED] reflect-x
[23:08:43] [PASSED] reflect-y
[23:08:43] [PASSED] rotate-0
[23:08:43] [PASSED] rotate-90
[23:08:43] [PASSED] rotate-180
[23:08:43] [PASSED] rotate-270
[23:08:43] ============== [PASSED] drm_test_rect_rotate ===============
[23:08:43] ================ drm_test_rect_rotate_inv  =================
[23:08:43] [PASSED] reflect-x
[23:08:43] [PASSED] reflect-y
[23:08:43] [PASSED] rotate-0
[23:08:43] [PASSED] rotate-90
[23:08:43] [PASSED] rotate-180
[23:08:43] [PASSED] rotate-270
[23:08:43] ============ [PASSED] drm_test_rect_rotate_inv =============
[23:08:43] ==================== [PASSED] drm_rect =====================
[23:08:43] ============ drm_sysfb_modeset_test (1 subtest) ============
[23:08:43] ============ drm_test_sysfb_build_fourcc_list  =============
[23:08:43] [PASSED] no native formats
[23:08:43] [PASSED] XRGB8888 as native format
[23:08:43] [PASSED] remove duplicates
[23:08:43] [PASSED] convert alpha formats
[23:08:43] [PASSED] random formats
[23:08:43] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[23:08:43] ============= [PASSED] drm_sysfb_modeset_test ==============
[23:08:43] ================== drm_fixp (2 subtests) ===================
[23:08:43] [PASSED] drm_test_int2fixp
[23:08:43] [PASSED] drm_test_sm2fixp
[23:08:43] ==================== [PASSED] drm_fixp =====================
[23:08:43] ============================================================
[23:08:43] Testing complete. Ran 624 tests: passed: 624
[23:08:43] Elapsed time: 27.447s total, 1.635s configuring, 25.343s building, 0.443s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[23:08:43] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:08:45] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:08:54] Starting KUnit Kernel (1/1)...
[23:08:54] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:08:54] ================= ttm_device (5 subtests) ==================
[23:08:54] [PASSED] ttm_device_init_basic
[23:08:54] [PASSED] ttm_device_init_multiple
[23:08:54] [PASSED] ttm_device_fini_basic
[23:08:54] [PASSED] ttm_device_init_no_vma_man
[23:08:54] ================== ttm_device_init_pools  ==================
[23:08:54] [PASSED] No DMA allocations, no DMA32 required
[23:08:54] [PASSED] DMA allocations, DMA32 required
[23:08:54] [PASSED] No DMA allocations, DMA32 required
[23:08:54] [PASSED] DMA allocations, no DMA32 required
[23:08:54] ============== [PASSED] ttm_device_init_pools ==============
[23:08:54] =================== [PASSED] ttm_device ====================
[23:08:54] ================== ttm_pool (8 subtests) ===================
[23:08:54] ================== ttm_pool_alloc_basic  ===================
[23:08:54] [PASSED] One page
[23:08:54] [PASSED] More than one page
[23:08:54] [PASSED] Above the allocation limit
[23:08:54] [PASSED] One page, with coherent DMA mappings enabled
[23:08:54] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:08:54] ============== [PASSED] ttm_pool_alloc_basic ===============
[23:08:54] ============== ttm_pool_alloc_basic_dma_addr  ==============
[23:08:54] [PASSED] One page
[23:08:54] [PASSED] More than one page
[23:08:54] [PASSED] Above the allocation limit
[23:08:54] [PASSED] One page, with coherent DMA mappings enabled
[23:08:54] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:08:54] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[23:08:54] [PASSED] ttm_pool_alloc_order_caching_match
[23:08:54] [PASSED] ttm_pool_alloc_caching_mismatch
[23:08:54] [PASSED] ttm_pool_alloc_order_mismatch
[23:08:54] [PASSED] ttm_pool_free_dma_alloc
[23:08:54] [PASSED] ttm_pool_free_no_dma_alloc
[23:08:54] [PASSED] ttm_pool_fini_basic
[23:08:54] ==================== [PASSED] ttm_pool =====================
[23:08:54] ================ ttm_resource (8 subtests) =================
[23:08:54] ================= ttm_resource_init_basic  =================
[23:08:54] [PASSED] Init resource in TTM_PL_SYSTEM
[23:08:54] [PASSED] Init resource in TTM_PL_VRAM
[23:08:54] [PASSED] Init resource in a private placement
[23:08:54] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[23:08:54] ============= [PASSED] ttm_resource_init_basic =============
[23:08:54] [PASSED] ttm_resource_init_pinned
[23:08:54] [PASSED] ttm_resource_fini_basic
[23:08:54] [PASSED] ttm_resource_manager_init_basic
[23:08:54] [PASSED] ttm_resource_manager_usage_basic
[23:08:54] [PASSED] ttm_resource_manager_set_used_basic
[23:08:54] [PASSED] ttm_sys_man_alloc_basic
[23:08:54] [PASSED] ttm_sys_man_free_basic
[23:08:54] ================== [PASSED] ttm_resource ===================
[23:08:54] =================== ttm_tt (15 subtests) ===================
[23:08:54] ==================== ttm_tt_init_basic  ====================
[23:08:54] [PASSED] Page-aligned size
[23:08:54] [PASSED] Extra pages requested
[23:08:54] ================ [PASSED] ttm_tt_init_basic ================
[23:08:54] [PASSED] ttm_tt_init_misaligned
[23:08:54] [PASSED] ttm_tt_fini_basic
[23:08:54] [PASSED] ttm_tt_fini_sg
[23:08:54] [PASSED] ttm_tt_fini_shmem
[23:08:54] [PASSED] ttm_tt_create_basic
[23:08:54] [PASSED] ttm_tt_create_invalid_bo_type
[23:08:54] [PASSED] ttm_tt_create_ttm_exists
[23:08:54] [PASSED] ttm_tt_create_failed
[23:08:54] [PASSED] ttm_tt_destroy_basic
[23:08:54] [PASSED] ttm_tt_populate_null_ttm
[23:08:54] [PASSED] ttm_tt_populate_populated_ttm
[23:08:54] [PASSED] ttm_tt_unpopulate_basic
[23:08:54] [PASSED] ttm_tt_unpopulate_empty_ttm
[23:08:54] [PASSED] ttm_tt_swapin_basic
[23:08:54] ===================== [PASSED] ttm_tt ======================
[23:08:54] =================== ttm_bo (14 subtests) ===================
[23:08:54] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[23:08:54] [PASSED] Cannot be interrupted and sleeps
[23:08:54] [PASSED] Cannot be interrupted, locks straight away
[23:08:54] [PASSED] Can be interrupted, sleeps
[23:08:54] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[23:08:54] [PASSED] ttm_bo_reserve_locked_no_sleep
[23:08:54] [PASSED] ttm_bo_reserve_no_wait_ticket
[23:08:54] [PASSED] ttm_bo_reserve_double_resv
[23:08:54] [PASSED] ttm_bo_reserve_interrupted
[23:08:54] [PASSED] ttm_bo_reserve_deadlock
[23:08:54] [PASSED] ttm_bo_unreserve_basic
[23:08:54] [PASSED] ttm_bo_unreserve_pinned
[23:08:54] [PASSED] ttm_bo_unreserve_bulk
[23:08:54] [PASSED] ttm_bo_fini_basic
[23:08:54] [PASSED] ttm_bo_fini_shared_resv
[23:08:54] [PASSED] ttm_bo_pin_basic
[23:08:54] [PASSED] ttm_bo_pin_unpin_resource
[23:08:54] [PASSED] ttm_bo_multiple_pin_one_unpin
[23:08:54] ===================== [PASSED] ttm_bo ======================
[23:08:54] ============== ttm_bo_validate (21 subtests) ===============
[23:08:54] ============== ttm_bo_init_reserved_sys_man  ===============
[23:08:54] [PASSED] Buffer object for userspace
[23:08:54] [PASSED] Kernel buffer object
[23:08:54] [PASSED] Shared buffer object
[23:08:54] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[23:08:54] ============== ttm_bo_init_reserved_mock_man  ==============
[23:08:54] [PASSED] Buffer object for userspace
[23:08:54] [PASSED] Kernel buffer object
[23:08:54] [PASSED] Shared buffer object
[23:08:54] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[23:08:54] [PASSED] ttm_bo_init_reserved_resv
[23:08:54] ================== ttm_bo_validate_basic  ==================
[23:08:54] [PASSED] Buffer object for userspace
[23:08:54] [PASSED] Kernel buffer object
[23:08:54] [PASSED] Shared buffer object
[23:08:54] ============== [PASSED] ttm_bo_validate_basic ==============
[23:08:54] [PASSED] ttm_bo_validate_invalid_placement
[23:08:54] ============= ttm_bo_validate_same_placement  ==============
[23:08:54] [PASSED] System manager
[23:08:54] [PASSED] VRAM manager
[23:08:54] ========= [PASSED] ttm_bo_validate_same_placement ==========
[23:08:54] [PASSED] ttm_bo_validate_failed_alloc
[23:08:54] [PASSED] ttm_bo_validate_pinned
[23:08:54] [PASSED] ttm_bo_validate_busy_placement
[23:08:54] ================ ttm_bo_validate_multihop  =================
[23:08:54] [PASSED] Buffer object for userspace
[23:08:54] [PASSED] Kernel buffer object
[23:08:54] [PASSED] Shared buffer object
[23:08:54] ============ [PASSED] ttm_bo_validate_multihop =============
[23:08:54] ========== ttm_bo_validate_no_placement_signaled  ==========
[23:08:54] [PASSED] Buffer object in system domain, no page vector
[23:08:54] [PASSED] Buffer object in system domain with an existing page vector
[23:08:54] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[23:08:54] ======== ttm_bo_validate_no_placement_not_signaled  ========
[23:08:54] [PASSED] Buffer object for userspace
[23:08:54] [PASSED] Kernel buffer object
[23:08:54] [PASSED] Shared buffer object
[23:08:54] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[23:08:54] [PASSED] ttm_bo_validate_move_fence_signaled
[23:08:54] ========= ttm_bo_validate_move_fence_not_signaled  =========
[23:08:54] [PASSED] Waits for GPU
[23:08:54] [PASSED] Tries to lock straight away
[23:08:54] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[23:08:54] [PASSED] ttm_bo_validate_happy_evict
[23:08:54] [PASSED] ttm_bo_validate_all_pinned_evict
[23:08:54] [PASSED] ttm_bo_validate_allowed_only_evict
[23:08:54] [PASSED] ttm_bo_validate_deleted_evict
[23:08:54] [PASSED] ttm_bo_validate_busy_domain_evict
[23:08:54] [PASSED] ttm_bo_validate_evict_gutting
[23:08:54] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[23:08:54] ================= [PASSED] ttm_bo_validate =================
[23:08:54] ============================================================
[23:08:54] Testing complete. Ran 101 tests: passed: 101
[23:08:54] Elapsed time: 11.364s total, 1.648s configuring, 9.500s building, 0.179s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2025-12-18 21:44 ` [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini Matthew Brost
@ 2025-12-18 23:36   ` Summers, Stuart
  2025-12-19  1:15     ` Matthew Brost
  2026-01-08 19:00   ` Dong, Zhanjun
  1 sibling, 1 reply; 17+ messages in thread
From: Summers, Stuart @ 2025-12-18 23:36 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Brost,  Matthew

On Thu, 2025-12-18 at 13:44 -0800, Matthew Brost wrote:
> In GuC submit fini, forcefully tear down any exec queues by disabling
> CTs, stopping the scheduler (which cleans up lost G2H), killing all
> remaining queues, and resuming scheduling to allow any remaining
> cleanup
> actions to complete and signal any remaining fences.
> 
> v2:
>  - Fix VF failure (CI)
> 
> Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel
> GPUs")
> Cc: stable@vger.kernel.org
> Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> 
> ---
> 
> This fix will not apply outright to any stable kernel as it depeneds
> on
> functions which have added in the KMD since the original commit.
> Likely
> will have to manually send out patches to stable for kernel which
> we'd
> like to fix.
> ---
>  drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
>  1 file changed, 20 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c
> b/drivers/gpu/drm/xe/xe_guc_submit.c
> index 071cbfec2401..58ec94439df1 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -289,6 +289,8 @@ static bool
> exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
>                  EXEC_QUEUE_STATE_BANNED));
>  }
>  
> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
> +
>  static void guc_submit_fini(struct drm_device *drm, void *arg)
>  {
>         struct xe_guc *guc = arg;
> @@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device
> *drm, void *arg)
>         struct xe_gt *gt = guc_to_gt(guc);
>         int ret;
>  
> +       /* Forcefully kill any remaining exec queues */
> +       xe_guc_ct_stop(&guc->ct);
> +       __xe_guc_submit_reset_prepare(guc);

In xe_guc_declare_wedged() we have the opposite sequence -
reset_prepare and ct_stop after. Can we adjust to the same here? Or is
there a reason to swap that?

Thanks,
Stuart

> +       xe_guc_submit_stop(guc);
> +       xe_guc_submit_pause_abort(guc);
> +
>         ret = wait_event_timeout(guc->submission_state.fini_wq,
>                                  xa_empty(&guc-
> >submission_state.exec_queue_lookup),
>                                  HZ * 5);
> @@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc
> *guc, struct xe_exec_queue *q)
>         }
>  }
>  
> -int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
>  {
>         int ret;
>  
> -       if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> -               return 0;
> -
> -       if (!guc->submission_state.initialized)
> -               return 0;
> -
>         /*
>          * Using an atomic here rather than submission_state.lock as
> this
>          * function can be called while holding the CT lock (engine
> reset
> @@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc
> *guc)
>         return ret;
>  }
>  
> +int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> +{
> +       if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> +               return 0;
> +
> +       if (!guc->submission_state.initialized)
> +               return 0;
> +
> +       return __xe_guc_submit_reset_prepare(guc);
> +}
> +
>  void xe_guc_submit_reset_wait(struct xe_guc *guc)
>  {
>         wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 1/3] drm/xe: Always kill exec queues in xe_guc_submit_pause_abort
  2025-12-18 21:44 ` [PATCH v2 1/3] drm/xe: Always kill exec queues in xe_guc_submit_pause_abort Matthew Brost
@ 2025-12-18 23:36   ` Summers, Stuart
  0 siblings, 0 replies; 17+ messages in thread
From: Summers, Stuart @ 2025-12-18 23:36 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Brost,  Matthew

On Thu, 2025-12-18 at 13:44 -0800, Matthew Brost wrote:
> xe_guc_submit_pause_abort is intended to be called after something
> disastrous occurs (e.g., VF migration fails, device wedging, or

I don't know if I'd qualify driver unload as disastrous, but otherwise
agree :)

Reviewed-by: Stuart Summers <stuart.summers@intel.com>

> driver
> unload) and should immediately trigger the teardown of remaining
> submission state. With that, kill any remaining queues in this
> function.
> 
> Fixes: 7c4b7e34c83b ("drm/xe/vf: Abort VF post migration recovery on
> failure")
> Cc: stable@vger.kernel.org
> Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_guc_submit.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c
> b/drivers/gpu/drm/xe/xe_guc_submit.c
> index 43fd2069f9b2..071cbfec2401 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -2890,8 +2890,7 @@ void xe_guc_submit_pause_abort(struct xe_guc
> *guc)
>                         continue;
>  
>                 xe_sched_submission_start(sched);
> -               if (exec_queue_killed_or_banned_or_wedged(q))
> -                       xe_guc_exec_queue_trigger_cleanup(q);
> +               guc_exec_queue_kill(q);
>         }
>         mutex_unlock(&guc->submission_state.lock);
>  }


^ permalink raw reply	[flat|nested] 17+ messages in thread

* ✓ Xe.CI.BAT: success for Attempt to fixup reset, wedge, unload corner cases
  2025-12-18 21:44 [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases Matthew Brost
                   ` (3 preceding siblings ...)
  2025-12-18 23:08 ` ✓ CI.KUnit: success for Attempt to fixup reset, wedge, unload corner cases Patchwork
@ 2025-12-18 23:44 ` Patchwork
  2025-12-20  1:22 ` ✗ Xe.CI.Full: failure " Patchwork
  5 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2025-12-18 23:44 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 1509 bytes --]

== Series Details ==

Series: Attempt to fixup reset, wedge, unload corner cases
URL   : https://patchwork.freedesktop.org/series/159247/
State : success

== Summary ==

CI Bug Log - changes from xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4_BAT -> xe-pw-159247v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (12 -> 12)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in xe-pw-159247v1_BAT that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@xe_waitfence@reltime:
    - bat-dg2-oem2:       [FAIL][1] ([Intel XE#6520]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/bat-dg2-oem2/igt@xe_waitfence@reltime.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/bat-dg2-oem2/igt@xe_waitfence@reltime.html

  
  [Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520


Build changes
-------------

  * Linux: xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4 -> xe-pw-159247v1

  IGT_8674: f38f4d8e9c65aff45ac807e646d06e38bc3193a2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4: c25fd3953a459143758264a6c4dab32107bb48c4
  xe-pw-159247v1: 159247v1

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/index.html

[-- Attachment #2: Type: text/html, Size: 2074 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 3/3] drm/xe: Trigger queue cleanup if not in wedged mode 2
  2025-12-18 21:44 ` [PATCH v2 3/3] drm/xe: Trigger queue cleanup if not in wedged mode 2 Matthew Brost
@ 2025-12-18 23:45   ` Summers, Stuart
  2025-12-19  1:10     ` Matthew Brost
  0 siblings, 1 reply; 17+ messages in thread
From: Summers, Stuart @ 2025-12-18 23:45 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, Brost,  Matthew

On Thu, 2025-12-18 at 13:44 -0800, Matthew Brost wrote:
> The intent of wedging a device is to allow queues to continue running
> only in wedged mode 2. In other modes, queues should initiate cleanup
> and signal all remaining fences. Fix xe_guc_submit_wedge to correctly
> clean up queues when wedge mode != 2.

Yeah this makes sense. Should we use this for the fixes instead though?

commit 8ed9aaae39f39130b7a3eb2726be05d7f64b344c
Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
Date:   Tue Apr 23 18:18:16 2024 -0400

    drm/xe: Force wedged state and block GT reset upon any GPU hang

Thanks,
Stuart

> 
> Fixes: 7dbe8af13c18 ("drm/xe: Wedge the entire device")
> Cc: stable@vger.kernel.org
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> 
> ---
> 
> This fix will not apply outright to any stable kernel as it depeneds
> on
> functions which have added in the KMD since the original commit.
> Likely
> will have to manually send out patches to stable for kernel which
> we'd
> like to fix.
> ---
>  drivers/gpu/drm/xe/xe_guc_submit.c | 31 ++++++++++++++++++----------
> --
>  1 file changed, 19 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c
> b/drivers/gpu/drm/xe/xe_guc_submit.c
> index 58ec94439df1..63b984f6d78d 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -1313,6 +1313,7 @@ static void
> disable_scheduling_deregister(struct xe_guc *guc,
>   */
>  void xe_guc_submit_wedge(struct xe_guc *guc)
>  {
> +       struct xe_device *xe = guc_to_xe(guc);
>         struct xe_gt *gt = guc_to_gt(guc);
>         struct xe_exec_queue *q;
>         unsigned long index;
> @@ -1327,19 +1328,25 @@ void xe_guc_submit_wedge(struct xe_guc *guc)
>         if (!guc->submission_state.initialized)
>                 return;
>  
> -       err = devm_add_action_or_reset(guc_to_xe(guc)->drm.dev,
> -                                      guc_submit_wedged_fini, guc);
> -       if (err) {
> -               xe_gt_err(gt, "Failed to register clean-up on
> wedged.mode=2; "
> -                         "Although device is wedged.\n");
> -               return;
> -       }
> +       if (xe->wedged.mode == 2) {
> +               err = devm_add_action_or_reset(guc_to_xe(guc)-
> >drm.dev,
> +                                             
> guc_submit_wedged_fini, guc);
> +               if (err) {
> +                       xe_gt_err(gt, "Failed to register clean-up on
> wedged.mode=2; "
> +                                 "Although device is wedged.\n");
> +                       return;
> +               }
>  
> -       mutex_lock(&guc->submission_state.lock);
> -       xa_for_each(&guc->submission_state.exec_queue_lookup, index,
> q)
> -               if (xe_exec_queue_get_unless_zero(q))
> -                       set_exec_queue_wedged(q);
> -       mutex_unlock(&guc->submission_state.lock);
> +               mutex_lock(&guc->submission_state.lock);
> +               xa_for_each(&guc->submission_state.exec_queue_lookup,
> index, q)
> +                       if (xe_exec_queue_get_unless_zero(q))
> +                               set_exec_queue_wedged(q);
> +               mutex_unlock(&guc->submission_state.lock);
> +       } else {
> +               /* Forcefully kill any remaining exec queues, signal
> fences */
> +               xe_guc_submit_stop(guc);
> +               xe_guc_submit_pause_abort(guc);
> +       }
>  }
>  
>  static bool guc_submit_hint_wedged(struct xe_guc *guc)


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 3/3] drm/xe: Trigger queue cleanup if not in wedged mode 2
  2025-12-18 23:45   ` Summers, Stuart
@ 2025-12-19  1:10     ` Matthew Brost
  0 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-12-19  1:10 UTC (permalink / raw)
  To: Summers, Stuart; +Cc: intel-xe@lists.freedesktop.org

On Thu, Dec 18, 2025 at 04:45:02PM -0700, Summers, Stuart wrote:
> On Thu, 2025-12-18 at 13:44 -0800, Matthew Brost wrote:
> > The intent of wedging a device is to allow queues to continue running
> > only in wedged mode 2. In other modes, queues should initiate cleanup
> > and signal all remaining fences. Fix xe_guc_submit_wedge to correctly
> > clean up queues when wedge mode != 2.
> 
> Yeah this makes sense. Should we use this for the fixes instead though?
> 
> commit 8ed9aaae39f39130b7a3eb2726be05d7f64b344c
> Author: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Date:   Tue Apr 23 18:18:16 2024 -0400
> 
>     drm/xe: Force wedged state and block GT reset upon any GPU hang
> 

Maybe both? I suspect those went into the same kernel release.

Either way, this series won’t apply cleanly to any stable tree. I’ll
follow up with Rodrigo and Thomas on a strategy here, as this is
definitely something we need to get into all stable trees as wedging can
take down the machine.

We also need to expand our IGT coverage so that we run jobs (likely with
userptr), forcefully wedge, and ensure there are no hangs.

I’ll open a Jira now for this test case.

Matt

> Thanks,
> Stuart
> 
> > 
> > Fixes: 7dbe8af13c18 ("drm/xe: Wedge the entire device")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > 
> > ---
> > 
> > This fix will not apply outright to any stable kernel as it depeneds
> > on
> > functions which have added in the KMD since the original commit.
> > Likely
> > will have to manually send out patches to stable for kernel which
> > we'd
> > like to fix.
> > ---
> >  drivers/gpu/drm/xe/xe_guc_submit.c | 31 ++++++++++++++++++----------
> > --
> >  1 file changed, 19 insertions(+), 12 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c
> > b/drivers/gpu/drm/xe/xe_guc_submit.c
> > index 58ec94439df1..63b984f6d78d 100644
> > --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> > +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> > @@ -1313,6 +1313,7 @@ static void
> > disable_scheduling_deregister(struct xe_guc *guc,
> >   */
> >  void xe_guc_submit_wedge(struct xe_guc *guc)
> >  {
> > +       struct xe_device *xe = guc_to_xe(guc);
> >         struct xe_gt *gt = guc_to_gt(guc);
> >         struct xe_exec_queue *q;
> >         unsigned long index;
> > @@ -1327,19 +1328,25 @@ void xe_guc_submit_wedge(struct xe_guc *guc)
> >         if (!guc->submission_state.initialized)
> >                 return;
> >  
> > -       err = devm_add_action_or_reset(guc_to_xe(guc)->drm.dev,
> > -                                      guc_submit_wedged_fini, guc);
> > -       if (err) {
> > -               xe_gt_err(gt, "Failed to register clean-up on
> > wedged.mode=2; "
> > -                         "Although device is wedged.\n");
> > -               return;
> > -       }
> > +       if (xe->wedged.mode == 2) {
> > +               err = devm_add_action_or_reset(guc_to_xe(guc)-
> > >drm.dev,
> > +                                             
> > guc_submit_wedged_fini, guc);
> > +               if (err) {
> > +                       xe_gt_err(gt, "Failed to register clean-up on
> > wedged.mode=2; "
> > +                                 "Although device is wedged.\n");
> > +                       return;
> > +               }
> >  
> > -       mutex_lock(&guc->submission_state.lock);
> > -       xa_for_each(&guc->submission_state.exec_queue_lookup, index,
> > q)
> > -               if (xe_exec_queue_get_unless_zero(q))
> > -                       set_exec_queue_wedged(q);
> > -       mutex_unlock(&guc->submission_state.lock);
> > +               mutex_lock(&guc->submission_state.lock);
> > +               xa_for_each(&guc->submission_state.exec_queue_lookup,
> > index, q)
> > +                       if (xe_exec_queue_get_unless_zero(q))
> > +                               set_exec_queue_wedged(q);
> > +               mutex_unlock(&guc->submission_state.lock);
> > +       } else {
> > +               /* Forcefully kill any remaining exec queues, signal
> > fences */
> > +               xe_guc_submit_stop(guc);
> > +               xe_guc_submit_pause_abort(guc);
> > +       }
> >  }
> >  
> >  static bool guc_submit_hint_wedged(struct xe_guc *guc)
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2025-12-18 23:36   ` Summers, Stuart
@ 2025-12-19  1:15     ` Matthew Brost
  0 siblings, 0 replies; 17+ messages in thread
From: Matthew Brost @ 2025-12-19  1:15 UTC (permalink / raw)
  To: Summers, Stuart; +Cc: intel-xe@lists.freedesktop.org

On Thu, Dec 18, 2025 at 04:36:32PM -0700, Summers, Stuart wrote:
> On Thu, 2025-12-18 at 13:44 -0800, Matthew Brost wrote:
> > In GuC submit fini, forcefully tear down any exec queues by disabling
> > CTs, stopping the scheduler (which cleans up lost G2H), killing all
> > remaining queues, and resuming scheduling to allow any remaining
> > cleanup
> > actions to complete and signal any remaining fences.
> > 
> > v2:
> >  - Fix VF failure (CI)
> > 
> > Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel
> > GPUs")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > 
> > ---
> > 
> > This fix will not apply outright to any stable kernel as it depeneds
> > on
> > functions which have added in the KMD since the original commit.
> > Likely
> > will have to manually send out patches to stable for kernel which
> > we'd
> > like to fix.
> > ---
> >  drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
> >  1 file changed, 20 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c
> > b/drivers/gpu/drm/xe/xe_guc_submit.c
> > index 071cbfec2401..58ec94439df1 100644
> > --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> > +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> > @@ -289,6 +289,8 @@ static bool
> > exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
> >                  EXEC_QUEUE_STATE_BANNED));
> >  }
> >  
> > +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
> > +
> >  static void guc_submit_fini(struct drm_device *drm, void *arg)
> >  {
> >         struct xe_guc *guc = arg;
> > @@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device
> > *drm, void *arg)
> >         struct xe_gt *gt = guc_to_gt(guc);
> >         int ret;
> >  
> > +       /* Forcefully kill any remaining exec queues */
> > +       xe_guc_ct_stop(&guc->ct);
> > +       __xe_guc_submit_reset_prepare(guc);
> 
> In xe_guc_declare_wedged() we have the opposite sequence -
> reset_prepare and ct_stop after. Can we adjust to the same here? Or is
> there a reason to swap that?
> 

The ordering here doesn't matter. Can swap it here.

Matt

> Thanks,
> Stuart
> 
> > +       xe_guc_submit_stop(guc);
> > +       xe_guc_submit_pause_abort(guc);
> > +
> >         ret = wait_event_timeout(guc->submission_state.fini_wq,
> >                                  xa_empty(&guc-
> > >submission_state.exec_queue_lookup),
> >                                  HZ * 5);
> > @@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc
> > *guc, struct xe_exec_queue *q)
> >         }
> >  }
> >  
> > -int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
> >  {
> >         int ret;
> >  
> > -       if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> > -               return 0;
> > -
> > -       if (!guc->submission_state.initialized)
> > -               return 0;
> > -
> >         /*
> >          * Using an atomic here rather than submission_state.lock as
> > this
> >          * function can be called while holding the CT lock (engine
> > reset
> > @@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc
> > *guc)
> >         return ret;
> >  }
> >  
> > +int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > +{
> > +       if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> > +               return 0;
> > +
> > +       if (!guc->submission_state.initialized)
> > +               return 0;
> > +
> > +       return __xe_guc_submit_reset_prepare(guc);
> > +}
> > +
> >  void xe_guc_submit_reset_wait(struct xe_guc *guc)
> >  {
> >         wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* ✗ Xe.CI.Full: failure for Attempt to fixup reset, wedge, unload corner cases
  2025-12-18 21:44 [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases Matthew Brost
                   ` (4 preceding siblings ...)
  2025-12-18 23:44 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-12-20  1:22 ` Patchwork
  5 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2025-12-20  1:22 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 77249 bytes --]

== Series Details ==

Series: Attempt to fixup reset, wedge, unload corner cases
URL   : https://patchwork.freedesktop.org/series/159247/
State : failure

== Summary ==

CI Bug Log - changes from xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4_FULL -> xe-pw-159247v1_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-159247v1_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-159247v1_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (2 -> 2)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in xe-pw-159247v1_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_execute:
    - shard-bmg:          [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-10/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_execute.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_execute.html

  
Known issues
------------

  Here are the changes found in xe-pw-159247v1_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_getversion@all-cards:
    - shard-bmg:          [PASS][3] -> [FAIL][4] ([Intel XE#6914])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@core_getversion@all-cards.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@core_getversion@all-cards.html

  * igt@core_hotunplug@unbind-rebind:
    - shard-bmg:          [PASS][5] -> [SKIP][6] ([Intel XE#6779])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@core_hotunplug@unbind-rebind.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@core_hotunplug@unbind-rebind.html

  * igt@core_setmaster@master-drop-set-user:
    - shard-bmg:          [PASS][7] -> [FAIL][8] ([Intel XE#4674])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@core_setmaster@master-drop-set-user.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@core_setmaster@master-drop-set-user.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#2327]) +1 other test skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#1124]) +1 other test skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_bw@linear-tiling-3-displays-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#367])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_bw@linear-tiling-3-displays-1920x1080p.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#2887]) +4 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#2724])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_edid@dp-edid-change-during-hibernate:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2252]) +2 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_chamelium_edid@dp-edid-change-during-hibernate.html

  * igt@kms_content_protection@srm@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][15] ([Intel XE#1178])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_content_protection@srm@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2321]) +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions:
    - shard-bmg:          [PASS][17] -> [SKIP][18] ([Intel XE#2291]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-2/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2286])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-bmg:          [PASS][20] -> [SKIP][21] ([Intel XE#4302])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-1/igt@kms_display_modes@extended-mode-basic.html
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#2244])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
    - shard-bmg:          [PASS][23] -> [SKIP][24] ([Intel XE#2316]) +3 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-2/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-bmg:          [PASS][25] -> [INCOMPLETE][26] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-9/igt@kms_flip@flip-vs-suspend.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@wf_vblank-ts-check:
    - shard-bmg:          [PASS][27] -> [SKIP][28] ([Intel XE#6703]) +429 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_flip@wf_vblank-ts-check.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_flip@wf_vblank-ts-check.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2293]) +3 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#4141]) +5 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#2311]) +11 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#2313]) +6 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#6901])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-bmg:          [PASS][34] -> [SKIP][35] ([Intel XE#4596])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-2/igt@kms_plane_multiple@2x-tiling-none.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#5020])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-b:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#6886]) +7 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-b.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-sf:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#1406] / [Intel XE#1489]) +2 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr@psr2-sprite-blt:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_psr@psr2-sprite-blt.html

  * igt@kms_sharpness_filter@filter-tap:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#6503])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_sharpness_filter@filter-tap.html

  * igt@xe_eudebug@multigpu-basic-client:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#4837]) +1 other test skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@xe_eudebug@multigpu-basic-client.html

  * igt@xe_eudebug_online@pagefault-read:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#4837] / [Intel XE#6665])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@xe_eudebug_online@pagefault-read.html

  * igt@xe_exec_basic@multigpu-once-null-defer-mmap:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#2322]) +2 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@xe_exec_basic@multigpu-once-null-defer-mmap.html

  * igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority:
    - shard-bmg:          NOTRUN -> [SKIP][44] ([Intel XE#6874]) +8 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority.html

  * igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#4943]) +8 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset.html

  * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma:
    - shard-lnl:          [PASS][46] -> [FAIL][47] ([Intel XE#5625])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-lnl-4/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-lnl-3/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-prefetch:
    - shard-bmg:          [PASS][48] -> [SKIP][49] ([Intel XE#6557] / [Intel XE#6703]) +4 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-prefetch.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-prefetch.html

  * igt@xe_module_load@reload-no-display:
    - shard-bmg:          [PASS][50] -> [FAIL][51] ([Intel XE#6913]) +1 other test fail
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@xe_module_load@reload-no-display.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_module_load@reload-no-display.html

  * igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0:
    - shard-lnl:          [PASS][52] -> [FAIL][53] ([Intel XE#6251]) +1 other test fail
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-lnl-1/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0.html
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-lnl-7/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_video_decode0.html

  * igt@xe_query@multigpu-query-invalid-size:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#944])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@xe_query@multigpu-query-invalid-size.html

  
#### Possible fixes ####

  * igt@core_hotunplug@hotreplug-lateclose:
    - shard-bmg:          [SKIP][55] ([Intel XE#6779]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@core_hotunplug@hotreplug-lateclose.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@core_hotunplug@hotreplug-lateclose.html

  * igt@core_setmaster@master-drop-set-root:
    - shard-bmg:          [FAIL][57] ([Intel XE#6910]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@core_setmaster@master-drop-set-root.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@core_setmaster@master-drop-set-root.html

  * igt@device_reset@unbind-reset-rebind:
    - shard-bmg:          [SKIP][59] ([Intel XE#6815]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@device_reset@unbind-reset-rebind.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@device_reset@unbind-reset-rebind.html

  * igt@fbdev@nullptr:
    - shard-bmg:          [SKIP][61] ([Intel XE#2134]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@fbdev@nullptr.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@fbdev@nullptr.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-bmg:          [INCOMPLETE][63] ([Intel XE#2705] / [Intel XE#6766]) -> [PASS][64] +1 other test pass
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-3/igt@kms_atomic_transition@plane-all-modeset-transition.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-10/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_cursor_edge_walk@256x256-right-edge:
    - shard-bmg:          [FAIL][65] -> [PASS][66] +1 other test pass
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-2/igt@kms_cursor_edge_walk@256x256-right-edge.html
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-3/igt@kms_cursor_edge_walk@256x256-right-edge.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
    - shard-bmg:          [SKIP][67] ([Intel XE#2291]) -> [PASS][68] +1 other test pass
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-bmg:          [SKIP][69] ([Intel XE#2316]) -> [PASS][70] +1 other test pass
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
    - shard-lnl:          [FAIL][71] ([Intel XE#301]) -> [PASS][72] +1 other test pass
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html

  * igt@kms_pipe_crc_basic@disable-crc-after-crtc:
    - shard-bmg:          [SKIP][73] ([Intel XE#6557] / [Intel XE#6703]) -> [PASS][74] +5 other tests pass
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_pipe_crc_basic@disable-crc-after-crtc.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_pipe_crc_basic@disable-crc-after-crtc.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-bmg:          [SKIP][75] ([Intel XE#6693]) -> [PASS][76] +1 other test pass
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@xe_exec_basic@once-bindexecqueue-userptr-invalidate-race:
    - shard-bmg:          [SKIP][77] ([Intel XE#6703]) -> [PASS][78] +426 other tests pass
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_exec_basic@once-bindexecqueue-userptr-invalidate-race.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@xe_exec_basic@once-bindexecqueue-userptr-invalidate-race.html

  * igt@xe_exec_system_allocator@many-stride-malloc-prefetch:
    - shard-bmg:          [WARN][79] ([Intel XE#5786]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-7/igt@xe_exec_system_allocator@many-stride-malloc-prefetch.html
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-9/igt@xe_exec_system_allocator@many-stride-malloc-prefetch.html

  * igt@xe_module_load@reload:
    - shard-bmg:          [FAIL][81] ([Intel XE#6913]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_module_load@reload.html
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@xe_module_load@reload.html

  
#### Warnings ####

  * igt@kms_big_fb@linear-32bpp-rotate-270:
    - shard-bmg:          [SKIP][83] ([Intel XE#6703]) -> [SKIP][84] ([Intel XE#2327]) +5 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_big_fb@linear-32bpp-rotate-270.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_big_fb@linear-32bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-90:
    - shard-bmg:          [SKIP][85] ([Intel XE#2327]) -> [SKIP][86] ([Intel XE#6703]) +3 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-16bpp-rotate-270:
    - shard-bmg:          [SKIP][87] ([Intel XE#6703]) -> [SKIP][88] ([Intel XE#1124]) +7 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_big_fb@y-tiled-16bpp-rotate-270.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_big_fb@y-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb:
    - shard-bmg:          [SKIP][89] ([Intel XE#2328]) -> [SKIP][90] ([Intel XE#6703])
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_big_fb@y-tiled-addfb.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_big_fb@y-tiled-addfb.html

  * igt@kms_big_fb@y-tiled-addfb-size-overflow:
    - shard-bmg:          [SKIP][91] ([Intel XE#6703]) -> [SKIP][92] ([Intel XE#610])
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_big_fb@y-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-bmg:          [SKIP][93] ([Intel XE#1124]) -> [SKIP][94] ([Intel XE#6703]) +6 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p:
    - shard-bmg:          [SKIP][95] ([Intel XE#6703]) -> [SKIP][96] ([Intel XE#2314] / [Intel XE#2894])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p:
    - shard-bmg:          [SKIP][97] ([Intel XE#2314] / [Intel XE#2894]) -> [SKIP][98] ([Intel XE#6703]) +2 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-4-displays-1920x1080p:
    - shard-bmg:          [SKIP][99] ([Intel XE#367]) -> [SKIP][100] ([Intel XE#6703])
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-4-displays-3840x2160p:
    - shard-bmg:          [SKIP][101] ([Intel XE#6703]) -> [SKIP][102] ([Intel XE#367]) +2 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_bw@linear-tiling-4-displays-3840x2160p.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_bw@linear-tiling-4-displays-3840x2160p.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs:
    - shard-bmg:          [SKIP][103] ([Intel XE#2887]) -> [SKIP][104] ([Intel XE#6557] / [Intel XE#6703])
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-bmg:          [SKIP][105] ([Intel XE#2652] / [Intel XE#787]) -> [SKIP][106] ([Intel XE#6703]) +2 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
    - shard-bmg:          [SKIP][107] ([Intel XE#3432]) -> [SKIP][108] ([Intel XE#6703])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          [SKIP][109] ([Intel XE#2887]) -> [SKIP][110] ([Intel XE#6703]) +6 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          [SKIP][111] ([Intel XE#6703]) -> [SKIP][112] ([Intel XE#2887]) +11 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-bmg:          [SKIP][113] ([Intel XE#2724]) -> [SKIP][114] ([Intel XE#6703])
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_cdclk@mode-transition-all-outputs.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_cdclk@plane-scaling:
    - shard-bmg:          [SKIP][115] ([Intel XE#6703]) -> [SKIP][116] ([Intel XE#2724])
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_cdclk@plane-scaling.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_color@degamma:
    - shard-bmg:          [SKIP][117] ([Intel XE#2325]) -> [SKIP][118] ([Intel XE#6703])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_chamelium_color@degamma.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_chamelium_color@degamma.html

  * igt@kms_chamelium_hpd@hdmi-hpd-after-suspend:
    - shard-bmg:          [SKIP][119] ([Intel XE#6703]) -> [SKIP][120] ([Intel XE#2252]) +6 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html

  * igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
    - shard-bmg:          [SKIP][121] ([Intel XE#2252]) -> [SKIP][122] ([Intel XE#6703]) +7 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-bmg:          [SKIP][123] ([Intel XE#6703]) -> [SKIP][124] ([Intel XE#2390])
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_content_protection@dp-mst-type-0.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@lic-type-1:
    - shard-bmg:          [SKIP][125] ([Intel XE#2341]) -> [SKIP][126] ([Intel XE#6703])
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_content_protection@lic-type-1.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_content_protection@lic-type-1.html

  * igt@kms_content_protection@mei-interface:
    - shard-bmg:          [SKIP][127] ([Intel XE#6703]) -> [SKIP][128] ([Intel XE#2341])
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_content_protection@mei-interface.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm:
    - shard-bmg:          [SKIP][129] ([Intel XE#6703]) -> [FAIL][130] ([Intel XE#1178])
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_content_protection@srm.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_content_protection@srm.html

  * igt@kms_content_protection@uevent:
    - shard-bmg:          [FAIL][131] ([Intel XE#6707]) -> [SKIP][132] ([Intel XE#6703])
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_content_protection@uevent.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-onscreen-128x42:
    - shard-bmg:          [SKIP][133] ([Intel XE#2320]) -> [SKIP][134] ([Intel XE#6703])
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_cursor_crc@cursor-onscreen-128x42.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_cursor_crc@cursor-onscreen-128x42.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-bmg:          [SKIP][135] ([Intel XE#6703]) -> [SKIP][136] ([Intel XE#2320]) +3 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_cursor_crc@cursor-onscreen-max-size.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_cursor_crc@cursor-random-512x170:
    - shard-bmg:          [SKIP][137] ([Intel XE#2321]) -> [SKIP][138] ([Intel XE#6703]) +1 other test skip
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_cursor_crc@cursor-random-512x170.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_cursor_crc@cursor-random-512x170.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-bmg:          [SKIP][139] ([Intel XE#6703]) -> [SKIP][140] ([Intel XE#2321])
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_cursor_crc@cursor-random-512x512.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-256x85:
    - shard-bmg:          [SKIP][141] ([Intel XE#6557] / [Intel XE#6703]) -> [SKIP][142] ([Intel XE#2320])
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic:
    - shard-bmg:          [SKIP][143] ([Intel XE#2291]) -> [SKIP][144] ([Intel XE#6703]) +1 other test skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-bmg:          [SKIP][145] ([Intel XE#6703]) -> [SKIP][146] ([Intel XE#2291]) +1 other test skip
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-bmg:          [SKIP][147] ([Intel XE#6703]) -> [SKIP][148] ([Intel XE#4354]) +1 other test skip
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_dp_link_training@uhbr-sst.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dp_linktrain_fallback@dsc-fallback:
    - shard-bmg:          [SKIP][149] ([Intel XE#4331]) -> [SKIP][150] ([Intel XE#6703])
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_dp_linktrain_fallback@dsc-fallback.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_dp_linktrain_fallback@dsc-fallback.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-bmg:          [SKIP][151] ([Intel XE#2244]) -> [SKIP][152] ([Intel XE#6703]) +1 other test skip
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_dsc@dsc-with-output-formats.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
    - shard-bmg:          [SKIP][153] ([Intel XE#4422]) -> [SKIP][154] ([Intel XE#6703])
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-bmg:          [SKIP][155] ([Intel XE#6703]) -> [SKIP][156] ([Intel XE#776])
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_fbcon_fbt@psr-suspend.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@display-4x:
    - shard-bmg:          [SKIP][157] ([Intel XE#6703]) -> [SKIP][158] ([Intel XE#1138])
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_feature_discovery@display-4x.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@psr1:
    - shard-bmg:          [SKIP][159] ([Intel XE#6703]) -> [SKIP][160] ([Intel XE#2374]) +1 other test skip
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_feature_discovery@psr1.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-flip-vs-rmfb-interruptible:
    - shard-bmg:          [SKIP][161] ([Intel XE#2316]) -> [SKIP][162] ([Intel XE#6703])
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
    - shard-bmg:          [SKIP][163] ([Intel XE#2293] / [Intel XE#2380]) -> [SKIP][164] ([Intel XE#6703]) +2 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
    - shard-bmg:          [SKIP][165] ([Intel XE#6557] / [Intel XE#6703]) -> [SKIP][166] ([Intel XE#2293] / [Intel XE#2380])
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
    - shard-bmg:          [SKIP][167] ([Intel XE#6703]) -> [SKIP][168] ([Intel XE#2293] / [Intel XE#2380]) +2 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][169] ([Intel XE#6557] / [Intel XE#6703]) -> [SKIP][170] ([Intel XE#2311])
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-wc.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render:
    - shard-bmg:          [SKIP][171] ([Intel XE#6703]) -> [SKIP][172] ([Intel XE#2312]) +8 other tests skip
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt:
    - shard-bmg:          [SKIP][173] ([Intel XE#2312]) -> [SKIP][174] ([Intel XE#2311]) +5 other tests skip
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-render:
    - shard-bmg:          [SKIP][175] ([Intel XE#2311]) -> [SKIP][176] ([Intel XE#6703]) +19 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-render.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-render.html

  * igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render:
    - shard-bmg:          [SKIP][177] ([Intel XE#6703]) -> [SKIP][178] ([Intel XE#2311]) +14 other tests skip
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-bmg:          [SKIP][179] ([Intel XE#6703]) -> [SKIP][180] ([Intel XE#4141]) +9 other tests skip
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][181] ([Intel XE#2312]) -> [SKIP][182] ([Intel XE#4141])
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][183] ([Intel XE#4141]) -> [SKIP][184] ([Intel XE#2312]) +2 other tests skip
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render:
    - shard-bmg:          [SKIP][185] ([Intel XE#4141]) -> [SKIP][186] ([Intel XE#6703]) +7 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-bmg:          [SKIP][187] ([Intel XE#6703]) -> [SKIP][188] ([Intel XE#2352])
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-onoff:
    - shard-bmg:          [SKIP][189] ([Intel XE#2311]) -> [SKIP][190] ([Intel XE#2312]) +7 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-onoff.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
    - shard-bmg:          [SKIP][191] ([Intel XE#2312]) -> [SKIP][192] ([Intel XE#6703]) +7 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][193] ([Intel XE#2313]) -> [SKIP][194] ([Intel XE#2312]) +7 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-bmg:          [SKIP][195] ([Intel XE#6703]) -> [SKIP][196] ([Intel XE#2313]) +19 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][197] ([Intel XE#2313]) -> [SKIP][198] ([Intel XE#6557] / [Intel XE#6703])
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff:
    - shard-bmg:          [SKIP][199] ([Intel XE#2313]) -> [SKIP][200] ([Intel XE#6703]) +19 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-bmg:          [SKIP][201] ([Intel XE#2312]) -> [SKIP][202] ([Intel XE#2313]) +5 other tests skip
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_joiner@basic-max-non-joiner:
    - shard-bmg:          [SKIP][203] ([Intel XE#6703]) -> [SKIP][204] ([Intel XE#4298])
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_joiner@basic-max-non-joiner.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_joiner@basic-max-non-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-bmg:          [SKIP][205] ([Intel XE#6911]) -> [SKIP][206] ([Intel XE#6703]) +1 other test skip
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-bmg:          [SKIP][207] ([Intel XE#6703]) -> [SKIP][208] ([Intel XE#2393])
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_plane_lowres@tiling-y.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-bmg:          [SKIP][209] ([Intel XE#2393]) -> [SKIP][210] ([Intel XE#6703])
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_plane_lowres@tiling-yf.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-bmg:          [SKIP][211] ([Intel XE#4596]) -> [SKIP][212] ([Intel XE#5021])
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_plane_multiple@2x-tiling-yf.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
    - shard-bmg:          [SKIP][213] ([Intel XE#6703]) -> [SKIP][214] ([Intel XE#6886]) +1 other test skip
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-bmg:          [SKIP][215] ([Intel XE#6703]) -> [SKIP][216] ([Intel XE#2938])
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_pm_backlight@brightness-with-dpms.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-bmg:          [SKIP][217] ([Intel XE#870]) -> [SKIP][218] ([Intel XE#6703])
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_pm_backlight@fade-with-dpms.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-bmg:          [SKIP][219] ([Intel XE#2391]) -> [SKIP][220] ([Intel XE#6703])
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_pm_dc@dc3co-vpb-simulation.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-bmg:          [SKIP][221] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836]) -> [SKIP][222] ([Intel XE#6693]) +1 other test skip
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_pm_rpm@dpms-lpsp.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-bmg:          [SKIP][223] ([Intel XE#1439] / [Intel XE#836]) -> [SKIP][224] ([Intel XE#6693])
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-bmg:          [SKIP][225] ([Intel XE#6693]) -> [SKIP][226] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836])
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
    - shard-bmg:          [SKIP][227] ([Intel XE#1406] / [Intel XE#6703]) -> [SKIP][228] ([Intel XE#1406] / [Intel XE#1489]) +5 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-bmg:          [SKIP][229] ([Intel XE#1406] / [Intel XE#1489]) -> [SKIP][230] ([Intel XE#1406] / [Intel XE#6703]) +5 other tests skip
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-bmg:          [SKIP][231] ([Intel XE#1406] / [Intel XE#2387]) -> [SKIP][232] ([Intel XE#1406] / [Intel XE#6703])
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_psr2_su@page_flip-xrgb8888.html
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@psr-primary-page-flip:
    - shard-bmg:          [SKIP][233] ([Intel XE#1406] / [Intel XE#6703]) -> [SKIP][234] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +9 other tests skip
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_psr@psr-primary-page-flip.html
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@kms_psr@psr-primary-page-flip.html

  * igt@kms_psr@psr2-primary-page-flip:
    - shard-bmg:          [SKIP][235] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) -> [SKIP][236] ([Intel XE#1406] / [Intel XE#6703]) +5 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_psr@psr2-primary-page-flip.html
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_psr@psr2-primary-page-flip.html

  * igt@kms_psr@psr2-primary-render:
    - shard-bmg:          [SKIP][237] ([Intel XE#1406] / [Intel XE#2234]) -> [SKIP][238] ([Intel XE#1406] / [Intel XE#6703])
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_psr@psr2-primary-render.html
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_psr@psr2-primary-render.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-bmg:          [SKIP][239] ([Intel XE#1406] / [Intel XE#2414]) -> [SKIP][240] ([Intel XE#1406] / [Intel XE#6703])
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@bad-pixel-format:
    - shard-bmg:          [SKIP][241] ([Intel XE#6703]) -> [SKIP][242] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_rotation_crc@bad-pixel-format.html
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_rotation_crc@bad-pixel-format.html

  * igt@kms_rotation_crc@bad-tiling:
    - shard-bmg:          [SKIP][243] ([Intel XE#3414] / [Intel XE#3904]) -> [SKIP][244] ([Intel XE#6703]) +1 other test skip
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_rotation_crc@bad-tiling.html
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_rotation_crc@bad-tiling.html

  * igt@kms_setmode@invalid-clone-single-crtc:
    - shard-bmg:          [SKIP][245] ([Intel XE#1435]) -> [SKIP][246] ([Intel XE#6703])
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@kms_setmode@invalid-clone-single-crtc.html
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_setmode@invalid-clone-single-crtc.html

  * igt@kms_sharpness_filter@filter-scaler-downscale:
    - shard-bmg:          [SKIP][247] ([Intel XE#6703]) -> [SKIP][248] ([Intel XE#6503]) +2 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@kms_sharpness_filter@filter-scaler-downscale.html
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@kms_sharpness_filter@filter-scaler-downscale.html

  * igt@kms_sharpness_filter@invalid-filter-with-plane:
    - shard-bmg:          [SKIP][249] ([Intel XE#6503]) -> [SKIP][250] ([Intel XE#6703]) +1 other test skip
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_sharpness_filter@invalid-filter-with-plane.html
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_sharpness_filter@invalid-filter-with-plane.html

  * igt@kms_vrr@seamless-rr-switch-drrs:
    - shard-bmg:          [SKIP][251] ([Intel XE#1499]) -> [SKIP][252] ([Intel XE#6703]) +1 other test skip
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@kms_vrr@seamless-rr-switch-drrs.html
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@kms_vrr@seamless-rr-switch-drrs.html

  * igt@xe_compute@ccs-mode-basic:
    - shard-bmg:          [SKIP][253] ([Intel XE#6703]) -> [SKIP][254] ([Intel XE#6599])
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_compute@ccs-mode-basic.html
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@xe_compute@ccs-mode-basic.html

  * igt@xe_eudebug@basic-vm-access-userptr:
    - shard-bmg:          [SKIP][255] ([Intel XE#6703]) -> [SKIP][256] ([Intel XE#4837]) +4 other tests skip
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_eudebug@basic-vm-access-userptr.html
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@xe_eudebug@basic-vm-access-userptr.html

  * igt@xe_eudebug@basic-vm-bind-vm-destroy:
    - shard-bmg:          [SKIP][257] ([Intel XE#4837]) -> [SKIP][258] ([Intel XE#6703]) +3 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_eudebug@basic-vm-bind-vm-destroy.html
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_eudebug@basic-vm-bind-vm-destroy.html

  * igt@xe_eudebug_online@pagefault-read-stress:
    - shard-bmg:          [SKIP][259] ([Intel XE#6665] / [Intel XE#6681]) -> [SKIP][260] ([Intel XE#6703])
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_eudebug_online@pagefault-read-stress.html
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_eudebug_online@pagefault-read-stress.html

  * igt@xe_eudebug_online@single-step:
    - shard-bmg:          [SKIP][261] ([Intel XE#6703]) -> [SKIP][262] ([Intel XE#4837] / [Intel XE#6665]) +4 other tests skip
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_eudebug_online@single-step.html
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@xe_eudebug_online@single-step.html

  * igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-vram:
    - shard-bmg:          [SKIP][263] ([Intel XE#4837] / [Intel XE#6665]) -> [SKIP][264] ([Intel XE#6703]) +2 other tests skip
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-vram.html
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-vram.html

  * igt@xe_eudebug_sriov@deny-sriov:
    - shard-bmg:          [SKIP][265] ([Intel XE#5793]) -> [SKIP][266] ([Intel XE#6703])
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@xe_eudebug_sriov@deny-sriov.html
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_eudebug_sriov@deny-sriov.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          [INCOMPLETE][267] ([Intel XE#6321]) -> [SKIP][268] ([Intel XE#6703])
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_evict@evict-beng-mixed-many-threads-small.html
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap:
    - shard-bmg:          [SKIP][269] ([Intel XE#6703]) -> [SKIP][270] ([Intel XE#2322]) +5 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap.html
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate:
    - shard-bmg:          [SKIP][271] ([Intel XE#2322]) -> [SKIP][272] ([Intel XE#6703]) +5 other tests skip
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate:
    - shard-bmg:          [SKIP][273] ([Intel XE#6874]) -> [SKIP][274] ([Intel XE#6703]) +21 other tests skip
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate.html
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate.html

  * igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-dyn-priority-smem:
    - shard-bmg:          [SKIP][275] ([Intel XE#6703]) -> [SKIP][276] ([Intel XE#6874]) +19 other tests skip
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-dyn-priority-smem.html
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-dyn-priority-smem.html

  * igt@xe_exec_system_allocator@many-64k-mmap-huge-nomemset:
    - shard-bmg:          [SKIP][277] ([Intel XE#6703]) -> [SKIP][278] ([Intel XE#5007])
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_exec_system_allocator@many-64k-mmap-huge-nomemset.html
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-4/igt@xe_exec_system_allocator@many-64k-mmap-huge-nomemset.html

  * igt@xe_exec_system_allocator@once-large-mmap-huge:
    - shard-bmg:          [SKIP][279] ([Intel XE#4943]) -> [SKIP][280] ([Intel XE#6703]) +16 other tests skip
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-8/igt@xe_exec_system_allocator@once-large-mmap-huge.html
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_exec_system_allocator@once-large-mmap-huge.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-new-huge:
    - shard-bmg:          [SKIP][281] ([Intel XE#6703]) -> [SKIP][282] ([Intel XE#4943]) +16 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-new-huge.html
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-new-huge.html

  * igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add:
    - shard-bmg:          [SKIP][283] ([Intel XE#6703]) -> [SKIP][284] ([Intel XE#6281])
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html

  * igt@xe_pat@pat-index-xelpg:
    - shard-bmg:          [SKIP][285] ([Intel XE#6703]) -> [SKIP][286] ([Intel XE#2236])
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_pat@pat-index-xelpg.html
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@xe_pat@pat-index-xelpg.html

  * igt@xe_pm@d3hot-i2c:
    - shard-bmg:          [SKIP][287] ([Intel XE#6703]) -> [SKIP][288] ([Intel XE#5742])
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_pm@d3hot-i2c.html
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@xe_pm@d3hot-i2c.html

  * igt@xe_pm@s2idle-d3cold-basic-exec:
    - shard-bmg:          [SKIP][289] ([Intel XE#2284]) -> [SKIP][290] ([Intel XE#6703]) +1 other test skip
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@xe_pm@s2idle-d3cold-basic-exec.html
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_pm@s2idle-d3cold-basic-exec.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq:
    - shard-bmg:          [SKIP][291] ([Intel XE#4733]) -> [SKIP][292] ([Intel XE#6703]) +1 other test skip
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html

  * igt@xe_pxp@pxp-stale-queue-post-suspend:
    - shard-bmg:          [SKIP][293] ([Intel XE#6703]) -> [SKIP][294] ([Intel XE#4733]) +2 other tests skip
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_pxp@pxp-stale-queue-post-suspend.html
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-1/igt@xe_pxp@pxp-stale-queue-post-suspend.html

  * igt@xe_query@multigpu-query-mem-usage:
    - shard-bmg:          [SKIP][295] ([Intel XE#944]) -> [SKIP][296] ([Intel XE#6703]) +2 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-4/igt@xe_query@multigpu-query-mem-usage.html
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-5/igt@xe_query@multigpu-query-mem-usage.html

  * igt@xe_query@multigpu-query-uc-fw-version-huc:
    - shard-bmg:          [SKIP][297] ([Intel XE#6703]) -> [SKIP][298] ([Intel XE#944])
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4/shard-bmg-5/igt@xe_query@multigpu-query-uc-fw-version-huc.html
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/shard-bmg-8/igt@xe_query@multigpu-query-uc-fw-version-huc.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2391
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2414
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
  [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
  [Intel XE#4331]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4331
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4674]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4674
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#5007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5007
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
  [Intel XE#5742]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5742
  [Intel XE#5786]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5786
  [Intel XE#5793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5793
  [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
  [Intel XE#6251]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6251
  [Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6557]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6557
  [Intel XE#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599
  [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
  [Intel XE#6681]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6681
  [Intel XE#6693]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6693
  [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703
  [Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707
  [Intel XE#6766]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6766
  [Intel XE#6779]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6779
  [Intel XE#6815]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6815
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901
  [Intel XE#6910]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6910
  [Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911
  [Intel XE#6913]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6913
  [Intel XE#6914]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6914
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


Build changes
-------------

  * Linux: xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4 -> xe-pw-159247v1

  IGT_8674: f38f4d8e9c65aff45ac807e646d06e38bc3193a2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4269-c25fd3953a459143758264a6c4dab32107bb48c4: c25fd3953a459143758264a6c4dab32107bb48c4
  xe-pw-159247v1: 159247v1

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-159247v1/index.html

[-- Attachment #2: Type: text/html, Size: 96228 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2025-12-18 21:44 ` [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini Matthew Brost
  2025-12-18 23:36   ` Summers, Stuart
@ 2026-01-08 19:00   ` Dong, Zhanjun
  2026-01-08 19:17     ` Matthew Brost
  1 sibling, 1 reply; 17+ messages in thread
From: Dong, Zhanjun @ 2026-01-08 19:00 UTC (permalink / raw)
  To: Matthew Brost, intel-xe



On 2025-12-18 4:44 p.m., Matthew Brost wrote:
> In GuC submit fini, forcefully tear down any exec queues by disabling
> CTs, stopping the scheduler (which cleans up lost G2H), killing all
> remaining queues, and resuming scheduling to allow any remaining cleanup
> actions to complete and signal any remaining fences.
> 
> v2:
>   - Fix VF failure (CI)
> 
> Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
> Cc: stable@vger.kernel.org
> Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> 
> ---
> 
> This fix will not apply outright to any stable kernel as it depeneds on
> functions which have added in the KMD since the original commit. Likely
> will have to manually send out patches to stable for kernel which we'd
> like to fix.
> ---
>   drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
>   1 file changed, 20 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> index 071cbfec2401..58ec94439df1 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -289,6 +289,8 @@ static bool exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
>   		 EXEC_QUEUE_STATE_BANNED));
>   }
>   
> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
> +
>   static void guc_submit_fini(struct drm_device *drm, void *arg)
>   {
>   	struct xe_guc *guc = arg;
> @@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device *drm, void *arg)
>   	struct xe_gt *gt = guc_to_gt(guc);
>   	int ret;
>   
> +	/* Forcefully kill any remaining exec queues */
> +	xe_guc_ct_stop(&guc->ct);
> +	__xe_guc_submit_reset_prepare(guc);
> +	xe_guc_submit_stop(guc);
> +	xe_guc_submit_pause_abort(guc);
> +

Tested this series over
265d13795b45 drm-tip: 2026y-01m-06d-08h-06m-43s UTC integration manifest 
===(CI_DRM_17772) and (xe-4335) with (IGT_8685)===

and run test xe_fault_injection --r probe-fail-guc-xe_guc_mmio_send_recv 
--debug
got few problems:
1. Assertion ct->g2h_outstanding == 0 triggered
call stack shows:
[  708.967261]  xe_guc_ct_disable+0x17/0x80 [xe]
[  709.043382]  xe_guc_sanitize+0x31/0x50 [xe]
[  709.119557]  xe_uc_load_hw+0x187/0x2a0 [xe]

2. Page fault
[  740.822070] BUG: unable to handle page fault for address: 
ffffc9000c80fc50
[  740.828896] #PF: supervisor write access in kernel mode
[  740.834063] #PF: error_code(0x0002) - not-present page
[  740.839145] PGD 100000067 P4D 100000067 PUD 100ad4067 PMD 0
[  740.844738] Oops: Oops: 0002 [#2] SMP NOPTI
[  740.848880] CPU: 2 UID: 0 PID: 169 Comm: kworker/2:2 Tainted: G S M 
UD W           6.19.0-rc4+xu4335+ #3 PREEMPT(voluntary)
[  740.859964] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, 
[U]=USER, [D]=DIE, [W]=WARN
[  740.867952] Hardware name: Intel Corporation Meteor Lake Client 
Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS 
MTLPFWI1.R00.4122.D21.2408281317 08/28/2024
[  740.881081] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
[  740.887820] RIP: 0010:xe_ggtt_set_pte+0x53/0x350 [xe]
[  740.892900] Code: e2 48 89 45 d0 31 c0 f7 c6 ff 0f 00 00 75 56 49 3b 
5c 24 08 0f 83 a8 01 00 00 49 8b 84 24 b0 00 00 00 48 c1 eb 0c 48 8d 04 
d8 <4c> 89 38 48 8b 45 d0 65 48 2b 05 e6 41 d1 e2 0f 85 e1 02 00 00 48
[  740.911428] RSP: 0018:ffffc9000074b9f0 EFLAGS: 00010202
[  740.916599] RAX: ffffc9000c80fc50 RBX: 0000000000001f8a RCX: 
0000000000000000
[  740.923653] RDX: 0000000000000000 RSI: 0000000001f8a000 RDI: 
ffff888132562628
[  740.930705] RBP: ffffc9000074ba88 R08: 0000000000000000 R09: 
ffff888168188000
[  740.937758] R10: 0000000000000000 R11: 0000000000000000 R12: 
ffff888132562628
[  740.944807] R13: 0000000000000000 R14: ffff88816818a768 R15: 
0000000000000000
[  740.951861] FS:  0000000000000000(0000) GS:ffff8884ebbe0000(0000) 
knlGS:0000000000000000
[  740.959850] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  740.965534] CR2: ffffc9000c80fc50 CR3: 0000000132923003 CR4: 
0000000000f72ef0
[  740.972585] PKRU: 55555554
[  740.975268] Call Trace:
[  740.977694]  <TASK>
[  740.979778]  ? __mutex_lock+0xae/0x1080
[  740.983583]  xe_ggtt_clear+0xa1/0x260 [xe]
[  740.987716]  ? lock_release+0x1df/0x280
[  740.991519]  ? pm_runtime_get_conditional+0x66/0x150
[  740.996436]  ggtt_node_remove+0xb2/0x140 [xe]
[  741.000829]  xe_ggtt_node_remove+0x40/0xa0 [xe]
[  741.005393]  xe_ggtt_remove_bo+0x87/0x250 [xe]
[  741.009874]  ? _raw_write_unlock+0x22/0x50
[  741.013927]  ? drm_vma_offset_remove+0x65/0x80
[  741.018324]  xe_ttm_bo_destroy+0xd4/0x310 [xe]
[  741.022800]  ttm_bo_release+0x70/0x330 [ttm]
[  741.027032]  ? vunmap+0x4a/0x70
[  741.030147]  ? vunmap+0x4a/0x70
[  741.033260]  ttm_bo_fini+0x3c/0x70 [ttm]
[  741.037145]  xe_gem_object_free+0x1a/0x30 [xe]
[  741.041618]  drm_gem_object_free+0x1d/0x40
[  741.045671]  xe_bo_put+0x136/0x1c0 [xe]
[  741.049548]  xe_lrc_destroy+0x47/0x60 [xe]
[  741.053691]  xe_exec_queue_fini+0x85/0xd0 [xe]
[  741.058172]  __guc_exec_queue_destroy_async+0x7c/0x190 [xe]
[  741.063770]  process_one_work+0x22e/0x6b0
[  741.067741]  worker_thread+0x1a0/0x370
[  741.071456]  ? __pfx_worker_thread+0x10/0x10
[  741.075683]  kthread+0x11f/0x250
[  741.078882]  ? __pfx_kthread+0x10/0x10
[  741.082594]  ret_from_fork+0x337/0x390
[  741.086315]  ? __pfx_kthread+0x10/0x10
[  741.090027]  ret_from_fork_asm+0x1a/0x30
[  741.093909]  </TASK>

Sounds like call xe_guc_submit_pause_abort here might cause trouble. 
That's why I call it in guc_fini_hw, which make the test passed.

Regards,
Zhanjun Dong

>   	ret = wait_event_timeout(guc->submission_state.fini_wq,
>   				 xa_empty(&guc->submission_state.exec_queue_lookup),
>   				 HZ * 5);
> @@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
>   	}
>   }
>   
> -int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
>   {
>   	int ret;
>   
> -	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> -		return 0;
> -
> -	if (!guc->submission_state.initialized)
> -		return 0;
> -
>   	/*
>   	 * Using an atomic here rather than submission_state.lock as this
>   	 * function can be called while holding the CT lock (engine reset
> @@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc)
>   	return ret;
>   }
>   
> +int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> +{
> +	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> +		return 0;
> +
> +	if (!guc->submission_state.initialized)
> +		return 0;
> +
> +	return __xe_guc_submit_reset_prepare(guc);
> +}
> +
>   void xe_guc_submit_reset_wait(struct xe_guc *guc)
>   {
>   	wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2026-01-08 19:00   ` Dong, Zhanjun
@ 2026-01-08 19:17     ` Matthew Brost
  2026-01-14 22:35       ` Dong, Zhanjun
  0 siblings, 1 reply; 17+ messages in thread
From: Matthew Brost @ 2026-01-08 19:17 UTC (permalink / raw)
  To: Dong, Zhanjun; +Cc: intel-xe

On Thu, Jan 08, 2026 at 02:00:15PM -0500, Dong, Zhanjun wrote:
> 
> 
> On 2025-12-18 4:44 p.m., Matthew Brost wrote:
> > In GuC submit fini, forcefully tear down any exec queues by disabling
> > CTs, stopping the scheduler (which cleans up lost G2H), killing all
> > remaining queues, and resuming scheduling to allow any remaining cleanup
> > actions to complete and signal any remaining fences.
> > 
> > v2:
> >   - Fix VF failure (CI)
> > 
> > Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > 
> > ---
> > 
> > This fix will not apply outright to any stable kernel as it depeneds on
> > functions which have added in the KMD since the original commit. Likely
> > will have to manually send out patches to stable for kernel which we'd
> > like to fix.
> > ---
> >   drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
> >   1 file changed, 20 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> > index 071cbfec2401..58ec94439df1 100644
> > --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> > +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> > @@ -289,6 +289,8 @@ static bool exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
> >   		 EXEC_QUEUE_STATE_BANNED));
> >   }
> > +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
> > +
> >   static void guc_submit_fini(struct drm_device *drm, void *arg)
> >   {
> >   	struct xe_guc *guc = arg;
> > @@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device *drm, void *arg)
> >   	struct xe_gt *gt = guc_to_gt(guc);
> >   	int ret;
> > +	/* Forcefully kill any remaining exec queues */
> > +	xe_guc_ct_stop(&guc->ct);
> > +	__xe_guc_submit_reset_prepare(guc);
> > +	xe_guc_submit_stop(guc);
> > +	xe_guc_submit_pause_abort(guc);
> > +
> 
> Tested this series over
> 265d13795b45 drm-tip: 2026y-01m-06d-08h-06m-43s UTC integration manifest
> ===(CI_DRM_17772) and (xe-4335) with (IGT_8685)===
> 
> and run test xe_fault_injection --r probe-fail-guc-xe_guc_mmio_send_recv
> --debug
> got few problems:
> 1. Assertion ct->g2h_outstanding == 0 triggered
> call stack shows:
> [  708.967261]  xe_guc_ct_disable+0x17/0x80 [xe]
> [  709.043382]  xe_guc_sanitize+0x31/0x50 [xe]
> [  709.119557]  xe_uc_load_hw+0x187/0x2a0 [xe]

Above is a different problem. Just delete xe_guc_sanitize from
xe_uc_load_hw, that call is nonsense left over from the i915 port.

xe_guc_sanitize / xe_uc_sanitize everywhere probably needs a look if
those calls make any bit of sense.

> 
> 2. Page fault
> [  740.822070] BUG: unable to handle page fault for address:
> ffffc9000c80fc50
> [  740.828896] #PF: supervisor write access in kernel mode
> [  740.834063] #PF: error_code(0x0002) - not-present page
> [  740.839145] PGD 100000067 P4D 100000067 PUD 100ad4067 PMD 0
> [  740.844738] Oops: Oops: 0002 [#2] SMP NOPTI
> [  740.848880] CPU: 2 UID: 0 PID: 169 Comm: kworker/2:2 Tainted: G S M UD W
> 6.19.0-rc4+xu4335+ #3 PREEMPT(voluntary)
> [  740.859964] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, [U]=USER,
> [D]=DIE, [W]=WARN
> [  740.867952] Hardware name: Intel Corporation Meteor Lake Client
> Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS MTLPFWI1.R00.4122.D21.2408281317
> 08/28/2024
> [  740.881081] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
> [  740.887820] RIP: 0010:xe_ggtt_set_pte+0x53/0x350 [xe]
> [  740.892900] Code: e2 48 89 45 d0 31 c0 f7 c6 ff 0f 00 00 75 56 49 3b 5c
> 24 08 0f 83 a8 01 00 00 49 8b 84 24 b0 00 00 00 48 c1 eb 0c 48 8d 04 d8 <4c>
> 89 38 48 8b 45 d0 65 48 2b 05 e6 41 d1 e2 0f 85 e1 02 00 00 48
> [  740.911428] RSP: 0018:ffffc9000074b9f0 EFLAGS: 00010202
> [  740.916599] RAX: ffffc9000c80fc50 RBX: 0000000000001f8a RCX:
> 0000000000000000
> [  740.923653] RDX: 0000000000000000 RSI: 0000000001f8a000 RDI:
> ffff888132562628
> [  740.930705] RBP: ffffc9000074ba88 R08: 0000000000000000 R09:
> ffff888168188000
> [  740.937758] R10: 0000000000000000 R11: 0000000000000000 R12:
> ffff888132562628
> [  740.944807] R13: 0000000000000000 R14: ffff88816818a768 R15:
> 0000000000000000
> [  740.951861] FS:  0000000000000000(0000) GS:ffff8884ebbe0000(0000)
> knlGS:0000000000000000
> [  740.959850] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  740.965534] CR2: ffffc9000c80fc50 CR3: 0000000132923003 CR4:
> 0000000000f72ef0
> [  740.972585] PKRU: 55555554
> [  740.975268] Call Trace:
> [  740.977694]  <TASK>
> [  740.979778]  ? __mutex_lock+0xae/0x1080
> [  740.983583]  xe_ggtt_clear+0xa1/0x260 [xe]
> [  740.987716]  ? lock_release+0x1df/0x280
> [  740.991519]  ? pm_runtime_get_conditional+0x66/0x150
> [  740.996436]  ggtt_node_remove+0xb2/0x140 [xe]
> [  741.000829]  xe_ggtt_node_remove+0x40/0xa0 [xe]
> [  741.005393]  xe_ggtt_remove_bo+0x87/0x250 [xe]
> [  741.009874]  ? _raw_write_unlock+0x22/0x50
> [  741.013927]  ? drm_vma_offset_remove+0x65/0x80
> [  741.018324]  xe_ttm_bo_destroy+0xd4/0x310 [xe]
> [  741.022800]  ttm_bo_release+0x70/0x330 [ttm]
> [  741.027032]  ? vunmap+0x4a/0x70
> [  741.030147]  ? vunmap+0x4a/0x70
> [  741.033260]  ttm_bo_fini+0x3c/0x70 [ttm]
> [  741.037145]  xe_gem_object_free+0x1a/0x30 [xe]
> [  741.041618]  drm_gem_object_free+0x1d/0x40
> [  741.045671]  xe_bo_put+0x136/0x1c0 [xe]
> [  741.049548]  xe_lrc_destroy+0x47/0x60 [xe]
> [  741.053691]  xe_exec_queue_fini+0x85/0xd0 [xe]
> [  741.058172]  __guc_exec_queue_destroy_async+0x7c/0x190 [xe]
> [  741.063770]  process_one_work+0x22e/0x6b0
> [  741.067741]  worker_thread+0x1a0/0x370
> [  741.071456]  ? __pfx_worker_thread+0x10/0x10
> [  741.075683]  kthread+0x11f/0x250
> [  741.078882]  ? __pfx_kthread+0x10/0x10
> [  741.082594]  ret_from_fork+0x337/0x390
> [  741.086315]  ? __pfx_kthread+0x10/0x10
> [  741.090027]  ret_from_fork_asm+0x1a/0x30
> [  741.093909]  </TASK>
> 
> Sounds like call xe_guc_submit_pause_abort here might cause trouble. That's
> why I call it in guc_fini_hw, which make the test passed.
> 

Thanks for the info. guc_fini_hw isn't definitely isn't the right place
though as that is registered before xe_guc_submit_init is called.

If I'm understanding the trace correctly - guc_submit_fini should be on
the devm exit handler.

Want to give my two suggestions a try? Also feel free run with these
patch / take over if you bandwidth. It is unlikely I'll have bandwidth
to pick these back up for at least a week or so.

Matt

> Regards,
> Zhanjun Dong
> 
> >   	ret = wait_event_timeout(guc->submission_state.fini_wq,
> >   				 xa_empty(&guc->submission_state.exec_queue_lookup),
> >   				 HZ * 5);
> > @@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
> >   	}
> >   }
> > -int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
> >   {
> >   	int ret;
> > -	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> > -		return 0;
> > -
> > -	if (!guc->submission_state.initialized)
> > -		return 0;
> > -
> >   	/*
> >   	 * Using an atomic here rather than submission_state.lock as this
> >   	 * function can be called while holding the CT lock (engine reset
> > @@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> >   	return ret;
> >   }
> > +int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > +{
> > +	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> > +		return 0;
> > +
> > +	if (!guc->submission_state.initialized)
> > +		return 0;
> > +
> > +	return __xe_guc_submit_reset_prepare(guc);
> > +}
> > +
> >   void xe_guc_submit_reset_wait(struct xe_guc *guc)
> >   {
> >   	wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2026-01-08 19:17     ` Matthew Brost
@ 2026-01-14 22:35       ` Dong, Zhanjun
  2026-02-06  5:50         ` Matthew Brost
  0 siblings, 1 reply; 17+ messages in thread
From: Dong, Zhanjun @ 2026-01-14 22:35 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe



On 2026-01-08 2:17 p.m., Matthew Brost wrote:
> On Thu, Jan 08, 2026 at 02:00:15PM -0500, Dong, Zhanjun wrote:
>>
>>
>> On 2025-12-18 4:44 p.m., Matthew Brost wrote:
>>> In GuC submit fini, forcefully tear down any exec queues by disabling
>>> CTs, stopping the scheduler (which cleans up lost G2H), killing all
>>> remaining queues, and resuming scheduling to allow any remaining cleanup
>>> actions to complete and signal any remaining fences.
>>>
>>> v2:
>>>    - Fix VF failure (CI)
>>>
>>> Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
>>> Cc: stable@vger.kernel.org
>>> Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
>>> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
>>>
>>> ---
>>>
>>> This fix will not apply outright to any stable kernel as it depeneds on
>>> functions which have added in the KMD since the original commit. Likely
>>> will have to manually send out patches to stable for kernel which we'd
>>> like to fix.
>>> ---
>>>    drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
>>>    1 file changed, 20 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
>>> index 071cbfec2401..58ec94439df1 100644
>>> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
>>> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
>>> @@ -289,6 +289,8 @@ static bool exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
>>>    		 EXEC_QUEUE_STATE_BANNED));
>>>    }
>>> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
>>> +
>>>    static void guc_submit_fini(struct drm_device *drm, void *arg)
>>>    {
>>>    	struct xe_guc *guc = arg;
>>> @@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device *drm, void *arg)
>>>    	struct xe_gt *gt = guc_to_gt(guc);
>>>    	int ret;
>>> +	/* Forcefully kill any remaining exec queues */
>>> +	xe_guc_ct_stop(&guc->ct);
>>> +	__xe_guc_submit_reset_prepare(guc);
>>> +	xe_guc_submit_stop(guc);
>>> +	xe_guc_submit_pause_abort(guc);
>>> +
>>
>> Tested this series over
>> 265d13795b45 drm-tip: 2026y-01m-06d-08h-06m-43s UTC integration manifest
>> ===(CI_DRM_17772) and (xe-4335) with (IGT_8685)===
>>
>> and run test xe_fault_injection --r probe-fail-guc-xe_guc_mmio_send_recv
>> --debug
>> got few problems:
>> 1. Assertion ct->g2h_outstanding == 0 triggered
>> call stack shows:
>> [  708.967261]  xe_guc_ct_disable+0x17/0x80 [xe]
>> [  709.043382]  xe_guc_sanitize+0x31/0x50 [xe]
>> [  709.119557]  xe_uc_load_hw+0x187/0x2a0 [xe]
> 
> Above is a different problem. Just delete xe_guc_sanitize from
> xe_uc_load_hw, that call is nonsense left over from the i915 port.
> 
> xe_guc_sanitize / xe_uc_sanitize everywhere probably needs a look if
> those calls make any bit of sense.
Agree
> 
>>
>> 2. Page fault
>> [  740.822070] BUG: unable to handle page fault for address:
>> ffffc9000c80fc50
>> [  740.828896] #PF: supervisor write access in kernel mode
>> [  740.834063] #PF: error_code(0x0002) - not-present page
>> [  740.839145] PGD 100000067 P4D 100000067 PUD 100ad4067 PMD 0
>> [  740.844738] Oops: Oops: 0002 [#2] SMP NOPTI
>> [  740.848880] CPU: 2 UID: 0 PID: 169 Comm: kworker/2:2 Tainted: G S M UD W
>> 6.19.0-rc4+xu4335+ #3 PREEMPT(voluntary)
>> [  740.859964] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, [U]=USER,
>> [D]=DIE, [W]=WARN
>> [  740.867952] Hardware name: Intel Corporation Meteor Lake Client
>> Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS MTLPFWI1.R00.4122.D21.2408281317
>> 08/28/2024
>> [  740.881081] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
>> [  740.887820] RIP: 0010:xe_ggtt_set_pte+0x53/0x350 [xe]
>> [  740.892900] Code: e2 48 89 45 d0 31 c0 f7 c6 ff 0f 00 00 75 56 49 3b 5c
>> 24 08 0f 83 a8 01 00 00 49 8b 84 24 b0 00 00 00 48 c1 eb 0c 48 8d 04 d8 <4c>
>> 89 38 48 8b 45 d0 65 48 2b 05 e6 41 d1 e2 0f 85 e1 02 00 00 48
>> [  740.911428] RSP: 0018:ffffc9000074b9f0 EFLAGS: 00010202
>> [  740.916599] RAX: ffffc9000c80fc50 RBX: 0000000000001f8a RCX:
>> 0000000000000000
>> [  740.923653] RDX: 0000000000000000 RSI: 0000000001f8a000 RDI:
>> ffff888132562628
>> [  740.930705] RBP: ffffc9000074ba88 R08: 0000000000000000 R09:
>> ffff888168188000
>> [  740.937758] R10: 0000000000000000 R11: 0000000000000000 R12:
>> ffff888132562628
>> [  740.944807] R13: 0000000000000000 R14: ffff88816818a768 R15:
>> 0000000000000000
>> [  740.951861] FS:  0000000000000000(0000) GS:ffff8884ebbe0000(0000)
>> knlGS:0000000000000000
>> [  740.959850] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> [  740.965534] CR2: ffffc9000c80fc50 CR3: 0000000132923003 CR4:
>> 0000000000f72ef0
>> [  740.972585] PKRU: 55555554
>> [  740.975268] Call Trace:
>> [  740.977694]  <TASK>
>> [  740.979778]  ? __mutex_lock+0xae/0x1080
>> [  740.983583]  xe_ggtt_clear+0xa1/0x260 [xe]
>> [  740.987716]  ? lock_release+0x1df/0x280
>> [  740.991519]  ? pm_runtime_get_conditional+0x66/0x150
>> [  740.996436]  ggtt_node_remove+0xb2/0x140 [xe]
>> [  741.000829]  xe_ggtt_node_remove+0x40/0xa0 [xe]
>> [  741.005393]  xe_ggtt_remove_bo+0x87/0x250 [xe]
>> [  741.009874]  ? _raw_write_unlock+0x22/0x50
>> [  741.013927]  ? drm_vma_offset_remove+0x65/0x80
>> [  741.018324]  xe_ttm_bo_destroy+0xd4/0x310 [xe]
>> [  741.022800]  ttm_bo_release+0x70/0x330 [ttm]
>> [  741.027032]  ? vunmap+0x4a/0x70
>> [  741.030147]  ? vunmap+0x4a/0x70
>> [  741.033260]  ttm_bo_fini+0x3c/0x70 [ttm]
>> [  741.037145]  xe_gem_object_free+0x1a/0x30 [xe]
>> [  741.041618]  drm_gem_object_free+0x1d/0x40
>> [  741.045671]  xe_bo_put+0x136/0x1c0 [xe]
>> [  741.049548]  xe_lrc_destroy+0x47/0x60 [xe]
>> [  741.053691]  xe_exec_queue_fini+0x85/0xd0 [xe]
>> [  741.058172]  __guc_exec_queue_destroy_async+0x7c/0x190 [xe]
>> [  741.063770]  process_one_work+0x22e/0x6b0
>> [  741.067741]  worker_thread+0x1a0/0x370
>> [  741.071456]  ? __pfx_worker_thread+0x10/0x10
>> [  741.075683]  kthread+0x11f/0x250
>> [  741.078882]  ? __pfx_kthread+0x10/0x10
>> [  741.082594]  ret_from_fork+0x337/0x390
>> [  741.086315]  ? __pfx_kthread+0x10/0x10
>> [  741.090027]  ret_from_fork_asm+0x1a/0x30
>> [  741.093909]  </TASK>
>>
>> Sounds like call xe_guc_submit_pause_abort here might cause trouble. That's
>> why I call it in guc_fini_hw, which make the test passed.
>>
> 
> Thanks for the info. guc_fini_hw isn't definitely isn't the right place
> though as that is registered before xe_guc_submit_init is called.
> 
> If I'm understanding the trace correctly - guc_submit_fini should be on
> the devm exit handler.
> 
> Want to give my two suggestions a try? Also feel free run with these
> patch / take over if you bandwidth. It is unlikely I'll have bandwidth
> to pick these back up for at least a week or so.

With more debug print on begin(^)/end($) of 
guc_fini_hw/mmio_fini/guc_submit_fini:
[  183.000171] ZD guc_fini_hw ^
[  183.000187] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: 
GT1: GuC CT communication channel disabled
[  183.003374] ZD guc_fini_hw $
[  183.116889] ZD __xe_exec_queue_fini q:ffff88816a92d000 flag:0 
lrc.bo:ffff88816baa8800
[  183.129725] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: 
GT0: GuC CT communication channel stopped
[  183.130487] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: 
GT0: GuC CT communication channel disabled
[  183.131138] ZD guc_fini_hw ^
[  183.131146] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: 
GT0: GuC CT communication channel disabled
[  183.134163] ZD guc_fini_hw $
[  183.235099] xe 0000:00:02.0: [drm:intel_pps_vdd_off_sync_unlocked 
[xe]] [ENCODER:505:DDI A/PHY A] PPS 0 turning VDD off
[  183.238289] xe 0000:00:02.0: [drm:intel_pps_vdd_off_sync_unlocked 
[xe]] [ENCODER:505:DDI A/PHY A] PPS 0 PP_STATUS: 0x00000000 PP_CONTROL: 
0x00000060
[  183.238415] xe 0000:00:02.0: [drm:intel_power_well_disable [xe]] 
disabling AUX_A
[  183.238621] xe 0000:00:02.0: [drm:wait_panel_power_cycle [xe]] 
[ENCODER:505:DDI A/PHY A] PPS 0 wait for panel power cycle (500 ms 
remaining)
[  183.747985] xe 0000:00:02.0: [drm:wait_panel_status [xe]] 
[ENCODER:505:DDI A/PHY A] PPS 0 mask: 0xb800000f value: 0x00000000 
PP_STATUS: 0x00000000 PP_CONTROL: 0x00000060
[  183.758418] xe 0000:00:02.0: [drm:wait_panel_status [xe]] Wait complete
[  183.774541] ZD mmio_fini ^
[  183.774551] ZD mmio_fini $
[  183.777314] xe 0000:00:02.0: [drm:drm_pagemap_shrinker_fini 
[drm_gpusvm_helper]] Destroying dpagemap shrinker.
[  183.789419] ZD guc_submit_fini ^
[  183.792669] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: 
GT1: GuC CT communication channel stopped
[  183.793409] ZD xe_guc_submit_pause_abort q:ffff88811d5fd000 flag:10
[  183.799955] ZD __xe_exec_queue_fini q:ffff88811d5fd600 flag:10 
lrc.bo:ffff888168fa6800
[  183.807866] ZD guc_submit_fini start drain_workqueue
[  183.807920] ZD __xe_exec_queue_fini q:ffff88811d5fd000 flag:90 
lrc.bo:ffff888168fa5000
[  183.820685] ZD xe_ggtt_remove_bo bo:ffff888168fa6800 
ggtt:ffff88812c695628
[  183.827536] ZD xe_ggtt_remove_bo bo:ffff888168fa5000 
ggtt:ffff88812c695628
[  183.834390] ZD xe_ggtt_clear ggtt:ffff88812c695628 start:33239040 
gsm:ffffc9000c800000 gsm.:ffffc9000c80fd98
[  183.844343] BUG: unable to handle page fault for address: 
ffffc9000c80fd98
[  183.851153] #PF: supervisor write access in kernel mode
[  183.856324] #PF: error_code(0x0002) - not-present page
[  183.861406] PGD 100000067 P4D 100000067 PUD 100ac9067 PMD 0
[  183.867001] Oops: Oops: 0002 [#1] SMP NOPTI
[  183.871143] CPU: 7 UID: 0 PID: 298 Comm: kworker/7:2 Tainted: G S M U 
  W           6.19.0-rc5+xu4373+ #13 PREEMPT(voluntary)
[  183.882305] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, 
[U]=USER, [W]=WARN
[  183.889524] Hardware name: Intel Corporation Meteor Lake Client 
Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS 
MTLPFWI1.R00.4122.D21.2408281317 08/28/2024
[  183.902650] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
[  183.909399] RIP: 0010:xe_ggtt_set_pte+0x5b/0x360 [xe]
[  183.914482] Code: c6 ff 0f 00 00 75 5e 49 8b 44 24 10 49 03 44 24 08 
48 39 c3 0f 83 b0 01 00 00 49 8b 84 24 b8 00 00 00 48 c1 eb 0c 48 8d 04 
d8 <4c> 89 38 48 8b 45 d0 65 48 2b 05 1e 41 d1 e2 0f 85 e9 02 00 00 48
[  183.933007] RSP: 0018:ffffc90001ce79c8 EFLAGS: 00010202
[  183.938179] RAX: ffffc9000c80fd98 RBX: 0000000000001fb3 RCX: 
0000000000000000
[  183.945234] RDX: 0000000000000000 RSI: 0000000001fb3000 RDI: 
ffff88812c695628
[  183.952285] RBP: ffffc90001ce7a60 R08: 0000000000000000 R09: 
0000000000000000
[  183.959338] R10: 0000000000000000 R11: 0000000000000000 R12: 
ffff88812c695628
[  183.966388] R13: ffff8881329ea768 R14: ffff8881329ea768 R15: 
0000000000000000
[  183.973438] FS:  0000000000000000(0000) GS:ffff8884ebe60000(0000) 
knlGS:0000000000000000
[  183.981431] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  183.987110] CR2: ffffc9000c80fd98 CR3: 000000010b9c5006 CR4: 
0000000000f72ef0
[  183.994159] PKRU: 55555554
[  183.996847] Call Trace:
[  183.999267]  <TASK>
[  184.001356]  ? vprintk_default+0x1d/0x30
[  184.005244]  ? vprintk+0x18/0x50
[  184.008446]  ? _printk+0x57/0x80
[  184.011648]  xe_ggtt_clear+0x104/0x2a0 [xe]
[  184.015878]  ? mark_held_locks+0x4d/0x90
[  184.019767]  ggtt_node_remove+0xb2/0x140 [xe]
[  184.024164]  xe_ggtt_node_remove+0x40/0xa0 [xe]
[  184.028728]  xe_ggtt_remove_bo+0xa4/0x2e0 [xe]
[  184.033210]  ? _raw_write_unlock+0x22/0x50
[  184.037271]  ? drm_vma_offset_remove+0x65/0x80
[  184.041672]  xe_ttm_bo_destroy+0xae/0x2d0 [xe]
[  184.046150]  ttm_bo_release+0x70/0x330 [ttm]
[  184.050382]  ? vunmap+0x4a/0x70
[  184.053494]  ? vunmap+0x4a/0x70
[  184.056609]  ttm_bo_fini+0x3c/0x70 [ttm]
[  184.060491]  xe_gem_object_free+0x1a/0x30 [xe]
[  184.064966]  drm_gem_object_free+0x1d/0x40
[  184.069018]  xe_bo_put+0x123/0x180 [xe]
[  184.072898]  xe_lrc_destroy+0x47/0x60 [xe]
[  184.077041]  __xe_exec_queue_fini+0x93/0xd0 [xe]
[  184.081693]  xe_exec_queue_fini+0x2b/0x60 [xe]
[  184.086171]  __guc_exec_queue_destroy_async+0x6c/0x170 [xe]
[  184.091769]  process_one_work+0x22e/0x6b0
[  184.095737]  worker_thread+0x1a0/0x370
[  184.099448]  ? __pfx_worker_thread+0x10/0x10
[  184.103676]  kthread+0x11f/0x250
[  184.106877]  ? __pfx_kthread+0x10/0x10
[  184.110586]  ret_from_fork+0x337/0x390
[  184.114301]  ? __pfx_kthread+0x10/0x10
[  184.118011]  ret_from_fork_asm+0x1a/0x30
[  184.121900]  </TASK>

So the root cause of the page fault should be:
1.mmio_fini do pci_iounmap
2.writeq in xe_ggtt_set_pte access valiad address (ffffc9000c80fd98)
3.Since already unmapped in step 1, the page fault tiggered.

The excution order of fini(s) is:
guc_fini_hw (for each guc)
mmio_fini
guc_submit_fini

meanwhile, it is the destroy worker perform the bo release action, that 
causes problem, the worker out of sync with the managed actions.

Regards,
Zhanjun Dong


> 
> Matt
> 
>> Regards,
>> Zhanjun Dong
>>
>>>    	ret = wait_event_timeout(guc->submission_state.fini_wq,
>>>    				 xa_empty(&guc->submission_state.exec_queue_lookup),
>>>    				 HZ * 5);
>>> @@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
>>>    	}
>>>    }
>>> -int xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>>    {
>>>    	int ret;
>>> -	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
>>> -		return 0;
>>> -
>>> -	if (!guc->submission_state.initialized)
>>> -		return 0;
>>> -
>>>    	/*
>>>    	 * Using an atomic here rather than submission_state.lock as this
>>>    	 * function can be called while holding the CT lock (engine reset
>>> @@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>>    	return ret;
>>>    }
>>> +int xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>> +{
>>> +	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
>>> +		return 0;
>>> +
>>> +	if (!guc->submission_state.initialized)
>>> +		return 0;
>>> +
>>> +	return __xe_guc_submit_reset_prepare(guc);
>>> +}
>>> +
>>>    void xe_guc_submit_reset_wait(struct xe_guc *guc)
>>>    {
>>>    	wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||
>>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2026-01-14 22:35       ` Dong, Zhanjun
@ 2026-02-06  5:50         ` Matthew Brost
  2026-02-06 20:29           ` Dong, Zhanjun
  0 siblings, 1 reply; 17+ messages in thread
From: Matthew Brost @ 2026-02-06  5:50 UTC (permalink / raw)
  To: Dong, Zhanjun; +Cc: intel-xe

On Wed, Jan 14, 2026 at 05:35:38PM -0500, Dong, Zhanjun wrote:

This is actually larger problem.

> 
> 
> On 2026-01-08 2:17 p.m., Matthew Brost wrote:
> > On Thu, Jan 08, 2026 at 02:00:15PM -0500, Dong, Zhanjun wrote:
> > > 
> > > 
> > > On 2025-12-18 4:44 p.m., Matthew Brost wrote:
> > > > In GuC submit fini, forcefully tear down any exec queues by disabling
> > > > CTs, stopping the scheduler (which cleans up lost G2H), killing all
> > > > remaining queues, and resuming scheduling to allow any remaining cleanup
> > > > actions to complete and signal any remaining fences.
> > > > 
> > > > v2:
> > > >    - Fix VF failure (CI)
> > > > 
> > > > Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
> > > > Cc: stable@vger.kernel.org
> > > > Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
> > > > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > > > 
> > > > ---
> > > > 
> > > > This fix will not apply outright to any stable kernel as it depeneds on
> > > > functions which have added in the KMD since the original commit. Likely
> > > > will have to manually send out patches to stable for kernel which we'd
> > > > like to fix.
> > > > ---
> > > >    drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
> > > >    1 file changed, 20 insertions(+), 7 deletions(-)
> > > > 
> > > > diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> > > > index 071cbfec2401..58ec94439df1 100644
> > > > --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> > > > +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> > > > @@ -289,6 +289,8 @@ static bool exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
> > > >    		 EXEC_QUEUE_STATE_BANNED));
> > > >    }
> > > > +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
> > > > +
> > > >    static void guc_submit_fini(struct drm_device *drm, void *arg)
> > > >    {
> > > >    	struct xe_guc *guc = arg;
> > > > @@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device *drm, void *arg)
> > > >    	struct xe_gt *gt = guc_to_gt(guc);
> > > >    	int ret;
> > > > +	/* Forcefully kill any remaining exec queues */
> > > > +	xe_guc_ct_stop(&guc->ct);
> > > > +	__xe_guc_submit_reset_prepare(guc);
> > > > +	xe_guc_submit_stop(guc);
> > > > +	xe_guc_submit_pause_abort(guc);
> > > > +
> > > 
> > > Tested this series over
> > > 265d13795b45 drm-tip: 2026y-01m-06d-08h-06m-43s UTC integration manifest
> > > ===(CI_DRM_17772) and (xe-4335) with (IGT_8685)===
> > > 
> > > and run test xe_fault_injection --r probe-fail-guc-xe_guc_mmio_send_recv
> > > --debug
> > > got few problems:
> > > 1. Assertion ct->g2h_outstanding == 0 triggered
> > > call stack shows:
> > > [  708.967261]  xe_guc_ct_disable+0x17/0x80 [xe]
> > > [  709.043382]  xe_guc_sanitize+0x31/0x50 [xe]
> > > [  709.119557]  xe_uc_load_hw+0x187/0x2a0 [xe]
> > 
> > Above is a different problem. Just delete xe_guc_sanitize from
> > xe_uc_load_hw, that call is nonsense left over from the i915 port.
> > 
> > xe_guc_sanitize / xe_uc_sanitize everywhere probably needs a look if
> > those calls make any bit of sense.
> Agree
> > 
> > > 
> > > 2. Page fault
> > > [  740.822070] BUG: unable to handle page fault for address:
> > > ffffc9000c80fc50
> > > [  740.828896] #PF: supervisor write access in kernel mode
> > > [  740.834063] #PF: error_code(0x0002) - not-present page
> > > [  740.839145] PGD 100000067 P4D 100000067 PUD 100ad4067 PMD 0
> > > [  740.844738] Oops: Oops: 0002 [#2] SMP NOPTI
> > > [  740.848880] CPU: 2 UID: 0 PID: 169 Comm: kworker/2:2 Tainted: G S M UD W
> > > 6.19.0-rc4+xu4335+ #3 PREEMPT(voluntary)
> > > [  740.859964] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, [U]=USER,
> > > [D]=DIE, [W]=WARN
> > > [  740.867952] Hardware name: Intel Corporation Meteor Lake Client
> > > Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS MTLPFWI1.R00.4122.D21.2408281317
> > > 08/28/2024
> > > [  740.881081] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
> > > [  740.887820] RIP: 0010:xe_ggtt_set_pte+0x53/0x350 [xe]
> > > [  740.892900] Code: e2 48 89 45 d0 31 c0 f7 c6 ff 0f 00 00 75 56 49 3b 5c
> > > 24 08 0f 83 a8 01 00 00 49 8b 84 24 b0 00 00 00 48 c1 eb 0c 48 8d 04 d8 <4c>
> > > 89 38 48 8b 45 d0 65 48 2b 05 e6 41 d1 e2 0f 85 e1 02 00 00 48
> > > [  740.911428] RSP: 0018:ffffc9000074b9f0 EFLAGS: 00010202
> > > [  740.916599] RAX: ffffc9000c80fc50 RBX: 0000000000001f8a RCX:
> > > 0000000000000000
> > > [  740.923653] RDX: 0000000000000000 RSI: 0000000001f8a000 RDI:
> > > ffff888132562628
> > > [  740.930705] RBP: ffffc9000074ba88 R08: 0000000000000000 R09:
> > > ffff888168188000
> > > [  740.937758] R10: 0000000000000000 R11: 0000000000000000 R12:
> > > ffff888132562628
> > > [  740.944807] R13: 0000000000000000 R14: ffff88816818a768 R15:
> > > 0000000000000000
> > > [  740.951861] FS:  0000000000000000(0000) GS:ffff8884ebbe0000(0000)
> > > knlGS:0000000000000000
> > > [  740.959850] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > [  740.965534] CR2: ffffc9000c80fc50 CR3: 0000000132923003 CR4:
> > > 0000000000f72ef0
> > > [  740.972585] PKRU: 55555554
> > > [  740.975268] Call Trace:
> > > [  740.977694]  <TASK>
> > > [  740.979778]  ? __mutex_lock+0xae/0x1080
> > > [  740.983583]  xe_ggtt_clear+0xa1/0x260 [xe]
> > > [  740.987716]  ? lock_release+0x1df/0x280
> > > [  740.991519]  ? pm_runtime_get_conditional+0x66/0x150
> > > [  740.996436]  ggtt_node_remove+0xb2/0x140 [xe]
> > > [  741.000829]  xe_ggtt_node_remove+0x40/0xa0 [xe]
> > > [  741.005393]  xe_ggtt_remove_bo+0x87/0x250 [xe]
> > > [  741.009874]  ? _raw_write_unlock+0x22/0x50
> > > [  741.013927]  ? drm_vma_offset_remove+0x65/0x80
> > > [  741.018324]  xe_ttm_bo_destroy+0xd4/0x310 [xe]
> > > [  741.022800]  ttm_bo_release+0x70/0x330 [ttm]
> > > [  741.027032]  ? vunmap+0x4a/0x70
> > > [  741.030147]  ? vunmap+0x4a/0x70
> > > [  741.033260]  ttm_bo_fini+0x3c/0x70 [ttm]
> > > [  741.037145]  xe_gem_object_free+0x1a/0x30 [xe]
> > > [  741.041618]  drm_gem_object_free+0x1d/0x40
> > > [  741.045671]  xe_bo_put+0x136/0x1c0 [xe]
> > > [  741.049548]  xe_lrc_destroy+0x47/0x60 [xe]
> > > [  741.053691]  xe_exec_queue_fini+0x85/0xd0 [xe]
> > > [  741.058172]  __guc_exec_queue_destroy_async+0x7c/0x190 [xe]
> > > [  741.063770]  process_one_work+0x22e/0x6b0
> > > [  741.067741]  worker_thread+0x1a0/0x370
> > > [  741.071456]  ? __pfx_worker_thread+0x10/0x10
> > > [  741.075683]  kthread+0x11f/0x250
> > > [  741.078882]  ? __pfx_kthread+0x10/0x10
> > > [  741.082594]  ret_from_fork+0x337/0x390
> > > [  741.086315]  ? __pfx_kthread+0x10/0x10
> > > [  741.090027]  ret_from_fork_asm+0x1a/0x30
> > > [  741.093909]  </TASK>
> > > 
> > > Sounds like call xe_guc_submit_pause_abort here might cause trouble. That's
> > > why I call it in guc_fini_hw, which make the test passed.
> > > 
> > 
> > Thanks for the info. guc_fini_hw isn't definitely isn't the right place
> > though as that is registered before xe_guc_submit_init is called.
> > 
> > If I'm understanding the trace correctly - guc_submit_fini should be on
> > the devm exit handler.
> > 
> > Want to give my two suggestions a try? Also feel free run with these
> > patch / take over if you bandwidth. It is unlikely I'll have bandwidth
> > to pick these back up for at least a week or so.
> 
> With more debug print on begin(^)/end($) of
> guc_fini_hw/mmio_fini/guc_submit_fini:
> [  183.000171] ZD guc_fini_hw ^
> [  183.000187] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT1:
> GuC CT communication channel disabled
> [  183.003374] ZD guc_fini_hw $
> [  183.116889] ZD __xe_exec_queue_fini q:ffff88816a92d000 flag:0
> lrc.bo:ffff88816baa8800
> [  183.129725] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT0:
> GuC CT communication channel stopped
> [  183.130487] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT0:
> GuC CT communication channel disabled
> [  183.131138] ZD guc_fini_hw ^
> [  183.131146] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT0:
> GuC CT communication channel disabled
> [  183.134163] ZD guc_fini_hw $
> [  183.235099] xe 0000:00:02.0: [drm:intel_pps_vdd_off_sync_unlocked [xe]]
> [ENCODER:505:DDI A/PHY A] PPS 0 turning VDD off
> [  183.238289] xe 0000:00:02.0: [drm:intel_pps_vdd_off_sync_unlocked [xe]]
> [ENCODER:505:DDI A/PHY A] PPS 0 PP_STATUS: 0x00000000 PP_CONTROL: 0x00000060
> [  183.238415] xe 0000:00:02.0: [drm:intel_power_well_disable [xe]]
> disabling AUX_A
> [  183.238621] xe 0000:00:02.0: [drm:wait_panel_power_cycle [xe]]
> [ENCODER:505:DDI A/PHY A] PPS 0 wait for panel power cycle (500 ms
> remaining)
> [  183.747985] xe 0000:00:02.0: [drm:wait_panel_status [xe]]
> [ENCODER:505:DDI A/PHY A] PPS 0 mask: 0xb800000f value: 0x00000000
> PP_STATUS: 0x00000000 PP_CONTROL: 0x00000060
> [  183.758418] xe 0000:00:02.0: [drm:wait_panel_status [xe]] Wait complete
> [  183.774541] ZD mmio_fini ^
> [  183.774551] ZD mmio_fini $
> [  183.777314] xe 0000:00:02.0: [drm:drm_pagemap_shrinker_fini
> [drm_gpusvm_helper]] Destroying dpagemap shrinker.
> [  183.789419] ZD guc_submit_fini ^
> [  183.792669] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT1:
> GuC CT communication channel stopped
> [  183.793409] ZD xe_guc_submit_pause_abort q:ffff88811d5fd000 flag:10
> [  183.799955] ZD __xe_exec_queue_fini q:ffff88811d5fd600 flag:10
> lrc.bo:ffff888168fa6800
> [  183.807866] ZD guc_submit_fini start drain_workqueue
> [  183.807920] ZD __xe_exec_queue_fini q:ffff88811d5fd000 flag:90
> lrc.bo:ffff888168fa5000
> [  183.820685] ZD xe_ggtt_remove_bo bo:ffff888168fa6800
> ggtt:ffff88812c695628
> [  183.827536] ZD xe_ggtt_remove_bo bo:ffff888168fa5000
> ggtt:ffff88812c695628
> [  183.834390] ZD xe_ggtt_clear ggtt:ffff88812c695628 start:33239040
> gsm:ffffc9000c800000 gsm.:ffffc9000c80fd98
> [  183.844343] BUG: unable to handle page fault for address:
> ffffc9000c80fd98
> [  183.851153] #PF: supervisor write access in kernel mode
> [  183.856324] #PF: error_code(0x0002) - not-present page
> [  183.861406] PGD 100000067 P4D 100000067 PUD 100ac9067 PMD 0
> [  183.867001] Oops: Oops: 0002 [#1] SMP NOPTI
> [  183.871143] CPU: 7 UID: 0 PID: 298 Comm: kworker/7:2 Tainted: G S M U  W
> 6.19.0-rc5+xu4373+ #13 PREEMPT(voluntary)
> [  183.882305] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, [U]=USER,
> [W]=WARN
> [  183.889524] Hardware name: Intel Corporation Meteor Lake Client
> Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS MTLPFWI1.R00.4122.D21.2408281317
> 08/28/2024
> [  183.902650] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
> [  183.909399] RIP: 0010:xe_ggtt_set_pte+0x5b/0x360 [xe]
> [  183.914482] Code: c6 ff 0f 00 00 75 5e 49 8b 44 24 10 49 03 44 24 08 48
> 39 c3 0f 83 b0 01 00 00 49 8b 84 24 b8 00 00 00 48 c1 eb 0c 48 8d 04 d8 <4c>
> 89 38 48 8b 45 d0 65 48 2b 05 1e 41 d1 e2 0f 85 e9 02 00 00 48
> [  183.933007] RSP: 0018:ffffc90001ce79c8 EFLAGS: 00010202
> [  183.938179] RAX: ffffc9000c80fd98 RBX: 0000000000001fb3 RCX:
> 0000000000000000
> [  183.945234] RDX: 0000000000000000 RSI: 0000000001fb3000 RDI:
> ffff88812c695628
> [  183.952285] RBP: ffffc90001ce7a60 R08: 0000000000000000 R09:
> 0000000000000000
> [  183.959338] R10: 0000000000000000 R11: 0000000000000000 R12:
> ffff88812c695628
> [  183.966388] R13: ffff8881329ea768 R14: ffff8881329ea768 R15:
> 0000000000000000
> [  183.973438] FS:  0000000000000000(0000) GS:ffff8884ebe60000(0000)
> knlGS:0000000000000000
> [  183.981431] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  183.987110] CR2: ffffc9000c80fd98 CR3: 000000010b9c5006 CR4:
> 0000000000f72ef0
> [  183.994159] PKRU: 55555554
> [  183.996847] Call Trace:
> [  183.999267]  <TASK>
> [  184.001356]  ? vprintk_default+0x1d/0x30
> [  184.005244]  ? vprintk+0x18/0x50
> [  184.008446]  ? _printk+0x57/0x80
> [  184.011648]  xe_ggtt_clear+0x104/0x2a0 [xe]
> [  184.015878]  ? mark_held_locks+0x4d/0x90
> [  184.019767]  ggtt_node_remove+0xb2/0x140 [xe]

ggtt_node_remove has hotplug protection via drm_dev_enter, but it
appears that drm_dev_unplug isn't called if the driver load fails, so
the device still appears to be plugged in. This becomes an issue if, for
example, MMIO space is unmapped in mmio_fini then sometime later a BO is
freed with a GGTT mapping.

I checked all the drm_dev_enter usages believe we are ok aside from GGTT
case.

> [  184.024164]  xe_ggtt_node_remove+0x40/0xa0 [xe]
> [  184.028728]  xe_ggtt_remove_bo+0xa4/0x2e0 [xe]
> [  184.033210]  ? _raw_write_unlock+0x22/0x50
> [  184.037271]  ? drm_vma_offset_remove+0x65/0x80
> [  184.041672]  xe_ttm_bo_destroy+0xae/0x2d0 [xe]
> [  184.046150]  ttm_bo_release+0x70/0x330 [ttm]
> [  184.050382]  ? vunmap+0x4a/0x70
> [  184.053494]  ? vunmap+0x4a/0x70
> [  184.056609]  ttm_bo_fini+0x3c/0x70 [ttm]
> [  184.060491]  xe_gem_object_free+0x1a/0x30 [xe]
> [  184.064966]  drm_gem_object_free+0x1d/0x40
> [  184.069018]  xe_bo_put+0x123/0x180 [xe]
> [  184.072898]  xe_lrc_destroy+0x47/0x60 [xe]
> [  184.077041]  __xe_exec_queue_fini+0x93/0xd0 [xe]
> [  184.081693]  xe_exec_queue_fini+0x2b/0x60 [xe]
> [  184.086171]  __guc_exec_queue_destroy_async+0x6c/0x170 [xe]
> [  184.091769]  process_one_work+0x22e/0x6b0
> [  184.095737]  worker_thread+0x1a0/0x370
> [  184.099448]  ? __pfx_worker_thread+0x10/0x10
> [  184.103676]  kthread+0x11f/0x250
> [  184.106877]  ? __pfx_kthread+0x10/0x10
> [  184.110586]  ret_from_fork+0x337/0x390
> [  184.114301]  ? __pfx_kthread+0x10/0x10
> [  184.118011]  ret_from_fork_asm+0x1a/0x30
> [  184.121900]  </TASK>
> 
> So the root cause of the page fault should be:
> 1.mmio_fini do pci_iounmap
> 2.writeq in xe_ggtt_set_pte access valiad address (ffffc9000c80fd98)
> 3.Since already unmapped in step 1, the page fault tiggered.
> 
> The excution order of fini(s) is:
> guc_fini_hw (for each guc)
> mmio_fini
> guc_submit_fini
> 
> meanwhile, it is the destroy worker perform the bo release action, that
> causes problem, the worker out of sync with the managed actions.
> 

Yes, this is an issue with all versions of this series, even with some
of the further suggestions I sent over today off-list, if hotplug
protection doesn’t work in the GGTT code. We might need to open-code the
protection in the GGTT code rather than relying on hotplug.

Matt

> Regards,
> Zhanjun Dong
> 
> 
> > 
> > Matt
> > 
> > > Regards,
> > > Zhanjun Dong
> > > 
> > > >    	ret = wait_event_timeout(guc->submission_state.fini_wq,
> > > >    				 xa_empty(&guc->submission_state.exec_queue_lookup),
> > > >    				 HZ * 5);
> > > > @@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
> > > >    	}
> > > >    }
> > > > -int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > > > +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > > >    {
> > > >    	int ret;
> > > > -	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> > > > -		return 0;
> > > > -
> > > > -	if (!guc->submission_state.initialized)
> > > > -		return 0;
> > > > -
> > > >    	/*
> > > >    	 * Using an atomic here rather than submission_state.lock as this
> > > >    	 * function can be called while holding the CT lock (engine reset
> > > > @@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > > >    	return ret;
> > > >    }
> > > > +int xe_guc_submit_reset_prepare(struct xe_guc *guc)
> > > > +{
> > > > +	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
> > > > +		return 0;
> > > > +
> > > > +	if (!guc->submission_state.initialized)
> > > > +		return 0;
> > > > +
> > > > +	return __xe_guc_submit_reset_prepare(guc);
> > > > +}
> > > > +
> > > >    void xe_guc_submit_reset_wait(struct xe_guc *guc)
> > > >    {
> > > >    	wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||
> > > 
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini
  2026-02-06  5:50         ` Matthew Brost
@ 2026-02-06 20:29           ` Dong, Zhanjun
  0 siblings, 0 replies; 17+ messages in thread
From: Dong, Zhanjun @ 2026-02-06 20:29 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-xe



On 2026-02-06 12:50 a.m., Matthew Brost wrote:
> On Wed, Jan 14, 2026 at 05:35:38PM -0500, Dong, Zhanjun wrote:
> 
> This is actually larger problem.
> 
>>
>>
>> On 2026-01-08 2:17 p.m., Matthew Brost wrote:
>>> On Thu, Jan 08, 2026 at 02:00:15PM -0500, Dong, Zhanjun wrote:
>>>>
>>>>
>>>> On 2025-12-18 4:44 p.m., Matthew Brost wrote:
>>>>> In GuC submit fini, forcefully tear down any exec queues by disabling
>>>>> CTs, stopping the scheduler (which cleans up lost G2H), killing all
>>>>> remaining queues, and resuming scheduling to allow any remaining cleanup
>>>>> actions to complete and signal any remaining fences.
>>>>>
>>>>> v2:
>>>>>     - Fix VF failure (CI)
>>>>>
>>>>> Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
>>>>> Cc: stable@vger.kernel.org
>>>>> Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
>>>>> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
>>>>>
>>>>> ---
>>>>>
>>>>> This fix will not apply outright to any stable kernel as it depeneds on
>>>>> functions which have added in the KMD since the original commit. Likely
>>>>> will have to manually send out patches to stable for kernel which we'd
>>>>> like to fix.
>>>>> ---
>>>>>     drivers/gpu/drm/xe/xe_guc_submit.c | 27 ++++++++++++++++++++-------
>>>>>     1 file changed, 20 insertions(+), 7 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
>>>>> index 071cbfec2401..58ec94439df1 100644
>>>>> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
>>>>> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
>>>>> @@ -289,6 +289,8 @@ static bool exec_queue_killed_or_banned_or_wedged(struct xe_exec_queue *q)
>>>>>     		 EXEC_QUEUE_STATE_BANNED));
>>>>>     }
>>>>> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc);
>>>>> +
>>>>>     static void guc_submit_fini(struct drm_device *drm, void *arg)
>>>>>     {
>>>>>     	struct xe_guc *guc = arg;
>>>>> @@ -296,6 +298,12 @@ static void guc_submit_fini(struct drm_device *drm, void *arg)
>>>>>     	struct xe_gt *gt = guc_to_gt(guc);
>>>>>     	int ret;
>>>>> +	/* Forcefully kill any remaining exec queues */
>>>>> +	xe_guc_ct_stop(&guc->ct);
>>>>> +	__xe_guc_submit_reset_prepare(guc);
>>>>> +	xe_guc_submit_stop(guc);
>>>>> +	xe_guc_submit_pause_abort(guc);
>>>>> +
>>>>
>>>> Tested this series over
>>>> 265d13795b45 drm-tip: 2026y-01m-06d-08h-06m-43s UTC integration manifest
>>>> ===(CI_DRM_17772) and (xe-4335) with (IGT_8685)===
>>>>
>>>> and run test xe_fault_injection --r probe-fail-guc-xe_guc_mmio_send_recv
>>>> --debug
>>>> got few problems:
>>>> 1. Assertion ct->g2h_outstanding == 0 triggered
>>>> call stack shows:
>>>> [  708.967261]  xe_guc_ct_disable+0x17/0x80 [xe]
>>>> [  709.043382]  xe_guc_sanitize+0x31/0x50 [xe]
>>>> [  709.119557]  xe_uc_load_hw+0x187/0x2a0 [xe]
>>>
>>> Above is a different problem. Just delete xe_guc_sanitize from
>>> xe_uc_load_hw, that call is nonsense left over from the i915 port.
>>>
>>> xe_guc_sanitize / xe_uc_sanitize everywhere probably needs a look if
>>> those calls make any bit of sense.
>> Agree
>>>
>>>>
>>>> 2. Page fault
>>>> [  740.822070] BUG: unable to handle page fault for address:
>>>> ffffc9000c80fc50
>>>> [  740.828896] #PF: supervisor write access in kernel mode
>>>> [  740.834063] #PF: error_code(0x0002) - not-present page
>>>> [  740.839145] PGD 100000067 P4D 100000067 PUD 100ad4067 PMD 0
>>>> [  740.844738] Oops: Oops: 0002 [#2] SMP NOPTI
>>>> [  740.848880] CPU: 2 UID: 0 PID: 169 Comm: kworker/2:2 Tainted: G S M UD W
>>>> 6.19.0-rc4+xu4335+ #3 PREEMPT(voluntary)
>>>> [  740.859964] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, [U]=USER,
>>>> [D]=DIE, [W]=WARN
>>>> [  740.867952] Hardware name: Intel Corporation Meteor Lake Client
>>>> Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS MTLPFWI1.R00.4122.D21.2408281317
>>>> 08/28/2024
>>>> [  740.881081] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
>>>> [  740.887820] RIP: 0010:xe_ggtt_set_pte+0x53/0x350 [xe]
>>>> [  740.892900] Code: e2 48 89 45 d0 31 c0 f7 c6 ff 0f 00 00 75 56 49 3b 5c
>>>> 24 08 0f 83 a8 01 00 00 49 8b 84 24 b0 00 00 00 48 c1 eb 0c 48 8d 04 d8 <4c>
>>>> 89 38 48 8b 45 d0 65 48 2b 05 e6 41 d1 e2 0f 85 e1 02 00 00 48
>>>> [  740.911428] RSP: 0018:ffffc9000074b9f0 EFLAGS: 00010202
>>>> [  740.916599] RAX: ffffc9000c80fc50 RBX: 0000000000001f8a RCX:
>>>> 0000000000000000
>>>> [  740.923653] RDX: 0000000000000000 RSI: 0000000001f8a000 RDI:
>>>> ffff888132562628
>>>> [  740.930705] RBP: ffffc9000074ba88 R08: 0000000000000000 R09:
>>>> ffff888168188000
>>>> [  740.937758] R10: 0000000000000000 R11: 0000000000000000 R12:
>>>> ffff888132562628
>>>> [  740.944807] R13: 0000000000000000 R14: ffff88816818a768 R15:
>>>> 0000000000000000
>>>> [  740.951861] FS:  0000000000000000(0000) GS:ffff8884ebbe0000(0000)
>>>> knlGS:0000000000000000
>>>> [  740.959850] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>>> [  740.965534] CR2: ffffc9000c80fc50 CR3: 0000000132923003 CR4:
>>>> 0000000000f72ef0
>>>> [  740.972585] PKRU: 55555554
>>>> [  740.975268] Call Trace:
>>>> [  740.977694]  <TASK>
>>>> [  740.979778]  ? __mutex_lock+0xae/0x1080
>>>> [  740.983583]  xe_ggtt_clear+0xa1/0x260 [xe]
>>>> [  740.987716]  ? lock_release+0x1df/0x280
>>>> [  740.991519]  ? pm_runtime_get_conditional+0x66/0x150
>>>> [  740.996436]  ggtt_node_remove+0xb2/0x140 [xe]
>>>> [  741.000829]  xe_ggtt_node_remove+0x40/0xa0 [xe]
>>>> [  741.005393]  xe_ggtt_remove_bo+0x87/0x250 [xe]
>>>> [  741.009874]  ? _raw_write_unlock+0x22/0x50
>>>> [  741.013927]  ? drm_vma_offset_remove+0x65/0x80
>>>> [  741.018324]  xe_ttm_bo_destroy+0xd4/0x310 [xe]
>>>> [  741.022800]  ttm_bo_release+0x70/0x330 [ttm]
>>>> [  741.027032]  ? vunmap+0x4a/0x70
>>>> [  741.030147]  ? vunmap+0x4a/0x70
>>>> [  741.033260]  ttm_bo_fini+0x3c/0x70 [ttm]
>>>> [  741.037145]  xe_gem_object_free+0x1a/0x30 [xe]
>>>> [  741.041618]  drm_gem_object_free+0x1d/0x40
>>>> [  741.045671]  xe_bo_put+0x136/0x1c0 [xe]
>>>> [  741.049548]  xe_lrc_destroy+0x47/0x60 [xe]
>>>> [  741.053691]  xe_exec_queue_fini+0x85/0xd0 [xe]
>>>> [  741.058172]  __guc_exec_queue_destroy_async+0x7c/0x190 [xe]
>>>> [  741.063770]  process_one_work+0x22e/0x6b0
>>>> [  741.067741]  worker_thread+0x1a0/0x370
>>>> [  741.071456]  ? __pfx_worker_thread+0x10/0x10
>>>> [  741.075683]  kthread+0x11f/0x250
>>>> [  741.078882]  ? __pfx_kthread+0x10/0x10
>>>> [  741.082594]  ret_from_fork+0x337/0x390
>>>> [  741.086315]  ? __pfx_kthread+0x10/0x10
>>>> [  741.090027]  ret_from_fork_asm+0x1a/0x30
>>>> [  741.093909]  </TASK>
>>>>
>>>> Sounds like call xe_guc_submit_pause_abort here might cause trouble. That's
>>>> why I call it in guc_fini_hw, which make the test passed.
>>>>
>>>
>>> Thanks for the info. guc_fini_hw isn't definitely isn't the right place
>>> though as that is registered before xe_guc_submit_init is called.
>>>
>>> If I'm understanding the trace correctly - guc_submit_fini should be on
>>> the devm exit handler.
>>>
>>> Want to give my two suggestions a try? Also feel free run with these
>>> patch / take over if you bandwidth. It is unlikely I'll have bandwidth
>>> to pick these back up for at least a week or so.
>>
>> With more debug print on begin(^)/end($) of
>> guc_fini_hw/mmio_fini/guc_submit_fini:
>> [  183.000171] ZD guc_fini_hw ^
>> [  183.000187] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT1:
>> GuC CT communication channel disabled
>> [  183.003374] ZD guc_fini_hw $
>> [  183.116889] ZD __xe_exec_queue_fini q:ffff88816a92d000 flag:0
>> lrc.bo:ffff88816baa8800
>> [  183.129725] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT0:
>> GuC CT communication channel stopped
>> [  183.130487] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT0:
>> GuC CT communication channel disabled
>> [  183.131138] ZD guc_fini_hw ^
>> [  183.131146] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT0:
>> GuC CT communication channel disabled
>> [  183.134163] ZD guc_fini_hw $
>> [  183.235099] xe 0000:00:02.0: [drm:intel_pps_vdd_off_sync_unlocked [xe]]
>> [ENCODER:505:DDI A/PHY A] PPS 0 turning VDD off
>> [  183.238289] xe 0000:00:02.0: [drm:intel_pps_vdd_off_sync_unlocked [xe]]
>> [ENCODER:505:DDI A/PHY A] PPS 0 PP_STATUS: 0x00000000 PP_CONTROL: 0x00000060
>> [  183.238415] xe 0000:00:02.0: [drm:intel_power_well_disable [xe]]
>> disabling AUX_A
>> [  183.238621] xe 0000:00:02.0: [drm:wait_panel_power_cycle [xe]]
>> [ENCODER:505:DDI A/PHY A] PPS 0 wait for panel power cycle (500 ms
>> remaining)
>> [  183.747985] xe 0000:00:02.0: [drm:wait_panel_status [xe]]
>> [ENCODER:505:DDI A/PHY A] PPS 0 mask: 0xb800000f value: 0x00000000
>> PP_STATUS: 0x00000000 PP_CONTROL: 0x00000060
>> [  183.758418] xe 0000:00:02.0: [drm:wait_panel_status [xe]] Wait complete
>> [  183.774541] ZD mmio_fini ^
>> [  183.774551] ZD mmio_fini $
>> [  183.777314] xe 0000:00:02.0: [drm:drm_pagemap_shrinker_fini
>> [drm_gpusvm_helper]] Destroying dpagemap shrinker.
>> [  183.789419] ZD guc_submit_fini ^
>> [  183.792669] xe 0000:00:02.0: [drm:guc_ct_change_state [xe]] Tile0: GT1:
>> GuC CT communication channel stopped
>> [  183.793409] ZD xe_guc_submit_pause_abort q:ffff88811d5fd000 flag:10
>> [  183.799955] ZD __xe_exec_queue_fini q:ffff88811d5fd600 flag:10
>> lrc.bo:ffff888168fa6800
>> [  183.807866] ZD guc_submit_fini start drain_workqueue
>> [  183.807920] ZD __xe_exec_queue_fini q:ffff88811d5fd000 flag:90
>> lrc.bo:ffff888168fa5000
>> [  183.820685] ZD xe_ggtt_remove_bo bo:ffff888168fa6800
>> ggtt:ffff88812c695628
>> [  183.827536] ZD xe_ggtt_remove_bo bo:ffff888168fa5000
>> ggtt:ffff88812c695628
>> [  183.834390] ZD xe_ggtt_clear ggtt:ffff88812c695628 start:33239040
>> gsm:ffffc9000c800000 gsm.:ffffc9000c80fd98
>> [  183.844343] BUG: unable to handle page fault for address:
>> ffffc9000c80fd98
>> [  183.851153] #PF: supervisor write access in kernel mode
>> [  183.856324] #PF: error_code(0x0002) - not-present page
>> [  183.861406] PGD 100000067 P4D 100000067 PUD 100ac9067 PMD 0
>> [  183.867001] Oops: Oops: 0002 [#1] SMP NOPTI
>> [  183.871143] CPU: 7 UID: 0 PID: 298 Comm: kworker/7:2 Tainted: G S M U  W
>> 6.19.0-rc5+xu4373+ #13 PREEMPT(voluntary)
>> [  183.882305] Tainted: [S]=CPU_OUT_OF_SPEC, [M]=MACHINE_CHECK, [U]=USER,
>> [W]=WARN
>> [  183.889524] Hardware name: Intel Corporation Meteor Lake Client
>> Platform/MTL-P DDR5 SODIMM SBS RVP, BIOS MTLPFWI1.R00.4122.D21.2408281317
>> 08/28/2024
>> [  183.902650] Workqueue: xe-destroy-wq __guc_exec_queue_destroy_async [xe]
>> [  183.909399] RIP: 0010:xe_ggtt_set_pte+0x5b/0x360 [xe]
>> [  183.914482] Code: c6 ff 0f 00 00 75 5e 49 8b 44 24 10 49 03 44 24 08 48
>> 39 c3 0f 83 b0 01 00 00 49 8b 84 24 b8 00 00 00 48 c1 eb 0c 48 8d 04 d8 <4c>
>> 89 38 48 8b 45 d0 65 48 2b 05 1e 41 d1 e2 0f 85 e9 02 00 00 48
>> [  183.933007] RSP: 0018:ffffc90001ce79c8 EFLAGS: 00010202
>> [  183.938179] RAX: ffffc9000c80fd98 RBX: 0000000000001fb3 RCX:
>> 0000000000000000
>> [  183.945234] RDX: 0000000000000000 RSI: 0000000001fb3000 RDI:
>> ffff88812c695628
>> [  183.952285] RBP: ffffc90001ce7a60 R08: 0000000000000000 R09:
>> 0000000000000000
>> [  183.959338] R10: 0000000000000000 R11: 0000000000000000 R12:
>> ffff88812c695628
>> [  183.966388] R13: ffff8881329ea768 R14: ffff8881329ea768 R15:
>> 0000000000000000
>> [  183.973438] FS:  0000000000000000(0000) GS:ffff8884ebe60000(0000)
>> knlGS:0000000000000000
>> [  183.981431] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> [  183.987110] CR2: ffffc9000c80fd98 CR3: 000000010b9c5006 CR4:
>> 0000000000f72ef0
>> [  183.994159] PKRU: 55555554
>> [  183.996847] Call Trace:
>> [  183.999267]  <TASK>
>> [  184.001356]  ? vprintk_default+0x1d/0x30
>> [  184.005244]  ? vprintk+0x18/0x50
>> [  184.008446]  ? _printk+0x57/0x80
>> [  184.011648]  xe_ggtt_clear+0x104/0x2a0 [xe]
>> [  184.015878]  ? mark_held_locks+0x4d/0x90
>> [  184.019767]  ggtt_node_remove+0xb2/0x140 [xe]
> 
> ggtt_node_remove has hotplug protection via drm_dev_enter, but it
> appears that drm_dev_unplug isn't called if the driver load fails, so
> the device still appears to be plugged in. This becomes an issue if, for
> example, MMIO space is unmapped in mmio_fini then sometime later a BO is
> freed with a GGTT mapping.
> 
> I checked all the drm_dev_enter usages believe we are ok aside from GGTT
> case.
Nice to hear that.

> 
>> [  184.024164]  xe_ggtt_node_remove+0x40/0xa0 [xe]
>> [  184.028728]  xe_ggtt_remove_bo+0xa4/0x2e0 [xe]
>> [  184.033210]  ? _raw_write_unlock+0x22/0x50
>> [  184.037271]  ? drm_vma_offset_remove+0x65/0x80
>> [  184.041672]  xe_ttm_bo_destroy+0xae/0x2d0 [xe]
>> [  184.046150]  ttm_bo_release+0x70/0x330 [ttm]
>> [  184.050382]  ? vunmap+0x4a/0x70
>> [  184.053494]  ? vunmap+0x4a/0x70
>> [  184.056609]  ttm_bo_fini+0x3c/0x70 [ttm]
>> [  184.060491]  xe_gem_object_free+0x1a/0x30 [xe]
>> [  184.064966]  drm_gem_object_free+0x1d/0x40
>> [  184.069018]  xe_bo_put+0x123/0x180 [xe]
>> [  184.072898]  xe_lrc_destroy+0x47/0x60 [xe]
>> [  184.077041]  __xe_exec_queue_fini+0x93/0xd0 [xe]
>> [  184.081693]  xe_exec_queue_fini+0x2b/0x60 [xe]
>> [  184.086171]  __guc_exec_queue_destroy_async+0x6c/0x170 [xe]
>> [  184.091769]  process_one_work+0x22e/0x6b0
>> [  184.095737]  worker_thread+0x1a0/0x370
>> [  184.099448]  ? __pfx_worker_thread+0x10/0x10
>> [  184.103676]  kthread+0x11f/0x250
>> [  184.106877]  ? __pfx_kthread+0x10/0x10
>> [  184.110586]  ret_from_fork+0x337/0x390
>> [  184.114301]  ? __pfx_kthread+0x10/0x10
>> [  184.118011]  ret_from_fork_asm+0x1a/0x30
>> [  184.121900]  </TASK>
>>
>> So the root cause of the page fault should be:
>> 1.mmio_fini do pci_iounmap
>> 2.writeq in xe_ggtt_set_pte access valiad address (ffffc9000c80fd98)
>> 3.Since already unmapped in step 1, the page fault tiggered.
>>
>> The excution order of fini(s) is:
>> guc_fini_hw (for each guc)
>> mmio_fini
>> guc_submit_fini
>>
>> meanwhile, it is the destroy worker perform the bo release action, that
>> causes problem, the worker out of sync with the managed actions.
>>
> 
> Yes, this is an issue with all versions of this series, even with some
> of the further suggestions I sent over today off-list, if hotplug
> protection doesn’t work in the GGTT code. We might need to open-code the
> protection in the GGTT code rather than relying on hotplug.

Right, that's why I move the guc_submit_fini to devm since v3, test 
shows this prevent the page fault happens. And ofcourse, better to have 
open-code protection, I will try it later.

Regards,
Zhanjun Dong

> 
> Matt
> 
>> Regards,
>> Zhanjun Dong
>>
>>
>>>
>>> Matt
>>>
>>>> Regards,
>>>> Zhanjun Dong
>>>>
>>>>>     	ret = wait_event_timeout(guc->submission_state.fini_wq,
>>>>>     				 xa_empty(&guc->submission_state.exec_queue_lookup),
>>>>>     				 HZ * 5);
>>>>> @@ -2459,16 +2467,10 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
>>>>>     	}
>>>>>     }
>>>>> -int xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>>>> +static int __xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>>>>     {
>>>>>     	int ret;
>>>>> -	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
>>>>> -		return 0;
>>>>> -
>>>>> -	if (!guc->submission_state.initialized)
>>>>> -		return 0;
>>>>> -
>>>>>     	/*
>>>>>     	 * Using an atomic here rather than submission_state.lock as this
>>>>>     	 * function can be called while holding the CT lock (engine reset
>>>>> @@ -2483,6 +2485,17 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>>>>     	return ret;
>>>>>     }
>>>>> +int xe_guc_submit_reset_prepare(struct xe_guc *guc)
>>>>> +{
>>>>> +	if (xe_gt_WARN_ON(guc_to_gt(guc), vf_recovery(guc)))
>>>>> +		return 0;
>>>>> +
>>>>> +	if (!guc->submission_state.initialized)
>>>>> +		return 0;
>>>>> +
>>>>> +	return __xe_guc_submit_reset_prepare(guc);
>>>>> +}
>>>>> +
>>>>>     void xe_guc_submit_reset_wait(struct xe_guc *guc)
>>>>>     {
>>>>>     	wait_event(guc->ct.wq, xe_device_wedged(guc_to_xe(guc)) ||
>>>>
>>


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2026-02-06 20:29 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-18 21:44 [PATCH v2 0/3] Attempt to fixup reset, wedge, unload corner cases Matthew Brost
2025-12-18 21:44 ` [PATCH v2 1/3] drm/xe: Always kill exec queues in xe_guc_submit_pause_abort Matthew Brost
2025-12-18 23:36   ` Summers, Stuart
2025-12-18 21:44 ` [PATCH v2 2/3] drm/xe: Forcefully tear down exec queues in GuC submit fini Matthew Brost
2025-12-18 23:36   ` Summers, Stuart
2025-12-19  1:15     ` Matthew Brost
2026-01-08 19:00   ` Dong, Zhanjun
2026-01-08 19:17     ` Matthew Brost
2026-01-14 22:35       ` Dong, Zhanjun
2026-02-06  5:50         ` Matthew Brost
2026-02-06 20:29           ` Dong, Zhanjun
2025-12-18 21:44 ` [PATCH v2 3/3] drm/xe: Trigger queue cleanup if not in wedged mode 2 Matthew Brost
2025-12-18 23:45   ` Summers, Stuart
2025-12-19  1:10     ` Matthew Brost
2025-12-18 23:08 ` ✓ CI.KUnit: success for Attempt to fixup reset, wedge, unload corner cases Patchwork
2025-12-18 23:44 ` ✓ Xe.CI.BAT: " Patchwork
2025-12-20  1:22 ` ✗ Xe.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox