All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/sched: Avoid double re-lock on the job free path
@ 2025-01-14 10:59 Tvrtko Ursulin
  0 siblings, 0 replies; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-01-14 10:59 UTC (permalink / raw)
  To: dri-devel
  Cc: kernel-dev, Tvrtko Ursulin, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner

Currently the job free work item will lock sched->job_list_lock first time
to see if there are any jobs, free a single job, and then lock again to
decide whether to re-queue itself if there are more finished jobs.

Since drm_sched_get_finished_job() even already looks at the second job in
the queue we can simply make it return its presence to the caller.

That way the caller does not need to lock the list again only to peek into
the same job.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Danilo Krummrich <dakr@redhat.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Philipp Stanner <pstanner@redhat.com>
---
 drivers/gpu/drm/scheduler/sched_main.c | 32 +++++++++-----------------
 1 file changed, 11 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 2d3d71e053a6..363e9f272a1b 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -383,22 +383,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
 		queue_work(sched->submit_wq, &sched->work_free_job);
 }
 
-/**
- * drm_sched_run_free_queue - enqueue free-job work if ready
- * @sched: scheduler instance
- */
-static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
-{
-	struct drm_sched_job *job;
-
-	spin_lock(&sched->job_list_lock);
-	job = list_first_entry_or_null(&sched->pending_list,
-				       struct drm_sched_job, list);
-	if (job && dma_fence_is_signaled(&job->s_fence->finished))
-		__drm_sched_run_free_queue(sched);
-	spin_unlock(&sched->job_list_lock);
-}
-
 /**
  * drm_sched_job_done - complete a job
  * @s_job: pointer to the job which is done
@@ -1078,12 +1062,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
  * drm_sched_get_finished_job - fetch the next finished job to be destroyed
  *
  * @sched: scheduler instance
+ * @have_more: are there more finished jobs on the list
  *
  * Returns the next finished job from the pending list (if there is one)
  * ready for it to be destroyed.
  */
 static struct drm_sched_job *
-drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
+drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
 {
 	struct drm_sched_job *job, *next;
 
@@ -1101,14 +1086,16 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
 		/* make the scheduled timestamp more accurate */
 		next = list_first_entry_or_null(&sched->pending_list,
 						typeof(*next), list);
-
 		if (next) {
+			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
 			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
 				     &next->s_fence->scheduled.flags))
 				next->s_fence->scheduled.timestamp =
 					dma_fence_timestamp(&job->s_fence->finished);
 			/* start TO timer for next job */
 			drm_sched_start_timeout(sched);
+		} else {
+			*have_more = false;
 		}
 	} else {
 		job = NULL;
@@ -1165,12 +1152,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
 	struct drm_gpu_scheduler *sched =
 		container_of(w, struct drm_gpu_scheduler, work_free_job);
 	struct drm_sched_job *job;
+	bool have_more;
 
-	job = drm_sched_get_finished_job(sched);
-	if (job)
+	job = drm_sched_get_finished_job(sched, &have_more);
+	if (job) {
 		sched->ops->free_job(job);
+		if (have_more)
+			__drm_sched_run_free_queue(sched);
+	}
 
-	drm_sched_run_free_queue(sched);
 	drm_sched_run_job_queue(sched);
 }
 
-- 
2.47.1


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

* [PATCH] drm/sched: Avoid double re-lock on the job free path
@ 2025-07-08 12:20 Tvrtko Ursulin
  2025-07-08 12:26 ` ✓ CI.KUnit: success for " Patchwork
                   ` (7 more replies)
  0 siblings, 8 replies; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-08 12:20 UTC (permalink / raw)
  To: dri-devel
  Cc: intel-xe, amd-gfx, kernel-dev, Tvrtko Ursulin,
	Christian König, Danilo Krummrich, Matthew Brost,
	Philipp Stanner

Currently the job free work item will lock sched->job_list_lock first time
to see if there are any jobs, free a single job, and then lock again to
decide whether to re-queue itself if there are more finished jobs.

Since drm_sched_get_finished_job() already looks at the second job in the
queue we can simply add the signaled check and have it return the presence
of more jobs to free to the caller. That way the work item does not have
to lock the list again and repeat the signaled check.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Philipp Stanner <phasta@kernel.org>
---
 drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++++++----------------
 1 file changed, 14 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index 1f077782ec12..1bce0b66f89c 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -366,22 +366,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
 		queue_work(sched->submit_wq, &sched->work_free_job);
 }
 
-/**
- * drm_sched_run_free_queue - enqueue free-job work if ready
- * @sched: scheduler instance
- */
-static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
-{
-	struct drm_sched_job *job;
-
-	spin_lock(&sched->job_list_lock);
-	job = list_first_entry_or_null(&sched->pending_list,
-				       struct drm_sched_job, list);
-	if (job && dma_fence_is_signaled(&job->s_fence->finished))
-		__drm_sched_run_free_queue(sched);
-	spin_unlock(&sched->job_list_lock);
-}
-
 /**
  * drm_sched_job_done - complete a job
  * @s_job: pointer to the job which is done
@@ -1102,12 +1086,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
  * drm_sched_get_finished_job - fetch the next finished job to be destroyed
  *
  * @sched: scheduler instance
+ * @have_more: are there more finished jobs on the list
  *
  * Returns the next finished job from the pending list (if there is one)
  * ready for it to be destroyed.
  */
 static struct drm_sched_job *
-drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
+drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
 {
 	struct drm_sched_job *job, *next;
 
@@ -1115,22 +1100,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
 
 	job = list_first_entry_or_null(&sched->pending_list,
 				       struct drm_sched_job, list);
-
 	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
 		/* remove job from pending_list */
 		list_del_init(&job->list);
 
 		/* cancel this job's TO timer */
 		cancel_delayed_work(&sched->work_tdr);
-		/* make the scheduled timestamp more accurate */
+
+		*have_more = false;
 		next = list_first_entry_or_null(&sched->pending_list,
 						typeof(*next), list);
-
 		if (next) {
+			/* make the scheduled timestamp more accurate */
 			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
 				     &next->s_fence->scheduled.flags))
 				next->s_fence->scheduled.timestamp =
 					dma_fence_timestamp(&job->s_fence->finished);
+
+			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
+
 			/* start TO timer for next job */
 			drm_sched_start_timeout(sched);
 		}
@@ -1189,12 +1177,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
 	struct drm_gpu_scheduler *sched =
 		container_of(w, struct drm_gpu_scheduler, work_free_job);
 	struct drm_sched_job *job;
+	bool have_more;
 
-	job = drm_sched_get_finished_job(sched);
-	if (job)
+	job = drm_sched_get_finished_job(sched, &have_more);
+	if (job) {
 		sched->ops->free_job(job);
+		if (have_more)
+			__drm_sched_run_free_queue(sched);
+	}
 
-	drm_sched_run_free_queue(sched);
 	drm_sched_run_job_queue(sched);
 }
 
-- 
2.48.0


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

* ✓ CI.KUnit: success for drm/sched: Avoid double re-lock on the job free path
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
@ 2025-07-08 12:26 ` Patchwork
  2025-07-08 13:07 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-07-08 12:26 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-xe

== Series Details ==

Series: drm/sched: Avoid double re-lock on the job free path
URL   : https://patchwork.freedesktop.org/series/151331/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[12:25:38] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[12:25:42] 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
[12:26:09] Starting KUnit Kernel (1/1)...
[12:26:09] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[12:26:09] ================== guc_buf (11 subtests) ===================
[12:26:09] [PASSED] test_smallest
[12:26:09] [PASSED] test_largest
[12:26:09] [PASSED] test_granular
[12:26:09] [PASSED] test_unique
[12:26:09] [PASSED] test_overlap
[12:26:09] [PASSED] test_reusable
[12:26:09] [PASSED] test_too_big
[12:26:09] [PASSED] test_flush
[12:26:09] [PASSED] test_lookup
[12:26:09] [PASSED] test_data
[12:26:09] [PASSED] test_class
[12:26:09] ===================== [PASSED] guc_buf =====================
[12:26:09] =================== guc_dbm (7 subtests) ===================
[12:26:09] [PASSED] test_empty
[12:26:09] [PASSED] test_default
[12:26:09] ======================== test_size  ========================
[12:26:09] [PASSED] 4
[12:26:09] [PASSED] 8
[12:26:09] [PASSED] 32
[12:26:09] [PASSED] 256
[12:26:09] ==================== [PASSED] test_size ====================
[12:26:09] ======================= test_reuse  ========================
[12:26:09] [PASSED] 4
[12:26:09] [PASSED] 8
[12:26:09] [PASSED] 32
[12:26:09] [PASSED] 256
[12:26:09] =================== [PASSED] test_reuse ====================
[12:26:09] =================== test_range_overlap  ====================
[12:26:09] [PASSED] 4
[12:26:09] [PASSED] 8
[12:26:09] [PASSED] 32
[12:26:09] [PASSED] 256
[12:26:09] =============== [PASSED] test_range_overlap ================
[12:26:09] =================== test_range_compact  ====================
[12:26:09] [PASSED] 4
[12:26:09] [PASSED] 8
[12:26:09] [PASSED] 32
[12:26:09] [PASSED] 256
[12:26:09] =============== [PASSED] test_range_compact ================
[12:26:09] ==================== test_range_spare  =====================
[12:26:09] [PASSED] 4
[12:26:09] [PASSED] 8
[12:26:09] [PASSED] 32
[12:26:09] [PASSED] 256
[12:26:09] ================ [PASSED] test_range_spare =================
[12:26:09] ===================== [PASSED] guc_dbm =====================
[12:26:09] =================== guc_idm (6 subtests) ===================
[12:26:09] [PASSED] bad_init
[12:26:09] [PASSED] no_init
[12:26:09] [PASSED] init_fini
[12:26:09] [PASSED] check_used
[12:26:09] [PASSED] check_quota
[12:26:09] [PASSED] check_all
[12:26:09] ===================== [PASSED] guc_idm =====================
[12:26:09] ================== no_relay (3 subtests) ===================
[12:26:09] [PASSED] xe_drops_guc2pf_if_not_ready
[12:26:09] [PASSED] xe_drops_guc2vf_if_not_ready
[12:26:09] [PASSED] xe_rejects_send_if_not_ready
[12:26:09] ==================== [PASSED] no_relay =====================
[12:26:09] ================== pf_relay (14 subtests) ==================
[12:26:09] [PASSED] pf_rejects_guc2pf_too_short
[12:26:09] [PASSED] pf_rejects_guc2pf_too_long
[12:26:09] [PASSED] pf_rejects_guc2pf_no_payload
[12:26:09] [PASSED] pf_fails_no_payload
[12:26:09] [PASSED] pf_fails_bad_origin
[12:26:09] [PASSED] pf_fails_bad_type
[12:26:09] [PASSED] pf_txn_reports_error
[12:26:09] [PASSED] pf_txn_sends_pf2guc
[12:26:09] [PASSED] pf_sends_pf2guc
[12:26:09] [SKIPPED] pf_loopback_nop
[12:26:09] [SKIPPED] pf_loopback_echo
[12:26:09] [SKIPPED] pf_loopback_fail
[12:26:09] [SKIPPED] pf_loopback_busy
[12:26:09] [SKIPPED] pf_loopback_retry
[12:26:09] ==================== [PASSED] pf_relay =====================
[12:26:09] ================== vf_relay (3 subtests) ===================
[12:26:09] [PASSED] vf_rejects_guc2vf_too_short
[12:26:09] [PASSED] vf_rejects_guc2vf_too_long
[12:26:09] [PASSED] vf_rejects_guc2vf_no_payload
[12:26:09] ==================== [PASSED] vf_relay =====================
[12:26:09] ================= pf_service (11 subtests) =================
[12:26:09] [PASSED] pf_negotiate_any
[12:26:09] [PASSED] pf_negotiate_base_match
[12:26:09] [PASSED] pf_negotiate_base_newer
[12:26:09] [PASSED] pf_negotiate_base_next
[12:26:09] [SKIPPED] pf_negotiate_base_older
[12:26:09] [PASSED] pf_negotiate_base_prev
[12:26:09] [PASSED] pf_negotiate_latest_match
[12:26:09] [PASSED] pf_negotiate_latest_newer
[12:26:09] [PASSED] pf_negotiate_latest_next
[12:26:09] [SKIPPED] pf_negotiate_latest_older
[12:26:09] [SKIPPED] pf_negotiate_latest_prev
[12:26:09] =================== [PASSED] pf_service ====================
[12:26:09] ===================== lmtt (1 subtest) =====================
[12:26:09] ======================== test_ops  =========================
[12:26:09] [PASSED] 2-level
[12:26:09] [PASSED] multi-level
[12:26:09] ==================== [PASSED] test_ops =====================
[12:26:09] ====================== [PASSED] lmtt =======================
[12:26:09] =================== xe_mocs (2 subtests) ===================
[12:26:09] ================ xe_live_mocs_kernel_kunit  ================
[12:26:09] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[12:26:09] ================ xe_live_mocs_reset_kunit  =================
[12:26:09] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[12:26:09] ==================== [SKIPPED] xe_mocs =====================
[12:26:09] ================= xe_migrate (2 subtests) ==================
[12:26:09] ================= xe_migrate_sanity_kunit  =================
[12:26:09] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[12:26:09] ================== xe_validate_ccs_kunit  ==================
[12:26:09] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[12:26:09] =================== [SKIPPED] xe_migrate ===================
[12:26:09] ================== xe_dma_buf (1 subtest) ==================
[12:26:09] ==================== xe_dma_buf_kunit  =====================
[12:26:09] ================ [SKIPPED] xe_dma_buf_kunit ================
[12:26:09] =================== [SKIPPED] xe_dma_buf ===================
[12:26:09] ================= xe_bo_shrink (1 subtest) =================
[12:26:09] =================== xe_bo_shrink_kunit  ====================
[12:26:09] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[12:26:09] ================== [SKIPPED] xe_bo_shrink ==================
[12:26:09] ==================== xe_bo (2 subtests) ====================
[12:26:09] ================== xe_ccs_migrate_kunit  ===================
[12:26:09] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[12:26:09] ==================== xe_bo_evict_kunit  ====================
[12:26:09] =============== [SKIPPED] xe_bo_evict_kunit ================
[12:26:09] ===================== [SKIPPED] xe_bo ======================
[12:26:09] ==================== args (11 subtests) ====================
[12:26:09] [PASSED] count_args_test
[12:26:09] [PASSED] call_args_example
[12:26:09] [PASSED] call_args_test
[12:26:09] [PASSED] drop_first_arg_example
[12:26:09] [PASSED] drop_first_arg_test
[12:26:09] [PASSED] first_arg_example
[12:26:09] [PASSED] first_arg_test
[12:26:09] [PASSED] last_arg_example
[12:26:09] [PASSED] last_arg_test
[12:26:09] [PASSED] pick_arg_example
[12:26:09] [PASSED] sep_comma_example
[12:26:09] ====================== [PASSED] args =======================
[12:26:09] =================== xe_pci (3 subtests) ====================
[12:26:09] ==================== check_graphics_ip  ====================
[12:26:09] [PASSED] 12.70 Xe_LPG
[12:26:09] [PASSED] 12.71 Xe_LPG
[12:26:09] [PASSED] 12.74 Xe_LPG+
[12:26:09] [PASSED] 20.01 Xe2_HPG
[12:26:09] [PASSED] 20.02 Xe2_HPG
[12:26:09] [PASSED] 20.04 Xe2_LPG
[12:26:09] [PASSED] 30.00 Xe3_LPG
[12:26:09] [PASSED] 30.01 Xe3_LPG
[12:26:09] [PASSED] 30.03 Xe3_LPG
[12:26:09] ================ [PASSED] check_graphics_ip ================
[12:26:09] ===================== check_media_ip  ======================
[12:26:09] [PASSED] 13.00 Xe_LPM+
[12:26:09] [PASSED] 13.01 Xe2_HPM
[12:26:09] [PASSED] 20.00 Xe2_LPM
[12:26:09] [PASSED] 30.00 Xe3_LPM
[12:26:09] [PASSED] 30.02 Xe3_LPM
[12:26:09] ================= [PASSED] check_media_ip ==================
[12:26:09] ================= check_platform_gt_count  =================
[12:26:09] [PASSED] 0x9A60 (TIGERLAKE)
[12:26:09] [PASSED] 0x9A68 (TIGERLAKE)
[12:26:09] [PASSED] 0x9A70 (TIGERLAKE)
[12:26:09] [PASSED] 0x9A40 (TIGERLAKE)
[12:26:09] [PASSED] 0x9A49 (TIGERLAKE)
[12:26:09] [PASSED] 0x9A59 (TIGERLAKE)
[12:26:09] [PASSED] 0x9A78 (TIGERLAKE)
[12:26:09] [PASSED] 0x9AC0 (TIGERLAKE)
[12:26:09] [PASSED] 0x9AC9 (TIGERLAKE)
[12:26:09] [PASSED] 0x9AD9 (TIGERLAKE)
[12:26:09] [PASSED] 0x9AF8 (TIGERLAKE)
[12:26:09] [PASSED] 0x4C80 (ROCKETLAKE)
[12:26:09] [PASSED] 0x4C8A (ROCKETLAKE)
[12:26:09] [PASSED] 0x4C8B (ROCKETLAKE)
[12:26:09] [PASSED] 0x4C8C (ROCKETLAKE)
[12:26:09] [PASSED] 0x4C90 (ROCKETLAKE)
[12:26:09] [PASSED] 0x4C9A (ROCKETLAKE)
[12:26:09] [PASSED] 0x4680 (ALDERLAKE_S)
[12:26:09] [PASSED] 0x4682 (ALDERLAKE_S)
[12:26:09] [PASSED] 0x4688 (ALDERLAKE_S)
[12:26:09] [PASSED] 0x468A (ALDERLAKE_S)
[12:26:09] [PASSED] 0x468B (ALDERLAKE_S)
[12:26:09] [PASSED] 0x4690 (ALDERLAKE_S)
[12:26:09] [PASSED] 0x4692 (ALDERLAKE_S)
[12:26:09] [PASSED] 0x4693 (ALDERLAKE_S)
[12:26:09] [PASSED] 0x46A0 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46A1 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46A2 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46A3 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46A6 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46A8 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46AA (ALDERLAKE_P)
[12:26:09] [PASSED] 0x462A (ALDERLAKE_P)
[12:26:09] [PASSED] 0x4626 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x4628 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46B0 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46B1 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46B2 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46B3 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46C0 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46C1 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46C2 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46C3 (ALDERLAKE_P)
[12:26:09] [PASSED] 0x46D0 (ALDERLAKE_N)
[12:26:09] [PASSED] 0x46D1 (ALDERLAKE_N)
[12:26:09] [PASSED] 0x46D2 (ALDERLAKE_N)
[12:26:09] [PASSED] 0x46D3 (ALDERLAKE_N)
[12:26:09] [PASSED] 0x46D4 (ALDERLAKE_N)
[12:26:09] [PASSED] 0xA721 (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7A1 (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7A9 (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7AC (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7AD (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA720 (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7A0 (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7A8 (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7AA (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA7AB (ALDERLAKE_P)
[12:26:09] [PASSED] 0xA780 (ALDERLAKE_S)
[12:26:09] [PASSED] 0xA781 (ALDERLAKE_S)
[12:26:09] [PASSED] 0xA782 (ALDERLAKE_S)
[12:26:09] [PASSED] 0xA783 (ALDERLAKE_S)
[12:26:09] [PASSED] 0xA788 (ALDERLAKE_S)
[12:26:09] [PASSED] 0xA789 (ALDERLAKE_S)
[12:26:09] [PASSED] 0xA78A (ALDERLAKE_S)
[12:26:09] [PASSED] 0xA78B (ALDERLAKE_S)
[12:26:09] [PASSED] 0x4905 (DG1)
[12:26:09] [PASSED] 0x4906 (DG1)
[12:26:09] [PASSED] 0x4907 (DG1)
[12:26:09] [PASSED] 0x4908 (DG1)
[12:26:09] [PASSED] 0x4909 (DG1)
[12:26:09] [PASSED] 0x56C0 (DG2)
[12:26:09] [PASSED] 0x56C2 (DG2)
[12:26:09] [PASSED] 0x56C1 (DG2)
[12:26:09] [PASSED] 0x7D51 (METEORLAKE)
[12:26:09] [PASSED] 0x7DD1 (METEORLAKE)
[12:26:09] [PASSED] 0x7D41 (METEORLAKE)
[12:26:09] [PASSED] 0x7D67 (METEORLAKE)
[12:26:09] [PASSED] 0xB640 (METEORLAKE)
[12:26:09] [PASSED] 0x56A0 (DG2)
[12:26:09] [PASSED] 0x56A1 (DG2)
[12:26:09] [PASSED] 0x56A2 (DG2)
[12:26:09] [PASSED] 0x56BE (DG2)
[12:26:09] [PASSED] 0x56BF (DG2)
[12:26:09] [PASSED] 0x5690 (DG2)
[12:26:09] [PASSED] 0x5691 (DG2)
[12:26:09] [PASSED] 0x5692 (DG2)
[12:26:09] [PASSED] 0x56A5 (DG2)
[12:26:09] [PASSED] 0x56A6 (DG2)
[12:26:09] [PASSED] 0x56B0 (DG2)
[12:26:09] [PASSED] 0x56B1 (DG2)
[12:26:09] [PASSED] 0x56BA (DG2)
[12:26:09] [PASSED] 0x56BB (DG2)
[12:26:09] [PASSED] 0x56BC (DG2)
[12:26:09] [PASSED] 0x56BD (DG2)
[12:26:09] [PASSED] 0x5693 (DG2)
[12:26:09] [PASSED] 0x5694 (DG2)
[12:26:09] [PASSED] 0x5695 (DG2)
[12:26:09] [PASSED] 0x56A3 (DG2)
[12:26:09] [PASSED] 0x56A4 (DG2)
[12:26:09] [PASSED] 0x56B2 (DG2)
[12:26:09] [PASSED] 0x56B3 (DG2)
[12:26:09] [PASSED] 0x5696 (DG2)
[12:26:09] [PASSED] 0x5697 (DG2)
[12:26:09] [PASSED] 0xB69 (PVC)
[12:26:09] [PASSED] 0xB6E (PVC)
[12:26:09] [PASSED] 0xBD4 (PVC)
[12:26:09] [PASSED] 0xBD5 (PVC)
[12:26:09] [PASSED] 0xBD6 (PVC)
[12:26:09] [PASSED] 0xBD7 (PVC)
[12:26:09] [PASSED] 0xBD8 (PVC)
[12:26:09] [PASSED] 0xBD9 (PVC)
[12:26:09] [PASSED] 0xBDA (PVC)
[12:26:09] [PASSED] 0xBDB (PVC)
[12:26:09] [PASSED] 0xBE0 (PVC)
[12:26:09] [PASSED] 0xBE1 (PVC)
[12:26:09] [PASSED] 0xBE5 (PVC)
[12:26:09] [PASSED] 0x7D40 (METEORLAKE)
[12:26:09] [PASSED] 0x7D45 (METEORLAKE)
[12:26:09] [PASSED] 0x7D55 (METEORLAKE)
[12:26:09] [PASSED] 0x7D60 (METEORLAKE)
[12:26:09] [PASSED] 0x7DD5 (METEORLAKE)
[12:26:09] [PASSED] 0x6420 (LUNARLAKE)
[12:26:09] [PASSED] 0x64A0 (LUNARLAKE)
[12:26:09] [PASSED] 0x64B0 (LUNARLAKE)
[12:26:09] [PASSED] 0xE202 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE209 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE20B (BATTLEMAGE)
[12:26:09] [PASSED] 0xE20C (BATTLEMAGE)
[12:26:09] [PASSED] 0xE20D (BATTLEMAGE)
[12:26:09] [PASSED] 0xE210 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE211 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE212 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE216 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE220 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE221 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE222 (BATTLEMAGE)
[12:26:09] [PASSED] 0xE223 (BATTLEMAGE)
[12:26:09] [PASSED] 0xB080 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB081 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB082 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB083 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB084 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB085 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB086 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB087 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB08F (PANTHERLAKE)
[12:26:09] [PASSED] 0xB090 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB0A0 (PANTHERLAKE)
[12:26:09] [PASSED] 0xB0B0 (PANTHERLAKE)
[12:26:09] [PASSED] 0xFD80 (PANTHERLAKE)
[12:26:09] [PASSED] 0xFD81 (PANTHERLAKE)
[12:26:09] ============= [PASSED] check_platform_gt_count =============
[12:26:09] ===================== [PASSED] xe_pci ======================
[12:26:09] =================== xe_rtp (2 subtests) ====================
[12:26:09] =============== xe_rtp_process_to_sr_tests  ================
[12:26:09] [PASSED] coalesce-same-reg
[12:26:09] [PASSED] no-match-no-add
[12:26:09] [PASSED] match-or
[12:26:09] [PASSED] match-or-xfail
[12:26:09] [PASSED] no-match-no-add-multiple-rules
[12:26:09] [PASSED] two-regs-two-entries
[12:26:09] [PASSED] clr-one-set-other
[12:26:09] [PASSED] set-field
[12:26:09] [PASSED] conflict-duplicate
[12:26:09] [PASSED] conflict-not-disjoint
[12:26:09] [PASSED] conflict-reg-type
[12:26:09] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[12:26:09] ================== xe_rtp_process_tests  ===================
[12:26:09] [PASSED] active1
[12:26:09] [PASSED] active2
[12:26:09] [PASSED] active-inactive
[12:26:09] [PASSED] inactive-active
[12:26:09] [PASSED] inactive-1st_or_active-inactive
[12:26:09] [PASSED] inactive-2nd_or_active-inactive
[12:26:09] [PASSED] inactive-last_or_active-inactive
[12:26:09] [PASSED] inactive-no_or_active-inactive
[12:26:09] ============== [PASSED] xe_rtp_process_tests ===============
[12:26:09] ===================== [PASSED] xe_rtp ======================
[12:26:09] ==================== xe_wa (1 subtest) =====================
[12:26:09] ======================== xe_wa_gt  =========================
[12:26:09] [PASSED] TIGERLAKE (B0)
[12:26:09] [PASSED] DG1 (A0)
[12:26:09] [PASSED] DG1 (B0)
[12:26:09] [PASSED] ALDERLAKE_S (A0)
[12:26:09] [PASSED] ALDERLAKE_S (B0)
[12:26:09] [PASSED] ALDERLAKE_S (C0)
[12:26:09] [PASSED] ALDERLAKE_S (D0)
[12:26:09] [PASSED] ALDERLAKE_P (A0)
[12:26:09] [PASSED] ALDERLAKE_P (B0)
[12:26:09] [PASSED] ALDERLAKE_P (C0)
[12:26:09] [PASSED] ALDERLAKE_S_RPLS (D0)
[12:26:09] [PASSED] ALDERLAKE_P_RPLU (E0)
[12:26:09] [PASSED] DG2_G10 (C0)
[12:26:09] [PASSED] DG2_G11 (B1)
[12:26:09] [PASSED] DG2_G12 (A1)
[12:26:09] [PASSED] METEORLAKE (g:A0, m:A0)
[12:26:09] [PASSED] METEORLAKE (g:A0, m:A0)
[12:26:09] [PASSED] METEORLAKE (g:A0, m:A0)
[12:26:09] [PASSED] LUNARLAKE (g:A0, m:A0)
[12:26:09] [PASSED] LUNARLAKE (g:B0, m:A0)
stty: 'standard input': Inappropriate ioctl for device
[12:26:09] [PASSED] BATTLEMAGE (g:A0, m:A1)
[12:26:09] ==================== [PASSED] xe_wa_gt =====================
[12:26:09] ====================== [PASSED] xe_wa ======================
[12:26:09] ============================================================
[12:26:09] Testing complete. Ran 297 tests: passed: 281, skipped: 16
[12:26:09] Elapsed time: 31.308s total, 4.153s configuring, 26.839s building, 0.308s running

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

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

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



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

* ✓ Xe.CI.BAT: success for drm/sched: Avoid double re-lock on the job free path
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
  2025-07-08 12:26 ` ✓ CI.KUnit: success for " Patchwork
@ 2025-07-08 13:07 ` Patchwork
  2025-07-08 14:28 ` ✗ Xe.CI.Full: failure " Patchwork
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-07-08 13:07 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-xe

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

== Series Details ==

Series: drm/sched: Avoid double re-lock on the job free path
URL   : https://patchwork.freedesktop.org/series/151331/
State : success

== Summary ==

CI Bug Log - changes from xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b_BAT -> xe-pw-151331v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (9 -> 8)
------------------------------

  Missing    (1): bat-adlp-vm 


Changes
-------

  No changes found


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

  * Linux: xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b -> xe-pw-151331v1

  IGT_8445: 8445
  xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b: 8b32b5509128873da8ecfc06beefcb58927eb50b
  xe-pw-151331v1: 151331v1

== Logs ==

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

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

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

* ✗ Xe.CI.Full: failure for drm/sched: Avoid double re-lock on the job free path
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
  2025-07-08 12:26 ` ✓ CI.KUnit: success for " Patchwork
  2025-07-08 13:07 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-07-08 14:28 ` Patchwork
  2025-07-09  4:45 ` [PATCH] " Matthew Brost
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-07-08 14:28 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-xe

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

== Series Details ==

Series: drm/sched: Avoid double re-lock on the job free path
URL   : https://patchwork.freedesktop.org/series/151331/
State : failure

== Summary ==

CI Bug Log - changes from xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b_FULL -> xe-pw-151331v1_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-151331v1_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-151331v1_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 (4 -> 4)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@xe_exec_threads@threads-shared-vm-userptr:
    - shard-dg2-set2:     [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_exec_threads@threads-shared-vm-userptr.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@xe_exec_threads@threads-shared-vm-userptr.html

  
New tests
---------

  New tests have been introduced between xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b_FULL and xe-pw-151331v1_FULL:

### New IGT tests (3) ###

  * igt@kms_flip@flip-vs-dpms-off-vs-modeset-interruptible@d-hdmi-a2:
    - Statuses : 1 pass(s)
    - Exec time: [0.69] s

  * igt@kms_flip@flip-vs-suspend@d-hdmi-a2:
    - Statuses : 1 pass(s)
    - Exec time: [2.21] s

  * igt@kms_flip@wf_vblank-ts-check@d-hdmi-a2:
    - Statuses : 1 pass(s)
    - Exec time: [4.33] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@read:
    - shard-dg2-set2:     [PASS][3] -> [SKIP][4] ([Intel XE#2134]) +1 other test skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@fbdev@read.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@fbdev@read.html

  * igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-off:
    - shard-dg2-set2:     [PASS][5] -> [SKIP][6] ([Intel XE#4208] / [Intel XE#4618]) +1 other test skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-off.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-off.html

  * igt@kms_atomic_transition@modeset-transition-fencing:
    - shard-adlp:         [PASS][7] -> [DMESG-WARN][8] ([Intel XE#2953] / [Intel XE#4173]) +3 other tests dmesg-warn
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-adlp-8/igt@kms_atomic_transition@modeset-transition-fencing.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-adlp-2/igt@kms_atomic_transition@modeset-transition-fencing.html

  * igt@kms_atomic_transition@modeset-transition-nonblocking-fencing:
    - shard-dg2-set2:     [PASS][9] -> [SKIP][10] ([Intel XE#4208] / [i915#2575]) +74 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-466/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html

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

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
    - shard-adlp:         [PASS][12] -> [DMESG-FAIL][13] ([Intel XE#4543])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-adlp-3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-adlp-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p:
    - shard-bmg:          [PASS][14] -> [SKIP][15] ([Intel XE#2314] / [Intel XE#2894])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-7/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2887])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-ccs@pipe-d-hdmi-a-2:
    - shard-dg2-set2:     NOTRUN -> [SKIP][17] ([Intel XE#787]) +139 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_ccs@crc-primary-basic-y-tiled-ccs@pipe-d-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][18] ([Intel XE#3442])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-466/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][19] ([Intel XE#455] / [Intel XE#787]) +20 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-466/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
    - shard-dg2-set2:     [PASS][20] -> [INCOMPLETE][21] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-6:
    - shard-dg2-set2:     [PASS][22] -> [INCOMPLETE][23] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-6.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-dg2-set2:     [PASS][24] -> [INCOMPLETE][25] ([Intel XE#2705] / [Intel XE#4212]) +1 other test incomplete
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

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

  * igt@kms_cdclk@mode-transition@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][27] ([Intel XE#4417]) +3 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-435/igt@kms_cdclk@mode-transition@pipe-d-dp-4.html

  * igt@kms_chamelium_color@gamma:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#2325])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_chamelium_color@gamma.html

  * igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2252])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html

  * igt@kms_content_protection@atomic-dpms@pipe-a-dp-2:
    - shard-dg2-set2:     NOTRUN -> [FAIL][30] ([Intel XE#1178]) +1 other test fail
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_content_protection@atomic-dpms@pipe-a-dp-2.html
    - shard-bmg:          NOTRUN -> [FAIL][31] ([Intel XE#1178]) +1 other test fail
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_content_protection@atomic-dpms@pipe-a-dp-2.html

  * igt@kms_content_protection@lic-type-0@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][32] ([Intel XE#3304])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_content_protection@lic-type-0@pipe-a-dp-4.html

  * igt@kms_cursor_crc@cursor-random-32x10:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#2320])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_cursor_crc@cursor-random-32x10.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
    - shard-bmg:          [PASS][34] -> [SKIP][35] ([Intel XE#2291])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-bmg:          [PASS][36] -> [FAIL][37] ([Intel XE#4633])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_dsc@dsc-basic:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#2244])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_dsc@dsc-basic.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop:
    - shard-bmg:          [PASS][39] -> [SKIP][40] ([Intel XE#2316]) +5 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-3/igt@kms_flip@2x-flip-vs-dpms-on-nop.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-on-nop.html

  * igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a1:
    - shard-adlp:         [PASS][41] -> [DMESG-WARN][42] ([Intel XE#4543]) +1 other test dmesg-warn
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-adlp-3/igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a1.html
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-adlp-4/igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a1.html

  * igt@kms_flip@blocking-wf_vblank:
    - shard-dg2-set2:     NOTRUN -> [SKIP][43] ([Intel XE#4208] / [i915#2575]) +28 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_flip@blocking-wf_vblank.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling:
    - shard-dg2-set2:     NOTRUN -> [SKIP][44] ([Intel XE#2351] / [Intel XE#4208]) +5 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#2311]) +3 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt:
    - shard-dg2-set2:     [PASS][46] -> [SKIP][47] ([Intel XE#2351] / [Intel XE#4208]) +7 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#2313]) +1 other test skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#2934])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-bmg:          [PASS][50] -> [SKIP][51] ([Intel XE#3012])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-3/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#2393])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-dg2-set2:     NOTRUN -> [SKIP][53] ([Intel XE#5020])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-466/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_psr@fbc-pr-primary-blt:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_psr@fbc-pr-primary-blt.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-bmg:          NOTRUN -> [SKIP][55] ([Intel XE#3414] / [Intel XE#3904])
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_setmode@basic:
    - shard-bmg:          [PASS][56] -> [FAIL][57] ([Intel XE#2883]) +2 other tests fail
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-3/igt@kms_setmode@basic.html
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@kms_setmode@basic.html

  * igt@kms_setmode@basic@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [FAIL][58] ([Intel XE#2883])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_setmode@basic@pipe-a-hdmi-a-6.html

  * igt@xe_compute_preempt@compute-preempt-many-all-ram@engine-drm_xe_engine_class_compute:
    - shard-dg2-set2:     NOTRUN -> [SKIP][59] ([Intel XE#455]) +3 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_compute_preempt@compute-preempt-many-all-ram@engine-drm_xe_engine_class_compute.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#2322])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue:
    - shard-dg2-set2:     [PASS][61] -> [SKIP][62] ([Intel XE#1392]) +2 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_exec_basic@multigpu-once-bindexecqueue.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_exec_basic@multigpu-once-bindexecqueue.html

  * igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind:
    - shard-dg2-set2:     NOTRUN -> [SKIP][63] ([Intel XE#288])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-466/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_sip_eudebug@wait-writesip-nodebug:
    - shard-bmg:          NOTRUN -> [SKIP][64] ([Intel XE#4837])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@xe_exec_sip_eudebug@wait-writesip-nodebug.html

  * igt@xe_exec_system_allocator@process-many-execqueues-mmap-free-huge:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#4943]) +1 other test skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@xe_exec_system_allocator@process-many-execqueues-mmap-free-huge.html

  * igt@xe_exec_system_allocator@processes-evict-malloc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][66] ([Intel XE#4915]) +7 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-466/igt@xe_exec_system_allocator@processes-evict-malloc.html

  * igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck:
    - shard-dg2-set2:     NOTRUN -> [SKIP][67] ([Intel XE#4208]) +161 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset:
    - shard-lnl:          [PASS][68] -> [FAIL][69] ([Intel XE#5018])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-lnl-5/igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-lnl-4/igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset.html

  * igt@xe_live_ktest@xe_bo:
    - shard-dg2-set2:     [PASS][70] -> [SKIP][71] ([Intel XE#2229] / [Intel XE#455]) +1 other test skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_live_ktest@xe_bo.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_live_ktest@xe_bo.html

  * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
    - shard-dg2-set2:     [PASS][72] -> [SKIP][73] ([Intel XE#2229])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html

  * igt@xe_module_load@reload:
    - shard-dg2-set2:     NOTRUN -> [FAIL][74] ([Intel XE#4208]) +1 other test fail
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_module_load@reload.html

  * igt@xe_pm@s2idle-exec-after:
    - shard-dg2-set2:     [PASS][75] -> [SKIP][76] ([Intel XE#4208]) +182 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_pm@s2idle-exec-after.html
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_pm@s2idle-exec-after.html

  * igt@xe_pm@vram-d3cold-threshold:
    - shard-bmg:          NOTRUN -> [SKIP][77] ([Intel XE#579])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@xe_pm@vram-d3cold-threshold.html

  * igt@xe_query@multigpu-query-hwconfig:
    - shard-bmg:          NOTRUN -> [SKIP][78] ([Intel XE#944])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-1/igt@xe_query@multigpu-query-hwconfig.html

  
#### Possible fixes ####

  * igt@core_setmaster@master-drop-set-user:
    - shard-dg2-set2:     [FAIL][79] ([Intel XE#4208]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@core_setmaster@master-drop-set-user.html
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@core_setmaster@master-drop-set-user.html

  * igt@fbdev@write:
    - shard-dg2-set2:     [SKIP][81] ([Intel XE#2134]) -> [PASS][82] +1 other test pass
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@fbdev@write.html
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@fbdev@write.html

  * igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
    - shard-bmg:          [SKIP][83] ([Intel XE#2314] / [Intel XE#2894]) -> [PASS][84] +1 other test pass
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-3/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-dg2-set2:     [INCOMPLETE][85] -> [PASS][86] +1 other test pass
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-433/igt@kms_cursor_crc@cursor-suspend.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-466/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-bmg:          [SKIP][87] ([Intel XE#2291]) -> [PASS][88] +4 other tests pass
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_dp_link_training@non-uhbr-sst:
    - shard-bmg:          [SKIP][89] ([Intel XE#4354]) -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-5/igt@kms_dp_link_training@non-uhbr-sst.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-3/igt@kms_dp_link_training@non-uhbr-sst.html

  * igt@kms_flip@2x-plain-flip-fb-recreate:
    - shard-bmg:          [SKIP][91] ([Intel XE#2316]) -> [PASS][92] +3 other tests pass
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-5/igt@kms_flip@2x-plain-flip-fb-recreate.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-3/igt@kms_flip@2x-plain-flip-fb-recreate.html

  * igt@kms_flip@absolute-wf_vblank:
    - shard-dg2-set2:     [SKIP][93] ([Intel XE#4208] / [i915#2575]) -> [PASS][94] +80 other tests pass
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_flip@absolute-wf_vblank.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_flip@absolute-wf_vblank.html

  * igt@kms_flip@flip-vs-modeset-vs-hang@d-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][95] ([Intel XE#4543]) -> [PASS][96] +1 other test pass
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-adlp-2/igt@kms_flip@flip-vs-modeset-vs-hang@d-hdmi-a1.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-adlp-9/igt@kms_flip@flip-vs-modeset-vs-hang@d-hdmi-a1.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
    - shard-dg2-set2:     [SKIP][97] ([Intel XE#2351] / [Intel XE#4208]) -> [PASS][98] +8 other tests pass
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move.html

  * igt@kms_plane_multiple@2x-tiling-4:
    - shard-bmg:          [SKIP][99] ([Intel XE#4596]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-4.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-3/igt@kms_plane_multiple@2x-tiling-4.html

  * igt@kms_pm_rpm@i2c:
    - shard-adlp:         [DMESG-WARN][101] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][102] +7 other tests pass
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-adlp-8/igt@kms_pm_rpm@i2c.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-adlp-1/igt@kms_pm_rpm@i2c.html

  * igt@xe_exec_balancer@once-parallel-rebind:
    - shard-dg2-set2:     [SKIP][103] ([Intel XE#4208]) -> [PASS][104] +161 other tests pass
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_exec_balancer@once-parallel-rebind.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@xe_exec_balancer@once-parallel-rebind.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race:
    - shard-dg2-set2:     [SKIP][105] ([Intel XE#1392]) -> [PASS][106] +2 other tests pass
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-432/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-466/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate-race.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-bmg:          [DMESG-WARN][107] ([Intel XE#3876]) -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-4/igt@xe_exec_reset@parallel-gt-reset.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-4/igt@xe_exec_reset@parallel-gt-reset.html

  
#### Warnings ####

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - shard-dg2-set2:     [SKIP][109] ([Intel XE#4208] / [i915#2575]) -> [SKIP][110] ([Intel XE#623])
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_async_flips@invalid-async-flip-atomic:
    - shard-dg2-set2:     [SKIP][111] ([Intel XE#3768]) -> [SKIP][112] ([Intel XE#4208] / [i915#2575])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_async_flips@invalid-async-flip-atomic.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_async_flips@invalid-async-flip-atomic.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-270:
    - shard-dg2-set2:     [SKIP][113] ([Intel XE#316]) -> [SKIP][114] ([Intel XE#4208]) +3 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-270:
    - shard-dg2-set2:     [SKIP][115] ([Intel XE#316]) -> [SKIP][116] ([Intel XE#2351] / [Intel XE#4208])
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-dg2-set2:     [SKIP][117] ([Intel XE#4208]) -> [SKIP][118] ([Intel XE#316]) +1 other test skip
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-90:
    - shard-dg2-set2:     [SKIP][119] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][120] ([Intel XE#316])
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-dg2-set2:     [SKIP][121] ([Intel XE#4208]) -> [SKIP][122] ([Intel XE#1124]) +5 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-dg2-set2:     [SKIP][123] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][124] ([Intel XE#1124]) +2 other tests skip
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
    - shard-dg2-set2:     [SKIP][125] ([Intel XE#1124]) -> [SKIP][126] ([Intel XE#4208]) +5 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-466/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-dg2-set2:     [SKIP][127] ([Intel XE#1124]) -> [SKIP][128] ([Intel XE#2351] / [Intel XE#4208]) +3 other tests skip
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p:
    - shard-dg2-set2:     [SKIP][129] ([Intel XE#4208] / [i915#2575]) -> [SKIP][130] ([Intel XE#2191])
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
    - shard-dg2-set2:     [SKIP][131] ([Intel XE#2191]) -> [SKIP][132] ([Intel XE#4208] / [i915#2575]) +1 other test skip
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-1-displays-1920x1080p:
    - shard-dg2-set2:     [SKIP][133] ([Intel XE#367]) -> [SKIP][134] ([Intel XE#4208] / [i915#2575]) +2 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-2-displays-3840x2160p:
    - shard-dg2-set2:     [SKIP][135] ([Intel XE#4208] / [i915#2575]) -> [SKIP][136] ([Intel XE#367]) +1 other test skip
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs:
    - shard-dg2-set2:     [SKIP][137] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][138] ([Intel XE#2351] / [Intel XE#4208]) +1 other test skip
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs:
    - shard-dg2-set2:     [SKIP][139] ([Intel XE#4208]) -> [SKIP][140] ([Intel XE#455] / [Intel XE#787]) +7 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs:
    - shard-dg2-set2:     [SKIP][141] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][142] ([Intel XE#455] / [Intel XE#787]) +2 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][143] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345]) -> [SKIP][144] ([Intel XE#4208])
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
    - shard-dg2-set2:     [SKIP][145] ([Intel XE#2907]) -> [SKIP][146] ([Intel XE#4208]) +1 other test skip
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc:
    - shard-dg2-set2:     [SKIP][147] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][148] ([Intel XE#4208]) +11 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-dg2-set2:     [SKIP][149] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][150] ([Intel XE#4418])
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_cdclk@mode-transition-all-outputs.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_chamelium_color@degamma:
    - shard-dg2-set2:     [SKIP][151] ([Intel XE#306]) -> [SKIP][152] ([Intel XE#4208] / [i915#2575]) +1 other test skip
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_chamelium_color@degamma.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_chamelium_color@degamma.html

  * igt@kms_chamelium_color@gamma:
    - shard-dg2-set2:     [SKIP][153] ([Intel XE#4208] / [i915#2575]) -> [SKIP][154] ([Intel XE#306]) +1 other test skip
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_chamelium_color@gamma.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_chamelium_color@gamma.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-dg2-set2:     [SKIP][155] ([Intel XE#373]) -> [SKIP][156] ([Intel XE#4208] / [i915#2575]) +10 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-466/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_hpd@hdmi-hpd:
    - shard-dg2-set2:     [SKIP][157] ([Intel XE#4208] / [i915#2575]) -> [SKIP][158] ([Intel XE#373]) +7 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_chamelium_hpd@hdmi-hpd.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_chamelium_hpd@hdmi-hpd.html

  * igt@kms_content_protection@atomic:
    - shard-bmg:          [FAIL][159] ([Intel XE#1178]) -> [SKIP][160] ([Intel XE#2341])
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-7/igt@kms_content_protection@atomic.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@lic-type-0:
    - shard-dg2-set2:     [SKIP][161] ([Intel XE#4208] / [i915#2575]) -> [FAIL][162] ([Intel XE#1178]) +1 other test fail
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_content_protection@lic-type-0.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@srm:
    - shard-dg2-set2:     [FAIL][163] ([Intel XE#1178]) -> [SKIP][164] ([Intel XE#4208] / [i915#2575])
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_content_protection@srm.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-random-max-size:
    - shard-dg2-set2:     [SKIP][165] ([Intel XE#4208] / [i915#2575]) -> [SKIP][166] ([Intel XE#455]) +4 other tests skip
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_cursor_crc@cursor-random-max-size.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_cursor_crc@cursor-random-max-size.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x512:
    - shard-dg2-set2:     [SKIP][167] ([Intel XE#4208] / [i915#2575]) -> [SKIP][168] ([Intel XE#308])
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-max-size:
    - shard-dg2-set2:     [SKIP][169] ([Intel XE#455]) -> [SKIP][170] ([Intel XE#4208] / [i915#2575]) +10 other tests skip
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_cursor_crc@cursor-sliding-max-size.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_cursor_crc@cursor-sliding-max-size.html

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-dg2-set2:     [SKIP][171] ([Intel XE#4354]) -> [SKIP][172] ([Intel XE#4208])
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@kms_dp_link_training@non-uhbr-mst.html
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-dg2-set2:     [SKIP][173] ([Intel XE#4208]) -> [SKIP][174] ([Intel XE#4356])
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_dp_link_training@uhbr-mst.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-dg2-set2:     [SKIP][175] ([Intel XE#455]) -> [SKIP][176] ([Intel XE#4208]) +3 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_dsc@dsc-with-bpc.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-dg2-set2:     [SKIP][177] ([Intel XE#455]) -> [SKIP][178] ([Intel XE#2351] / [Intel XE#4208]) +1 other test skip
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_dsc@dsc-with-bpc-formats.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_feature_discovery@display-4x:
    - shard-dg2-set2:     [SKIP][179] ([Intel XE#4208] / [i915#2575]) -> [SKIP][180] ([Intel XE#1138])
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_feature_discovery@display-4x.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@psr1:
    - shard-dg2-set2:     [SKIP][181] ([Intel XE#1135]) -> [SKIP][182] ([Intel XE#4208] / [i915#2575])
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_feature_discovery@psr1.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-dg2-set2:     [INCOMPLETE][183] ([Intel XE#2049] / [Intel XE#2597]) -> [SKIP][184] ([Intel XE#4208] / [i915#2575])
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_flip@flip-vs-suspend-interruptible.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-dg2-set2:     [SKIP][185] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][186] ([Intel XE#455]) +2 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
    - shard-dg2-set2:     [SKIP][187] ([Intel XE#4208]) -> [SKIP][188] ([Intel XE#455]) +2 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw:
    - shard-bmg:          [SKIP][189] ([Intel XE#2311]) -> [SKIP][190] ([Intel XE#2312]) +9 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][191] ([Intel XE#2312]) -> [SKIP][192] ([Intel XE#2311]) +11 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff:
    - shard-dg2-set2:     [SKIP][193] ([Intel XE#651]) -> [SKIP][194] ([Intel XE#4208]) +21 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
    - shard-dg2-set2:     [SKIP][195] ([Intel XE#651]) -> [SKIP][196] ([Intel XE#2351] / [Intel XE#4208]) +9 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move:
    - shard-bmg:          [SKIP][197] ([Intel XE#5390]) -> [SKIP][198] ([Intel XE#2312]) +3 other tests skip
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-bmg:          [SKIP][199] ([Intel XE#2312]) -> [SKIP][200] ([Intel XE#5390]) +6 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-dg2-set2:     [SKIP][201] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][202] ([Intel XE#658])
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render:
    - shard-dg2-set2:     [SKIP][203] ([Intel XE#4208]) -> [SKIP][204] ([Intel XE#651]) +15 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-blt:
    - shard-dg2-set2:     [SKIP][205] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][206] ([Intel XE#651]) +8 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-blt.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
    - shard-dg2-set2:     [SKIP][207] ([Intel XE#653]) -> [SKIP][208] ([Intel XE#4208]) +19 other tests skip
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][209] ([Intel XE#2312]) -> [SKIP][210] ([Intel XE#2313]) +10 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-slowdraw:
    - shard-dg2-set2:     [SKIP][211] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][212] ([Intel XE#653]) +3 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcpsr-slowdraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-dg2-set2:     [SKIP][213] ([Intel XE#653]) -> [SKIP][214] ([Intel XE#2351] / [Intel XE#4208]) +8 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-dg2-set2:     [SKIP][215] ([Intel XE#4208]) -> [SKIP][216] ([Intel XE#653]) +21 other tests skip
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt:
    - shard-bmg:          [SKIP][217] ([Intel XE#2313]) -> [SKIP][218] ([Intel XE#2312]) +5 other tests skip
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-dg2-set2:     [SKIP][219] ([Intel XE#346]) -> [SKIP][220] ([Intel XE#4208])
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-466/igt@kms_joiner@basic-big-joiner.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-dg2-set2:     [SKIP][221] ([Intel XE#4208]) -> [SKIP][222] ([Intel XE#2925])
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_joiner@basic-force-ultra-joiner.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@basic-max-non-joiner:
    - shard-dg2-set2:     [SKIP][223] ([Intel XE#4298]) -> [SKIP][224] ([Intel XE#4208])
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@kms_joiner@basic-max-non-joiner.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_joiner@basic-max-non-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-dg2-set2:     [SKIP][225] ([Intel XE#4208]) -> [SKIP][226] ([Intel XE#2927])
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_joiner@basic-ultra-joiner.html
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_plane_cursor@overlay:
    - shard-dg2-set2:     [FAIL][227] ([Intel XE#616]) -> [SKIP][228] ([Intel XE#4208] / [i915#2575])
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@kms_plane_cursor@overlay.html
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_plane_cursor@overlay.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-bmg:          [SKIP][229] ([Intel XE#5021]) -> [SKIP][230] ([Intel XE#4596])
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-bmg-7/igt@kms_plane_multiple@2x-tiling-y.html
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-dg2-set2:     [SKIP][231] ([Intel XE#5021]) -> [SKIP][232] ([Intel XE#4208] / [i915#2575])
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_plane_multiple@2x-tiling-yf.html
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-dg2-set2:     [SKIP][233] ([Intel XE#5020]) -> [SKIP][234] ([Intel XE#4208] / [i915#2575])
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_plane_multiple@tiling-yf.html
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-dg2-set2:     [SKIP][235] ([Intel XE#2938]) -> [SKIP][236] ([Intel XE#4208])
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_pm_backlight@brightness-with-dpms.html
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-dg2-set2:     [SKIP][237] ([Intel XE#4208]) -> [SKIP][238] ([Intel XE#1129])
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_pm_dc@dc5-psr.html
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf:
    - shard-dg2-set2:     [SKIP][239] ([Intel XE#1489]) -> [SKIP][240] ([Intel XE#4208]) +8 other tests skip
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf:
    - shard-dg2-set2:     [SKIP][241] ([Intel XE#4208]) -> [SKIP][242] ([Intel XE#1489]) +4 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-dg2-set2:     [SKIP][243] ([Intel XE#4208]) -> [SKIP][244] ([Intel XE#1122])
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_psr2_su@page_flip-p010.html
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-dg2-set2:     [SKIP][245] ([Intel XE#1122]) -> [SKIP][246] ([Intel XE#4208])
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-466/igt@kms_psr2_su@page_flip-xrgb8888.html
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-pr-cursor-plane-move:
    - shard-dg2-set2:     [SKIP][247] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][248] ([Intel XE#4208]) +6 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_psr@fbc-pr-cursor-plane-move.html
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_psr@fbc-pr-cursor-plane-move.html

  * igt@kms_psr@fbc-psr-no-drrs:
    - shard-dg2-set2:     [SKIP][249] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][250] ([Intel XE#2351] / [Intel XE#4208]) +3 other tests skip
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@kms_psr@fbc-psr-no-drrs.html
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_psr@fbc-psr-no-drrs.html

  * igt@kms_psr@fbc-psr-sprite-plane-onoff:
    - shard-dg2-set2:     [SKIP][251] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][252] ([Intel XE#2850] / [Intel XE#929]) +3 other tests skip
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_psr@fbc-psr-sprite-plane-onoff.html
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_psr@fbc-psr-sprite-plane-onoff.html

  * igt@kms_psr@fbc-psr2-primary-render:
    - shard-dg2-set2:     [SKIP][253] ([Intel XE#4208]) -> [SKIP][254] ([Intel XE#2850] / [Intel XE#929]) +9 other tests skip
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@kms_psr@fbc-psr2-primary-render.html
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_psr@fbc-psr2-primary-render.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-dg2-set2:     [SKIP][255] ([Intel XE#2939]) -> [SKIP][256] ([Intel XE#4208])
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_rotation_crc@bad-tiling:
    - shard-dg2-set2:     [SKIP][257] ([Intel XE#4208] / [i915#2575]) -> [SKIP][258] ([Intel XE#3414]) +1 other test skip
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_rotation_crc@bad-tiling.html
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@kms_rotation_crc@bad-tiling.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
    - shard-dg2-set2:     [SKIP][259] ([Intel XE#4208] / [i915#2575]) -> [SKIP][260] ([Intel XE#1127])
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-90:
    - shard-dg2-set2:     [SKIP][261] ([Intel XE#3414]) -> [SKIP][262] ([Intel XE#4208] / [i915#2575]) +2 other tests skip
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-dg2-set2:     [SKIP][263] ([Intel XE#1127]) -> [SKIP][264] ([Intel XE#4208] / [i915#2575]) +2 other tests skip
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_setmode@basic:
    - shard-dg2-set2:     [SKIP][265] ([Intel XE#4208] / [i915#2575]) -> [FAIL][266] ([Intel XE#2883])
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@kms_setmode@basic.html
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@kms_setmode@basic.html

  * igt@xe_copy_basic@mem-copy-linear-0xfd:
    - shard-dg2-set2:     [SKIP][267] ([Intel XE#4208]) -> [SKIP][268] ([Intel XE#1123])
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_copy_basic@mem-copy-linear-0xfd.html
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@xe_copy_basic@mem-copy-linear-0xfd.html

  * igt@xe_create@multigpu-create-massive-size:
    - shard-dg2-set2:     [SKIP][269] ([Intel XE#4208]) -> [SKIP][270] ([Intel XE#944]) +2 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@xe_create@multigpu-create-massive-size.html
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@xe_create@multigpu-create-massive-size.html

  * igt@xe_eu_stall@blocking-read:
    - shard-dg2-set2:     [SKIP][271] ([Intel XE#4208]) -> [SKIP][272] ([Intel XE#5419]) +1 other test skip
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_eu_stall@blocking-read.html
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@xe_eu_stall@blocking-read.html

  * igt@xe_eu_stall@invalid-sampling-rate:
    - shard-dg2-set2:     [SKIP][273] ([Intel XE#5419]) -> [SKIP][274] ([Intel XE#4208])
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_eu_stall@invalid-sampling-rate.html
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_eu_stall@invalid-sampling-rate.html

  * igt@xe_eudebug@basic-vm-access-parameters:
    - shard-dg2-set2:     [SKIP][275] ([Intel XE#4208]) -> [SKIP][276] ([Intel XE#4837]) +9 other tests skip
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_eudebug@basic-vm-access-parameters.html
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_eudebug@basic-vm-access-parameters.html

  * igt@xe_eudebug@basic-vm-bind-ufence-delay-ack:
    - shard-dg2-set2:     [SKIP][277] ([Intel XE#4837]) -> [SKIP][278] ([Intel XE#4208]) +10 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@xe_eudebug@basic-vm-bind-ufence-delay-ack.html
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_eudebug@basic-vm-bind-ufence-delay-ack.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind:
    - shard-dg2-set2:     [SKIP][279] ([Intel XE#4208]) -> [SKIP][280] ([Intel XE#1392]) +1 other test skip
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-imm:
    - shard-dg2-set2:     [SKIP][281] ([Intel XE#288]) -> [SKIP][282] ([Intel XE#4208]) +21 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-imm.html
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-rebind-imm.html

  * igt@xe_exec_fault_mode@many-execqueues-userptr-invalidate-imm:
    - shard-dg2-set2:     [SKIP][283] ([Intel XE#4208]) -> [SKIP][284] ([Intel XE#288]) +17 other tests skip
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_exec_fault_mode@many-execqueues-userptr-invalidate-imm.html
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@xe_exec_fault_mode@many-execqueues-userptr-invalidate-imm.html

  * igt@xe_exec_mix_modes@exec-simple-batch-store-lr:
    - shard-dg2-set2:     [SKIP][285] ([Intel XE#4208]) -> [SKIP][286] ([Intel XE#2360]) +1 other test skip
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html

  * igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence:
    - shard-dg2-set2:     [SKIP][287] ([Intel XE#2360]) -> [SKIP][288] ([Intel XE#4208])
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence.html
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-dg2-set2:     [DMESG-WARN][289] ([Intel XE#3876]) -> [SKIP][290] ([Intel XE#4208])
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@xe_exec_reset@parallel-gt-reset.html
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_exec_reset@parallel-gt-reset.html

  * igt@xe_exec_system_allocator@process-many-execqueues-free-race:
    - shard-dg2-set2:     [SKIP][291] ([Intel XE#4915]) -> [SKIP][292] ([Intel XE#4208]) +241 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@xe_exec_system_allocator@process-many-execqueues-free-race.html
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_exec_system_allocator@process-many-execqueues-free-race.html

  * igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset:
    - shard-dg2-set2:     [SKIP][293] ([Intel XE#4208]) -> [SKIP][294] ([Intel XE#4915]) +213 other tests skip
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset.html
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-dg2-set2:     [SKIP][295] ([Intel XE#4208]) -> [ABORT][296] ([Intel XE#4917])
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-435/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

  * igt@xe_huc_copy@huc_copy:
    - shard-dg2-set2:     [SKIP][297] ([Intel XE#4208]) -> [SKIP][298] ([Intel XE#255])
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_huc_copy@huc_copy.html
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_huc_copy@huc_copy.html

  * igt@xe_oa@non-privileged-access-vaddr:
    - shard-dg2-set2:     [SKIP][299] ([Intel XE#2541] / [Intel XE#3573]) -> [SKIP][300] ([Intel XE#4208]) +4 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@xe_oa@non-privileged-access-vaddr.html
   [300]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_oa@non-privileged-access-vaddr.html

  * igt@xe_oa@privileged-forked-access-vaddr:
    - shard-dg2-set2:     [SKIP][301] ([Intel XE#4208]) -> [SKIP][302] ([Intel XE#2541] / [Intel XE#3573]) +4 other tests skip
   [301]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_oa@privileged-forked-access-vaddr.html
   [302]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_oa@privileged-forked-access-vaddr.html

  * igt@xe_oa@syncs-ufence-wait:
    - shard-dg2-set2:     [SKIP][303] ([Intel XE#2541] / [Intel XE#3573] / [Intel XE#4501]) -> [SKIP][304] ([Intel XE#4208]) +2 other tests skip
   [303]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@xe_oa@syncs-ufence-wait.html
   [304]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_oa@syncs-ufence-wait.html

  * igt@xe_oa@syncs-userptr-wait-cfg:
    - shard-dg2-set2:     [SKIP][305] ([Intel XE#4208]) -> [SKIP][306] ([Intel XE#2541] / [Intel XE#3573] / [Intel XE#4501]) +1 other test skip
   [305]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_oa@syncs-userptr-wait-cfg.html
   [306]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-433/igt@xe_oa@syncs-userptr-wait-cfg.html

  * igt@xe_pat@pat-index-xe2:
    - shard-dg2-set2:     [SKIP][307] ([Intel XE#4208]) -> [SKIP][308] ([Intel XE#977])
   [307]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-434/igt@xe_pat@pat-index-xe2.html
   [308]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@xe_pat@pat-index-xe2.html

  * igt@xe_pat@pat-index-xelpg:
    - shard-dg2-set2:     [SKIP][309] ([Intel XE#4208]) -> [SKIP][310] ([Intel XE#979])
   [309]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_pat@pat-index-xelpg.html
   [310]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_pat@pat-index-xelpg.html

  * igt@xe_peer2peer@read:
    - shard-dg2-set2:     [FAIL][311] ([Intel XE#1173]) -> [SKIP][312] ([Intel XE#1061])
   [311]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_peer2peer@read.html
   [312]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_peer2peer@read.html

  * igt@xe_pm@d3cold-basic-exec:
    - shard-dg2-set2:     [SKIP][313] ([Intel XE#2284] / [Intel XE#366]) -> [SKIP][314] ([Intel XE#4208])
   [313]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_pm@d3cold-basic-exec.html
   [314]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_pm@d3cold-basic-exec.html

  * igt@xe_pm@d3cold-mocs:
    - shard-dg2-set2:     [SKIP][315] ([Intel XE#2284]) -> [SKIP][316] ([Intel XE#4208])
   [315]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@xe_pm@d3cold-mocs.html
   [316]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_pm@d3cold-mocs.html

  * igt@xe_pm@vram-d3cold-threshold:
    - shard-dg2-set2:     [SKIP][317] ([Intel XE#4208]) -> [SKIP][318] ([Intel XE#579])
   [317]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_pm@vram-d3cold-threshold.html
   [318]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-432/igt@xe_pm@vram-d3cold-threshold.html

  * igt@xe_pmu@all-fn-engine-activity-load:
    - shard-dg2-set2:     [SKIP][319] ([Intel XE#4650]) -> [SKIP][320] ([Intel XE#4208])
   [319]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@xe_pmu@all-fn-engine-activity-load.html
   [320]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_pmu@all-fn-engine-activity-load.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-rpm:
    - shard-dg2-set2:     [SKIP][321] ([Intel XE#4208]) -> [SKIP][322] ([Intel XE#4733]) +1 other test skip
   [321]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_pxp@pxp-stale-bo-bind-post-rpm.html
   [322]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@xe_pxp@pxp-stale-bo-bind-post-rpm.html

  * igt@xe_pxp@pxp-termination-key-update-post-suspend:
    - shard-dg2-set2:     [SKIP][323] ([Intel XE#4733]) -> [SKIP][324] ([Intel XE#4208])
   [323]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-464/igt@xe_pxp@pxp-termination-key-update-post-suspend.html
   [324]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_pxp@pxp-termination-key-update-post-suspend.html

  * igt@xe_query@multigpu-query-mem-usage:
    - shard-dg2-set2:     [SKIP][325] ([Intel XE#944]) -> [SKIP][326] ([Intel XE#4208]) +2 other tests skip
   [325]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-463/igt@xe_query@multigpu-query-mem-usage.html
   [326]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_query@multigpu-query-mem-usage.html

  * igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs:
    - shard-dg2-set2:     [SKIP][327] ([Intel XE#4130]) -> [SKIP][328] ([Intel XE#4208])
   [327]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-435/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html
   [328]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-436/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html

  * igt@xe_sriov_flr@flr-vf1-clear:
    - shard-dg2-set2:     [SKIP][329] ([Intel XE#4208]) -> [SKIP][330] ([Intel XE#3342])
   [329]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b/shard-dg2-436/igt@xe_sriov_flr@flr-vf1-clear.html
   [330]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v1/shard-dg2-464/igt@xe_sriov_flr@flr-vf1-clear.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
  [Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
  [Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
  [Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [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#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [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#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [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#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2351
  [Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
  [Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [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#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2883]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2883
  [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#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
  [Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
  [Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
  [Intel XE#2939]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2939
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442
  [Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3768]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3768
  [Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4208
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4356
  [Intel XE#4417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4417
  [Intel XE#4418]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4418
  [Intel XE#4501]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4501
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4618]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4618
  [Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633
  [Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
  [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#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#4917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4917
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
  [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#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
  [Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
  [Intel XE#5419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5419
  [Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
  [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
  [Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
  [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
  [i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575


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

  * Linux: xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b -> xe-pw-151331v1

  IGT_8445: 8445
  xe-3368-8b32b5509128873da8ecfc06beefcb58927eb50b: 8b32b5509128873da8ecfc06beefcb58927eb50b
  xe-pw-151331v1: 151331v1

== Logs ==

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

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

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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
                   ` (2 preceding siblings ...)
  2025-07-08 14:28 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-07-09  4:45 ` Matthew Brost
  2025-07-09 10:49   ` Tvrtko Ursulin
  2025-07-09 10:51 ` ✓ CI.KUnit: success for drm/sched: Avoid double re-lock on the job free path (rev2) Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 25+ messages in thread
From: Matthew Brost @ 2025-07-09  4:45 UTC (permalink / raw)
  To: Tvrtko Ursulin
  Cc: dri-devel, intel-xe, amd-gfx, kernel-dev, Christian König,
	Danilo Krummrich, Philipp Stanner

On Tue, Jul 08, 2025 at 01:20:32PM +0100, Tvrtko Ursulin wrote:
> Currently the job free work item will lock sched->job_list_lock first time
> to see if there are any jobs, free a single job, and then lock again to
> decide whether to re-queue itself if there are more finished jobs.
> 
> Since drm_sched_get_finished_job() already looks at the second job in the
> queue we can simply add the signaled check and have it return the presence
> of more jobs to free to the caller. That way the work item does not have
> to lock the list again and repeat the signaled check.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Danilo Krummrich <dakr@kernel.org>
> Cc: Matthew Brost <matthew.brost@intel.com>

The patch looks correct, we do have CI failure in a section which
stresses scheduling though. Probably noise though. Do you have Intel
hardware? I suggest running xe_exec_threads in a loop on either LNL or
BMG and see if the CI failure pops. If you don't have hardware, let me
know and I can do this.

With a bit of investigation in the CI failure:
Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> Cc: Philipp Stanner <phasta@kernel.org>
> ---
>  drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++++++----------------
>  1 file changed, 14 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index 1f077782ec12..1bce0b66f89c 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -366,22 +366,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>  		queue_work(sched->submit_wq, &sched->work_free_job);
>  }
>  
> -/**
> - * drm_sched_run_free_queue - enqueue free-job work if ready
> - * @sched: scheduler instance
> - */
> -static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
> -{
> -	struct drm_sched_job *job;
> -
> -	spin_lock(&sched->job_list_lock);
> -	job = list_first_entry_or_null(&sched->pending_list,
> -				       struct drm_sched_job, list);
> -	if (job && dma_fence_is_signaled(&job->s_fence->finished))
> -		__drm_sched_run_free_queue(sched);
> -	spin_unlock(&sched->job_list_lock);
> -}
> -
>  /**
>   * drm_sched_job_done - complete a job
>   * @s_job: pointer to the job which is done
> @@ -1102,12 +1086,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
>   * drm_sched_get_finished_job - fetch the next finished job to be destroyed
>   *
>   * @sched: scheduler instance
> + * @have_more: are there more finished jobs on the list
>   *
>   * Returns the next finished job from the pending list (if there is one)
>   * ready for it to be destroyed.
>   */
>  static struct drm_sched_job *
> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
>  {
>  	struct drm_sched_job *job, *next;
>  
> @@ -1115,22 +1100,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>  
>  	job = list_first_entry_or_null(&sched->pending_list,
>  				       struct drm_sched_job, list);
> -
>  	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>  		/* remove job from pending_list */
>  		list_del_init(&job->list);
>  
>  		/* cancel this job's TO timer */
>  		cancel_delayed_work(&sched->work_tdr);
> -		/* make the scheduled timestamp more accurate */
> +
> +		*have_more = false;
>  		next = list_first_entry_or_null(&sched->pending_list,
>  						typeof(*next), list);
> -
>  		if (next) {
> +			/* make the scheduled timestamp more accurate */
>  			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>  				     &next->s_fence->scheduled.flags))
>  				next->s_fence->scheduled.timestamp =
>  					dma_fence_timestamp(&job->s_fence->finished);
> +
> +			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
> +
>  			/* start TO timer for next job */
>  			drm_sched_start_timeout(sched);
>  		}
> @@ -1189,12 +1177,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
>  	struct drm_gpu_scheduler *sched =
>  		container_of(w, struct drm_gpu_scheduler, work_free_job);
>  	struct drm_sched_job *job;
> +	bool have_more;
>  
> -	job = drm_sched_get_finished_job(sched);
> -	if (job)
> +	job = drm_sched_get_finished_job(sched, &have_more);
> +	if (job) {
>  		sched->ops->free_job(job);
> +		if (have_more)
> +			__drm_sched_run_free_queue(sched);
> +	}
>  
> -	drm_sched_run_free_queue(sched);
>  	drm_sched_run_job_queue(sched);
>  }
>  
> -- 
> 2.48.0
> 

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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-09  4:45 ` [PATCH] " Matthew Brost
@ 2025-07-09 10:49   ` Tvrtko Ursulin
  2025-07-09 17:22     ` Matthew Brost
  0 siblings, 1 reply; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-09 10:49 UTC (permalink / raw)
  To: Matthew Brost
  Cc: dri-devel, intel-xe, amd-gfx, kernel-dev, Christian König,
	Danilo Krummrich, Philipp Stanner


On 09/07/2025 05:45, Matthew Brost wrote:
> On Tue, Jul 08, 2025 at 01:20:32PM +0100, Tvrtko Ursulin wrote:
>> Currently the job free work item will lock sched->job_list_lock first time
>> to see if there are any jobs, free a single job, and then lock again to
>> decide whether to re-queue itself if there are more finished jobs.
>>
>> Since drm_sched_get_finished_job() already looks at the second job in the
>> queue we can simply add the signaled check and have it return the presence
>> of more jobs to free to the caller. That way the work item does not have
>> to lock the list again and repeat the signaled check.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Cc: Danilo Krummrich <dakr@kernel.org>
>> Cc: Matthew Brost <matthew.brost@intel.com>
> 
> The patch looks correct, we do have CI failure in a section which
> stresses scheduling though. Probably noise though. Do you have Intel
> hardware? I suggest running xe_exec_threads in a loop on either LNL or
> BMG and see if the CI failure pops. If you don't have hardware, let me
> know and I can do this.
> 
> With a bit of investigation in the CI failure:
> Reviewed-by: Matthew Brost <matthew.brost@intel.com>

Thanks! I don't have the HW but I was able to press re-test in the CI so 
lets see. Although at the moment I can't imagine a failure mode like 
that could be caused by this patch.

Regards,

Tvrtko

> 
>> Cc: Philipp Stanner <phasta@kernel.org>
>> ---
>>   drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++++++----------------
>>   1 file changed, 14 insertions(+), 23 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
>> index 1f077782ec12..1bce0b66f89c 100644
>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>> @@ -366,22 +366,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>   		queue_work(sched->submit_wq, &sched->work_free_job);
>>   }
>>   
>> -/**
>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>> - * @sched: scheduler instance
>> - */
>> -static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>> -{
>> -	struct drm_sched_job *job;
>> -
>> -	spin_lock(&sched->job_list_lock);
>> -	job = list_first_entry_or_null(&sched->pending_list,
>> -				       struct drm_sched_job, list);
>> -	if (job && dma_fence_is_signaled(&job->s_fence->finished))
>> -		__drm_sched_run_free_queue(sched);
>> -	spin_unlock(&sched->job_list_lock);
>> -}
>> -
>>   /**
>>    * drm_sched_job_done - complete a job
>>    * @s_job: pointer to the job which is done
>> @@ -1102,12 +1086,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
>>    * drm_sched_get_finished_job - fetch the next finished job to be destroyed
>>    *
>>    * @sched: scheduler instance
>> + * @have_more: are there more finished jobs on the list
>>    *
>>    * Returns the next finished job from the pending list (if there is one)
>>    * ready for it to be destroyed.
>>    */
>>   static struct drm_sched_job *
>> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
>>   {
>>   	struct drm_sched_job *job, *next;
>>   
>> @@ -1115,22 +1100,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>>   
>>   	job = list_first_entry_or_null(&sched->pending_list,
>>   				       struct drm_sched_job, list);
>> -
>>   	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>>   		/* remove job from pending_list */
>>   		list_del_init(&job->list);
>>   
>>   		/* cancel this job's TO timer */
>>   		cancel_delayed_work(&sched->work_tdr);
>> -		/* make the scheduled timestamp more accurate */
>> +
>> +		*have_more = false;
>>   		next = list_first_entry_or_null(&sched->pending_list,
>>   						typeof(*next), list);
>> -
>>   		if (next) {
>> +			/* make the scheduled timestamp more accurate */
>>   			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>>   				     &next->s_fence->scheduled.flags))
>>   				next->s_fence->scheduled.timestamp =
>>   					dma_fence_timestamp(&job->s_fence->finished);
>> +
>> +			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
>> +
>>   			/* start TO timer for next job */
>>   			drm_sched_start_timeout(sched);
>>   		}
>> @@ -1189,12 +1177,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
>>   	struct drm_gpu_scheduler *sched =
>>   		container_of(w, struct drm_gpu_scheduler, work_free_job);
>>   	struct drm_sched_job *job;
>> +	bool have_more;
>>   
>> -	job = drm_sched_get_finished_job(sched);
>> -	if (job)
>> +	job = drm_sched_get_finished_job(sched, &have_more);
>> +	if (job) {
>>   		sched->ops->free_job(job);
>> +		if (have_more)
>> +			__drm_sched_run_free_queue(sched);
>> +	}
>>   
>> -	drm_sched_run_free_queue(sched);
>>   	drm_sched_run_job_queue(sched);
>>   }
>>   
>> -- 
>> 2.48.0
>>


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

* ✓ CI.KUnit: success for drm/sched: Avoid double re-lock on the job free path (rev2)
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
                   ` (3 preceding siblings ...)
  2025-07-09  4:45 ` [PATCH] " Matthew Brost
@ 2025-07-09 10:51 ` Patchwork
  2025-07-09 11:29 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-07-09 10:51 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-xe

== Series Details ==

Series: drm/sched: Avoid double re-lock on the job free path (rev2)
URL   : https://patchwork.freedesktop.org/series/151331/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[10:50:51] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:50:55] 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
[10:51:22] Starting KUnit Kernel (1/1)...
[10:51:22] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:51:22] ================== guc_buf (11 subtests) ===================
[10:51:22] [PASSED] test_smallest
[10:51:22] [PASSED] test_largest
[10:51:22] [PASSED] test_granular
[10:51:22] [PASSED] test_unique
[10:51:22] [PASSED] test_overlap
[10:51:22] [PASSED] test_reusable
[10:51:22] [PASSED] test_too_big
[10:51:22] [PASSED] test_flush
[10:51:22] [PASSED] test_lookup
[10:51:22] [PASSED] test_data
[10:51:22] [PASSED] test_class
[10:51:22] ===================== [PASSED] guc_buf =====================
[10:51:22] =================== guc_dbm (7 subtests) ===================
[10:51:22] [PASSED] test_empty
[10:51:22] [PASSED] test_default
[10:51:22] ======================== test_size  ========================
[10:51:22] [PASSED] 4
[10:51:22] [PASSED] 8
[10:51:22] [PASSED] 32
[10:51:22] [PASSED] 256
[10:51:22] ==================== [PASSED] test_size ====================
[10:51:22] ======================= test_reuse  ========================
[10:51:22] [PASSED] 4
[10:51:22] [PASSED] 8
[10:51:22] [PASSED] 32
[10:51:22] [PASSED] 256
[10:51:22] =================== [PASSED] test_reuse ====================
[10:51:22] =================== test_range_overlap  ====================
[10:51:22] [PASSED] 4
[10:51:22] [PASSED] 8
[10:51:22] [PASSED] 32
[10:51:22] [PASSED] 256
[10:51:22] =============== [PASSED] test_range_overlap ================
[10:51:22] =================== test_range_compact  ====================
[10:51:22] [PASSED] 4
[10:51:22] [PASSED] 8
[10:51:22] [PASSED] 32
[10:51:22] [PASSED] 256
[10:51:22] =============== [PASSED] test_range_compact ================
[10:51:22] ==================== test_range_spare  =====================
[10:51:22] [PASSED] 4
[10:51:22] [PASSED] 8
[10:51:22] [PASSED] 32
[10:51:22] [PASSED] 256
[10:51:22] ================ [PASSED] test_range_spare =================
[10:51:22] ===================== [PASSED] guc_dbm =====================
[10:51:22] =================== guc_idm (6 subtests) ===================
[10:51:22] [PASSED] bad_init
[10:51:22] [PASSED] no_init
[10:51:22] [PASSED] init_fini
[10:51:22] [PASSED] check_used
[10:51:22] [PASSED] check_quota
[10:51:22] [PASSED] check_all
[10:51:22] ===================== [PASSED] guc_idm =====================
[10:51:22] ================== no_relay (3 subtests) ===================
[10:51:22] [PASSED] xe_drops_guc2pf_if_not_ready
[10:51:22] [PASSED] xe_drops_guc2vf_if_not_ready
[10:51:22] [PASSED] xe_rejects_send_if_not_ready
[10:51:22] ==================== [PASSED] no_relay =====================
[10:51:22] ================== pf_relay (14 subtests) ==================
[10:51:22] [PASSED] pf_rejects_guc2pf_too_short
[10:51:22] [PASSED] pf_rejects_guc2pf_too_long
[10:51:22] [PASSED] pf_rejects_guc2pf_no_payload
[10:51:22] [PASSED] pf_fails_no_payload
[10:51:22] [PASSED] pf_fails_bad_origin
[10:51:22] [PASSED] pf_fails_bad_type
[10:51:22] [PASSED] pf_txn_reports_error
[10:51:22] [PASSED] pf_txn_sends_pf2guc
[10:51:22] [PASSED] pf_sends_pf2guc
[10:51:22] [SKIPPED] pf_loopback_nop
[10:51:22] [SKIPPED] pf_loopback_echo
[10:51:22] [SKIPPED] pf_loopback_fail
[10:51:22] [SKIPPED] pf_loopback_busy
[10:51:22] [SKIPPED] pf_loopback_retry
[10:51:22] ==================== [PASSED] pf_relay =====================
[10:51:22] ================== vf_relay (3 subtests) ===================
[10:51:22] [PASSED] vf_rejects_guc2vf_too_short
[10:51:22] [PASSED] vf_rejects_guc2vf_too_long
[10:51:22] [PASSED] vf_rejects_guc2vf_no_payload
[10:51:22] ==================== [PASSED] vf_relay =====================
[10:51:22] ================= pf_service (11 subtests) =================
[10:51:22] [PASSED] pf_negotiate_any
[10:51:22] [PASSED] pf_negotiate_base_match
[10:51:22] [PASSED] pf_negotiate_base_newer
[10:51:22] [PASSED] pf_negotiate_base_next
[10:51:22] [SKIPPED] pf_negotiate_base_older
[10:51:22] [PASSED] pf_negotiate_base_prev
[10:51:22] [PASSED] pf_negotiate_latest_match
[10:51:22] [PASSED] pf_negotiate_latest_newer
[10:51:22] [PASSED] pf_negotiate_latest_next
[10:51:22] [SKIPPED] pf_negotiate_latest_older
[10:51:22] [SKIPPED] pf_negotiate_latest_prev
[10:51:22] =================== [PASSED] pf_service ====================
[10:51:22] ===================== lmtt (1 subtest) =====================
[10:51:22] ======================== test_ops  =========================
[10:51:22] [PASSED] 2-level
[10:51:22] [PASSED] multi-level
[10:51:22] ==================== [PASSED] test_ops =====================
[10:51:22] ====================== [PASSED] lmtt =======================
[10:51:22] =================== xe_mocs (2 subtests) ===================
[10:51:22] ================ xe_live_mocs_kernel_kunit  ================
[10:51:22] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[10:51:22] ================ xe_live_mocs_reset_kunit  =================
[10:51:22] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[10:51:22] ==================== [SKIPPED] xe_mocs =====================
[10:51:22] ================= xe_migrate (2 subtests) ==================
[10:51:22] ================= xe_migrate_sanity_kunit  =================
[10:51:22] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[10:51:22] ================== xe_validate_ccs_kunit  ==================
[10:51:22] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[10:51:22] =================== [SKIPPED] xe_migrate ===================
[10:51:22] ================== xe_dma_buf (1 subtest) ==================
[10:51:22] ==================== xe_dma_buf_kunit  =====================
[10:51:22] ================ [SKIPPED] xe_dma_buf_kunit ================
[10:51:22] =================== [SKIPPED] xe_dma_buf ===================
[10:51:22] ================= xe_bo_shrink (1 subtest) =================
[10:51:22] =================== xe_bo_shrink_kunit  ====================
[10:51:22] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[10:51:22] ================== [SKIPPED] xe_bo_shrink ==================
[10:51:22] ==================== xe_bo (2 subtests) ====================
[10:51:22] ================== xe_ccs_migrate_kunit  ===================
[10:51:22] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[10:51:22] ==================== xe_bo_evict_kunit  ====================
[10:51:22] =============== [SKIPPED] xe_bo_evict_kunit ================
[10:51:22] ===================== [SKIPPED] xe_bo ======================
[10:51:22] ==================== args (11 subtests) ====================
[10:51:22] [PASSED] count_args_test
[10:51:22] [PASSED] call_args_example
[10:51:22] [PASSED] call_args_test
[10:51:22] [PASSED] drop_first_arg_example
[10:51:22] [PASSED] drop_first_arg_test
[10:51:22] [PASSED] first_arg_example
[10:51:22] [PASSED] first_arg_test
[10:51:22] [PASSED] last_arg_example
[10:51:22] [PASSED] last_arg_test
[10:51:22] [PASSED] pick_arg_example
[10:51:22] [PASSED] sep_comma_example
[10:51:22] ====================== [PASSED] args =======================
[10:51:22] =================== xe_pci (3 subtests) ====================
[10:51:22] ==================== check_graphics_ip  ====================
[10:51:22] [PASSED] 12.70 Xe_LPG
[10:51:22] [PASSED] 12.71 Xe_LPG
[10:51:22] [PASSED] 12.74 Xe_LPG+
[10:51:22] [PASSED] 20.01 Xe2_HPG
[10:51:22] [PASSED] 20.02 Xe2_HPG
[10:51:22] [PASSED] 20.04 Xe2_LPG
[10:51:22] [PASSED] 30.00 Xe3_LPG
[10:51:22] [PASSED] 30.01 Xe3_LPG
[10:51:22] [PASSED] 30.03 Xe3_LPG
[10:51:22] ================ [PASSED] check_graphics_ip ================
[10:51:22] ===================== check_media_ip  ======================
[10:51:22] [PASSED] 13.00 Xe_LPM+
[10:51:22] [PASSED] 13.01 Xe2_HPM
[10:51:22] [PASSED] 20.00 Xe2_LPM
[10:51:22] [PASSED] 30.00 Xe3_LPM
[10:51:22] [PASSED] 30.02 Xe3_LPM
[10:51:22] ================= [PASSED] check_media_ip ==================
[10:51:22] ================= check_platform_gt_count  =================
[10:51:22] [PASSED] 0x9A60 (TIGERLAKE)
[10:51:22] [PASSED] 0x9A68 (TIGERLAKE)
[10:51:22] [PASSED] 0x9A70 (TIGERLAKE)
[10:51:22] [PASSED] 0x9A40 (TIGERLAKE)
[10:51:22] [PASSED] 0x9A49 (TIGERLAKE)
[10:51:22] [PASSED] 0x9A59 (TIGERLAKE)
[10:51:22] [PASSED] 0x9A78 (TIGERLAKE)
[10:51:22] [PASSED] 0x9AC0 (TIGERLAKE)
[10:51:22] [PASSED] 0x9AC9 (TIGERLAKE)
[10:51:22] [PASSED] 0x9AD9 (TIGERLAKE)
[10:51:22] [PASSED] 0x9AF8 (TIGERLAKE)
[10:51:22] [PASSED] 0x4C80 (ROCKETLAKE)
[10:51:22] [PASSED] 0x4C8A (ROCKETLAKE)
[10:51:22] [PASSED] 0x4C8B (ROCKETLAKE)
[10:51:22] [PASSED] 0x4C8C (ROCKETLAKE)
[10:51:22] [PASSED] 0x4C90 (ROCKETLAKE)
[10:51:22] [PASSED] 0x4C9A (ROCKETLAKE)
[10:51:22] [PASSED] 0x4680 (ALDERLAKE_S)
[10:51:22] [PASSED] 0x4682 (ALDERLAKE_S)
[10:51:22] [PASSED] 0x4688 (ALDERLAKE_S)
[10:51:22] [PASSED] 0x468A (ALDERLAKE_S)
[10:51:22] [PASSED] 0x468B (ALDERLAKE_S)
[10:51:22] [PASSED] 0x4690 (ALDERLAKE_S)
[10:51:22] [PASSED] 0x4692 (ALDERLAKE_S)
[10:51:22] [PASSED] 0x4693 (ALDERLAKE_S)
[10:51:22] [PASSED] 0x46A0 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46A1 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46A2 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46A3 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46A6 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46A8 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46AA (ALDERLAKE_P)
[10:51:22] [PASSED] 0x462A (ALDERLAKE_P)
[10:51:22] [PASSED] 0x4626 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x4628 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46B0 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46B1 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46B2 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46B3 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46C0 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46C1 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46C2 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46C3 (ALDERLAKE_P)
[10:51:22] [PASSED] 0x46D0 (ALDERLAKE_N)
[10:51:22] [PASSED] 0x46D1 (ALDERLAKE_N)
[10:51:22] [PASSED] 0x46D2 (ALDERLAKE_N)
[10:51:22] [PASSED] 0x46D3 (ALDERLAKE_N)
[10:51:22] [PASSED] 0x46D4 (ALDERLAKE_N)
[10:51:22] [PASSED] 0xA721 (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7A1 (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7A9 (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7AC (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7AD (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA720 (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7A0 (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7A8 (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7AA (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA7AB (ALDERLAKE_P)
[10:51:22] [PASSED] 0xA780 (ALDERLAKE_S)
[10:51:22] [PASSED] 0xA781 (ALDERLAKE_S)
[10:51:22] [PASSED] 0xA782 (ALDERLAKE_S)
[10:51:22] [PASSED] 0xA783 (ALDERLAKE_S)
[10:51:22] [PASSED] 0xA788 (ALDERLAKE_S)
[10:51:22] [PASSED] 0xA789 (ALDERLAKE_S)
[10:51:22] [PASSED] 0xA78A (ALDERLAKE_S)
[10:51:22] [PASSED] 0xA78B (ALDERLAKE_S)
[10:51:22] [PASSED] 0x4905 (DG1)
[10:51:22] [PASSED] 0x4906 (DG1)
[10:51:22] [PASSED] 0x4907 (DG1)
[10:51:22] [PASSED] 0x4908 (DG1)
[10:51:22] [PASSED] 0x4909 (DG1)
[10:51:22] [PASSED] 0x56C0 (DG2)
[10:51:22] [PASSED] 0x56C2 (DG2)
[10:51:22] [PASSED] 0x56C1 (DG2)
[10:51:22] [PASSED] 0x7D51 (METEORLAKE)
[10:51:22] [PASSED] 0x7DD1 (METEORLAKE)
[10:51:22] [PASSED] 0x7D41 (METEORLAKE)
[10:51:22] [PASSED] 0x7D67 (METEORLAKE)
[10:51:22] [PASSED] 0xB640 (METEORLAKE)
[10:51:22] [PASSED] 0x56A0 (DG2)
[10:51:22] [PASSED] 0x56A1 (DG2)
[10:51:22] [PASSED] 0x56A2 (DG2)
[10:51:22] [PASSED] 0x56BE (DG2)
[10:51:22] [PASSED] 0x56BF (DG2)
[10:51:22] [PASSED] 0x5690 (DG2)
[10:51:22] [PASSED] 0x5691 (DG2)
[10:51:22] [PASSED] 0x5692 (DG2)
[10:51:22] [PASSED] 0x56A5 (DG2)
[10:51:22] [PASSED] 0x56A6 (DG2)
[10:51:22] [PASSED] 0x56B0 (DG2)
[10:51:22] [PASSED] 0x56B1 (DG2)
[10:51:22] [PASSED] 0x56BA (DG2)
[10:51:22] [PASSED] 0x56BB (DG2)
[10:51:22] [PASSED] 0x56BC (DG2)
[10:51:22] [PASSED] 0x56BD (DG2)
[10:51:22] [PASSED] 0x5693 (DG2)
[10:51:22] [PASSED] 0x5694 (DG2)
[10:51:22] [PASSED] 0x5695 (DG2)
[10:51:22] [PASSED] 0x56A3 (DG2)
[10:51:22] [PASSED] 0x56A4 (DG2)
[10:51:22] [PASSED] 0x56B2 (DG2)
[10:51:22] [PASSED] 0x56B3 (DG2)
[10:51:22] [PASSED] 0x5696 (DG2)
[10:51:22] [PASSED] 0x5697 (DG2)
[10:51:22] [PASSED] 0xB69 (PVC)
[10:51:22] [PASSED] 0xB6E (PVC)
[10:51:22] [PASSED] 0xBD4 (PVC)
[10:51:22] [PASSED] 0xBD5 (PVC)
[10:51:22] [PASSED] 0xBD6 (PVC)
[10:51:22] [PASSED] 0xBD7 (PVC)
[10:51:22] [PASSED] 0xBD8 (PVC)
[10:51:22] [PASSED] 0xBD9 (PVC)
[10:51:22] [PASSED] 0xBDA (PVC)
[10:51:22] [PASSED] 0xBDB (PVC)
[10:51:22] [PASSED] 0xBE0 (PVC)
[10:51:22] [PASSED] 0xBE1 (PVC)
[10:51:22] [PASSED] 0xBE5 (PVC)
[10:51:22] [PASSED] 0x7D40 (METEORLAKE)
[10:51:22] [PASSED] 0x7D45 (METEORLAKE)
[10:51:22] [PASSED] 0x7D55 (METEORLAKE)
[10:51:22] [PASSED] 0x7D60 (METEORLAKE)
[10:51:22] [PASSED] 0x7DD5 (METEORLAKE)
[10:51:22] [PASSED] 0x6420 (LUNARLAKE)
[10:51:22] [PASSED] 0x64A0 (LUNARLAKE)
[10:51:22] [PASSED] 0x64B0 (LUNARLAKE)
[10:51:22] [PASSED] 0xE202 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE209 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE20B (BATTLEMAGE)
[10:51:22] [PASSED] 0xE20C (BATTLEMAGE)
[10:51:22] [PASSED] 0xE20D (BATTLEMAGE)
[10:51:22] [PASSED] 0xE210 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE211 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE212 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE216 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE220 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE221 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE222 (BATTLEMAGE)
[10:51:22] [PASSED] 0xE223 (BATTLEMAGE)
[10:51:22] [PASSED] 0xB080 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB081 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB082 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB083 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB084 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB085 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB086 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB087 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB08F (PANTHERLAKE)
[10:51:22] [PASSED] 0xB090 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB0A0 (PANTHERLAKE)
[10:51:22] [PASSED] 0xB0B0 (PANTHERLAKE)
[10:51:22] [PASSED] 0xFD80 (PANTHERLAKE)
[10:51:22] [PASSED] 0xFD81 (PANTHERLAKE)
[10:51:22] ============= [PASSED] check_platform_gt_count =============
[10:51:22] ===================== [PASSED] xe_pci ======================
[10:51:22] =================== xe_rtp (2 subtests) ====================
[10:51:22] =============== xe_rtp_process_to_sr_tests  ================
[10:51:22] [PASSED] coalesce-same-reg
[10:51:22] [PASSED] no-match-no-add
[10:51:22] [PASSED] match-or
[10:51:22] [PASSED] match-or-xfail
[10:51:22] [PASSED] no-match-no-add-multiple-rules
[10:51:22] [PASSED] two-regs-two-entries
[10:51:22] [PASSED] clr-one-set-other
[10:51:22] [PASSED] set-field
[10:51:22] [PASSED] conflict-duplicate
[10:51:22] [PASSED] conflict-not-disjoint
[10:51:22] [PASSED] conflict-reg-type
[10:51:22] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[10:51:22] ================== xe_rtp_process_tests  ===================
[10:51:22] [PASSED] active1
[10:51:22] [PASSED] active2
[10:51:22] [PASSED] active-inactive
[10:51:22] [PASSED] inactive-active
[10:51:22] [PASSED] inactive-1st_or_active-inactive
[10:51:22] [PASSED] inactive-2nd_or_active-inactive
[10:51:22] [PASSED] inactive-last_or_active-inactive
[10:51:22] [PASSED] inactive-no_or_active-inactive
[10:51:22] ============== [PASSED] xe_rtp_process_tests ===============
[10:51:22] ===================== [PASSED] xe_rtp ======================
[10:51:22] ==================== xe_wa (1 subtest) =====================
[10:51:22] ======================== xe_wa_gt  =========================
[10:51:22] [PASSED] TIGERLAKE (B0)
[10:51:22] [PASSED] DG1 (A0)
[10:51:22] [PASSED] DG1 (B0)
[10:51:22] [PASSED] ALDERLAKE_S (A0)
[10:51:22] [PASSED] ALDERLAKE_S (B0)
[10:51:22] [PASSED] ALDERLAKE_S (C0)
[10:51:22] [PASSED] ALDERLAKE_S (D0)
[10:51:22] [PASSED] ALDERLAKE_P (A0)
[10:51:22] [PASSED] ALDERLAKE_P (B0)
[10:51:22] [PASSED] ALDERLAKE_P (C0)
[10:51:22] [PASSED] ALDERLAKE_S_RPLS (D0)
[10:51:22] [PASSED] ALDERLAKE_P_RPLU (E0)
[10:51:22] [PASSED] DG2_G10 (C0)
[10:51:22] [PASSED] DG2_G11 (B1)
[10:51:22] [PASSED] DG2_G12 (A1)
[10:51:22] [PASSED] METEORLAKE (g:A0, m:A0)
[10:51:22] [PASSED] METEORLAKE (g:A0, m:A0)
[10:51:22] [PASSED] METEORLAKE (g:A0, m:A0)
[10:51:22] [PASSED] LUNARLAKE (g:A0, m:A0)
[10:51:22] [PASSED] LUNARLAKE (g:B0, m:A0)
stty: 'standard input': Inappropriate ioctl for device
[10:51:22] [PASSED] BATTLEMAGE (g:A0, m:A1)
[10:51:22] ==================== [PASSED] xe_wa_gt =====================
[10:51:22] ====================== [PASSED] xe_wa ======================
[10:51:22] ============================================================
[10:51:22] Testing complete. Ran 297 tests: passed: 281, skipped: 16
[10:51:22] Elapsed time: 31.149s total, 4.185s configuring, 26.643s building, 0.305s running

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

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

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



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

* ✓ Xe.CI.BAT: success for drm/sched: Avoid double re-lock on the job free path (rev2)
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
                   ` (4 preceding siblings ...)
  2025-07-09 10:51 ` ✓ CI.KUnit: success for drm/sched: Avoid double re-lock on the job free path (rev2) Patchwork
@ 2025-07-09 11:29 ` Patchwork
  2025-07-09 12:54 ` ✓ Xe.CI.Full: " Patchwork
  2025-07-11 13:04 ` [PATCH] drm/sched: Avoid double re-lock on the job free path Philipp Stanner
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-07-09 11:29 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-xe

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

== Series Details ==

Series: drm/sched: Avoid double re-lock on the job free path (rev2)
URL   : https://patchwork.freedesktop.org/series/151331/
State : success

== Summary ==

CI Bug Log - changes from xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a_BAT -> xe-pw-151331v2_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (9 -> 8)
------------------------------

  Missing    (1): bat-adlp-vm 


Changes
-------

  No changes found


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

  * Linux: xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a -> xe-pw-151331v2

  IGT_8447: 8447
  xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a: f6312e25e45f78ed5b38856ec5966e426e4c066a
  xe-pw-151331v2: 151331v2

== Logs ==

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

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

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

* ✓ Xe.CI.Full: success for drm/sched: Avoid double re-lock on the job free path (rev2)
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
                   ` (5 preceding siblings ...)
  2025-07-09 11:29 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-07-09 12:54 ` Patchwork
  2025-07-11 13:04 ` [PATCH] drm/sched: Avoid double re-lock on the job free path Philipp Stanner
  7 siblings, 0 replies; 25+ messages in thread
From: Patchwork @ 2025-07-09 12:54 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: intel-xe

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

== Series Details ==

Series: drm/sched: Avoid double re-lock on the job free path (rev2)
URL   : https://patchwork.freedesktop.org/series/151331/
State : success

== Summary ==

CI Bug Log - changes from xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a_FULL -> xe-pw-151331v2_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (4 -> 4)
------------------------------

  No changes in participating hosts

New tests
---------

  New tests have been introduced between xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a_FULL and xe-pw-151331v2_FULL:

### New IGT tests (1) ###

  * igt@kms_flip@modeset-vs-vblank-race-interruptible@d-hdmi-a2:
    - Statuses : 1 pass(s)
    - Exec time: [1.75] s

  

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

  Here are the changes found in xe-pw-151331v2_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_setmaster@master-drop-set-user:
    - shard-dg2-set2:     [PASS][1] -> [FAIL][2] ([Intel XE#4208])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@core_setmaster@master-drop-set-user.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@core_setmaster@master-drop-set-user.html

  * igt@fbdev@write:
    - shard-dg2-set2:     [PASS][3] -> [SKIP][4] ([Intel XE#2134]) +1 other test skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@fbdev@write.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@fbdev@write.html

  * igt@intel_sysfs_debugfs@xe-base:
    - shard-dg2-set2:     [PASS][5] -> [SKIP][6] ([Intel XE#4208] / [Intel XE#4618]) +1 other test skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@intel_sysfs_debugfs@xe-base.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@intel_sysfs_debugfs@xe-base.html

  * igt@kms_async_flips@test-time-stamp@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][7] ([Intel XE#5445])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_async_flips@test-time-stamp@pipe-a-dp-4.html

  * igt@kms_big_fb@4-tiled-addfb-size-overflow:
    - shard-dg2-set2:     [PASS][8] -> [SKIP][9] ([Intel XE#4208]) +167 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_big_fb@4-tiled-addfb-size-overflow.html
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_big_fb@4-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@y-tiled-16bpp-rotate-0:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#1124]) +1 other test skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-adlp:         [PASS][11] -> [DMESG-FAIL][12] ([Intel XE#4543])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
    - shard-bmg:          [PASS][13] -> [SKIP][14] ([Intel XE#2314] / [Intel XE#2894]) +1 other test skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-1/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-2-displays-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#367])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_bw@linear-tiling-2-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-2-displays-2160x1440p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][16] ([Intel XE#367])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs:
    - shard-dg2-set2:     [PASS][17] -> [SKIP][18] ([Intel XE#2351] / [Intel XE#4208]) +12 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][19] ([Intel XE#787]) +167 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@crc-primary-basic-yf-tiled-ccs@pipe-d-dp-2:
    - shard-dg2-set2:     NOTRUN -> [SKIP][20] ([Intel XE#455] / [Intel XE#787]) +24 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_ccs@crc-primary-basic-yf-tiled-ccs@pipe-d-dp-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2652] / [Intel XE#787]) +4 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#2887]) +1 other test skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][23] ([Intel XE#3124])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [DMESG-WARN][24] ([Intel XE#1727] / [Intel XE#3113])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][25] ([Intel XE#4416]) +3 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html

  * igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#2252])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode.html

  * igt@kms_chamelium_hpd@vga-hpd-after-hibernate:
    - shard-dg2-set2:     NOTRUN -> [SKIP][27] ([Intel XE#373])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_chamelium_hpd@vga-hpd-after-hibernate.html

  * igt@kms_content_protection@atomic@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][28] ([Intel XE#1178])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_content_protection@atomic@pipe-a-dp-4.html

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

  * igt@kms_cursor_crc@cursor-sliding-128x42:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2320])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_cursor_crc@cursor-sliding-128x42.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-bmg:          [PASS][31] -> [SKIP][32] ([Intel XE#2291]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-7/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_dp_link_training@non-uhbr-sst:
    - shard-bmg:          [PASS][33] -> [SKIP][34] ([Intel XE#4354])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-1/igt@kms_dp_link_training@non-uhbr-sst.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_dp_link_training@non-uhbr-sst.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-bmg:          [PASS][35] -> [SKIP][36] ([Intel XE#4294])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-7/igt@kms_dp_linktrain_fallback@dp-fallback.html
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#2316])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop:
    - shard-bmg:          [PASS][38] -> [SKIP][39] ([Intel XE#2316]) +13 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-7/igt@kms_flip@2x-flip-vs-dpms-on-nop.html
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_flip@2x-flip-vs-dpms-on-nop.html

  * igt@kms_flip@busy-flip:
    - shard-dg2-set2:     [PASS][40] -> [SKIP][41] ([Intel XE#4208] / [i915#2575]) +77 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_flip@busy-flip.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_flip@busy-flip.html

  * igt@kms_flip@flip-vs-rmfb-interruptible:
    - shard-adlp:         [PASS][42] -> [DMESG-WARN][43] ([Intel XE#5208])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-adlp-6/igt@kms_flip@flip-vs-rmfb-interruptible.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-adlp-8/igt@kms_flip@flip-vs-rmfb-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-bmg:          [PASS][44] -> [INCOMPLETE][45] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-2/igt@kms_flip@flip-vs-suspend.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-2/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend@c-dp4:
    - shard-dg2-set2:     [PASS][46] -> [INCOMPLETE][47] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-466/igt@kms_flip@flip-vs-suspend@c-dp4.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_flip@flip-vs-suspend@c-dp4.html

  * igt@kms_flip@flip-vs-suspend@d-hdmi-a1:
    - shard-adlp:         [PASS][48] -> [DMESG-WARN][49] ([Intel XE#4543]) +4 other tests dmesg-warn
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-adlp-3/igt@kms_flip@flip-vs-suspend@d-hdmi-a1.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-adlp-9/igt@kms_flip@flip-vs-suspend@d-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#2380]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-valid-mode:
    - shard-dg2-set2:     NOTRUN -> [SKIP][51] ([Intel XE#455]) +6 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][52] ([Intel XE#2351] / [Intel XE#4208]) +12 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#2312]) +3 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-move:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#2311])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][55] ([Intel XE#2313]) +1 other test skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-bmg:          [PASS][56] -> [SKIP][57] ([Intel XE#3012])
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-7/igt@kms_joiner@basic-force-big-joiner.html
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_plane@plane-panning-bottom-right-suspend:
    - shard-bmg:          [PASS][58] -> [INCOMPLETE][59] ([Intel XE#1035]) +1 other test incomplete
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-5/igt@kms_plane@plane-panning-bottom-right-suspend.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_plane@plane-panning-bottom-right-suspend.html

  * igt@kms_plane_cursor@primary@pipe-a-hdmi-a-6-size-256:
    - shard-dg2-set2:     NOTRUN -> [FAIL][60] ([Intel XE#616]) +2 other tests fail
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_plane_cursor@primary@pipe-a-hdmi-a-6-size-256.html

  * igt@kms_plane_cursor@viewport:
    - shard-dg2-set2:     [PASS][61] -> [FAIL][62] ([Intel XE#616]) +1 other test fail
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-463/igt@kms_plane_cursor@viewport.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-436/igt@kms_plane_cursor@viewport.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-bmg:          [PASS][63] -> [SKIP][64] ([Intel XE#4596])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-1/igt@kms_plane_multiple@2x-tiling-x.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats:
    - shard-dg2-set2:     NOTRUN -> [SKIP][65] ([Intel XE#4208] / [i915#2575]) +37 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#1489])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr@fbc-pr-cursor-render:
    - shard-bmg:          NOTRUN -> [SKIP][67] ([Intel XE#2234] / [Intel XE#2850])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_psr@fbc-pr-cursor-render.html

  * igt@kms_vrr@flip-basic:
    - shard-bmg:          NOTRUN -> [SKIP][68] ([Intel XE#1499])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_vrr@flip-basic.html

  * igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
    - shard-lnl:          [PASS][69] -> [FAIL][70] ([Intel XE#2142]) +1 other test fail
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-lnl-1/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-lnl-3/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html

  * igt@xe_compute_preempt@compute-threadgroup-preempt@engine-drm_xe_engine_class_compute:
    - shard-dg2-set2:     NOTRUN -> [SKIP][71] ([Intel XE#1280] / [Intel XE#455])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_compute_preempt@compute-threadgroup-preempt@engine-drm_xe_engine_class_compute.html

  * igt@xe_eudebug@multigpu-basic-client-many:
    - shard-bmg:          NOTRUN -> [SKIP][72] ([Intel XE#4837])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@xe_eudebug@multigpu-basic-client-many.html

  * igt@xe_eudebug_online@single-step:
    - shard-dg2-set2:     NOTRUN -> [SKIP][73] ([Intel XE#4837])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_eudebug_online@single-step.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap:
    - shard-bmg:          NOTRUN -> [SKIP][74] ([Intel XE#2322])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-mmap.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind:
    - shard-dg2-set2:     [PASS][75] -> [SKIP][76] ([Intel XE#1392]) +3 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_fault_mode@many-execqueues-invalid-fault:
    - shard-dg2-set2:     NOTRUN -> [SKIP][77] ([Intel XE#288])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_exec_fault_mode@many-execqueues-invalid-fault.html

  * igt@xe_exec_system_allocator@process-many-large-execqueues-mmap-nomemset:
    - shard-dg2-set2:     NOTRUN -> [SKIP][78] ([Intel XE#4208]) +201 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_exec_system_allocator@process-many-large-execqueues-mmap-nomemset.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-mmap-race:
    - shard-dg2-set2:     NOTRUN -> [SKIP][79] ([Intel XE#4915]) +9 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-mmap-race.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset:
    - shard-lnl:          [PASS][80] -> [FAIL][81] ([Intel XE#5018])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-lnl-5/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-lnl-1/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html

  * igt@xe_exec_system_allocator@twice-mmap-free-huge-nomemset:
    - shard-bmg:          NOTRUN -> [SKIP][82] ([Intel XE#4943])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@xe_exec_system_allocator@twice-mmap-free-huge-nomemset.html

  * igt@xe_exec_threads@threads-hang-userptr-rebind-err:
    - shard-adlp:         [PASS][83] -> [DMESG-WARN][84] ([Intel XE#3868])
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-adlp-1/igt@xe_exec_threads@threads-hang-userptr-rebind-err.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-adlp-3/igt@xe_exec_threads@threads-hang-userptr-rebind-err.html

  * igt@xe_pmu@gt-frequency:
    - shard-dg2-set2:     [PASS][85] -> [FAIL][86] ([Intel XE#5166]) +1 other test fail
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@xe_pmu@gt-frequency.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_pmu@gt-frequency.html

  
#### Possible fixes ####

  * igt@fbdev@info:
    - shard-dg2-set2:     [SKIP][87] ([Intel XE#2134]) -> [PASS][88] +2 other tests pass
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@fbdev@info.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@fbdev@info.html

  * igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-on:
    - shard-dg2-set2:     [SKIP][89] ([Intel XE#4208] / [Intel XE#4618]) -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-on.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@intel_sysfs_debugfs@xe-debugfs-read-all-entries-display-on.html

  * igt@kms_atomic@plane-invalid-params-fence:
    - shard-dg2-set2:     [SKIP][91] ([Intel XE#4208] / [i915#2575]) -> [PASS][92] +111 other tests pass
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_atomic@plane-invalid-params-fence.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_atomic@plane-invalid-params-fence.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-adlp:         [DMESG-FAIL][93] ([Intel XE#4543]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-adlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-adlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
    - shard-bmg:          [SKIP][95] ([Intel XE#2291]) -> [PASS][96] +3 other tests pass
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-8/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html

  * igt@kms_dp_aux_dev:
    - shard-bmg:          [SKIP][97] ([Intel XE#3009]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-5/igt@kms_dp_aux_dev.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-1/igt@kms_dp_aux_dev.html

  * igt@kms_flip@2x-plain-flip-fb-recreate:
    - shard-bmg:          [SKIP][99] ([Intel XE#2316]) -> [PASS][100] +4 other tests pass
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-5/igt@kms_flip@2x-plain-flip-fb-recreate.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-1/igt@kms_flip@2x-plain-flip-fb-recreate.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-lnl:          [FAIL][101] ([Intel XE#301]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@kms_flip@flip-vs-suspend@b-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][103] ([Intel XE#4543]) -> [PASS][104] +5 other tests pass
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-adlp-3/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-adlp-9/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling:
    - shard-dg2-set2:     [SKIP][105] ([Intel XE#2351] / [Intel XE#4208]) -> [PASS][106] +7 other tests pass
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-blt:
    - shard-dg2-set2:     [INCOMPLETE][107] -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-435/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-blt.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-466/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-blt.html

  * igt@kms_setmode@basic@pipe-a-dp-4:
    - shard-dg2-set2:     [FAIL][109] ([Intel XE#2883]) -> [PASS][110] +1 other test pass
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-466/igt@kms_setmode@basic@pipe-a-dp-4.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-466/igt@kms_setmode@basic@pipe-a-dp-4.html

  * igt@kms_setmode@invalid-clone-single-crtc-stealing:
    - shard-bmg:          [SKIP][111] ([Intel XE#1435]) -> [PASS][112] +1 other test pass
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-8/igt@kms_setmode@invalid-clone-single-crtc-stealing.html

  * igt@xe_exec_basic@multigpu-once-basic-defer-mmap:
    - shard-dg2-set2:     [SKIP][113] ([Intel XE#1392]) -> [PASS][114] +1 other test pass
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html

  * igt@xe_module_load@many-reload:
    - shard-dg2-set2:     [FAIL][115] ([Intel XE#4208]) -> [PASS][116]
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_module_load@many-reload.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_module_load@many-reload.html

  * igt@xe_module_load@unload:
    - shard-dg2-set2:     [INCOMPLETE][117] ([Intel XE#4842]) -> [PASS][118]
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-463/igt@xe_module_load@unload.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_module_load@unload.html

  * igt@xe_pm@s2idle-basic-exec:
    - shard-adlp:         [DMESG-WARN][119] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][120] +10 other tests pass
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-adlp-1/igt@xe_pm@s2idle-basic-exec.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-adlp-1/igt@xe_pm@s2idle-basic-exec.html

  * igt@xe_vm@large-split-binds-536870912:
    - shard-dg2-set2:     [SKIP][121] ([Intel XE#4208]) -> [PASS][122] +238 other tests pass
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_vm@large-split-binds-536870912.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_vm@large-split-binds-536870912.html

  
#### Warnings ####

  * igt@kms_async_flips@test-time-stamp:
    - shard-dg2-set2:     [SKIP][123] ([Intel XE#4208] / [i915#2575]) -> [FAIL][124] ([Intel XE#5445])
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_async_flips@test-time-stamp.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_async_flips@test-time-stamp.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-270:
    - shard-dg2-set2:     [SKIP][125] ([Intel XE#316]) -> [SKIP][126] ([Intel XE#4208])
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@linear-64bpp-rotate-270:
    - shard-dg2-set2:     [SKIP][127] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][128] ([Intel XE#316])
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_big_fb@linear-64bpp-rotate-270.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_big_fb@linear-64bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
    - shard-dg2-set2:     [SKIP][129] ([Intel XE#4208]) -> [SKIP][130] ([Intel XE#316]) +5 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb:
    - shard-dg2-set2:     [SKIP][131] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][132] ([Intel XE#619])
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_big_fb@y-tiled-addfb.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_big_fb@y-tiled-addfb.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-dg2-set2:     [SKIP][133] ([Intel XE#607]) -> [SKIP][134] ([Intel XE#2351] / [Intel XE#4208])
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-dg2-set2:     [SKIP][135] ([Intel XE#1124]) -> [SKIP][136] ([Intel XE#4208])
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
    - shard-dg2-set2:     [SKIP][137] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][138] ([Intel XE#1124]) +3 other tests skip
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-dg2-set2:     [SKIP][139] ([Intel XE#607]) -> [SKIP][140] ([Intel XE#4208])
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-addfb-size-overflow:
    - shard-dg2-set2:     [SKIP][141] ([Intel XE#610]) -> [SKIP][142] ([Intel XE#4208])
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-dg2-set2:     [SKIP][143] ([Intel XE#4208]) -> [SKIP][144] ([Intel XE#1124]) +9 other tests skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-dg2-set2:     [SKIP][145] ([Intel XE#1124]) -> [SKIP][146] ([Intel XE#2351] / [Intel XE#4208]) +2 other tests skip
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p:
    - shard-dg2-set2:     [SKIP][147] ([Intel XE#2191]) -> [SKIP][148] ([Intel XE#4208] / [i915#2575])
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p:
    - shard-dg2-set2:     [SKIP][149] ([Intel XE#4208] / [i915#2575]) -> [SKIP][150] ([Intel XE#2191]) +1 other test skip
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-1-displays-1920x1080p:
    - shard-dg2-set2:     [SKIP][151] ([Intel XE#4208] / [i915#2575]) -> [SKIP][152] ([Intel XE#367]) +2 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-1-displays-2160x1440p:
    - shard-dg2-set2:     [SKIP][153] ([Intel XE#367]) -> [SKIP][154] ([Intel XE#4208] / [i915#2575]) +1 other test skip
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_bw@linear-tiling-1-displays-2160x1440p.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_bw@linear-tiling-1-displays-2160x1440p.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs:
    - shard-dg2-set2:     [SKIP][155] ([Intel XE#4208]) -> [SKIP][156] ([Intel XE#455] / [Intel XE#787]) +10 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc:
    - shard-dg2-set2:     [SKIP][157] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][158] ([Intel XE#455] / [Intel XE#787]) +2 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
    - shard-dg2-set2:     [SKIP][159] ([Intel XE#2907]) -> [SKIP][160] ([Intel XE#4208]) +2 other tests skip
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs:
    - shard-dg2-set2:     [SKIP][161] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][162] ([Intel XE#2351] / [Intel XE#4208]) +3 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-ccs:
    - shard-dg2-set2:     [SKIP][163] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][164] ([Intel XE#4208]) +4 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_ccs@crc-primary-basic-y-tiled-ccs.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_ccs@crc-primary-basic-y-tiled-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-dg2-set2:     [SKIP][165] ([Intel XE#4208]) -> [SKIP][166] ([Intel XE#3442])
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
    - shard-dg2-set2:     [SKIP][167] ([Intel XE#4208]) -> [INCOMPLETE][168] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345])
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
    - shard-dg2-set2:     [SKIP][169] ([Intel XE#4208]) -> [SKIP][170] ([Intel XE#2907]) +1 other test skip
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-dg2-set2:     [SKIP][171] ([Intel XE#4418]) -> [SKIP][172] ([Intel XE#2351] / [Intel XE#4208])
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_cdclk@mode-transition-all-outputs.html
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_chamelium_color@ctm-limited-range:
    - shard-dg2-set2:     [SKIP][173] ([Intel XE#4208] / [i915#2575]) -> [SKIP][174] ([Intel XE#306]) +3 other tests skip
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_chamelium_color@ctm-limited-range.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_chamelium_color@ctm-limited-range.html

  * igt@kms_chamelium_color@gamma:
    - shard-dg2-set2:     [SKIP][175] ([Intel XE#306]) -> [SKIP][176] ([Intel XE#4208] / [i915#2575]) +2 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_chamelium_color@gamma.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_chamelium_color@gamma.html

  * igt@kms_chamelium_hpd@hdmi-hpd:
    - shard-dg2-set2:     [SKIP][177] ([Intel XE#373]) -> [SKIP][178] ([Intel XE#4208] / [i915#2575]) +7 other tests skip
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_chamelium_hpd@hdmi-hpd.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_chamelium_hpd@hdmi-hpd.html

  * igt@kms_chamelium_hpd@vga-hpd:
    - shard-dg2-set2:     [SKIP][179] ([Intel XE#4208] / [i915#2575]) -> [SKIP][180] ([Intel XE#373]) +12 other tests skip
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_chamelium_hpd@vga-hpd.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_chamelium_hpd@vga-hpd.html

  * igt@kms_content_protection@atomic:
    - shard-bmg:          [FAIL][181] ([Intel XE#1178]) -> [SKIP][182] ([Intel XE#2341]) +2 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-1/igt@kms_content_protection@atomic.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_content_protection@atomic.html
    - shard-dg2-set2:     [SKIP][183] ([Intel XE#4208] / [i915#2575]) -> [FAIL][184] ([Intel XE#1178])
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_content_protection@atomic.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-dg2-set2:     [SKIP][185] ([Intel XE#307]) -> [SKIP][186] ([Intel XE#4208] / [i915#2575])
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_content_protection@dp-mst-lic-type-0.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@legacy:
    - shard-bmg:          [SKIP][187] ([Intel XE#2341]) -> [FAIL][188] ([Intel XE#1178])
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-5/igt@kms_content_protection@legacy.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-1/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@srm:
    - shard-dg2-set2:     [FAIL][189] ([Intel XE#1178]) -> [SKIP][190] ([Intel XE#4208] / [i915#2575])
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_content_protection@srm.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-dg2-set2:     [SKIP][191] ([Intel XE#308]) -> [SKIP][192] ([Intel XE#4208] / [i915#2575])
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_cursor_crc@cursor-onscreen-512x170.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-dg2-set2:     [SKIP][193] ([Intel XE#4208] / [i915#2575]) -> [SKIP][194] ([Intel XE#308]) +4 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_cursor_crc@cursor-onscreen-512x512.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-dg2-set2:     [SKIP][195] ([Intel XE#4208] / [i915#2575]) -> [SKIP][196] ([Intel XE#323])
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_dp_linktrain_fallback@dsc-fallback:
    - shard-dg2-set2:     [SKIP][197] ([Intel XE#4331]) -> [SKIP][198] ([Intel XE#4208])
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_dp_linktrain_fallback@dsc-fallback.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_dp_linktrain_fallback@dsc-fallback.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-dg2-set2:     [SKIP][199] ([Intel XE#4208]) -> [SKIP][200] ([Intel XE#455]) +2 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_dsc@dsc-with-bpc.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats:
    - shard-dg2-set2:     [SKIP][201] ([Intel XE#4208]) -> [SKIP][202] ([Intel XE#4422])
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html

  * igt@kms_fbcon_fbt@psr:
    - shard-dg2-set2:     [SKIP][203] ([Intel XE#776]) -> [SKIP][204] ([Intel XE#4208])
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@kms_fbcon_fbt@psr.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg2-set2:     [SKIP][205] ([Intel XE#4208] / [i915#2575]) -> [SKIP][206] ([Intel XE#701])
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_feature_discovery@chamelium.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@psr1:
    - shard-dg2-set2:     [SKIP][207] ([Intel XE#4208] / [i915#2575]) -> [SKIP][208] ([Intel XE#1135])
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_feature_discovery@psr1.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-dg2-set2:     [SKIP][209] ([Intel XE#455]) -> [SKIP][210] ([Intel XE#2351] / [Intel XE#4208]) +2 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling:
    - shard-dg2-set2:     [SKIP][211] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][212] ([Intel XE#455]) +4 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling:
    - shard-dg2-set2:     [SKIP][213] ([Intel XE#455]) -> [SKIP][214] ([Intel XE#4208]) +3 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff:
    - shard-dg2-set2:     [SKIP][215] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][216] ([Intel XE#651]) +9 other tests skip
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render:
    - shard-bmg:          [SKIP][217] ([Intel XE#2312]) -> [SKIP][218] ([Intel XE#2311]) +14 other tests skip
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][219] ([Intel XE#2311]) -> [SKIP][220] ([Intel XE#2312]) +21 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
    - shard-dg2-set2:     [SKIP][221] ([Intel XE#651]) -> [SKIP][222] ([Intel XE#2351] / [Intel XE#4208]) +7 other tests skip
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary:
    - shard-dg2-set2:     [SKIP][223] ([Intel XE#651]) -> [SKIP][224] ([Intel XE#4208]) +19 other tests skip
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-pgflip-blt:
    - shard-bmg:          [SKIP][225] ([Intel XE#2312]) -> [SKIP][226] ([Intel XE#5390]) +9 other tests skip
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-pgflip-blt.html
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt:
    - shard-bmg:          [SKIP][227] ([Intel XE#5390]) -> [SKIP][228] ([Intel XE#2312]) +7 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-dg2-set2:     [SKIP][229] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][230] ([Intel XE#658]) +1 other test skip
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-indfb-scaledprimary:
    - shard-dg2-set2:     [SKIP][231] ([Intel XE#4208]) -> [SKIP][232] ([Intel XE#651]) +24 other tests skip
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-indfb-scaledprimary.html
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
    - shard-dg2-set2:     [SKIP][233] ([Intel XE#653]) -> [SKIP][234] ([Intel XE#4208]) +18 other tests skip
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff:
    - shard-bmg:          [SKIP][235] ([Intel XE#2313]) -> [SKIP][236] ([Intel XE#2312]) +22 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt:
    - shard-bmg:          [SKIP][237] ([Intel XE#2312]) -> [SKIP][238] ([Intel XE#2313]) +14 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt.html
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-dg2-set2:     [SKIP][239] ([Intel XE#4208]) -> [SKIP][240] ([Intel XE#1158])
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render:
    - shard-dg2-set2:     [SKIP][241] ([Intel XE#653]) -> [SKIP][242] ([Intel XE#2351] / [Intel XE#4208]) +5 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render.html
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-dg2-set2:     [SKIP][243] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][244] ([Intel XE#653]) +9 other tests skip
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-dg2-set2:     [SKIP][245] ([Intel XE#4208]) -> [SKIP][246] ([Intel XE#653]) +26 other tests skip
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg2-set2:     [SKIP][247] ([Intel XE#4208] / [i915#2575]) -> [SKIP][248] ([Intel XE#455]) +7 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_hdr@brightness-with-hdr.html
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@invalid-hdr:
    - shard-dg2-set2:     [SKIP][249] ([Intel XE#455]) -> [SKIP][250] ([Intel XE#4208] / [i915#2575]) +7 other tests skip
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_hdr@invalid-hdr.html
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_hdr@invalid-hdr.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-dg2-set2:     [SKIP][251] ([Intel XE#4208]) -> [SKIP][252] ([Intel XE#346])
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_joiner@basic-big-joiner.html
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-dg2-set2:     [SKIP][253] ([Intel XE#4208]) -> [SKIP][254] ([Intel XE#2927])
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_joiner@basic-ultra-joiner.html
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-dg2-set2:     [SKIP][255] ([Intel XE#2925]) -> [SKIP][256] ([Intel XE#4208]) +1 other test skip
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_plane_cursor@primary:
    - shard-dg2-set2:     [SKIP][257] ([Intel XE#4208] / [i915#2575]) -> [FAIL][258] ([Intel XE#616])
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_plane_cursor@primary.html
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_plane_cursor@primary.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-bmg:          [SKIP][259] ([Intel XE#4596]) -> [SKIP][260] ([Intel XE#5021])
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-y.html
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-8/igt@kms_plane_multiple@2x-tiling-y.html
    - shard-dg2-set2:     [SKIP][261] ([Intel XE#4208] / [i915#2575]) -> [SKIP][262] ([Intel XE#5021])
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_plane_multiple@2x-tiling-y.html
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-dg2-set2:     [SKIP][263] ([Intel XE#870]) -> [SKIP][264] ([Intel XE#4208])
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_pm_backlight@fade-with-suspend.html
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-dg2-set2:     [SKIP][265] ([Intel XE#4208]) -> [SKIP][266] ([Intel XE#1129])
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_pm_dc@dc5-psr.html
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-dg2-set2:     [SKIP][267] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][268] ([Intel XE#908])
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_pm_dc@dc6-dpms.html
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-dg2-set2:     [SKIP][269] ([Intel XE#1129]) -> [SKIP][270] ([Intel XE#2351] / [Intel XE#4208])
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_pm_dc@dc6-psr.html
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-dg2-set2:     [SKIP][271] ([Intel XE#4208]) -> [SKIP][272] ([Intel XE#1489]) +9 other tests skip
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
    - shard-dg2-set2:     [SKIP][273] ([Intel XE#1489]) -> [SKIP][274] ([Intel XE#4208]) +8 other tests skip
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr@fbc-psr-sprite-plane-onoff:
    - shard-dg2-set2:     [SKIP][275] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][276] ([Intel XE#2850] / [Intel XE#929]) +6 other tests skip
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_psr@fbc-psr-sprite-plane-onoff.html
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@kms_psr@fbc-psr-sprite-plane-onoff.html

  * igt@kms_psr@fbc-psr2-primary-render:
    - shard-dg2-set2:     [SKIP][277] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][278] ([Intel XE#4208]) +9 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_psr@fbc-psr2-primary-render.html
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_psr@fbc-psr2-primary-render.html

  * igt@kms_psr@fbc-psr2-sprite-plane-move:
    - shard-dg2-set2:     [SKIP][279] ([Intel XE#4208]) -> [SKIP][280] ([Intel XE#2850] / [Intel XE#929]) +9 other tests skip
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_psr@fbc-psr2-sprite-plane-move.html
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_psr@fbc-psr2-sprite-plane-move.html

  * igt@kms_psr@pr-dpms:
    - shard-dg2-set2:     [SKIP][281] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][282] ([Intel XE#2351] / [Intel XE#4208]) +3 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_psr@pr-dpms.html
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_psr@pr-dpms.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-dg2-set2:     [SKIP][283] ([Intel XE#2351] / [Intel XE#4208]) -> [SKIP][284] ([Intel XE#2939])
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@bad-tiling:
    - shard-dg2-set2:     [SKIP][285] ([Intel XE#3414]) -> [SKIP][286] ([Intel XE#4208] / [i915#2575]) +1 other test skip
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@kms_rotation_crc@bad-tiling.html
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_rotation_crc@bad-tiling.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-dg2-set2:     [SKIP][287] ([Intel XE#4208] / [i915#2575]) -> [SKIP][288] ([Intel XE#3414]) +1 other test skip
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_rotation_crc@primary-rotation-270.html
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-dg2-set2:     [SKIP][289] ([Intel XE#1127]) -> [SKIP][290] ([Intel XE#4208] / [i915#2575])
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-dg2-set2:     [SKIP][291] ([Intel XE#362]) -> [FAIL][292] ([Intel XE#1729])
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][293] ([Intel XE#2426]) -> [SKIP][294] ([Intel XE#2509])
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
    - shard-dg2-set2:     [SKIP][295] ([Intel XE#1500]) -> [SKIP][296] ([Intel XE#362])
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-435/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@cmrr:
    - shard-dg2-set2:     [SKIP][297] ([Intel XE#4208] / [i915#2575]) -> [SKIP][298] ([Intel XE#2168])
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@kms_vrr@cmrr.html
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@kms_vrr@cmrr.html

  * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
    - shard-dg2-set2:     [SKIP][299] ([Intel XE#4208] / [i915#2575]) -> [SKIP][300] ([Intel XE#1091] / [Intel XE#2849]) +1 other test skip
   [299]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
   [300]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html

  * igt@xe_compute_preempt@compute-threadgroup-preempt:
    - shard-dg2-set2:     [SKIP][301] ([Intel XE#4208]) -> [SKIP][302] ([Intel XE#1280] / [Intel XE#455])
   [301]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_compute_preempt@compute-threadgroup-preempt.html
   [302]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_compute_preempt@compute-threadgroup-preempt.html

  * igt@xe_configfs@survivability-mode:
    - shard-dg2-set2:     [SKIP][303] ([Intel XE#4208]) -> [SKIP][304] ([Intel XE#5249])
   [303]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_configfs@survivability-mode.html
   [304]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_configfs@survivability-mode.html

  * igt@xe_copy_basic@mem-copy-linear-0xfffe:
    - shard-dg2-set2:     [SKIP][305] ([Intel XE#4208]) -> [SKIP][306] ([Intel XE#1123])
   [305]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_copy_basic@mem-copy-linear-0xfffe.html
   [306]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@xe_copy_basic@mem-copy-linear-0xfffe.html

  * igt@xe_copy_basic@mem-set-linear-0xfd:
    - shard-dg2-set2:     [SKIP][307] ([Intel XE#1126]) -> [SKIP][308] ([Intel XE#4208]) +1 other test skip
   [307]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@xe_copy_basic@mem-set-linear-0xfd.html
   [308]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_copy_basic@mem-set-linear-0xfd.html

  * igt@xe_copy_basic@mem-set-linear-0xfffe:
    - shard-dg2-set2:     [SKIP][309] ([Intel XE#4208]) -> [SKIP][310] ([Intel XE#1126])
   [309]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_copy_basic@mem-set-linear-0xfffe.html
   [310]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0xfffe.html

  * igt@xe_eu_stall@blocking-read:
    - shard-dg2-set2:     [SKIP][311] ([Intel XE#4208]) -> [SKIP][312] ([Intel XE#5419])
   [311]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_eu_stall@blocking-read.html
   [312]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_eu_stall@blocking-read.html

  * igt@xe_eudebug_online@resume-dss:
    - shard-dg2-set2:     [SKIP][313] ([Intel XE#4208]) -> [SKIP][314] ([Intel XE#4837]) +14 other tests skip
   [313]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_eudebug_online@resume-dss.html
   [314]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@xe_eudebug_online@resume-dss.html

  * igt@xe_eudebug_online@writes-caching-sram-bb-sram-target-sram:
    - shard-dg2-set2:     [SKIP][315] ([Intel XE#4837]) -> [SKIP][316] ([Intel XE#4208]) +13 other tests skip
   [315]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@xe_eudebug_online@writes-caching-sram-bb-sram-target-sram.html
   [316]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_eudebug_online@writes-caching-sram-bb-sram-target-sram.html

  * igt@xe_eudebug_sriov@deny-eudebug:
    - shard-dg2-set2:     [SKIP][317] ([Intel XE#4518]) -> [SKIP][318] ([Intel XE#4208])
   [317]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_eudebug_sriov@deny-eudebug.html
   [318]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_eudebug_sriov@deny-eudebug.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue:
    - shard-dg2-set2:     [SKIP][319] ([Intel XE#1392]) -> [SKIP][320] ([Intel XE#4208]) +1 other test skip
   [319]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue.html
   [320]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-rebind:
    - shard-dg2-set2:     [SKIP][321] ([Intel XE#4208]) -> [SKIP][322] ([Intel XE#1392]) +2 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_exec_basic@multigpu-once-bindexecqueue-rebind.html
   [322]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_exec_basic@multigpu-once-bindexecqueue-rebind.html

  * igt@xe_exec_fault_mode@once-rebind-imm:
    - shard-dg2-set2:     [SKIP][323] ([Intel XE#288]) -> [SKIP][324] ([Intel XE#4208]) +19 other tests skip
   [323]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_exec_fault_mode@once-rebind-imm.html
   [324]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_exec_fault_mode@once-rebind-imm.html

  * igt@xe_exec_fault_mode@twice-userptr-invalidate-race:
    - shard-dg2-set2:     [SKIP][325] ([Intel XE#4208]) -> [SKIP][326] ([Intel XE#288]) +32 other tests skip
   [325]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_exec_fault_mode@twice-userptr-invalidate-race.html
   [326]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_exec_fault_mode@twice-userptr-invalidate-race.html

  * igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence:
    - shard-dg2-set2:     [SKIP][327] ([Intel XE#4208]) -> [SKIP][328] ([Intel XE#2360]) +1 other test skip
   [327]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence.html
   [328]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_exec_mix_modes@exec-spinner-interrupted-dma-fence.html

  * igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck:
    - shard-dg2-set2:     [SKIP][329] ([Intel XE#4208]) -> [SKIP][330] ([Intel XE#4915]) +317 other tests skip
   [329]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck.html
   [330]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_exec_system_allocator@threads-many-large-mmap-shared-remap-dontunmap-eocheck.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-remap-eocheck:
    - shard-dg2-set2:     [SKIP][331] ([Intel XE#4915]) -> [SKIP][332] ([Intel XE#4208]) +220 other tests skip
   [331]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-remap-eocheck.html
   [332]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-remap-eocheck.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-dg2-set2:     [ABORT][333] ([Intel XE#4917]) -> [SKIP][334] ([Intel XE#4208])
   [333]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [334]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

  * igt@xe_huc_copy@huc_copy:
    - shard-dg2-set2:     [SKIP][335] ([Intel XE#4208]) -> [SKIP][336] ([Intel XE#255])
   [335]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_huc_copy@huc_copy.html
   [336]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_huc_copy@huc_copy.html

  * igt@xe_media_fill@media-fill:
    - shard-dg2-set2:     [SKIP][337] ([Intel XE#560]) -> [SKIP][338] ([Intel XE#4208])
   [337]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_media_fill@media-fill.html
   [338]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_media_fill@media-fill.html

  * igt@xe_oa@non-privileged-access-vaddr:
    - shard-dg2-set2:     [SKIP][339] ([Intel XE#2541] / [Intel XE#3573]) -> [SKIP][340] ([Intel XE#4208]) +4 other tests skip
   [339]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_oa@non-privileged-access-vaddr.html
   [340]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_oa@non-privileged-access-vaddr.html

  * igt@xe_oa@non-privileged-map-oa-buffer:
    - shard-dg2-set2:     [SKIP][341] ([Intel XE#4208]) -> [SKIP][342] ([Intel XE#2541] / [Intel XE#3573]) +7 other tests skip
   [341]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_oa@non-privileged-map-oa-buffer.html
   [342]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_oa@non-privileged-map-oa-buffer.html

  * igt@xe_oa@syncs-syncobj-cfg:
    - shard-dg2-set2:     [SKIP][343] ([Intel XE#4208]) -> [SKIP][344] ([Intel XE#2541] / [Intel XE#3573] / [Intel XE#4501])
   [343]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_oa@syncs-syncobj-cfg.html
   [344]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_oa@syncs-syncobj-cfg.html

  * igt@xe_oa@syncs-ufence-wait-cfg:
    - shard-dg2-set2:     [SKIP][345] ([Intel XE#2541] / [Intel XE#3573] / [Intel XE#4501]) -> [SKIP][346] ([Intel XE#4208]) +1 other test skip
   [345]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@xe_oa@syncs-ufence-wait-cfg.html
   [346]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_oa@syncs-ufence-wait-cfg.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-dg2-set2:     [SKIP][347] ([Intel XE#4208]) -> [SKIP][348] ([Intel XE#2838] / [Intel XE#979])
   [347]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_pat@pat-index-xehpc.html
   [348]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_peer2peer@write:
    - shard-dg2-set2:     [FAIL][349] ([Intel XE#1173]) -> [SKIP][350] ([Intel XE#1061])
   [349]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@xe_peer2peer@write.html
   [350]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_peer2peer@write.html

  * igt@xe_pm@d3cold-mmap-system:
    - shard-dg2-set2:     [SKIP][351] ([Intel XE#4208]) -> [SKIP][352] ([Intel XE#2284] / [Intel XE#366])
   [351]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_pm@d3cold-mmap-system.html
   [352]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-432/igt@xe_pm@d3cold-mmap-system.html

  * igt@xe_pm@d3cold-multiple-execs:
    - shard-dg2-set2:     [SKIP][353] ([Intel XE#2284] / [Intel XE#366]) -> [SKIP][354] ([Intel XE#4208])
   [353]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@xe_pm@d3cold-multiple-execs.html
   [354]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_pm@d3cold-multiple-execs.html

  * igt@xe_pmu@all-fn-engine-activity-load:
    - shard-dg2-set2:     [SKIP][355] ([Intel XE#4650]) -> [SKIP][356] ([Intel XE#4208]) +1 other test skip
   [355]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_pmu@all-fn-engine-activity-load.html
   [356]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_pmu@all-fn-engine-activity-load.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq:
    - shard-dg2-set2:     [SKIP][357] ([Intel XE#4733]) -> [SKIP][358] ([Intel XE#4208]) +1 other test skip
   [357]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html
   [358]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html

  * igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq:
    - shard-dg2-set2:     [SKIP][359] ([Intel XE#4208]) -> [SKIP][360] ([Intel XE#4733]) +4 other tests skip
   [359]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html
   [360]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html

  * igt@xe_query@multigpu-query-engines:
    - shard-dg2-set2:     [SKIP][361] ([Intel XE#944]) -> [SKIP][362] ([Intel XE#4208]) +2 other tests skip
   [361]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-432/igt@xe_query@multigpu-query-engines.html
   [362]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_query@multigpu-query-engines.html

  * igt@xe_query@multigpu-query-invalid-cs-cycles:
    - shard-dg2-set2:     [SKIP][363] ([Intel XE#4208]) -> [SKIP][364] ([Intel XE#944]) +1 other test skip
   [363]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_query@multigpu-query-invalid-cs-cycles.html
   [364]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_query@multigpu-query-invalid-cs-cycles.html

  * igt@xe_render_copy@render-stress-2-copies:
    - shard-dg2-set2:     [SKIP][365] ([Intel XE#4208]) -> [SKIP][366] ([Intel XE#4814])
   [365]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_render_copy@render-stress-2-copies.html
   [366]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-433/igt@xe_render_copy@render-stress-2-copies.html

  * igt@xe_spin_batch@spin-mem-copy:
    - shard-dg2-set2:     [SKIP][367] ([Intel XE#4821]) -> [SKIP][368] ([Intel XE#4208])
   [367]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-434/igt@xe_spin_batch@spin-mem-copy.html
   [368]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_spin_batch@spin-mem-copy.html

  * igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling:
    - shard-dg2-set2:     [SKIP][369] ([Intel XE#4208]) -> [SKIP][370] ([Intel XE#4130]) +1 other test skip
   [369]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html
   [370]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html

  * igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs:
    - shard-dg2-set2:     [SKIP][371] ([Intel XE#4130]) -> [SKIP][372] ([Intel XE#4208])
   [371]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-433/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs.html
   [372]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-464/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs.html

  * igt@xe_sriov_flr@flr-vfs-parallel:
    - shard-dg2-set2:     [SKIP][373] ([Intel XE#4208]) -> [SKIP][374] ([Intel XE#4273])
   [373]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_sriov_flr@flr-vfs-parallel.html
   [374]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-434/igt@xe_sriov_flr@flr-vfs-parallel.html

  * igt@xe_sriov_scheduling@nonpreempt-engine-resets:
    - shard-dg2-set2:     [SKIP][375] ([Intel XE#4208]) -> [SKIP][376] ([Intel XE#4351])
   [375]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a/shard-dg2-464/igt@xe_sriov_scheduling@nonpreempt-engine-resets.html
   [376]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151331v2/shard-dg2-435/igt@xe_sriov_scheduling@nonpreempt-engine-resets.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [Intel XE#1035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1035
  [Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
  [Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
  [Intel XE#1158]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1158
  [Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1280]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1280
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [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#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [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#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [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#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [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#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2351
  [Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
  [Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
  [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#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2883]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2883
  [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#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
  [Intel XE#2939]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2939
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#3009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3009
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442
  [Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3868
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4208
  [Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
  [Intel XE#4294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4294
  [Intel XE#4331]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4331
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4351
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4416
  [Intel XE#4418]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4418
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [Intel XE#4501]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4501
  [Intel XE#4518]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4518
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4618]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4618
  [Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4814
  [Intel XE#4821]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4821
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4842]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4842
  [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#4917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4917
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5166]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5166
  [Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
  [Intel XE#5249]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5249
  [Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
  [Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
  [Intel XE#5419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5419
  [Intel XE#5445]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5445
  [Intel XE#560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/560
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
  [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
  [Intel XE#619]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/619
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
  [Intel XE#701]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/701
  [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#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/908
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
  [i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575


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

  * Linux: xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a -> xe-pw-151331v2

  IGT_8447: 8447
  xe-3380-f6312e25e45f78ed5b38856ec5966e426e4c066a: f6312e25e45f78ed5b38856ec5966e426e4c066a
  xe-pw-151331v2: 151331v2

== Logs ==

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

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

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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-09 10:49   ` Tvrtko Ursulin
@ 2025-07-09 17:22     ` Matthew Brost
  2025-07-11 12:39       ` Tvrtko Ursulin
  0 siblings, 1 reply; 25+ messages in thread
From: Matthew Brost @ 2025-07-09 17:22 UTC (permalink / raw)
  To: Tvrtko Ursulin
  Cc: dri-devel, intel-xe, amd-gfx, kernel-dev, Christian König,
	Danilo Krummrich, Philipp Stanner

On Wed, Jul 09, 2025 at 11:49:44AM +0100, Tvrtko Ursulin wrote:
> 
> On 09/07/2025 05:45, Matthew Brost wrote:
> > On Tue, Jul 08, 2025 at 01:20:32PM +0100, Tvrtko Ursulin wrote:
> > > Currently the job free work item will lock sched->job_list_lock first time
> > > to see if there are any jobs, free a single job, and then lock again to
> > > decide whether to re-queue itself if there are more finished jobs.
> > > 
> > > Since drm_sched_get_finished_job() already looks at the second job in the
> > > queue we can simply add the signaled check and have it return the presence
> > > of more jobs to free to the caller. That way the work item does not have
> > > to lock the list again and repeat the signaled check.
> > > 
> > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> > > Cc: Christian König <christian.koenig@amd.com>
> > > Cc: Danilo Krummrich <dakr@kernel.org>
> > > Cc: Matthew Brost <matthew.brost@intel.com>
> > 
> > The patch looks correct, we do have CI failure in a section which
> > stresses scheduling though. Probably noise though. Do you have Intel
> > hardware? I suggest running xe_exec_threads in a loop on either LNL or
> > BMG and see if the CI failure pops. If you don't have hardware, let me
> > know and I can do this.
> > 
> > With a bit of investigation in the CI failure:
> > Reviewed-by: Matthew Brost <matthew.brost@intel.com>
> 
> Thanks! I don't have the HW but I was able to press re-test in the CI so
> lets see. Although at the moment I can't imagine a failure mode like that
> could be caused by this patch.
> 

I ran xe_exec_threads in a loop 20x on BMG without a failure so CI issue
seem unrelated.

Matt 

> Regards,
> 
> Tvrtko
> 
> > 
> > > Cc: Philipp Stanner <phasta@kernel.org>
> > > ---
> > >   drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++++++----------------
> > >   1 file changed, 14 insertions(+), 23 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> > > index 1f077782ec12..1bce0b66f89c 100644
> > > --- a/drivers/gpu/drm/scheduler/sched_main.c
> > > +++ b/drivers/gpu/drm/scheduler/sched_main.c
> > > @@ -366,22 +366,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
> > >   		queue_work(sched->submit_wq, &sched->work_free_job);
> > >   }
> > > -/**
> > > - * drm_sched_run_free_queue - enqueue free-job work if ready
> > > - * @sched: scheduler instance
> > > - */
> > > -static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
> > > -{
> > > -	struct drm_sched_job *job;
> > > -
> > > -	spin_lock(&sched->job_list_lock);
> > > -	job = list_first_entry_or_null(&sched->pending_list,
> > > -				       struct drm_sched_job, list);
> > > -	if (job && dma_fence_is_signaled(&job->s_fence->finished))
> > > -		__drm_sched_run_free_queue(sched);
> > > -	spin_unlock(&sched->job_list_lock);
> > > -}
> > > -
> > >   /**
> > >    * drm_sched_job_done - complete a job
> > >    * @s_job: pointer to the job which is done
> > > @@ -1102,12 +1086,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
> > >    * drm_sched_get_finished_job - fetch the next finished job to be destroyed
> > >    *
> > >    * @sched: scheduler instance
> > > + * @have_more: are there more finished jobs on the list
> > >    *
> > >    * Returns the next finished job from the pending list (if there is one)
> > >    * ready for it to be destroyed.
> > >    */
> > >   static struct drm_sched_job *
> > > -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
> > > +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
> > >   {
> > >   	struct drm_sched_job *job, *next;
> > > @@ -1115,22 +1100,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
> > >   	job = list_first_entry_or_null(&sched->pending_list,
> > >   				       struct drm_sched_job, list);
> > > -
> > >   	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
> > >   		/* remove job from pending_list */
> > >   		list_del_init(&job->list);
> > >   		/* cancel this job's TO timer */
> > >   		cancel_delayed_work(&sched->work_tdr);
> > > -		/* make the scheduled timestamp more accurate */
> > > +
> > > +		*have_more = false;
> > >   		next = list_first_entry_or_null(&sched->pending_list,
> > >   						typeof(*next), list);
> > > -
> > >   		if (next) {
> > > +			/* make the scheduled timestamp more accurate */
> > >   			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
> > >   				     &next->s_fence->scheduled.flags))
> > >   				next->s_fence->scheduled.timestamp =
> > >   					dma_fence_timestamp(&job->s_fence->finished);
> > > +
> > > +			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
> > > +
> > >   			/* start TO timer for next job */
> > >   			drm_sched_start_timeout(sched);
> > >   		}
> > > @@ -1189,12 +1177,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
> > >   	struct drm_gpu_scheduler *sched =
> > >   		container_of(w, struct drm_gpu_scheduler, work_free_job);
> > >   	struct drm_sched_job *job;
> > > +	bool have_more;
> > > -	job = drm_sched_get_finished_job(sched);
> > > -	if (job)
> > > +	job = drm_sched_get_finished_job(sched, &have_more);
> > > +	if (job) {
> > >   		sched->ops->free_job(job);
> > > +		if (have_more)
> > > +			__drm_sched_run_free_queue(sched);
> > > +	}
> > > -	drm_sched_run_free_queue(sched);
> > >   	drm_sched_run_job_queue(sched);
> > >   }
> > > -- 
> > > 2.48.0
> > > 
> 

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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-09 17:22     ` Matthew Brost
@ 2025-07-11 12:39       ` Tvrtko Ursulin
  0 siblings, 0 replies; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-11 12:39 UTC (permalink / raw)
  To: Matthew Brost
  Cc: dri-devel, intel-xe, amd-gfx, kernel-dev, Christian König,
	Danilo Krummrich, Philipp Stanner



On 09/07/2025 18:22, Matthew Brost wrote:
> On Wed, Jul 09, 2025 at 11:49:44AM +0100, Tvrtko Ursulin wrote:
>>
>> On 09/07/2025 05:45, Matthew Brost wrote:
>>> On Tue, Jul 08, 2025 at 01:20:32PM +0100, Tvrtko Ursulin wrote:
>>>> Currently the job free work item will lock sched->job_list_lock first time
>>>> to see if there are any jobs, free a single job, and then lock again to
>>>> decide whether to re-queue itself if there are more finished jobs.
>>>>
>>>> Since drm_sched_get_finished_job() already looks at the second job in the
>>>> queue we can simply add the signaled check and have it return the presence
>>>> of more jobs to free to the caller. That way the work item does not have
>>>> to lock the list again and repeat the signaled check.
>>>>
>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>>>> Cc: Christian König <christian.koenig@amd.com>
>>>> Cc: Danilo Krummrich <dakr@kernel.org>
>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>
>>> The patch looks correct, we do have CI failure in a section which
>>> stresses scheduling though. Probably noise though. Do you have Intel
>>> hardware? I suggest running xe_exec_threads in a loop on either LNL or
>>> BMG and see if the CI failure pops. If you don't have hardware, let me
>>> know and I can do this.
>>>
>>> With a bit of investigation in the CI failure:
>>> Reviewed-by: Matthew Brost <matthew.brost@intel.com>
>>
>> Thanks! I don't have the HW but I was able to press re-test in the CI so
>> lets see. Although at the moment I can't imagine a failure mode like that
>> could be caused by this patch.
>>
> 
> I ran xe_exec_threads in a loop 20x on BMG without a failure so CI issue
> seem unrelated.

Thanks!

Philipp - okay to merge this one?

Regards,

Tvrtko
> 
> Matt
> 
>> Regards,
>>
>> Tvrtko
>>
>>>
>>>> Cc: Philipp Stanner <phasta@kernel.org>
>>>> ---
>>>>    drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++++++----------------
>>>>    1 file changed, 14 insertions(+), 23 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
>>>> index 1f077782ec12..1bce0b66f89c 100644
>>>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>>>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>>>> @@ -366,22 +366,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>>>    		queue_work(sched->submit_wq, &sched->work_free_job);
>>>>    }
>>>> -/**
>>>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>>>> - * @sched: scheduler instance
>>>> - */
>>>> -static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>>> -{
>>>> -	struct drm_sched_job *job;
>>>> -
>>>> -	spin_lock(&sched->job_list_lock);
>>>> -	job = list_first_entry_or_null(&sched->pending_list,
>>>> -				       struct drm_sched_job, list);
>>>> -	if (job && dma_fence_is_signaled(&job->s_fence->finished))
>>>> -		__drm_sched_run_free_queue(sched);
>>>> -	spin_unlock(&sched->job_list_lock);
>>>> -}
>>>> -
>>>>    /**
>>>>     * drm_sched_job_done - complete a job
>>>>     * @s_job: pointer to the job which is done
>>>> @@ -1102,12 +1086,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
>>>>     * drm_sched_get_finished_job - fetch the next finished job to be destroyed
>>>>     *
>>>>     * @sched: scheduler instance
>>>> + * @have_more: are there more finished jobs on the list
>>>>     *
>>>>     * Returns the next finished job from the pending list (if there is one)
>>>>     * ready for it to be destroyed.
>>>>     */
>>>>    static struct drm_sched_job *
>>>> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>>>> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
>>>>    {
>>>>    	struct drm_sched_job *job, *next;
>>>> @@ -1115,22 +1100,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>>>>    	job = list_first_entry_or_null(&sched->pending_list,
>>>>    				       struct drm_sched_job, list);
>>>> -
>>>>    	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>>>>    		/* remove job from pending_list */
>>>>    		list_del_init(&job->list);
>>>>    		/* cancel this job's TO timer */
>>>>    		cancel_delayed_work(&sched->work_tdr);
>>>> -		/* make the scheduled timestamp more accurate */
>>>> +
>>>> +		*have_more = false;
>>>>    		next = list_first_entry_or_null(&sched->pending_list,
>>>>    						typeof(*next), list);
>>>> -
>>>>    		if (next) {
>>>> +			/* make the scheduled timestamp more accurate */
>>>>    			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>>>>    				     &next->s_fence->scheduled.flags))
>>>>    				next->s_fence->scheduled.timestamp =
>>>>    					dma_fence_timestamp(&job->s_fence->finished);
>>>> +
>>>> +			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
>>>> +
>>>>    			/* start TO timer for next job */
>>>>    			drm_sched_start_timeout(sched);
>>>>    		}
>>>> @@ -1189,12 +1177,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
>>>>    	struct drm_gpu_scheduler *sched =
>>>>    		container_of(w, struct drm_gpu_scheduler, work_free_job);
>>>>    	struct drm_sched_job *job;
>>>> +	bool have_more;
>>>> -	job = drm_sched_get_finished_job(sched);
>>>> -	if (job)
>>>> +	job = drm_sched_get_finished_job(sched, &have_more);
>>>> +	if (job) {
>>>>    		sched->ops->free_job(job);
>>>> +		if (have_more)
>>>> +			__drm_sched_run_free_queue(sched);
>>>> +	}
>>>> -	drm_sched_run_free_queue(sched);
>>>>    	drm_sched_run_job_queue(sched);
>>>>    }
>>>> -- 
>>>> 2.48.0
>>>>
>>


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
                   ` (6 preceding siblings ...)
  2025-07-09 12:54 ` ✓ Xe.CI.Full: " Patchwork
@ 2025-07-11 13:04 ` Philipp Stanner
  2025-07-11 15:11   ` Tvrtko Ursulin
  7 siblings, 1 reply; 25+ messages in thread
From: Philipp Stanner @ 2025-07-11 13:04 UTC (permalink / raw)
  To: Tvrtko Ursulin, dri-devel
  Cc: intel-xe, amd-gfx, kernel-dev, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner

Late to the party; had overlooked that the discussion with Matt is
resolved. Some comments below

On Tue, 2025-07-08 at 13:20 +0100, Tvrtko Ursulin wrote:
> Currently the job free work item will lock sched->job_list_lock first time
> to see if there are any jobs, free a single job, and then lock again to
> decide whether to re-queue itself if there are more finished jobs.
> 
> Since drm_sched_get_finished_job() already looks at the second job in the
> queue we can simply add the signaled check and have it return the presence
> of more jobs to free to the caller. That way the work item does not

optional nit:
s/to free/to be freed

Reads a bit more cleanly.

> have
> to lock the list again and repeat the signaled check.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Danilo Krummrich <dakr@kernel.org>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Philipp Stanner <phasta@kernel.org>
> ---
>  drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++++++----------------
>  1 file changed, 14 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index 1f077782ec12..1bce0b66f89c 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -366,22 +366,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>  		queue_work(sched->submit_wq, &sched->work_free_job);
>  }
>  
> -/**
> - * drm_sched_run_free_queue - enqueue free-job work if ready
> - * @sched: scheduler instance
> - */
> -static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)

The function name is now free. See my comment at the bottom.

> -{
> -	struct drm_sched_job *job;
> -
> -	spin_lock(&sched->job_list_lock);
> -	job = list_first_entry_or_null(&sched->pending_list,
> -				       struct drm_sched_job, list);
> -	if (job && dma_fence_is_signaled(&job->s_fence->finished))
> -		__drm_sched_run_free_queue(sched);
> -	spin_unlock(&sched->job_list_lock);
> -}
> -
>  /**
>   * drm_sched_job_done - complete a job
>   * @s_job: pointer to the job which is done
> @@ -1102,12 +1086,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
>   * drm_sched_get_finished_job - fetch the next finished job to be destroyed
>   *
>   * @sched: scheduler instance
> + * @have_more: are there more finished jobs on the list

I'd like a very brief sentence below here like:

"Informs the caller through @have_more whether there are more finished
jobs besides the returned one."

Reason being that it's relatively rare in the kernel that status is not
transmitted through a return value, so we want that to be very obvious.

>   *
>   * Returns the next finished job from the pending list (if there is one)
>   * ready for it to be destroyed.
>   */
>  static struct drm_sched_job *
> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
>  {
>  	struct drm_sched_job *job, *next;
>  
> @@ -1115,22 +1100,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>  
>  	job = list_first_entry_or_null(&sched->pending_list,
>  				       struct drm_sched_job, list);
> -
>  	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>  		/* remove job from pending_list */
>  		list_del_init(&job->list);
>  
>  		/* cancel this job's TO timer */
>  		cancel_delayed_work(&sched->work_tdr);
> -		/* make the scheduled timestamp more accurate */
> +
> +		*have_more = false;

Don't we want that bool initialized to false at the very beginning of
the function? That way it can never be forgotten if the code gets
reworked.

>  		next = list_first_entry_or_null(&sched->pending_list,
>  						typeof(*next), list);
> -
>  		if (next) {
> +			/* make the scheduled timestamp more accurate */
>  			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>  				     &next->s_fence->scheduled.flags))
>  				next->s_fence->scheduled.timestamp =
>  					dma_fence_timestamp(&job->s_fence->finished);
> +
> +			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
> +
>  			/* start TO timer for next job */
>  			drm_sched_start_timeout(sched);
>  		}
> @@ -1189,12 +1177,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
>  	struct drm_gpu_scheduler *sched =
>  		container_of(w, struct drm_gpu_scheduler, work_free_job);
>  	struct drm_sched_job *job;
> +	bool have_more;
>  
> -	job = drm_sched_get_finished_job(sched);
> -	if (job)
> +	job = drm_sched_get_finished_job(sched, &have_more);
> +	if (job) {
>  		sched->ops->free_job(job);
> +		if (have_more)
> +			__drm_sched_run_free_queue(sched);

Now that drm_sched_run_free_queue() is dead, it's an excellent
opportunity to give its name to __drm_sched_run_free_queue() \o/

Cleaner namespace, and reads better with the below
drm_sched_run_job_queue().


Besides, cool patch!

P.

> +	}
>  
> -	drm_sched_run_free_queue(sched);
>  	drm_sched_run_job_queue(sched);
>  }
>  


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-11 13:04 ` [PATCH] drm/sched: Avoid double re-lock on the job free path Philipp Stanner
@ 2025-07-11 15:11   ` Tvrtko Ursulin
  0 siblings, 0 replies; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-11 15:11 UTC (permalink / raw)
  To: phasta, dri-devel
  Cc: intel-xe, amd-gfx, kernel-dev, Christian König,
	Danilo Krummrich, Matthew Brost


On 11/07/2025 14:04, Philipp Stanner wrote:
> Late to the party; had overlooked that the discussion with Matt is
> resolved. Some comments below
> 
> On Tue, 2025-07-08 at 13:20 +0100, Tvrtko Ursulin wrote:
>> Currently the job free work item will lock sched->job_list_lock first time
>> to see if there are any jobs, free a single job, and then lock again to
>> decide whether to re-queue itself if there are more finished jobs.
>>
>> Since drm_sched_get_finished_job() already looks at the second job in the
>> queue we can simply add the signaled check and have it return the presence
>> of more jobs to free to the caller. That way the work item does not
> 
> optional nit:
> s/to free/to be freed
> 
> Reads a bit more cleanly.

Done.

> 
>> have
>> to lock the list again and repeat the signaled check.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Cc: Danilo Krummrich <dakr@kernel.org>
>> Cc: Matthew Brost <matthew.brost@intel.com>
>> Cc: Philipp Stanner <phasta@kernel.org>
>> ---
>>   drivers/gpu/drm/scheduler/sched_main.c | 37 ++++++++++----------------
>>   1 file changed, 14 insertions(+), 23 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
>> index 1f077782ec12..1bce0b66f89c 100644
>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>> @@ -366,22 +366,6 @@ static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>   		queue_work(sched->submit_wq, &sched->work_free_job);
>>   }
>>   
>> -/**
>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>> - * @sched: scheduler instance
>> - */
>> -static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
> 
> The function name is now free. See my comment at the bottom.
> 
>> -{
>> -	struct drm_sched_job *job;
>> -
>> -	spin_lock(&sched->job_list_lock);
>> -	job = list_first_entry_or_null(&sched->pending_list,
>> -				       struct drm_sched_job, list);
>> -	if (job && dma_fence_is_signaled(&job->s_fence->finished))
>> -		__drm_sched_run_free_queue(sched);
>> -	spin_unlock(&sched->job_list_lock);
>> -}
>> -
>>   /**
>>    * drm_sched_job_done - complete a job
>>    * @s_job: pointer to the job which is done
>> @@ -1102,12 +1086,13 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
>>    * drm_sched_get_finished_job - fetch the next finished job to be destroyed
>>    *
>>    * @sched: scheduler instance
>> + * @have_more: are there more finished jobs on the list
> 
> I'd like a very brief sentence below here like:
> 
> "Informs the caller through @have_more whether there are more finished
> jobs besides the returned one."
> 
> Reason being that it's relatively rare in the kernel that status is not
> transmitted through a return value, so we want that to be very obvious.

Done.

> 
>>    *
>>    * Returns the next finished job from the pending list (if there is one)
>>    * ready for it to be destroyed.
>>    */
>>   static struct drm_sched_job *
>> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
>>   {
>>   	struct drm_sched_job *job, *next;
>>   
>> @@ -1115,22 +1100,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>>   
>>   	job = list_first_entry_or_null(&sched->pending_list,
>>   				       struct drm_sched_job, list);
>> -
>>   	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>>   		/* remove job from pending_list */
>>   		list_del_init(&job->list);
>>   
>>   		/* cancel this job's TO timer */
>>   		cancel_delayed_work(&sched->work_tdr);
>> -		/* make the scheduled timestamp more accurate */
>> +
>> +		*have_more = false;
> 
> Don't we want that bool initialized to false at the very beginning of
> the function? That way it can never be forgotten if the code gets
> reworked.

I opted to leave this as is, given how kerneldoc is clear this is only 
valid if a job was returned.

> 
>>   		next = list_first_entry_or_null(&sched->pending_list,
>>   						typeof(*next), list);
>> -
>>   		if (next) {
>> +			/* make the scheduled timestamp more accurate */
>>   			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>>   				     &next->s_fence->scheduled.flags))
>>   				next->s_fence->scheduled.timestamp =
>>   					dma_fence_timestamp(&job->s_fence->finished);
>> +
>> +			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
>> +
>>   			/* start TO timer for next job */
>>   			drm_sched_start_timeout(sched);
>>   		}
>> @@ -1189,12 +1177,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
>>   	struct drm_gpu_scheduler *sched =
>>   		container_of(w, struct drm_gpu_scheduler, work_free_job);
>>   	struct drm_sched_job *job;
>> +	bool have_more;
>>   
>> -	job = drm_sched_get_finished_job(sched);
>> -	if (job)
>> +	job = drm_sched_get_finished_job(sched, &have_more);
>> +	if (job) {
>>   		sched->ops->free_job(job);
>> +		if (have_more)
>> +			__drm_sched_run_free_queue(sched);
> 
> Now that drm_sched_run_free_queue() is dead, it's an excellent
> opportunity to give its name to __drm_sched_run_free_queue() \o/
> 
> Cleaner namespace, and reads better with the below
> drm_sched_run_job_queue().

Well spotted - done.

> Besides, cool patch!

Thanks!

Regards,

Tvrtko

>> +	}
>>   
>> -	drm_sched_run_free_queue(sched);
>>   	drm_sched_run_job_queue(sched);
>>   }
>>   
> 


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

* [PATCH] drm/sched: Avoid double re-lock on the job free path
@ 2025-07-16  8:51 Tvrtko Ursulin
  2025-07-16 13:31 ` Maíra Canal
  0 siblings, 1 reply; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-16  8:51 UTC (permalink / raw)
  To: dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Tvrtko Ursulin,
	Christian König, Danilo Krummrich, Maíra Canal,
	Matthew Brost, Philipp Stanner

Currently the job free work item will lock sched->job_list_lock first time
to see if there are any jobs, free a single job, and then lock again to
decide whether to re-queue itself if there are more finished jobs.

Since drm_sched_get_finished_job() already looks at the second job in the
queue we can simply add the signaled check and have it return the presence
of more jobs to be freed to the caller. That way the work item does not
have to lock the list again and repeat the signaled check.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Maíra Canal <mcanal@igalia.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Philipp Stanner <phasta@kernel.org>
---
v2:
 * Improve commit text and kerneldoc. (Philipp)
 * Rename run free work helper. (Philipp)

v3:
 * Rebase on top of Maira's changes.
---
 drivers/gpu/drm/scheduler/sched_main.c | 53 ++++++++++----------------
 1 file changed, 21 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
index e2cda28a1af4..5a550fd76bf0 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct drm_gpu_scheduler *sched)
 }
 
 /**
- * __drm_sched_run_free_queue - enqueue free-job work
- * @sched: scheduler instance
- */
-static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
-{
-	if (!READ_ONCE(sched->pause_submit))
-		queue_work(sched->submit_wq, &sched->work_free_job);
-}
-
-/**
- * drm_sched_run_free_queue - enqueue free-job work if ready
+ * drm_sched_run_free_queue - enqueue free-job work
  * @sched: scheduler instance
  */
 static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
 {
-	struct drm_sched_job *job;
-
-	job = list_first_entry_or_null(&sched->pending_list,
-				       struct drm_sched_job, list);
-	if (job && dma_fence_is_signaled(&job->s_fence->finished))
-		__drm_sched_run_free_queue(sched);
-}
-
-static void drm_sched_run_free_queue_unlocked(struct drm_gpu_scheduler *sched)
-{
-	spin_lock(&sched->job_list_lock);
-	drm_sched_run_free_queue(sched);
-	spin_unlock(&sched->job_list_lock);
+	if (!READ_ONCE(sched->pause_submit))
+		queue_work(sched->submit_wq, &sched->work_free_job);
 }
 
 /**
@@ -398,7 +377,7 @@ static void drm_sched_job_done(struct drm_sched_job *s_job, int result)
 	dma_fence_get(&s_fence->finished);
 	drm_sched_fence_finished(s_fence, result);
 	dma_fence_put(&s_fence->finished);
-	__drm_sched_run_free_queue(sched);
+	drm_sched_run_free_queue(sched);
 }
 
 /**
@@ -1134,12 +1113,16 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
  * drm_sched_get_finished_job - fetch the next finished job to be destroyed
  *
  * @sched: scheduler instance
+ * @have_more: are there more finished jobs on the list
+ *
+ * Informs the caller through @have_more whether there are more finished jobs
+ * besides the returned one.
  *
  * Returns the next finished job from the pending list (if there is one)
  * ready for it to be destroyed.
  */
 static struct drm_sched_job *
-drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
+drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
 {
 	struct drm_sched_job *job, *next;
 
@@ -1147,22 +1130,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
 
 	job = list_first_entry_or_null(&sched->pending_list,
 				       struct drm_sched_job, list);
-
 	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
 		/* remove job from pending_list */
 		list_del_init(&job->list);
 
 		/* cancel this job's TO timer */
 		cancel_delayed_work(&sched->work_tdr);
-		/* make the scheduled timestamp more accurate */
+
+		*have_more = false;
 		next = list_first_entry_or_null(&sched->pending_list,
 						typeof(*next), list);
-
 		if (next) {
+			/* make the scheduled timestamp more accurate */
 			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
 				     &next->s_fence->scheduled.flags))
 				next->s_fence->scheduled.timestamp =
 					dma_fence_timestamp(&job->s_fence->finished);
+
+			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
+
 			/* start TO timer for next job */
 			drm_sched_start_timeout(sched);
 		}
@@ -1221,12 +1207,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
 	struct drm_gpu_scheduler *sched =
 		container_of(w, struct drm_gpu_scheduler, work_free_job);
 	struct drm_sched_job *job;
+	bool have_more;
 
-	job = drm_sched_get_finished_job(sched);
-	if (job)
+	job = drm_sched_get_finished_job(sched, &have_more);
+	if (job) {
 		sched->ops->free_job(job);
+		if (have_more)
+			drm_sched_run_free_queue(sched);
+	}
 
-	drm_sched_run_free_queue_unlocked(sched);
 	drm_sched_run_job_queue(sched);
 }
 
-- 
2.48.0


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-16  8:51 Tvrtko Ursulin
@ 2025-07-16 13:31 ` Maíra Canal
  2025-07-16 13:49   ` Tvrtko Ursulin
  0 siblings, 1 reply; 25+ messages in thread
From: Maíra Canal @ 2025-07-16 13:31 UTC (permalink / raw)
  To: Tvrtko Ursulin, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner

Hi Tvrtko,

On 16/07/25 05:51, Tvrtko Ursulin wrote:
> Currently the job free work item will lock sched->job_list_lock first time
> to see if there are any jobs, free a single job, and then lock again to
> decide whether to re-queue itself if there are more finished jobs.
> 
> Since drm_sched_get_finished_job() already looks at the second job in the
> queue we can simply add the signaled check and have it return the presence
> of more jobs to be freed to the caller. That way the work item does not
> have to lock the list again and repeat the signaled check.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Danilo Krummrich <dakr@kernel.org>
> Cc: Maíra Canal <mcanal@igalia.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Philipp Stanner <phasta@kernel.org>
> ---
> v2:
>   * Improve commit text and kerneldoc. (Philipp)
>   * Rename run free work helper. (Philipp)
> 
> v3:
>   * Rebase on top of Maira's changes.
> ---
>   drivers/gpu/drm/scheduler/sched_main.c | 53 ++++++++++----------------
>   1 file changed, 21 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
> index e2cda28a1af4..5a550fd76bf0 100644
> --- a/drivers/gpu/drm/scheduler/sched_main.c
> +++ b/drivers/gpu/drm/scheduler/sched_main.c
> @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct drm_gpu_scheduler *sched)
>   }
>   
>   /**
> - * __drm_sched_run_free_queue - enqueue free-job work
> - * @sched: scheduler instance
> - */
> -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
> -{
> -	if (!READ_ONCE(sched->pause_submit))
> -		queue_work(sched->submit_wq, &sched->work_free_job);
> -}
> -
> -/**
> - * drm_sched_run_free_queue - enqueue free-job work if ready
> + * drm_sched_run_free_queue - enqueue free-job work
>    * @sched: scheduler instance
>    */
>   static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>   {
> -	struct drm_sched_job *job;
> -
> -	job = list_first_entry_or_null(&sched->pending_list,
> -				       struct drm_sched_job, list);
> -	if (job && dma_fence_is_signaled(&job->s_fence->finished))
> -		__drm_sched_run_free_queue(sched);

I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
(check the comment in drm_sched_job_reinsert_on_false_timeout()). How
about only deleting drm_sched_run_free_queue_unlocked() and keep using
__drm_sched_run_free_queue()?

Best Regards,
- Maíra


> -}
> -
> -static void drm_sched_run_free_queue_unlocked(struct drm_gpu_scheduler *sched)
> -{
> -	spin_lock(&sched->job_list_lock);
> -	drm_sched_run_free_queue(sched);
> -	spin_unlock(&sched->job_list_lock);
> +	if (!READ_ONCE(sched->pause_submit))
> +		queue_work(sched->submit_wq, &sched->work_free_job);
>   }
>   
>   /**
> @@ -398,7 +377,7 @@ static void drm_sched_job_done(struct drm_sched_job *s_job, int result)
>   	dma_fence_get(&s_fence->finished);
>   	drm_sched_fence_finished(s_fence, result);
>   	dma_fence_put(&s_fence->finished);
> -	__drm_sched_run_free_queue(sched);
> +	drm_sched_run_free_queue(sched);
>   }
>   
>   /**
> @@ -1134,12 +1113,16 @@ drm_sched_select_entity(struct drm_gpu_scheduler *sched)
>    * drm_sched_get_finished_job - fetch the next finished job to be destroyed
>    *
>    * @sched: scheduler instance
> + * @have_more: are there more finished jobs on the list
> + *
> + * Informs the caller through @have_more whether there are more finished jobs
> + * besides the returned one.
>    *
>    * Returns the next finished job from the pending list (if there is one)
>    * ready for it to be destroyed.
>    */
>   static struct drm_sched_job *
> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool *have_more)
>   {
>   	struct drm_sched_job *job, *next;
>   
> @@ -1147,22 +1130,25 @@ drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>   
>   	job = list_first_entry_or_null(&sched->pending_list,
>   				       struct drm_sched_job, list);
> -
>   	if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>   		/* remove job from pending_list */
>   		list_del_init(&job->list);
>   
>   		/* cancel this job's TO timer */
>   		cancel_delayed_work(&sched->work_tdr);
> -		/* make the scheduled timestamp more accurate */
> +
> +		*have_more = false;
>   		next = list_first_entry_or_null(&sched->pending_list,
>   						typeof(*next), list);
> -
>   		if (next) {
> +			/* make the scheduled timestamp more accurate */
>   			if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>   				     &next->s_fence->scheduled.flags))
>   				next->s_fence->scheduled.timestamp =
>   					dma_fence_timestamp(&job->s_fence->finished);
> +
> +			*have_more = dma_fence_is_signaled(&next->s_fence->finished);
> +
>   			/* start TO timer for next job */
>   			drm_sched_start_timeout(sched);
>   		}
> @@ -1221,12 +1207,15 @@ static void drm_sched_free_job_work(struct work_struct *w)
>   	struct drm_gpu_scheduler *sched =
>   		container_of(w, struct drm_gpu_scheduler, work_free_job);
>   	struct drm_sched_job *job;
> +	bool have_more;
>   
> -	job = drm_sched_get_finished_job(sched);
> -	if (job)
> +	job = drm_sched_get_finished_job(sched, &have_more);
> +	if (job) {
>   		sched->ops->free_job(job);
> +		if (have_more)
> +			drm_sched_run_free_queue(sched);
> +	}
>   
> -	drm_sched_run_free_queue_unlocked(sched);
>   	drm_sched_run_job_queue(sched);
>   }
>   


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-16 13:31 ` Maíra Canal
@ 2025-07-16 13:49   ` Tvrtko Ursulin
  2025-07-16 14:30     ` Maíra Canal
  0 siblings, 1 reply; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-16 13:49 UTC (permalink / raw)
  To: Maíra Canal, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner


On 16/07/2025 14:31, Maíra Canal wrote:
> Hi Tvrtko,
> 
> On 16/07/25 05:51, Tvrtko Ursulin wrote:
>> Currently the job free work item will lock sched->job_list_lock first 
>> time
>> to see if there are any jobs, free a single job, and then lock again to
>> decide whether to re-queue itself if there are more finished jobs.
>>
>> Since drm_sched_get_finished_job() already looks at the second job in the
>> queue we can simply add the signaled check and have it return the 
>> presence
>> of more jobs to be freed to the caller. That way the work item does not
>> have to lock the list again and repeat the signaled check.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Cc: Danilo Krummrich <dakr@kernel.org>
>> Cc: Maíra Canal <mcanal@igalia.com>
>> Cc: Matthew Brost <matthew.brost@intel.com>
>> Cc: Philipp Stanner <phasta@kernel.org>
>> ---
>> v2:
>>   * Improve commit text and kerneldoc. (Philipp)
>>   * Rename run free work helper. (Philipp)
>>
>> v3:
>>   * Rebase on top of Maira's changes.
>> ---
>>   drivers/gpu/drm/scheduler/sched_main.c | 53 ++++++++++----------------
>>   1 file changed, 21 insertions(+), 32 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/ 
>> scheduler/sched_main.c
>> index e2cda28a1af4..5a550fd76bf0 100644
>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>> @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct 
>> drm_gpu_scheduler *sched)
>>   }
>>   /**
>> - * __drm_sched_run_free_queue - enqueue free-job work
>> - * @sched: scheduler instance
>> - */
>> -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>> -{
>> -    if (!READ_ONCE(sched->pause_submit))
>> -        queue_work(sched->submit_wq, &sched->work_free_job);
>> -}
>> -
>> -/**
>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>> + * drm_sched_run_free_queue - enqueue free-job work
>>    * @sched: scheduler instance
>>    */
>>   static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>   {
>> -    struct drm_sched_job *job;
>> -
>> -    job = list_first_entry_or_null(&sched->pending_list,
>> -                       struct drm_sched_job, list);
>> -    if (job && dma_fence_is_signaled(&job->s_fence->finished))
>> -        __drm_sched_run_free_queue(sched);
> 
> I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
> (check the comment in drm_sched_job_reinsert_on_false_timeout()). How

You mean the "is there a signaled job in the list check" is needed for 
drm_sched_job_reinsert_on_false_timeout()? Hmm why? Worst case is a 
false positive wakeup on the free worker, no?

> about only deleting drm_sched_run_free_queue_unlocked() and keep using
> __drm_sched_run_free_queue()?

You mean use __drm_sched_run_free_queue() from 
drm_sched_job_reinsert_on_false_timeout()? That is the same as 
drm_sched_run_free_queue() with this patch.

Regards,

Tvrtko

>> -}
>> -
>> -static void drm_sched_run_free_queue_unlocked(struct 
>> drm_gpu_scheduler *sched)
>> -{
>> -    spin_lock(&sched->job_list_lock);
>> -    drm_sched_run_free_queue(sched);
>> -    spin_unlock(&sched->job_list_lock);
>> +    if (!READ_ONCE(sched->pause_submit))
>> +        queue_work(sched->submit_wq, &sched->work_free_job);
>>   }
>>   /**
>> @@ -398,7 +377,7 @@ static void drm_sched_job_done(struct 
>> drm_sched_job *s_job, int result)
>>       dma_fence_get(&s_fence->finished);
>>       drm_sched_fence_finished(s_fence, result);
>>       dma_fence_put(&s_fence->finished);
>> -    __drm_sched_run_free_queue(sched);
>> +    drm_sched_run_free_queue(sched);
>>   }
>>   /**
>> @@ -1134,12 +1113,16 @@ drm_sched_select_entity(struct 
>> drm_gpu_scheduler *sched)
>>    * drm_sched_get_finished_job - fetch the next finished job to be 
>> destroyed
>>    *
>>    * @sched: scheduler instance
>> + * @have_more: are there more finished jobs on the list
>> + *
>> + * Informs the caller through @have_more whether there are more 
>> finished jobs
>> + * besides the returned one.
>>    *
>>    * Returns the next finished job from the pending list (if there is 
>> one)
>>    * ready for it to be destroyed.
>>    */
>>   static struct drm_sched_job *
>> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool 
>> *have_more)
>>   {
>>       struct drm_sched_job *job, *next;
>> @@ -1147,22 +1130,25 @@ drm_sched_get_finished_job(struct 
>> drm_gpu_scheduler *sched)
>>       job = list_first_entry_or_null(&sched->pending_list,
>>                          struct drm_sched_job, list);
>> -
>>       if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>>           /* remove job from pending_list */
>>           list_del_init(&job->list);
>>           /* cancel this job's TO timer */
>>           cancel_delayed_work(&sched->work_tdr);
>> -        /* make the scheduled timestamp more accurate */
>> +
>> +        *have_more = false;
>>           next = list_first_entry_or_null(&sched->pending_list,
>>                           typeof(*next), list);
>> -
>>           if (next) {
>> +            /* make the scheduled timestamp more accurate */
>>               if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>>                        &next->s_fence->scheduled.flags))
>>                   next->s_fence->scheduled.timestamp =
>>                       dma_fence_timestamp(&job->s_fence->finished);
>> +
>> +            *have_more = dma_fence_is_signaled(&next->s_fence- 
>> >finished);
>> +
>>               /* start TO timer for next job */
>>               drm_sched_start_timeout(sched);
>>           }
>> @@ -1221,12 +1207,15 @@ static void drm_sched_free_job_work(struct 
>> work_struct *w)
>>       struct drm_gpu_scheduler *sched =
>>           container_of(w, struct drm_gpu_scheduler, work_free_job);
>>       struct drm_sched_job *job;
>> +    bool have_more;
>> -    job = drm_sched_get_finished_job(sched);
>> -    if (job)
>> +    job = drm_sched_get_finished_job(sched, &have_more);
>> +    if (job) {
>>           sched->ops->free_job(job);
>> +        if (have_more)
>> +            drm_sched_run_free_queue(sched);
>> +    }
>> -    drm_sched_run_free_queue_unlocked(sched);
>>       drm_sched_run_job_queue(sched);
>>   }
> 


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-16 13:49   ` Tvrtko Ursulin
@ 2025-07-16 14:30     ` Maíra Canal
  2025-07-16 14:46       ` Tvrtko Ursulin
  0 siblings, 1 reply; 25+ messages in thread
From: Maíra Canal @ 2025-07-16 14:30 UTC (permalink / raw)
  To: Tvrtko Ursulin, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner

Hi Tvrtko,

On 16/07/25 10:49, Tvrtko Ursulin wrote:
> 
> On 16/07/2025 14:31, Maíra Canal wrote:
>> Hi Tvrtko,
>>
>> On 16/07/25 05:51, Tvrtko Ursulin wrote:
>>> Currently the job free work item will lock sched->job_list_lock first 
>>> time
>>> to see if there are any jobs, free a single job, and then lock again to
>>> decide whether to re-queue itself if there are more finished jobs.
>>>
>>> Since drm_sched_get_finished_job() already looks at the second job in 
>>> the
>>> queue we can simply add the signaled check and have it return the 
>>> presence
>>> of more jobs to be freed to the caller. That way the work item does not
>>> have to lock the list again and repeat the signaled check.
>>>
>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>>> Cc: Christian König <christian.koenig@amd.com>
>>> Cc: Danilo Krummrich <dakr@kernel.org>
>>> Cc: Maíra Canal <mcanal@igalia.com>
>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>> Cc: Philipp Stanner <phasta@kernel.org>
>>> ---
>>> v2:
>>>   * Improve commit text and kerneldoc. (Philipp)
>>>   * Rename run free work helper. (Philipp)
>>>
>>> v3:
>>>   * Rebase on top of Maira's changes.
>>> ---
>>>   drivers/gpu/drm/scheduler/sched_main.c | 53 ++++++++++----------------
>>>   1 file changed, 21 insertions(+), 32 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/ 
>>> drm/ scheduler/sched_main.c
>>> index e2cda28a1af4..5a550fd76bf0 100644
>>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>>> @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct 
>>> drm_gpu_scheduler *sched)
>>>   }
>>>   /**
>>> - * __drm_sched_run_free_queue - enqueue free-job work
>>> - * @sched: scheduler instance
>>> - */
>>> -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>> -{
>>> -    if (!READ_ONCE(sched->pause_submit))
>>> -        queue_work(sched->submit_wq, &sched->work_free_job);
>>> -}
>>> -
>>> -/**
>>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>>> + * drm_sched_run_free_queue - enqueue free-job work
>>>    * @sched: scheduler instance
>>>    */
>>>   static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>>   {
>>> -    struct drm_sched_job *job;
>>> -
>>> -    job = list_first_entry_or_null(&sched->pending_list,
>>> -                       struct drm_sched_job, list);
>>> -    if (job && dma_fence_is_signaled(&job->s_fence->finished))
>>> -        __drm_sched_run_free_queue(sched);
>>
>> I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
>> (check the comment in drm_sched_job_reinsert_on_false_timeout()). How
> 
> You mean the "is there a signaled job in the list check" is needed for 
> drm_sched_job_reinsert_on_false_timeout()? Hmm why? Worst case is a 
> false positive wakeup on the free worker, no?

Correct me if I'm mistaken, we would also have a false positive wake-up
on the run_job worker, which I believe it could be problematic in the
cases that we skipped the reset because the job is still running.

> 
>> about only deleting drm_sched_run_free_queue_unlocked() and keep using
>> __drm_sched_run_free_queue()?
> 
> You mean use __drm_sched_run_free_queue() from 
> drm_sched_job_reinsert_on_false_timeout()? That is the same as 
> drm_sched_run_free_queue() with this patch.

Sorry, I believe I didn't express myself clearly. I mean, using
__drm_sched_run_free_queue() in drm_sched_free_job_work() and keep using
drm_sched_run_free_queue() in drm_sched_job_reinsert_on_false_timeout().

Best Regards,
- Maíra

> 
> Regards,
> 
> Tvrtko
> 
>>> -}
>>> -
>>> -static void drm_sched_run_free_queue_unlocked(struct 
>>> drm_gpu_scheduler *sched)
>>> -{
>>> -    spin_lock(&sched->job_list_lock);
>>> -    drm_sched_run_free_queue(sched);
>>> -    spin_unlock(&sched->job_list_lock);
>>> +    if (!READ_ONCE(sched->pause_submit))
>>> +        queue_work(sched->submit_wq, &sched->work_free_job);
>>>   }
>>>   /**
>>> @@ -398,7 +377,7 @@ static void drm_sched_job_done(struct 
>>> drm_sched_job *s_job, int result)
>>>       dma_fence_get(&s_fence->finished);
>>>       drm_sched_fence_finished(s_fence, result);
>>>       dma_fence_put(&s_fence->finished);
>>> -    __drm_sched_run_free_queue(sched);
>>> +    drm_sched_run_free_queue(sched);
>>>   }
>>>   /**
>>> @@ -1134,12 +1113,16 @@ drm_sched_select_entity(struct 
>>> drm_gpu_scheduler *sched)
>>>    * drm_sched_get_finished_job - fetch the next finished job to be 
>>> destroyed
>>>    *
>>>    * @sched: scheduler instance
>>> + * @have_more: are there more finished jobs on the list
>>> + *
>>> + * Informs the caller through @have_more whether there are more 
>>> finished jobs
>>> + * besides the returned one.
>>>    *
>>>    * Returns the next finished job from the pending list (if there is 
>>> one)
>>>    * ready for it to be destroyed.
>>>    */
>>>   static struct drm_sched_job *
>>> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>>> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool 
>>> *have_more)
>>>   {
>>>       struct drm_sched_job *job, *next;
>>> @@ -1147,22 +1130,25 @@ drm_sched_get_finished_job(struct 
>>> drm_gpu_scheduler *sched)
>>>       job = list_first_entry_or_null(&sched->pending_list,
>>>                          struct drm_sched_job, list);
>>> -
>>>       if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>>>           /* remove job from pending_list */
>>>           list_del_init(&job->list);
>>>           /* cancel this job's TO timer */
>>>           cancel_delayed_work(&sched->work_tdr);
>>> -        /* make the scheduled timestamp more accurate */
>>> +
>>> +        *have_more = false;
>>>           next = list_first_entry_or_null(&sched->pending_list,
>>>                           typeof(*next), list);
>>> -
>>>           if (next) {
>>> +            /* make the scheduled timestamp more accurate */
>>>               if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>>>                        &next->s_fence->scheduled.flags))
>>>                   next->s_fence->scheduled.timestamp =
>>>                       dma_fence_timestamp(&job->s_fence->finished);
>>> +
>>> +            *have_more = dma_fence_is_signaled(&next->s_fence- 
>>> >finished);
>>> +
>>>               /* start TO timer for next job */
>>>               drm_sched_start_timeout(sched);
>>>           }
>>> @@ -1221,12 +1207,15 @@ static void drm_sched_free_job_work(struct 
>>> work_struct *w)
>>>       struct drm_gpu_scheduler *sched =
>>>           container_of(w, struct drm_gpu_scheduler, work_free_job);
>>>       struct drm_sched_job *job;
>>> +    bool have_more;
>>> -    job = drm_sched_get_finished_job(sched);
>>> -    if (job)
>>> +    job = drm_sched_get_finished_job(sched, &have_more);
>>> +    if (job) {
>>>           sched->ops->free_job(job);
>>> +        if (have_more)
>>> +            drm_sched_run_free_queue(sched);
>>> +    }
>>> -    drm_sched_run_free_queue_unlocked(sched);
>>>       drm_sched_run_job_queue(sched);
>>>   }
>>
> 


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-16 14:30     ` Maíra Canal
@ 2025-07-16 14:46       ` Tvrtko Ursulin
  2025-07-16 20:44         ` Maíra Canal
  0 siblings, 1 reply; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-16 14:46 UTC (permalink / raw)
  To: Maíra Canal, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner


On 16/07/2025 15:30, Maíra Canal wrote:
> Hi Tvrtko,
> 
> On 16/07/25 10:49, Tvrtko Ursulin wrote:
>>
>> On 16/07/2025 14:31, Maíra Canal wrote:
>>> Hi Tvrtko,
>>>
>>> On 16/07/25 05:51, Tvrtko Ursulin wrote:
>>>> Currently the job free work item will lock sched->job_list_lock 
>>>> first time
>>>> to see if there are any jobs, free a single job, and then lock again to
>>>> decide whether to re-queue itself if there are more finished jobs.
>>>>
>>>> Since drm_sched_get_finished_job() already looks at the second job 
>>>> in the
>>>> queue we can simply add the signaled check and have it return the 
>>>> presence
>>>> of more jobs to be freed to the caller. That way the work item does not
>>>> have to lock the list again and repeat the signaled check.
>>>>
>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>>>> Cc: Christian König <christian.koenig@amd.com>
>>>> Cc: Danilo Krummrich <dakr@kernel.org>
>>>> Cc: Maíra Canal <mcanal@igalia.com>
>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>> Cc: Philipp Stanner <phasta@kernel.org>
>>>> ---
>>>> v2:
>>>>   * Improve commit text and kerneldoc. (Philipp)
>>>>   * Rename run free work helper. (Philipp)
>>>>
>>>> v3:
>>>>   * Rebase on top of Maira's changes.
>>>> ---
>>>>   drivers/gpu/drm/scheduler/sched_main.c | 53 +++++++++ 
>>>> +----------------
>>>>   1 file changed, 21 insertions(+), 32 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/ 
>>>> drm/ scheduler/sched_main.c
>>>> index e2cda28a1af4..5a550fd76bf0 100644
>>>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>>>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>>>> @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct 
>>>> drm_gpu_scheduler *sched)
>>>>   }
>>>>   /**
>>>> - * __drm_sched_run_free_queue - enqueue free-job work
>>>> - * @sched: scheduler instance
>>>> - */
>>>> -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler 
>>>> *sched)
>>>> -{
>>>> -    if (!READ_ONCE(sched->pause_submit))
>>>> -        queue_work(sched->submit_wq, &sched->work_free_job);
>>>> -}
>>>> -
>>>> -/**
>>>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>>>> + * drm_sched_run_free_queue - enqueue free-job work
>>>>    * @sched: scheduler instance
>>>>    */
>>>>   static void drm_sched_run_free_queue(struct drm_gpu_scheduler *sched)
>>>>   {
>>>> -    struct drm_sched_job *job;
>>>> -
>>>> -    job = list_first_entry_or_null(&sched->pending_list,
>>>> -                       struct drm_sched_job, list);
>>>> -    if (job && dma_fence_is_signaled(&job->s_fence->finished))
>>>> -        __drm_sched_run_free_queue(sched);
>>>
>>> I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
>>> (check the comment in drm_sched_job_reinsert_on_false_timeout()). How
>>
>> You mean the "is there a signaled job in the list check" is needed for 
>> drm_sched_job_reinsert_on_false_timeout()? Hmm why? Worst case is a 
>> false positive wakeup on the free worker, no?
> 
> Correct me if I'm mistaken, we would also have a false positive wake-up
> on the run_job worker, which I believe it could be problematic in the
> cases that we skipped the reset because the job is still running.

Run job worker exits when it sees no free credits so I don't think there 
is a problem. What am I missing?

Regards,

Tvrtko

>>> about only deleting drm_sched_run_free_queue_unlocked() and keep using
>>> __drm_sched_run_free_queue()?
>>
>> You mean use __drm_sched_run_free_queue() from 
>> drm_sched_job_reinsert_on_false_timeout()? That is the same as 
>> drm_sched_run_free_queue() with this patch.
> 
> Sorry, I believe I didn't express myself clearly. I mean, using
> __drm_sched_run_free_queue() in drm_sched_free_job_work() and keep using
> drm_sched_run_free_queue() in drm_sched_job_reinsert_on_false_timeout().
> 
> Best Regards,
> - Maíra
> 
>>
>> Regards,
>>
>> Tvrtko
>>
>>>> -}
>>>> -
>>>> -static void drm_sched_run_free_queue_unlocked(struct 
>>>> drm_gpu_scheduler *sched)
>>>> -{
>>>> -    spin_lock(&sched->job_list_lock);
>>>> -    drm_sched_run_free_queue(sched);
>>>> -    spin_unlock(&sched->job_list_lock);
>>>> +    if (!READ_ONCE(sched->pause_submit))
>>>> +        queue_work(sched->submit_wq, &sched->work_free_job);
>>>>   }
>>>>   /**
>>>> @@ -398,7 +377,7 @@ static void drm_sched_job_done(struct 
>>>> drm_sched_job *s_job, int result)
>>>>       dma_fence_get(&s_fence->finished);
>>>>       drm_sched_fence_finished(s_fence, result);
>>>>       dma_fence_put(&s_fence->finished);
>>>> -    __drm_sched_run_free_queue(sched);
>>>> +    drm_sched_run_free_queue(sched);
>>>>   }
>>>>   /**
>>>> @@ -1134,12 +1113,16 @@ drm_sched_select_entity(struct 
>>>> drm_gpu_scheduler *sched)
>>>>    * drm_sched_get_finished_job - fetch the next finished job to be 
>>>> destroyed
>>>>    *
>>>>    * @sched: scheduler instance
>>>> + * @have_more: are there more finished jobs on the list
>>>> + *
>>>> + * Informs the caller through @have_more whether there are more 
>>>> finished jobs
>>>> + * besides the returned one.
>>>>    *
>>>>    * Returns the next finished job from the pending list (if there 
>>>> is one)
>>>>    * ready for it to be destroyed.
>>>>    */
>>>>   static struct drm_sched_job *
>>>> -drm_sched_get_finished_job(struct drm_gpu_scheduler *sched)
>>>> +drm_sched_get_finished_job(struct drm_gpu_scheduler *sched, bool 
>>>> *have_more)
>>>>   {
>>>>       struct drm_sched_job *job, *next;
>>>> @@ -1147,22 +1130,25 @@ drm_sched_get_finished_job(struct 
>>>> drm_gpu_scheduler *sched)
>>>>       job = list_first_entry_or_null(&sched->pending_list,
>>>>                          struct drm_sched_job, list);
>>>> -
>>>>       if (job && dma_fence_is_signaled(&job->s_fence->finished)) {
>>>>           /* remove job from pending_list */
>>>>           list_del_init(&job->list);
>>>>           /* cancel this job's TO timer */
>>>>           cancel_delayed_work(&sched->work_tdr);
>>>> -        /* make the scheduled timestamp more accurate */
>>>> +
>>>> +        *have_more = false;
>>>>           next = list_first_entry_or_null(&sched->pending_list,
>>>>                           typeof(*next), list);
>>>> -
>>>>           if (next) {
>>>> +            /* make the scheduled timestamp more accurate */
>>>>               if (test_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT,
>>>>                        &next->s_fence->scheduled.flags))
>>>>                   next->s_fence->scheduled.timestamp =
>>>>                       dma_fence_timestamp(&job->s_fence->finished);
>>>> +
>>>> +            *have_more = dma_fence_is_signaled(&next->s_fence- 
>>>> >finished);
>>>> +
>>>>               /* start TO timer for next job */
>>>>               drm_sched_start_timeout(sched);
>>>>           }
>>>> @@ -1221,12 +1207,15 @@ static void drm_sched_free_job_work(struct 
>>>> work_struct *w)
>>>>       struct drm_gpu_scheduler *sched =
>>>>           container_of(w, struct drm_gpu_scheduler, work_free_job);
>>>>       struct drm_sched_job *job;
>>>> +    bool have_more;
>>>> -    job = drm_sched_get_finished_job(sched);
>>>> -    if (job)
>>>> +    job = drm_sched_get_finished_job(sched, &have_more);
>>>> +    if (job) {
>>>>           sched->ops->free_job(job);
>>>> +        if (have_more)
>>>> +            drm_sched_run_free_queue(sched);
>>>> +    }
>>>> -    drm_sched_run_free_queue_unlocked(sched);
>>>>       drm_sched_run_job_queue(sched);
>>>>   }
>>>
>>
> 


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-16 14:46       ` Tvrtko Ursulin
@ 2025-07-16 20:44         ` Maíra Canal
  2025-07-18  7:13           ` Tvrtko Ursulin
  0 siblings, 1 reply; 25+ messages in thread
From: Maíra Canal @ 2025-07-16 20:44 UTC (permalink / raw)
  To: Tvrtko Ursulin, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Philipp Stanner

Hi Tvrtko,

On 16/07/25 11:46, Tvrtko Ursulin wrote:
> 
> On 16/07/2025 15:30, Maíra Canal wrote:
>> Hi Tvrtko,
>>
>> On 16/07/25 10:49, Tvrtko Ursulin wrote:
>>>
>>> On 16/07/2025 14:31, Maíra Canal wrote:
>>>> Hi Tvrtko,
>>>>
>>>> On 16/07/25 05:51, Tvrtko Ursulin wrote:
>>>>> Currently the job free work item will lock sched->job_list_lock 
>>>>> first time
>>>>> to see if there are any jobs, free a single job, and then lock 
>>>>> again to
>>>>> decide whether to re-queue itself if there are more finished jobs.
>>>>>
>>>>> Since drm_sched_get_finished_job() already looks at the second job 
>>>>> in the
>>>>> queue we can simply add the signaled check and have it return the 
>>>>> presence
>>>>> of more jobs to be freed to the caller. That way the work item does 
>>>>> not
>>>>> have to lock the list again and repeat the signaled check.
>>>>>
>>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>>>>> Cc: Christian König <christian.koenig@amd.com>
>>>>> Cc: Danilo Krummrich <dakr@kernel.org>
>>>>> Cc: Maíra Canal <mcanal@igalia.com>
>>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>>> Cc: Philipp Stanner <phasta@kernel.org>
>>>>> ---
>>>>> v2:
>>>>>   * Improve commit text and kerneldoc. (Philipp)
>>>>>   * Rename run free work helper. (Philipp)
>>>>>
>>>>> v3:
>>>>>   * Rebase on top of Maira's changes.
>>>>> ---
>>>>>   drivers/gpu/drm/scheduler/sched_main.c | 53 +++++++++ 
>>>>> +----------------
>>>>>   1 file changed, 21 insertions(+), 32 deletions(-)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/ 
>>>>> drm/ scheduler/sched_main.c
>>>>> index e2cda28a1af4..5a550fd76bf0 100644
>>>>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>>>>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>>>>> @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct 
>>>>> drm_gpu_scheduler *sched)
>>>>>   }
>>>>>   /**
>>>>> - * __drm_sched_run_free_queue - enqueue free-job work
>>>>> - * @sched: scheduler instance
>>>>> - */
>>>>> -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler 
>>>>> *sched)
>>>>> -{
>>>>> -    if (!READ_ONCE(sched->pause_submit))
>>>>> -        queue_work(sched->submit_wq, &sched->work_free_job);
>>>>> -}
>>>>> -
>>>>> -/**
>>>>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>>>>> + * drm_sched_run_free_queue - enqueue free-job work
>>>>>    * @sched: scheduler instance
>>>>>    */
>>>>>   static void drm_sched_run_free_queue(struct drm_gpu_scheduler 
>>>>> *sched)
>>>>>   {
>>>>> -    struct drm_sched_job *job;
>>>>> -
>>>>> -    job = list_first_entry_or_null(&sched->pending_list,
>>>>> -                       struct drm_sched_job, list);
>>>>> -    if (job && dma_fence_is_signaled(&job->s_fence->finished))
>>>>> -        __drm_sched_run_free_queue(sched);
>>>>
>>>> I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
>>>> (check the comment in drm_sched_job_reinsert_on_false_timeout()). How
>>>
>>> You mean the "is there a signaled job in the list check" is needed 
>>> for drm_sched_job_reinsert_on_false_timeout()? Hmm why? Worst case is 
>>> a false positive wakeup on the free worker, no?
>>
>> Correct me if I'm mistaken, we would also have a false positive wake-up
>> on the run_job worker, which I believe it could be problematic in the
>> cases that we skipped the reset because the job is still running.
> 
> Run job worker exits when it sees no free credits so I don't think there 
> is a problem. What am I missing?
> 

I was the one missing the code in `drm_sched_can_queue()`. Sorry for the
misleading comments. This is:

Reviewed-by: Maíra Canal <mcanal@igalia.com>

Best Regards,
- Maíra




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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-16 20:44         ` Maíra Canal
@ 2025-07-18  7:13           ` Tvrtko Ursulin
  2025-07-18  9:31             ` Philipp Stanner
  0 siblings, 1 reply; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-18  7:13 UTC (permalink / raw)
  To: dri-devel, Philipp Stanner
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Maíra Canal


On 16/07/2025 21:44, Maíra Canal wrote:
> Hi Tvrtko,
> 
> On 16/07/25 11:46, Tvrtko Ursulin wrote:
>>
>> On 16/07/2025 15:30, Maíra Canal wrote:
>>> Hi Tvrtko,
>>>
>>> On 16/07/25 10:49, Tvrtko Ursulin wrote:
>>>>
>>>> On 16/07/2025 14:31, Maíra Canal wrote:
>>>>> Hi Tvrtko,
>>>>>
>>>>> On 16/07/25 05:51, Tvrtko Ursulin wrote:
>>>>>> Currently the job free work item will lock sched->job_list_lock 
>>>>>> first time
>>>>>> to see if there are any jobs, free a single job, and then lock 
>>>>>> again to
>>>>>> decide whether to re-queue itself if there are more finished jobs.
>>>>>>
>>>>>> Since drm_sched_get_finished_job() already looks at the second job 
>>>>>> in the
>>>>>> queue we can simply add the signaled check and have it return the 
>>>>>> presence
>>>>>> of more jobs to be freed to the caller. That way the work item 
>>>>>> does not
>>>>>> have to lock the list again and repeat the signaled check.
>>>>>>
>>>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>>>>>> Cc: Christian König <christian.koenig@amd.com>
>>>>>> Cc: Danilo Krummrich <dakr@kernel.org>
>>>>>> Cc: Maíra Canal <mcanal@igalia.com>
>>>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>>>> Cc: Philipp Stanner <phasta@kernel.org>
>>>>>> ---
>>>>>> v2:
>>>>>>   * Improve commit text and kerneldoc. (Philipp)
>>>>>>   * Rename run free work helper. (Philipp)
>>>>>>
>>>>>> v3:
>>>>>>   * Rebase on top of Maira's changes.
>>>>>> ---
>>>>>>   drivers/gpu/drm/scheduler/sched_main.c | 53 +++++++++ 
>>>>>> +----------------
>>>>>>   1 file changed, 21 insertions(+), 32 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/ 
>>>>>> drm/ scheduler/sched_main.c
>>>>>> index e2cda28a1af4..5a550fd76bf0 100644
>>>>>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>>>>>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>>>>>> @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct 
>>>>>> drm_gpu_scheduler *sched)
>>>>>>   }
>>>>>>   /**
>>>>>> - * __drm_sched_run_free_queue - enqueue free-job work
>>>>>> - * @sched: scheduler instance
>>>>>> - */
>>>>>> -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler 
>>>>>> *sched)
>>>>>> -{
>>>>>> -    if (!READ_ONCE(sched->pause_submit))
>>>>>> -        queue_work(sched->submit_wq, &sched->work_free_job);
>>>>>> -}
>>>>>> -
>>>>>> -/**
>>>>>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>>>>>> + * drm_sched_run_free_queue - enqueue free-job work
>>>>>>    * @sched: scheduler instance
>>>>>>    */
>>>>>>   static void drm_sched_run_free_queue(struct drm_gpu_scheduler 
>>>>>> *sched)
>>>>>>   {
>>>>>> -    struct drm_sched_job *job;
>>>>>> -
>>>>>> -    job = list_first_entry_or_null(&sched->pending_list,
>>>>>> -                       struct drm_sched_job, list);
>>>>>> -    if (job && dma_fence_is_signaled(&job->s_fence->finished))
>>>>>> -        __drm_sched_run_free_queue(sched);
>>>>>
>>>>> I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
>>>>> (check the comment in drm_sched_job_reinsert_on_false_timeout()). How
>>>>
>>>> You mean the "is there a signaled job in the list check" is needed 
>>>> for drm_sched_job_reinsert_on_false_timeout()? Hmm why? Worst case 
>>>> is a false positive wakeup on the free worker, no?
>>>
>>> Correct me if I'm mistaken, we would also have a false positive wake-up
>>> on the run_job worker, which I believe it could be problematic in the
>>> cases that we skipped the reset because the job is still running.
>>
>> Run job worker exits when it sees no free credits so I don't think 
>> there is a problem. What am I missing?
>>
> 
> I was the one missing the code in `drm_sched_can_queue()`. Sorry for the
> misleading comments. This is:
> 
> Reviewed-by: Maíra Canal <mcanal@igalia.com>

No worries, and thanks!

Philipp - are you okay with this version? V2 was done to address your 
feedback so that should be good now.

Regards,

Tvrtko


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-18  7:13           ` Tvrtko Ursulin
@ 2025-07-18  9:31             ` Philipp Stanner
  2025-07-18  9:35               ` Tvrtko Ursulin
  0 siblings, 1 reply; 25+ messages in thread
From: Philipp Stanner @ 2025-07-18  9:31 UTC (permalink / raw)
  To: Tvrtko Ursulin, dri-devel, Philipp Stanner
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Maíra Canal

On Fri, 2025-07-18 at 08:13 +0100, Tvrtko Ursulin wrote:
> 
> On 16/07/2025 21:44, Maíra Canal wrote:
> > Hi Tvrtko,
> > 
> > On 16/07/25 11:46, Tvrtko Ursulin wrote:
> > > 
> > > On 16/07/2025 15:30, Maíra Canal wrote:
> > > > Hi Tvrtko,
> > > > 
> > > > On 16/07/25 10:49, Tvrtko Ursulin wrote:
> > > > > 
> > > > > On 16/07/2025 14:31, Maíra Canal wrote:
> > > > > > Hi Tvrtko,
> > > > > > 
> > > > > > On 16/07/25 05:51, Tvrtko Ursulin wrote:
> > > > > > > Currently the job free work item will lock sched->job_list_lock 
> > > > > > > first time
> > > > > > > to see if there are any jobs, free a single job, and then lock 
> > > > > > > again to
> > > > > > > decide whether to re-queue itself if there are more finished jobs.
> > > > > > > 
> > > > > > > Since drm_sched_get_finished_job() already looks at the second job 
> > > > > > > in the
> > > > > > > queue we can simply add the signaled check and have it return the 
> > > > > > > presence
> > > > > > > of more jobs to be freed to the caller. That way the work item 
> > > > > > > does not
> > > > > > > have to lock the list again and repeat the signaled check.
> > > > > > > 
> > > > > > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
> > > > > > > Cc: Christian König <christian.koenig@amd.com>
> > > > > > > Cc: Danilo Krummrich <dakr@kernel.org>
> > > > > > > Cc: Maíra Canal <mcanal@igalia.com>
> > > > > > > Cc: Matthew Brost <matthew.brost@intel.com>
> > > > > > > Cc: Philipp Stanner <phasta@kernel.org>
> > > > > > > ---
> > > > > > > v2:
> > > > > > >   * Improve commit text and kerneldoc. (Philipp)
> > > > > > >   * Rename run free work helper. (Philipp)
> > > > > > > 
> > > > > > > v3:
> > > > > > >   * Rebase on top of Maira's changes.
> > > > > > > ---
> > > > > > >   drivers/gpu/drm/scheduler/sched_main.c | 53 +++++++++ 
> > > > > > > +----------------
> > > > > > >   1 file changed, 21 insertions(+), 32 deletions(-)
> > > > > > > 
> > > > > > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/ 
> > > > > > > drm/ scheduler/sched_main.c
> > > > > > > index e2cda28a1af4..5a550fd76bf0 100644
> > > > > > > --- a/drivers/gpu/drm/scheduler/sched_main.c
> > > > > > > +++ b/drivers/gpu/drm/scheduler/sched_main.c
> > > > > > > @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct 
> > > > > > > drm_gpu_scheduler *sched)
> > > > > > >   }
> > > > > > >   /**
> > > > > > > - * __drm_sched_run_free_queue - enqueue free-job work
> > > > > > > - * @sched: scheduler instance
> > > > > > > - */
> > > > > > > -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler 
> > > > > > > *sched)
> > > > > > > -{
> > > > > > > -    if (!READ_ONCE(sched->pause_submit))
> > > > > > > -        queue_work(sched->submit_wq, &sched->work_free_job);
> > > > > > > -}
> > > > > > > -
> > > > > > > -/**
> > > > > > > - * drm_sched_run_free_queue - enqueue free-job work if ready
> > > > > > > + * drm_sched_run_free_queue - enqueue free-job work
> > > > > > >    * @sched: scheduler instance
> > > > > > >    */
> > > > > > >   static void drm_sched_run_free_queue(struct drm_gpu_scheduler 
> > > > > > > *sched)
> > > > > > >   {
> > > > > > > -    struct drm_sched_job *job;
> > > > > > > -
> > > > > > > -    job = list_first_entry_or_null(&sched->pending_list,
> > > > > > > -                       struct drm_sched_job, list);
> > > > > > > -    if (job && dma_fence_is_signaled(&job->s_fence->finished))
> > > > > > > -        __drm_sched_run_free_queue(sched);
> > > > > > 
> > > > > > I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
> > > > > > (check the comment in drm_sched_job_reinsert_on_false_timeout()). How
> > > > > 
> > > > > You mean the "is there a signaled job in the list check" is needed 
> > > > > for drm_sched_job_reinsert_on_false_timeout()? Hmm why? Worst case 
> > > > > is a false positive wakeup on the free worker, no?
> > > > 
> > > > Correct me if I'm mistaken, we would also have a false positive wake-up
> > > > on the run_job worker, which I believe it could be problematic in the
> > > > cases that we skipped the reset because the job is still running.
> > > 
> > > Run job worker exits when it sees no free credits so I don't think 
> > > there is a problem. What am I missing?
> > > 
> > 
> > I was the one missing the code in `drm_sched_can_queue()`. Sorry for the
> > misleading comments. This is:
> > 
> > Reviewed-by: Maíra Canal <mcanal@igalia.com>
> 
> No worries, and thanks!
> 
> Philipp - are you okay with this version? V2 was done to address your
> feedback so that should be good now.

Was just giving it another spin when you wrote. (a [PATCH v3] would've
been neat for identification, though – I almost pulled the wrong patch
from the archive *wink*)

LGTM, improves things, can be merged.

However, we had to merge Lin Cao's bug fix [1] recently. That one is
now in drm-misc-fixes, and your patch should go to drm-misc-next. This
would cause a conflict once the two branches meet.

So I suggest that we wait with this non-urgent patch until drm-misc-
fixes / Linus's -rc gets merged into drm-misc-next, and then we apply
it. Should be next week or the week after AFAIK.

Unless somebody has a better idea, of course?

Remind me in case I forget.


P.

[1] https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/15f77764e90a713ee3916ca424757688e4f565b9


> 
> Regards,
> 
> Tvrtko
> 


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-18  9:31             ` Philipp Stanner
@ 2025-07-18  9:35               ` Tvrtko Ursulin
  2025-07-18  9:41                 ` Philipp Stanner
  0 siblings, 1 reply; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-18  9:35 UTC (permalink / raw)
  To: phasta, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Maíra Canal


On 18/07/2025 10:31, Philipp Stanner wrote:
> On Fri, 2025-07-18 at 08:13 +0100, Tvrtko Ursulin wrote:
>>
>> On 16/07/2025 21:44, Maíra Canal wrote:
>>> Hi Tvrtko,
>>>
>>> On 16/07/25 11:46, Tvrtko Ursulin wrote:
>>>>
>>>> On 16/07/2025 15:30, Maíra Canal wrote:
>>>>> Hi Tvrtko,
>>>>>
>>>>> On 16/07/25 10:49, Tvrtko Ursulin wrote:
>>>>>>
>>>>>> On 16/07/2025 14:31, Maíra Canal wrote:
>>>>>>> Hi Tvrtko,
>>>>>>>
>>>>>>> On 16/07/25 05:51, Tvrtko Ursulin wrote:
>>>>>>>> Currently the job free work item will lock sched->job_list_lock
>>>>>>>> first time
>>>>>>>> to see if there are any jobs, free a single job, and then lock
>>>>>>>> again to
>>>>>>>> decide whether to re-queue itself if there are more finished jobs.
>>>>>>>>
>>>>>>>> Since drm_sched_get_finished_job() already looks at the second job
>>>>>>>> in the
>>>>>>>> queue we can simply add the signaled check and have it return the
>>>>>>>> presence
>>>>>>>> of more jobs to be freed to the caller. That way the work item
>>>>>>>> does not
>>>>>>>> have to lock the list again and repeat the signaled check.
>>>>>>>>
>>>>>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
>>>>>>>> Cc: Christian König <christian.koenig@amd.com>
>>>>>>>> Cc: Danilo Krummrich <dakr@kernel.org>
>>>>>>>> Cc: Maíra Canal <mcanal@igalia.com>
>>>>>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>>>>>> Cc: Philipp Stanner <phasta@kernel.org>
>>>>>>>> ---
>>>>>>>> v2:
>>>>>>>>    * Improve commit text and kerneldoc. (Philipp)
>>>>>>>>    * Rename run free work helper. (Philipp)
>>>>>>>>
>>>>>>>> v3:
>>>>>>>>    * Rebase on top of Maira's changes.
>>>>>>>> ---
>>>>>>>>    drivers/gpu/drm/scheduler/sched_main.c | 53 +++++++++
>>>>>>>> +----------------
>>>>>>>>    1 file changed, 21 insertions(+), 32 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/
>>>>>>>> drm/ scheduler/sched_main.c
>>>>>>>> index e2cda28a1af4..5a550fd76bf0 100644
>>>>>>>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>>>>>>>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>>>>>>>> @@ -349,34 +349,13 @@ static void drm_sched_run_job_queue(struct
>>>>>>>> drm_gpu_scheduler *sched)
>>>>>>>>    }
>>>>>>>>    /**
>>>>>>>> - * __drm_sched_run_free_queue - enqueue free-job work
>>>>>>>> - * @sched: scheduler instance
>>>>>>>> - */
>>>>>>>> -static void __drm_sched_run_free_queue(struct drm_gpu_scheduler
>>>>>>>> *sched)
>>>>>>>> -{
>>>>>>>> -    if (!READ_ONCE(sched->pause_submit))
>>>>>>>> -        queue_work(sched->submit_wq, &sched->work_free_job);
>>>>>>>> -}
>>>>>>>> -
>>>>>>>> -/**
>>>>>>>> - * drm_sched_run_free_queue - enqueue free-job work if ready
>>>>>>>> + * drm_sched_run_free_queue - enqueue free-job work
>>>>>>>>     * @sched: scheduler instance
>>>>>>>>     */
>>>>>>>>    static void drm_sched_run_free_queue(struct drm_gpu_scheduler
>>>>>>>> *sched)
>>>>>>>>    {
>>>>>>>> -    struct drm_sched_job *job;
>>>>>>>> -
>>>>>>>> -    job = list_first_entry_or_null(&sched->pending_list,
>>>>>>>> -                       struct drm_sched_job, list);
>>>>>>>> -    if (job && dma_fence_is_signaled(&job->s_fence->finished))
>>>>>>>> -        __drm_sched_run_free_queue(sched);
>>>>>>>
>>>>>>> I believe we'd still need this chunk for DRM_GPU_SCHED_STAT_NO_HANG
>>>>>>> (check the comment in drm_sched_job_reinsert_on_false_timeout()). How
>>>>>>
>>>>>> You mean the "is there a signaled job in the list check" is needed
>>>>>> for drm_sched_job_reinsert_on_false_timeout()? Hmm why? Worst case
>>>>>> is a false positive wakeup on the free worker, no?
>>>>>
>>>>> Correct me if I'm mistaken, we would also have a false positive wake-up
>>>>> on the run_job worker, which I believe it could be problematic in the
>>>>> cases that we skipped the reset because the job is still running.
>>>>
>>>> Run job worker exits when it sees no free credits so I don't think
>>>> there is a problem. What am I missing?
>>>>
>>>
>>> I was the one missing the code in `drm_sched_can_queue()`. Sorry for the
>>> misleading comments. This is:
>>>
>>> Reviewed-by: Maíra Canal <mcanal@igalia.com>
>>
>> No worries, and thanks!
>>
>> Philipp - are you okay with this version? V2 was done to address your
>> feedback so that should be good now.
> 
> Was just giving it another spin when you wrote. (a [PATCH v3] would've
> been neat for identification, though – I almost pulled the wrong patch
> from the archive *wink*)

Oops, my bad.

> LGTM, improves things, can be merged.
> 
> However, we had to merge Lin Cao's bug fix [1] recently. That one is
> now in drm-misc-fixes, and your patch should go to drm-misc-next. This
> would cause a conflict once the two branches meet.
> 
> So I suggest that we wait with this non-urgent patch until drm-misc-
> fixes / Linus's -rc gets merged into drm-misc-next, and then we apply
> it. Should be next week or the week after AFAIK.
> 
> Unless somebody has a better idea, of course?

Lin's patch touches sched_entity.c only and mine only sched_main.c - ie. 
no conflict AFAICT?

Regards,

Tvrtko

> 
> Remind me in case I forget.
> 
> 
> P.
> 
> [1] https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/15f77764e90a713ee3916ca424757688e4f565b9
> 
> 
>>
>> Regards,
>>
>> Tvrtko
>>
> 


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-18  9:35               ` Tvrtko Ursulin
@ 2025-07-18  9:41                 ` Philipp Stanner
  2025-07-18 10:18                   ` Tvrtko Ursulin
  0 siblings, 1 reply; 25+ messages in thread
From: Philipp Stanner @ 2025-07-18  9:41 UTC (permalink / raw)
  To: Tvrtko Ursulin, phasta, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Maíra Canal

On Fri, 2025-07-18 at 10:35 +0100, Tvrtko Ursulin wrote:
> 
> On 18/07/2025 10:31, Philipp Stanner wrote:
> > On Fri, 2025-07-18 at 08:13 +0100, Tvrtko Ursulin wrote:
> > > 
> > > On 16/07/2025 21:44, Maíra Canal wrote:
> > > > Hi Tvrtko,
> > > > 
> > > > On 16/07/25 11:46, Tvrtko Ursulin wrote:
> > > > > 
> > > > > On 16/07/2025 15:30, Maíra Canal wrote:
> > > > > > Hi Tvrtko,
> > > > > > 
> > > > > > On 16/07/25 10:49, Tvrtko Ursulin wrote:
> > > > > > > 
> > > > > > > On 16/07/2025 14:31, Maíra Canal wrote:
> > > > > > > > Hi Tvrtko,
> > > > > > > > 
> > > > > > > > On 16/07/25 05:51, Tvrtko Ursulin wrote:
> > > > > > > > > Currently the job free work item will lock sched-
> > > > > > > > > >job_list_lock
> > > > > > > > > first time
> > > > > > > > > to see if there are any jobs, free a single job, and
> > > > > > > > > then lock
> > > > > > > > > again to
> > > > > > > > > decide whether to re-queue itself if there are more
> > > > > > > > > finished jobs.
> > > > > > > > > 
> > > > > > > > > Since drm_sched_get_finished_job() already looks at
> > > > > > > > > the second job
> > > > > > > > > in the
> > > > > > > > > queue we can simply add the signaled check and have
> > > > > > > > > it return the
> > > > > > > > > presence
> > > > > > > > > of more jobs to be freed to the caller. That way the
> > > > > > > > > work item
> > > > > > > > > does not
> > > > > > > > > have to lock the list again and repeat the signaled
> > > > > > > > > check.
> > > > > > > > > 
> > > > > > > > > Signed-off-by: Tvrtko Ursulin
> > > > > > > > > <tvrtko.ursulin@igalia.com>
> > > > > > > > > Cc: Christian König <christian.koenig@amd.com>
> > > > > > > > > Cc: Danilo Krummrich <dakr@kernel.org>
> > > > > > > > > Cc: Maíra Canal <mcanal@igalia.com>
> > > > > > > > > Cc: Matthew Brost <matthew.brost@intel.com>
> > > > > > > > > Cc: Philipp Stanner <phasta@kernel.org>
> > > > > > > > > ---
> > > > > > > > > v2:
> > > > > > > > >    * Improve commit text and kerneldoc. (Philipp)
> > > > > > > > >    * Rename run free work helper. (Philipp)
> > > > > > > > > 
> > > > > > > > > v3:
> > > > > > > > >    * Rebase on top of Maira's changes.
> > > > > > > > > ---
> > > > > > > > >    drivers/gpu/drm/scheduler/sched_main.c | 53
> > > > > > > > > +++++++++
> > > > > > > > > +----------------
> > > > > > > > >    1 file changed, 21 insertions(+), 32 deletions(-)
> > > > > > > > > 
> > > > > > > > > diff --git a/drivers/gpu/drm/scheduler/sched_main.c
> > > > > > > > > b/drivers/gpu/
> > > > > > > > > drm/ scheduler/sched_main.c
> > > > > > > > > index e2cda28a1af4..5a550fd76bf0 100644
> > > > > > > > > --- a/drivers/gpu/drm/scheduler/sched_main.c
> > > > > > > > > +++ b/drivers/gpu/drm/scheduler/sched_main.c
> > > > > > > > > @@ -349,34 +349,13 @@ static void
> > > > > > > > > drm_sched_run_job_queue(struct
> > > > > > > > > drm_gpu_scheduler *sched)
> > > > > > > > >    }
> > > > > > > > >    /**
> > > > > > > > > - * __drm_sched_run_free_queue - enqueue free-job
> > > > > > > > > work
> > > > > > > > > - * @sched: scheduler instance
> > > > > > > > > - */
> > > > > > > > > -static void __drm_sched_run_free_queue(struct
> > > > > > > > > drm_gpu_scheduler
> > > > > > > > > *sched)
> > > > > > > > > -{
> > > > > > > > > -    if (!READ_ONCE(sched->pause_submit))
> > > > > > > > > -        queue_work(sched->submit_wq, &sched-
> > > > > > > > > >work_free_job);
> > > > > > > > > -}
> > > > > > > > > -
> > > > > > > > > -/**
> > > > > > > > > - * drm_sched_run_free_queue - enqueue free-job work
> > > > > > > > > if ready
> > > > > > > > > + * drm_sched_run_free_queue - enqueue free-job work
> > > > > > > > >     * @sched: scheduler instance
> > > > > > > > >     */
> > > > > > > > >    static void drm_sched_run_free_queue(struct
> > > > > > > > > drm_gpu_scheduler
> > > > > > > > > *sched)
> > > > > > > > >    {
> > > > > > > > > -    struct drm_sched_job *job;
> > > > > > > > > -
> > > > > > > > > -    job = list_first_entry_or_null(&sched-
> > > > > > > > > >pending_list,
> > > > > > > > > -                       struct drm_sched_job, list);
> > > > > > > > > -    if (job && dma_fence_is_signaled(&job->s_fence-
> > > > > > > > > >finished))
> > > > > > > > > -        __drm_sched_run_free_queue(sched);
> > > > > > > > 
> > > > > > > > I believe we'd still need this chunk for
> > > > > > > > DRM_GPU_SCHED_STAT_NO_HANG
> > > > > > > > (check the comment in
> > > > > > > > drm_sched_job_reinsert_on_false_timeout()). How
> > > > > > > 
> > > > > > > You mean the "is there a signaled job in the list check"
> > > > > > > is needed
> > > > > > > for drm_sched_job_reinsert_on_false_timeout()? Hmm why?
> > > > > > > Worst case
> > > > > > > is a false positive wakeup on the free worker, no?
> > > > > > 
> > > > > > Correct me if I'm mistaken, we would also have a false
> > > > > > positive wake-up
> > > > > > on the run_job worker, which I believe it could be
> > > > > > problematic in the
> > > > > > cases that we skipped the reset because the job is still
> > > > > > running.
> > > > > 
> > > > > Run job worker exits when it sees no free credits so I don't
> > > > > think
> > > > > there is a problem. What am I missing?
> > > > > 
> > > > 
> > > > I was the one missing the code in `drm_sched_can_queue()`.
> > > > Sorry for the
> > > > misleading comments. This is:
> > > > 
> > > > Reviewed-by: Maíra Canal <mcanal@igalia.com>
> > > 
> > > No worries, and thanks!
> > > 
> > > Philipp - are you okay with this version? V2 was done to address
> > > your
> > > feedback so that should be good now.
> > 
> > Was just giving it another spin when you wrote. (a [PATCH v3]
> > would've
> > been neat for identification, though – I almost pulled the wrong
> > patch
> > from the archive *wink*)
> 
> Oops, my bad.
> 
> > LGTM, improves things, can be merged.
> > 
> > However, we had to merge Lin Cao's bug fix [1] recently. That one
> > is
> > now in drm-misc-fixes, and your patch should go to drm-misc-next.
> > This
> > would cause a conflict once the two branches meet.
> > 
> > So I suggest that we wait with this non-urgent patch until drm-
> > misc-
> > fixes / Linus's -rc gets merged into drm-misc-next, and then we
> > apply
> > it. Should be next week or the week after AFAIK.
> > 
> > Unless somebody has a better idea, of course?
> 
> Lin's patch touches sched_entity.c only and mine only sched_main.c -
> ie. 
> no conflict AFAICT?

Aaahhh, I had a hallucination ^^'

It doesn't apply to drm-misc-fixes, but that is because fixes misses
changes that yours is based on. Because Lin's patch was the last thing
I touched on that branch I seem to have jumped to that conclusion.

Should be fine, then. My bad.

Will apply.


P.


> 
> Regards,
> 
> Tvrtko
> 
> > 
> > Remind me in case I forget.
> > 
> > 
> > P.
> > 
> > [1]
> > https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/15f77764e90a713ee3916ca424757688e4f565b9
> > 
> > 
> > > 
> > > Regards,
> > > 
> > > Tvrtko
> > > 
> > 
> 


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

* Re: [PATCH] drm/sched: Avoid double re-lock on the job free path
  2025-07-18  9:41                 ` Philipp Stanner
@ 2025-07-18 10:18                   ` Tvrtko Ursulin
  0 siblings, 0 replies; 25+ messages in thread
From: Tvrtko Ursulin @ 2025-07-18 10:18 UTC (permalink / raw)
  To: phasta, dri-devel
  Cc: kernel-dev, intel-xe, amd-gfx, Christian König,
	Danilo Krummrich, Matthew Brost, Maíra Canal


On 18/07/2025 10:41, Philipp Stanner wrote:
> On Fri, 2025-07-18 at 10:35 +0100, Tvrtko Ursulin wrote:
>>
>> On 18/07/2025 10:31, Philipp Stanner wrote:
>>> On Fri, 2025-07-18 at 08:13 +0100, Tvrtko Ursulin wrote:
>>>>
>>>> On 16/07/2025 21:44, Maíra Canal wrote:
>>>>> Hi Tvrtko,
>>>>>
>>>>> On 16/07/25 11:46, Tvrtko Ursulin wrote:
>>>>>>
>>>>>> On 16/07/2025 15:30, Maíra Canal wrote:
>>>>>>> Hi Tvrtko,
>>>>>>>
>>>>>>> On 16/07/25 10:49, Tvrtko Ursulin wrote:
>>>>>>>>
>>>>>>>> On 16/07/2025 14:31, Maíra Canal wrote:
>>>>>>>>> Hi Tvrtko,
>>>>>>>>>
>>>>>>>>> On 16/07/25 05:51, Tvrtko Ursulin wrote:
>>>>>>>>>> Currently the job free work item will lock sched-
>>>>>>>>>>> job_list_lock
>>>>>>>>>> first time
>>>>>>>>>> to see if there are any jobs, free a single job, and
>>>>>>>>>> then lock
>>>>>>>>>> again to
>>>>>>>>>> decide whether to re-queue itself if there are more
>>>>>>>>>> finished jobs.
>>>>>>>>>>
>>>>>>>>>> Since drm_sched_get_finished_job() already looks at
>>>>>>>>>> the second job
>>>>>>>>>> in the
>>>>>>>>>> queue we can simply add the signaled check and have
>>>>>>>>>> it return the
>>>>>>>>>> presence
>>>>>>>>>> of more jobs to be freed to the caller. That way the
>>>>>>>>>> work item
>>>>>>>>>> does not
>>>>>>>>>> have to lock the list again and repeat the signaled
>>>>>>>>>> check.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Tvrtko Ursulin
>>>>>>>>>> <tvrtko.ursulin@igalia.com>
>>>>>>>>>> Cc: Christian König <christian.koenig@amd.com>
>>>>>>>>>> Cc: Danilo Krummrich <dakr@kernel.org>
>>>>>>>>>> Cc: Maíra Canal <mcanal@igalia.com>
>>>>>>>>>> Cc: Matthew Brost <matthew.brost@intel.com>
>>>>>>>>>> Cc: Philipp Stanner <phasta@kernel.org>
>>>>>>>>>> ---
>>>>>>>>>> v2:
>>>>>>>>>>     * Improve commit text and kerneldoc. (Philipp)
>>>>>>>>>>     * Rename run free work helper. (Philipp)
>>>>>>>>>>
>>>>>>>>>> v3:
>>>>>>>>>>     * Rebase on top of Maira's changes.
>>>>>>>>>> ---
>>>>>>>>>>     drivers/gpu/drm/scheduler/sched_main.c | 53
>>>>>>>>>> +++++++++
>>>>>>>>>> +----------------
>>>>>>>>>>     1 file changed, 21 insertions(+), 32 deletions(-)
>>>>>>>>>>
>>>>>>>>>> diff --git a/drivers/gpu/drm/scheduler/sched_main.c
>>>>>>>>>> b/drivers/gpu/
>>>>>>>>>> drm/ scheduler/sched_main.c
>>>>>>>>>> index e2cda28a1af4..5a550fd76bf0 100644
>>>>>>>>>> --- a/drivers/gpu/drm/scheduler/sched_main.c
>>>>>>>>>> +++ b/drivers/gpu/drm/scheduler/sched_main.c
>>>>>>>>>> @@ -349,34 +349,13 @@ static void
>>>>>>>>>> drm_sched_run_job_queue(struct
>>>>>>>>>> drm_gpu_scheduler *sched)
>>>>>>>>>>     }
>>>>>>>>>>     /**
>>>>>>>>>> - * __drm_sched_run_free_queue - enqueue free-job
>>>>>>>>>> work
>>>>>>>>>> - * @sched: scheduler instance
>>>>>>>>>> - */
>>>>>>>>>> -static void __drm_sched_run_free_queue(struct
>>>>>>>>>> drm_gpu_scheduler
>>>>>>>>>> *sched)
>>>>>>>>>> -{
>>>>>>>>>> -    if (!READ_ONCE(sched->pause_submit))
>>>>>>>>>> -        queue_work(sched->submit_wq, &sched-
>>>>>>>>>>> work_free_job);
>>>>>>>>>> -}
>>>>>>>>>> -
>>>>>>>>>> -/**
>>>>>>>>>> - * drm_sched_run_free_queue - enqueue free-job work
>>>>>>>>>> if ready
>>>>>>>>>> + * drm_sched_run_free_queue - enqueue free-job work
>>>>>>>>>>      * @sched: scheduler instance
>>>>>>>>>>      */
>>>>>>>>>>     static void drm_sched_run_free_queue(struct
>>>>>>>>>> drm_gpu_scheduler
>>>>>>>>>> *sched)
>>>>>>>>>>     {
>>>>>>>>>> -    struct drm_sched_job *job;
>>>>>>>>>> -
>>>>>>>>>> -    job = list_first_entry_or_null(&sched-
>>>>>>>>>>> pending_list,
>>>>>>>>>> -                       struct drm_sched_job, list);
>>>>>>>>>> -    if (job && dma_fence_is_signaled(&job->s_fence-
>>>>>>>>>>> finished))
>>>>>>>>>> -        __drm_sched_run_free_queue(sched);
>>>>>>>>>
>>>>>>>>> I believe we'd still need this chunk for
>>>>>>>>> DRM_GPU_SCHED_STAT_NO_HANG
>>>>>>>>> (check the comment in
>>>>>>>>> drm_sched_job_reinsert_on_false_timeout()). How
>>>>>>>>
>>>>>>>> You mean the "is there a signaled job in the list check"
>>>>>>>> is needed
>>>>>>>> for drm_sched_job_reinsert_on_false_timeout()? Hmm why?
>>>>>>>> Worst case
>>>>>>>> is a false positive wakeup on the free worker, no?
>>>>>>>
>>>>>>> Correct me if I'm mistaken, we would also have a false
>>>>>>> positive wake-up
>>>>>>> on the run_job worker, which I believe it could be
>>>>>>> problematic in the
>>>>>>> cases that we skipped the reset because the job is still
>>>>>>> running.
>>>>>>
>>>>>> Run job worker exits when it sees no free credits so I don't
>>>>>> think
>>>>>> there is a problem. What am I missing?
>>>>>>
>>>>>
>>>>> I was the one missing the code in `drm_sched_can_queue()`.
>>>>> Sorry for the
>>>>> misleading comments. This is:
>>>>>
>>>>> Reviewed-by: Maíra Canal <mcanal@igalia.com>
>>>>
>>>> No worries, and thanks!
>>>>
>>>> Philipp - are you okay with this version? V2 was done to address
>>>> your
>>>> feedback so that should be good now.
>>>
>>> Was just giving it another spin when you wrote. (a [PATCH v3]
>>> would've
>>> been neat for identification, though – I almost pulled the wrong
>>> patch
>>> from the archive *wink*)
>>
>> Oops, my bad.
>>
>>> LGTM, improves things, can be merged.
>>>
>>> However, we had to merge Lin Cao's bug fix [1] recently. That one
>>> is
>>> now in drm-misc-fixes, and your patch should go to drm-misc-next.
>>> This
>>> would cause a conflict once the two branches meet.
>>>
>>> So I suggest that we wait with this non-urgent patch until drm-
>>> misc-
>>> fixes / Linus's -rc gets merged into drm-misc-next, and then we
>>> apply
>>> it. Should be next week or the week after AFAIK.
>>>
>>> Unless somebody has a better idea, of course?
>>
>> Lin's patch touches sched_entity.c only and mine only sched_main.c -
>> ie.
>> no conflict AFAICT?
> 
> Aaahhh, I had a hallucination ^^'
> 
> It doesn't apply to drm-misc-fixes, but that is because fixes misses
> changes that yours is based on. Because Lin's patch was the last thing
> I touched on that branch I seem to have jumped to that conclusion.
> 
> Should be fine, then. My bad.
> 
> Will apply.

Thank you!

This enables me to send out a rebase of the fair DRM scheduler series soon.

Regards,

Tvrtko

>>> Remind me in case I forget.
>>>
>>>
>>> P.
>>>
>>> [1]
>>> https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/15f77764e90a713ee3916ca424757688e4f565b9
>>>
>>>
>>>>
>>>> Regards,
>>>>
>>>> Tvrtko
>>>>
>>>
>>
> 


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

end of thread, other threads:[~2025-07-18 13:23 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-08 12:20 [PATCH] drm/sched: Avoid double re-lock on the job free path Tvrtko Ursulin
2025-07-08 12:26 ` ✓ CI.KUnit: success for " Patchwork
2025-07-08 13:07 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-08 14:28 ` ✗ Xe.CI.Full: failure " Patchwork
2025-07-09  4:45 ` [PATCH] " Matthew Brost
2025-07-09 10:49   ` Tvrtko Ursulin
2025-07-09 17:22     ` Matthew Brost
2025-07-11 12:39       ` Tvrtko Ursulin
2025-07-09 10:51 ` ✓ CI.KUnit: success for drm/sched: Avoid double re-lock on the job free path (rev2) Patchwork
2025-07-09 11:29 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-09 12:54 ` ✓ Xe.CI.Full: " Patchwork
2025-07-11 13:04 ` [PATCH] drm/sched: Avoid double re-lock on the job free path Philipp Stanner
2025-07-11 15:11   ` Tvrtko Ursulin
  -- strict thread matches above, loose matches on Subject: below --
2025-07-16  8:51 Tvrtko Ursulin
2025-07-16 13:31 ` Maíra Canal
2025-07-16 13:49   ` Tvrtko Ursulin
2025-07-16 14:30     ` Maíra Canal
2025-07-16 14:46       ` Tvrtko Ursulin
2025-07-16 20:44         ` Maíra Canal
2025-07-18  7:13           ` Tvrtko Ursulin
2025-07-18  9:31             ` Philipp Stanner
2025-07-18  9:35               ` Tvrtko Ursulin
2025-07-18  9:41                 ` Philipp Stanner
2025-07-18 10:18                   ` Tvrtko Ursulin
2025-01-14 10:59 Tvrtko Ursulin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.