Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc
@ 2024-05-29 19:29 Niranjana Vishwanathapura
  2024-05-29 21:00 ` ✓ CI.Patch_applied: success for " Patchwork
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Niranjana Vishwanathapura @ 2024-05-29 19:29 UTC (permalink / raw)
  To: intel-xe

Decouple xe_lrc from xe_exec_queue and reference count xe_lrc.
Removing hard coupling between xe_exec_queue and xe_lrc allows
flexible design where the user interface xe_exec_queue can be
destroyed independent of the hardware/firmware interface xe_lrc.

Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c       | 26 +++++++-------
 drivers/gpu/drm/xe/xe_exec_queue_types.h |  2 +-
 drivers/gpu/drm/xe/xe_execlist.c         | 10 +++---
 drivers/gpu/drm/xe/xe_gt.c               |  4 +--
 drivers/gpu/drm/xe/xe_guc_submit.c       | 30 ++++++++--------
 drivers/gpu/drm/xe/xe_hw_engine.c        | 10 +++---
 drivers/gpu/drm/xe/xe_hw_engine_types.h  |  2 +-
 drivers/gpu/drm/xe/xe_lrc.c              | 44 +++++++++++++++++++-----
 drivers/gpu/drm/xe/xe_lrc.h              | 19 ++++++++--
 drivers/gpu/drm/xe/xe_lrc_types.h        |  5 +++
 drivers/gpu/drm/xe/xe_ring_ops.c         | 10 +++---
 drivers/gpu/drm/xe/xe_sched_job.c        |  6 ++--
 12 files changed, 109 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index a2daae10ccc6..27215075c799 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -86,7 +86,7 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
 
 	if (extensions) {
 		/*
-		 * may set q->usm, must come before xe_lrc_init(),
+		 * may set q->usm, must come before xe_lrc_create(),
 		 * may overwrite q->sched_props, must come before q->ops->init()
 		 */
 		err = exec_queue_user_extensions(xe, q, extensions, 0);
@@ -104,9 +104,11 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
 	int i, err;
 
 	for (i = 0; i < q->width; ++i) {
-		err = xe_lrc_init(q->lrc + i, q->hwe, q, q->vm, SZ_16K);
-		if (err)
+		q->lrc[i] = xe_lrc_create(q->hwe, q->vm, SZ_16K);
+		if (IS_ERR(q->lrc[i])) {
+			err = PTR_ERR(q->lrc[i]);
 			goto err_lrc;
+		}
 	}
 
 	err = q->ops->init(q);
@@ -117,7 +119,7 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
 
 err_lrc:
 	for (i = i - 1; i >= 0; --i)
-		xe_lrc_finish(q->lrc + i);
+		xe_lrc_put(q->lrc[i]);
 	return err;
 }
 
@@ -198,7 +200,7 @@ void xe_exec_queue_fini(struct xe_exec_queue *q)
 	int i;
 
 	for (i = 0; i < q->width; ++i)
-		xe_lrc_finish(q->lrc + i);
+		xe_lrc_put(q->lrc[i]);
 	__xe_exec_queue_free(q);
 }
 
@@ -701,7 +703,7 @@ bool xe_exec_queue_is_lr(struct xe_exec_queue *q)
 
 static s32 xe_exec_queue_num_job_inflight(struct xe_exec_queue *q)
 {
-	return q->lrc->fence_ctx.next_seqno - xe_lrc_seqno(q->lrc) - 1;
+	return q->lrc[0]->fence_ctx.next_seqno - xe_lrc_seqno(q->lrc[0]) - 1;
 }
 
 /**
@@ -712,7 +714,7 @@ static s32 xe_exec_queue_num_job_inflight(struct xe_exec_queue *q)
  */
 bool xe_exec_queue_ring_full(struct xe_exec_queue *q)
 {
-	struct xe_lrc *lrc = q->lrc;
+	struct xe_lrc *lrc = q->lrc[0];
 	s32 max_job = lrc->ring.size / MAX_JOB_SIZE_BYTES;
 
 	return xe_exec_queue_num_job_inflight(q) >= max_job;
@@ -738,16 +740,16 @@ bool xe_exec_queue_is_idle(struct xe_exec_queue *q)
 		int i;
 
 		for (i = 0; i < q->width; ++i) {
-			if (xe_lrc_seqno(&q->lrc[i]) !=
-			    q->lrc[i].fence_ctx.next_seqno - 1)
+			if (xe_lrc_seqno(q->lrc[i]) !=
+			    q->lrc[i]->fence_ctx.next_seqno - 1)
 				return false;
 		}
 
 		return true;
 	}
 
-	return xe_lrc_seqno(&q->lrc[0]) ==
-		q->lrc[0].fence_ctx.next_seqno - 1;
+	return xe_lrc_seqno(q->lrc[0]) ==
+		q->lrc[0]->fence_ctx.next_seqno - 1;
 }
 
 /**
@@ -779,7 +781,7 @@ void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q)
 	 * the LRCs and reading them in different time could also introduce
 	 * errors.
 	 */
-	lrc = &q->lrc[0];
+	lrc = q->lrc[0];
 	new_ts = xe_lrc_update_timestamp(lrc, &old_ts);
 	q->run_ticks += (new_ts - old_ts) * q->width;
 }
diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index e81704c7c030..18d8b2a60928 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -146,7 +146,7 @@ struct xe_exec_queue {
 	/** @run_ticks: hw engine class run time in ticks for this exec queue */
 	u64 run_ticks;
 	/** @lrc: logical ring context for this exec queue */
-	struct xe_lrc lrc[];
+	struct xe_lrc *lrc[];
 };
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
index 8e5c591fcecd..db906117db6d 100644
--- a/drivers/gpu/drm/xe/xe_execlist.c
+++ b/drivers/gpu/drm/xe/xe_execlist.c
@@ -109,7 +109,7 @@ static void __xe_execlist_port_start(struct xe_execlist_port *port,
 			port->last_ctx_id = 1;
 	}
 
-	__start_lrc(port->hwe, exl->q->lrc, port->last_ctx_id);
+	__start_lrc(port->hwe, exl->q->lrc[0], port->last_ctx_id);
 	port->running_exl = exl;
 	exl->has_run = true;
 }
@@ -123,14 +123,14 @@ static void __xe_execlist_port_idle(struct xe_execlist_port *port)
 	if (!port->running_exl)
 		return;
 
-	xe_lrc_write_ring(&port->hwe->kernel_lrc, noop, sizeof(noop));
-	__start_lrc(port->hwe, &port->hwe->kernel_lrc, 0);
+	xe_lrc_write_ring(port->hwe->kernel_lrc, noop, sizeof(noop));
+	__start_lrc(port->hwe, port->hwe->kernel_lrc, 0);
 	port->running_exl = NULL;
 }
 
 static bool xe_execlist_is_idle(struct xe_execlist_exec_queue *exl)
 {
-	struct xe_lrc *lrc = exl->q->lrc;
+	struct xe_lrc *lrc = exl->q->lrc[0];
 
 	return lrc->ring.tail == lrc->ring.old_tail;
 }
@@ -333,7 +333,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q)
 	exl->q = q;
 
 	err = drm_sched_init(&exl->sched, &drm_sched_ops, NULL, 1,
-			     q->lrc[0].ring.size / MAX_JOB_SIZE_BYTES,
+			     q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES,
 			     XE_SCHED_HANG_LIMIT, XE_SCHED_JOB_TIMEOUT,
 			     NULL, NULL, q->hwe->name,
 			     gt_to_xe(q->gt)->drm.dev);
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 34c1896807e9..9e9da887f4ca 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -297,8 +297,8 @@ int xe_gt_record_default_lrcs(struct xe_gt *gt)
 		}
 
 		xe_map_memcpy_from(xe, default_lrc,
-				   &q->lrc[0].bo->vmap,
-				   xe_lrc_pphwsp_offset(&q->lrc[0]),
+				   &q->lrc[0]->bo->vmap,
+				   xe_lrc_pphwsp_offset(q->lrc[0]),
 				   xe_gt_lrc_size(gt, hwe->class));
 
 		gt->default_lrc[hwe->class] = default_lrc;
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index e22bd6b09a74..30b3619c2f26 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -490,7 +490,7 @@ static void __register_mlrc_exec_queue(struct xe_guc *guc,
 	action[len++] = info->hwlrca_hi;
 
 	for (i = 1; i < q->width; ++i) {
-		struct xe_lrc *lrc = q->lrc + i;
+		struct xe_lrc *lrc = q->lrc[i];
 
 		action[len++] = lower_32_bits(xe_lrc_descriptor(lrc));
 		action[len++] = upper_32_bits(xe_lrc_descriptor(lrc));
@@ -527,7 +527,7 @@ static void register_exec_queue(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct xe_lrc *lrc = q->lrc;
+	struct xe_lrc *lrc = q->lrc[0];
 	struct guc_ctxt_registration_info info;
 
 	xe_assert(xe, !exec_queue_registered(q));
@@ -586,7 +586,7 @@ static int wq_wait_for_space(struct xe_exec_queue *q, u32 wqi_size)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 	unsigned int sleep_period_ms = 1;
 
 #define AVAILABLE_SPACE \
@@ -614,7 +614,7 @@ static int wq_noop_append(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 	u32 len_dw = wq_space_until_wrap(q) / sizeof(u32) - 1;
 
 	if (wq_wait_for_space(q, wq_space_until_wrap(q)))
@@ -634,7 +634,7 @@ static void wq_item_append(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 #define WQ_HEADER_SIZE	4	/* Includes 1 LRC address too */
 	u32 wqi[XE_HW_ENGINE_MAX_INSTANCE + (WQ_HEADER_SIZE - 1)];
 	u32 wqi_size = (q->width + (WQ_HEADER_SIZE - 1)) * sizeof(u32);
@@ -650,12 +650,12 @@ static void wq_item_append(struct xe_exec_queue *q)
 
 	wqi[i++] = FIELD_PREP(WQ_TYPE_MASK, WQ_TYPE_MULTI_LRC) |
 		FIELD_PREP(WQ_LEN_MASK, len_dw);
-	wqi[i++] = xe_lrc_descriptor(q->lrc);
+	wqi[i++] = xe_lrc_descriptor(q->lrc[0]);
 	wqi[i++] = FIELD_PREP(WQ_GUC_ID_MASK, q->guc->id) |
-		FIELD_PREP(WQ_RING_TAIL_MASK, q->lrc->ring.tail / sizeof(u64));
+		FIELD_PREP(WQ_RING_TAIL_MASK, q->lrc[0]->ring.tail / sizeof(u64));
 	wqi[i++] = 0;
 	for (j = 1; j < q->width; ++j) {
-		struct xe_lrc *lrc = q->lrc + j;
+		struct xe_lrc *lrc = q->lrc[0] + j;
 
 		wqi[i++] = lrc->ring.tail / sizeof(u64);
 	}
@@ -670,7 +670,7 @@ static void wq_item_append(struct xe_exec_queue *q)
 
 	xe_device_wmb(xe);
 
-	map = xe_lrc_parallel_map(q->lrc);
+	map = xe_lrc_parallel_map(q->lrc[0]);
 	parallel_write(xe, map, wq_desc.tail, q->guc->wqi_tail);
 }
 
@@ -679,7 +679,7 @@ static void submit_exec_queue(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct xe_lrc *lrc = q->lrc;
+	struct xe_lrc *lrc = q->lrc[0];
 	u32 action[3];
 	u32 g2h_len = 0;
 	u32 num_g2h = 0;
@@ -1236,7 +1236,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
 		  msecs_to_jiffies(q->sched_props.job_timeout_ms);
 	err = xe_sched_init(&ge->sched, &drm_sched_ops, &xe_sched_ops,
 			    get_submit_wq(guc),
-			    q->lrc[0].ring.size / MAX_JOB_SIZE_BYTES, 64,
+			    q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES, 64,
 			    timeout, guc_to_gt(guc)->ordered_wq, NULL,
 			    q->name, gt_to_xe(q->gt)->drm.dev);
 	if (err)
@@ -1464,7 +1464,7 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
 				ban = true;
 			}
 		} else if (xe_exec_queue_is_lr(q) &&
-			   (xe_lrc_ring_head(q->lrc) != xe_lrc_ring_tail(q->lrc))) {
+			   (xe_lrc_ring_head(q->lrc[0]) != xe_lrc_ring_tail(q->lrc[0]))) {
 			ban = true;
 		}
 
@@ -1529,7 +1529,7 @@ static void guc_exec_queue_start(struct xe_exec_queue *q)
 
 		trace_xe_exec_queue_resubmit(q);
 		for (i = 0; i < q->width; ++i)
-			xe_lrc_set_ring_head(q->lrc + i, q->lrc[i].ring.tail);
+			xe_lrc_set_ring_head(q->lrc[i], q->lrc[i]->ring.tail);
 		xe_sched_resubmit_jobs(sched);
 	}
 
@@ -1775,7 +1775,7 @@ guc_exec_queue_wq_snapshot_capture(struct xe_exec_queue *q,
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 	int i;
 
 	snapshot->guc.wqi_head = q->guc->wqi_head;
@@ -1855,7 +1855,7 @@ xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q)
 
 	if (snapshot->lrc) {
 		for (i = 0; i < q->width; ++i) {
-			struct xe_lrc *lrc = q->lrc + i;
+			struct xe_lrc *lrc = q->lrc[i];
 
 			snapshot->lrc[i] = xe_lrc_snapshot_capture(lrc);
 		}
diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 9eef789be897..0a83506e1ad8 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -268,7 +268,7 @@ static void hw_engine_fini(struct drm_device *drm, void *arg)
 
 	if (hwe->exl_port)
 		xe_execlist_port_destroy(hwe->exl_port);
-	xe_lrc_finish(&hwe->kernel_lrc);
+	xe_lrc_put(hwe->kernel_lrc);
 
 	hwe->gt = NULL;
 }
@@ -527,9 +527,11 @@ static int hw_engine_init(struct xe_gt *gt, struct xe_hw_engine *hwe,
 		goto err_name;
 	}
 
-	err = xe_lrc_init(&hwe->kernel_lrc, hwe, NULL, NULL, SZ_16K);
-	if (err)
+	hwe->kernel_lrc = xe_lrc_create(hwe, NULL, SZ_16K);
+	if (IS_ERR(hwe->kernel_lrc)) {
+		err = PTR_ERR(hwe->kernel_lrc);
 		goto err_hwsp;
+	}
 
 	if (!xe_device_uc_enabled(xe)) {
 		hwe->exl_port = xe_execlist_port_create(xe, hwe);
@@ -554,7 +556,7 @@ static int hw_engine_init(struct xe_gt *gt, struct xe_hw_engine *hwe,
 	return drmm_add_action_or_reset(&xe->drm, hw_engine_fini, hwe);
 
 err_kernel_lrc:
-	xe_lrc_finish(&hwe->kernel_lrc);
+	xe_lrc_put(hwe->kernel_lrc);
 err_hwsp:
 	xe_bo_unpin_map_no_vm(hwe->hwsp);
 err_name:
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_types.h b/drivers/gpu/drm/xe/xe_hw_engine_types.h
index b2f64b92a636..580bbd7e83b2 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_types.h
+++ b/drivers/gpu/drm/xe/xe_hw_engine_types.h
@@ -137,7 +137,7 @@ struct xe_hw_engine {
 	/** @hwsp: hardware status page buffer object */
 	struct xe_bo *hwsp;
 	/** @kernel_lrc: Kernel LRC (should be replaced /w an xe_engine) */
-	struct xe_lrc kernel_lrc;
+	struct xe_lrc *kernel_lrc;
 	/** @exl_port: execlists port */
 	struct xe_execlist_port *exl_port;
 	/** @fence_irq: fence IRQ to run when a hw engine IRQ is received */
diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
index e91967070478..26922e1bac82 100644
--- a/drivers/gpu/drm/xe/xe_lrc.c
+++ b/drivers/gpu/drm/xe/xe_lrc.c
@@ -808,11 +808,20 @@ static void xe_lrc_set_ppgtt(struct xe_lrc *lrc, struct xe_vm *vm)
 	xe_lrc_write_ctx_reg(lrc, CTX_PDP0_LDW, lower_32_bits(desc));
 }
 
+static void xe_lrc_finish(struct xe_lrc *lrc)
+{
+	xe_hw_fence_ctx_finish(&lrc->fence_ctx);
+	xe_bo_lock(lrc->bo, false);
+	xe_bo_unpin(lrc->bo);
+	xe_bo_unlock(lrc->bo);
+	xe_bo_put(lrc->bo);
+}
+
 #define PVC_CTX_ASID		(0x2e + 1)
 #define PVC_CTX_ACC_CTR_THOLD	(0x2a + 1)
 
-int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
-		struct xe_exec_queue *q, struct xe_vm *vm, u32 ring_size)
+static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
+		       struct xe_vm *vm, u32 ring_size)
 {
 	struct xe_gt *gt = hwe->gt;
 	struct xe_tile *tile = gt_to_tile(gt);
@@ -823,6 +832,7 @@ int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
 	u32 lrc_size;
 	int err;
 
+	kref_init(&lrc->refcount);
 	lrc->flags = 0;
 	lrc_size = ring_size + xe_gt_lrc_size(gt, hwe->class);
 	if (xe_gt_has_indirect_ring_state(gt))
@@ -935,13 +945,31 @@ int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
 	return err;
 }
 
-void xe_lrc_finish(struct xe_lrc *lrc)
+struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
+			     u32 ring_size)
 {
-	xe_hw_fence_ctx_finish(&lrc->fence_ctx);
-	xe_bo_lock(lrc->bo, false);
-	xe_bo_unpin(lrc->bo);
-	xe_bo_unlock(lrc->bo);
-	xe_bo_put(lrc->bo);
+	struct xe_lrc *lrc;
+	int err;
+
+	lrc = kzalloc(sizeof(*lrc), GFP_KERNEL);
+	if (!lrc)
+		return ERR_PTR(-ENOMEM);
+
+	err = xe_lrc_init(lrc, hwe, vm, ring_size);
+	if (err) {
+		kfree(lrc);
+		return ERR_PTR(err);
+	}
+
+	return lrc;
+}
+
+void xe_lrc_destroy(struct kref *ref)
+{
+	struct xe_lrc *lrc = container_of(ref, struct xe_lrc, refcount);
+
+	xe_lrc_finish(lrc);
+	kfree(lrc);
 }
 
 void xe_lrc_set_ring_tail(struct xe_lrc *lrc, u32 tail)
diff --git a/drivers/gpu/drm/xe/xe_lrc.h b/drivers/gpu/drm/xe/xe_lrc.h
index c2df6bfd1889..ebe0e362e434 100644
--- a/drivers/gpu/drm/xe/xe_lrc.h
+++ b/drivers/gpu/drm/xe/xe_lrc.h
@@ -7,6 +7,8 @@
 
 #include <linux/types.h>
 
+#include "xe_lrc_types.h"
+
 struct drm_printer;
 struct xe_bb;
 struct xe_device;
@@ -20,9 +22,20 @@ struct xe_vm;
 
 #define LRC_PPHWSP_SCRATCH_ADDR (0x34 * 4)
 
-int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
-		struct xe_exec_queue *q, struct xe_vm *vm, u32 ring_size);
-void xe_lrc_finish(struct xe_lrc *lrc);
+struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
+			     u32 ring_size);
+void xe_lrc_destroy(struct kref *ref);
+
+static inline struct xe_lrc *xe_lrc_get(struct xe_lrc *lrc)
+{
+	kref_get(&lrc->refcount);
+	return lrc;
+}
+
+static inline void xe_lrc_put(struct xe_lrc *lrc)
+{
+	kref_put(&lrc->refcount, xe_lrc_destroy);
+}
 
 size_t xe_gt_lrc_size(struct xe_gt *gt, enum xe_engine_class class);
 u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc);
diff --git a/drivers/gpu/drm/xe/xe_lrc_types.h b/drivers/gpu/drm/xe/xe_lrc_types.h
index 0fa055da6b27..71ecb453f811 100644
--- a/drivers/gpu/drm/xe/xe_lrc_types.h
+++ b/drivers/gpu/drm/xe/xe_lrc_types.h
@@ -6,6 +6,8 @@
 #ifndef _XE_LRC_TYPES_H_
 #define _XE_LRC_TYPES_H_
 
+#include <linux/kref.h>
+
 #include "xe_hw_fence_types.h"
 
 struct xe_bo;
@@ -30,6 +32,9 @@ struct xe_lrc {
 #define XE_LRC_FLAG_INDIRECT_RING_STATE		0x1
 	u32 flags;
 
+	/** @refcount: ref count of this lrc */
+	struct kref refcount;
+
 	/** @ring: submission ring state */
 	struct {
 		/** @ring.size: size of submission ring */
diff --git a/drivers/gpu/drm/xe/xe_ring_ops.c b/drivers/gpu/drm/xe/xe_ring_ops.c
index 550c3eafbc1d..2a607c141d65 100644
--- a/drivers/gpu/drm/xe/xe_ring_ops.c
+++ b/drivers/gpu/drm/xe/xe_ring_ops.c
@@ -396,7 +396,7 @@ static void emit_job_gen12_gsc(struct xe_sched_job *job)
 
 	xe_gt_assert(gt, job->q->width <= 1); /* no parallel submission for GSCCS */
 
-	__emit_job_gen12_simple(job, job->q->lrc,
+	__emit_job_gen12_simple(job, job->q->lrc[0],
 				job->ptrs[0].batch_addr,
 				xe_sched_job_lrc_seqno(job));
 }
@@ -406,13 +406,13 @@ static void emit_job_gen12_copy(struct xe_sched_job *job)
 	int i;
 
 	if (xe_sched_job_is_migration(job->q)) {
-		emit_migration_job_gen12(job, job->q->lrc,
+		emit_migration_job_gen12(job, job->q->lrc[0],
 					 xe_sched_job_lrc_seqno(job));
 		return;
 	}
 
 	for (i = 0; i < job->q->width; ++i)
-		__emit_job_gen12_simple(job, job->q->lrc + i,
+		__emit_job_gen12_simple(job, job->q->lrc[i],
 					job->ptrs[i].batch_addr,
 					xe_sched_job_lrc_seqno(job));
 }
@@ -423,7 +423,7 @@ static void emit_job_gen12_video(struct xe_sched_job *job)
 
 	/* FIXME: Not doing parallel handshake for now */
 	for (i = 0; i < job->q->width; ++i)
-		__emit_job_gen12_video(job, job->q->lrc + i,
+		__emit_job_gen12_video(job, job->q->lrc[i],
 				       job->ptrs[i].batch_addr,
 				       xe_sched_job_lrc_seqno(job));
 }
@@ -433,7 +433,7 @@ static void emit_job_gen12_render_compute(struct xe_sched_job *job)
 	int i;
 
 	for (i = 0; i < job->q->width; ++i)
-		__emit_job_gen12_render_compute(job, job->q->lrc + i,
+		__emit_job_gen12_render_compute(job, job->q->lrc[i],
 						job->ptrs[i].batch_addr,
 						xe_sched_job_lrc_seqno(job));
 }
diff --git a/drivers/gpu/drm/xe/xe_sched_job.c b/drivers/gpu/drm/xe/xe_sched_job.c
index 29f3201d7dfa..5c013904877a 100644
--- a/drivers/gpu/drm/xe/xe_sched_job.c
+++ b/drivers/gpu/drm/xe/xe_sched_job.c
@@ -216,7 +216,7 @@ void xe_sched_job_set_error(struct xe_sched_job *job, int error)
 
 bool xe_sched_job_started(struct xe_sched_job *job)
 {
-	struct xe_lrc *lrc = job->q->lrc;
+	struct xe_lrc *lrc = job->q->lrc[0];
 
 	return !__dma_fence_is_later(xe_sched_job_lrc_seqno(job),
 				     xe_lrc_start_seqno(lrc),
@@ -225,7 +225,7 @@ bool xe_sched_job_started(struct xe_sched_job *job)
 
 bool xe_sched_job_completed(struct xe_sched_job *job)
 {
-	struct xe_lrc *lrc = job->q->lrc;
+	struct xe_lrc *lrc = job->q->lrc[0];
 
 	/*
 	 * Can safely check just LRC[0] seqno as that is last seqno written when
@@ -265,7 +265,7 @@ void xe_sched_job_arm(struct xe_sched_job *job)
 		struct dma_fence_chain *chain;
 
 		fence = job->ptrs[i].lrc_fence;
-		xe_lrc_init_seqno_fence(&q->lrc[i], fence);
+		xe_lrc_init_seqno_fence(q->lrc[i], fence);
 		job->ptrs[i].lrc_fence = NULL;
 		if (!i) {
 			job->lrc_seqno = fence->seqno;
-- 
2.43.0


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

* ✓ CI.Patch_applied: success for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
@ 2024-05-29 21:00 ` Patchwork
  2024-05-29 21:00 ` ✓ CI.checkpatch: " Patchwork
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-29 21:00 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: 55d6179b96e0 drm-tip: 2024y-05m-29d-17h-29m-17s UTC integration manifest
=== git am output follows ===
Applying: drm/xe: Decouple xe_exec_queue and xe_lrc



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

* ✓ CI.checkpatch: success for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
  2024-05-29 21:00 ` ✓ CI.Patch_applied: success for " Patchwork
@ 2024-05-29 21:00 ` Patchwork
  2024-05-29 21:01 ` ✓ CI.KUnit: " Patchwork
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-29 21:00 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : success

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
51ce9f6cd981d42d7467409d7dbc559a450abc1e
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 55b64b279f67b612deb8e35dd0c26046c762deb9
Author: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Date:   Wed May 29 12:29:46 2024 -0700

    drm/xe: Decouple xe_exec_queue and xe_lrc
    
    Decouple xe_lrc from xe_exec_queue and reference count xe_lrc.
    Removing hard coupling between xe_exec_queue and xe_lrc allows
    flexible design where the user interface xe_exec_queue can be
    destroyed independent of the hardware/firmware interface xe_lrc.
    
    Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
+ /mt/dim checkpatch 55d6179b96e0390025f2ba101c03b94b50cab7a1 drm-intel
55b64b279f67 drm/xe: Decouple xe_exec_queue and xe_lrc



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

* ✓ CI.KUnit: success for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
  2024-05-29 21:00 ` ✓ CI.Patch_applied: success for " Patchwork
  2024-05-29 21:00 ` ✓ CI.checkpatch: " Patchwork
@ 2024-05-29 21:01 ` Patchwork
  2024-05-29 21:13 ` ✓ CI.Build: " Patchwork
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-29 21:01 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[21:00:47] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:00:51] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
  156 | u64 ioread64_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
  163 | u64 ioread64_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
  170 | u64 ioread64be_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
  178 | u64 ioread64be_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
  264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
  272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
  280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
  288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~

[21:01:18] Starting KUnit Kernel (1/1)...
[21:01:18] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:01:18] =================== guc_dbm (7 subtests) ===================
[21:01:18] [PASSED] test_empty
[21:01:18] [PASSED] test_default
[21:01:18] ======================== test_size  ========================
[21:01:18] [PASSED] 4
[21:01:18] [PASSED] 8
[21:01:18] [PASSED] 32
[21:01:18] [PASSED] 256
[21:01:18] ==================== [PASSED] test_size ====================
[21:01:18] ======================= test_reuse  ========================
[21:01:18] [PASSED] 4
[21:01:18] [PASSED] 8
[21:01:18] [PASSED] 32
[21:01:18] [PASSED] 256
[21:01:18] =================== [PASSED] test_reuse ====================
[21:01:18] =================== test_range_overlap  ====================
[21:01:18] [PASSED] 4
[21:01:18] [PASSED] 8
[21:01:18] [PASSED] 32
[21:01:18] [PASSED] 256
[21:01:18] =============== [PASSED] test_range_overlap ================
[21:01:18] =================== test_range_compact  ====================
[21:01:18] [PASSED] 4
[21:01:18] [PASSED] 8
[21:01:18] [PASSED] 32
[21:01:18] [PASSED] 256
[21:01:18] =============== [PASSED] test_range_compact ================
[21:01:18] ==================== test_range_spare  =====================
[21:01:18] [PASSED] 4
[21:01:18] [PASSED] 8
[21:01:18] [PASSED] 32
[21:01:18] [PASSED] 256
[21:01:18] ================ [PASSED] test_range_spare =================
[21:01:18] ===================== [PASSED] guc_dbm =====================
[21:01:18] =================== guc_idm (6 subtests) ===================
[21:01:18] [PASSED] bad_init
[21:01:18] [PASSED] no_init
[21:01:18] [PASSED] init_fini
[21:01:18] [PASSED] check_used
[21:01:18] [PASSED] check_quota
[21:01:18] [PASSED] check_all
[21:01:18] ===================== [PASSED] guc_idm =====================
[21:01:18] ================== no_relay (3 subtests) ===================
[21:01:18] [PASSED] xe_drops_guc2pf_if_not_ready
[21:01:18] [PASSED] xe_drops_guc2vf_if_not_ready
[21:01:18] [PASSED] xe_rejects_send_if_not_ready
[21:01:18] ==================== [PASSED] no_relay =====================
[21:01:18] ================== pf_relay (14 subtests) ==================
[21:01:18] [PASSED] pf_rejects_guc2pf_too_short
[21:01:18] [PASSED] pf_rejects_guc2pf_too_long
[21:01:18] [PASSED] pf_rejects_guc2pf_no_payload
[21:01:18] [PASSED] pf_fails_no_payload
[21:01:18] [PASSED] pf_fails_bad_origin
[21:01:18] [PASSED] pf_fails_bad_type
[21:01:18] [PASSED] pf_txn_reports_error
[21:01:18] [PASSED] pf_txn_sends_pf2guc
[21:01:18] [PASSED] pf_sends_pf2guc
[21:01:18] [SKIPPED] pf_loopback_nop
[21:01:18] [SKIPPED] pf_loopback_echo
[21:01:18] [SKIPPED] pf_loopback_fail
[21:01:18] [SKIPPED] pf_loopback_busy
[21:01:18] [SKIPPED] pf_loopback_retry
[21:01:18] ==================== [PASSED] pf_relay =====================
[21:01:18] ================== vf_relay (3 subtests) ===================
[21:01:18] [PASSED] vf_rejects_guc2vf_too_short
[21:01:18] [PASSED] vf_rejects_guc2vf_too_long
[21:01:18] [PASSED] vf_rejects_guc2vf_no_payload
[21:01:18] ==================== [PASSED] vf_relay =====================
[21:01:18] ================= pf_service (11 subtests) =================
[21:01:18] [PASSED] pf_negotiate_any
[21:01:18] [PASSED] pf_negotiate_base_match
[21:01:18] [PASSED] pf_negotiate_base_newer
[21:01:18] [PASSED] pf_negotiate_base_next
[21:01:18] [SKIPPED] pf_negotiate_base_older
[21:01:18] [PASSED] pf_negotiate_base_prev
[21:01:18] [PASSED] pf_negotiate_latest_match
[21:01:18] [PASSED] pf_negotiate_latest_newer
[21:01:18] [PASSED] pf_negotiate_latest_next
[21:01:18] [SKIPPED] pf_negotiate_latest_older
[21:01:18] [SKIPPED] pf_negotiate_latest_prev
[21:01:18] =================== [PASSED] pf_service ====================
[21:01:18] ===================== lmtt (1 subtest) =====================
[21:01:18] ======================== test_ops  =========================
[21:01:18] [PASSED] 2-level
[21:01:18] [PASSED] multi-level
[21:01:18] ==================== [PASSED] test_ops =====================
[21:01:18] ====================== [PASSED] lmtt =======================
[21:01:18] ==================== xe_bo (2 subtests) ====================
[21:01:18] [SKIPPED] xe_ccs_migrate_kunit
[21:01:18] [SKIPPED] xe_bo_evict_kunit
[21:01:18] ===================== [SKIPPED] xe_bo ======================
[21:01:18] ================== xe_dma_buf (1 subtest) ==================
[21:01:18] [SKIPPED] xe_dma_buf_kunit
[21:01:18] =================== [SKIPPED] xe_dma_buf ===================
[21:01:18] ================== xe_migrate (1 subtest) ==================
[21:01:18] [SKIPPED] xe_migrate_sanity_kunit
[21:01:18] =================== [SKIPPED] xe_migrate ===================
[21:01:18] =================== xe_mocs (2 subtests) ===================
[21:01:18] [SKIPPED] xe_live_mocs_kernel_kunit
[21:01:18] [SKIPPED] xe_live_mocs_reset_kunit
[21:01:18] ==================== [SKIPPED] xe_mocs =====================
[21:01:18] ==================== args (11 subtests) ====================
[21:01:18] [PASSED] count_args_test
[21:01:18] [PASSED] call_args_example
[21:01:18] [PASSED] call_args_test
[21:01:18] [PASSED] drop_first_arg_example
[21:01:18] [PASSED] drop_first_arg_test
[21:01:18] [PASSED] first_arg_example
[21:01:18] [PASSED] first_arg_test
[21:01:18] [PASSED] last_arg_example
[21:01:18] [PASSED] last_arg_test
[21:01:18] [PASSED] pick_arg_example
[21:01:18] [PASSED] sep_comma_example
[21:01:18] ====================== [PASSED] args =======================
[21:01:18] =================== xe_pci (2 subtests) ====================
[21:01:18] [PASSED] xe_gmdid_graphics_ip
[21:01:18] [PASSED] xe_gmdid_media_ip
[21:01:18] ===================== [PASSED] xe_pci ======================
[21:01:18] ==================== xe_rtp (1 subtest) ====================
[21:01:18] ================== xe_rtp_process_tests  ===================
[21:01:18] [PASSED] coalesce-same-reg
[21:01:18] [PASSED] no-match-no-add
[21:01:18] [PASSED] no-match-no-add-multiple-rules
[21:01:18] [PASSED] two-regs-two-entries
[21:01:18] [PASSED] clr-one-set-other
[21:01:18] [PASSED] set-field
[21:01:18] [PASSED] conflict-duplicate
[21:01:18] [PASSED] conflict-not-disjoint
[21:01:18] [PASSED] conflict-reg-type
[21:01:18] ============== [PASSED] xe_rtp_process_tests ===============
stty: 'standard input': Inappropriate ioctl for device
[21:01:18] ===================== [PASSED] xe_rtp ======================
[21:01:18] ==================== xe_wa (1 subtest) =====================
[21:01:18] ======================== xe_wa_gt  =========================
[21:01:18] [PASSED] TIGERLAKE (B0)
[21:01:18] [PASSED] DG1 (A0)
[21:01:18] [PASSED] DG1 (B0)
[21:01:18] [PASSED] ALDERLAKE_S (A0)
[21:01:18] [PASSED] ALDERLAKE_S (B0)
[21:01:18] [PASSED] ALDERLAKE_S (C0)
[21:01:18] [PASSED] ALDERLAKE_S (D0)
[21:01:18] [PASSED] ALDERLAKE_P (A0)
[21:01:18] [PASSED] ALDERLAKE_P (B0)
[21:01:18] [PASSED] ALDERLAKE_P (C0)
[21:01:18] [PASSED] ALDERLAKE_S_RPLS (D0)
[21:01:18] [PASSED] ALDERLAKE_P_RPLU (E0)
[21:01:18] [PASSED] DG2_G10 (C0)
[21:01:18] [PASSED] DG2_G11 (B1)
[21:01:18] [PASSED] DG2_G12 (A1)
[21:01:18] [PASSED] METEORLAKE (g:A0, m:A0)
[21:01:18] [PASSED] METEORLAKE (g:A0, m:A0)
[21:01:18] [PASSED] METEORLAKE (g:A0, m:A0)
[21:01:18] [PASSED] LUNARLAKE (g:A0, m:A0)
[21:01:18] [PASSED] LUNARLAKE (g:B0, m:A0)
[21:01:18] ==================== [PASSED] xe_wa_gt =====================
[21:01:18] ====================== [PASSED] xe_wa ======================
[21:01:18] ============================================================
[21:01:18] Testing complete. Ran 109 tests: passed: 95, skipped: 14
[21:01:18] Elapsed time: 31.229s total, 4.277s configuring, 26.677s building, 0.232s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[21:01:18] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:01:20] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
  156 | u64 ioread64_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
  163 | u64 ioread64_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
  170 | u64 ioread64be_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
  178 | u64 ioread64be_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
  264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
  272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
  280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
  288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~

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

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



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

* ✓ CI.Build: success for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
                   ` (2 preceding siblings ...)
  2024-05-29 21:01 ` ✓ CI.KUnit: " Patchwork
@ 2024-05-29 21:13 ` Patchwork
  2024-05-29 21:13 ` ✗ CI.Hooks: failure " Patchwork
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-29 21:13 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : success

== Summary ==

lib/modules/6.10.0-rc1-xe/kernel/sound/core/seq/
lib/modules/6.10.0-rc1-xe/kernel/sound/core/seq/snd-seq.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/core/snd-seq-device.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/core/snd-hwdep.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/core/snd.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/core/snd-pcm.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/core/snd-compress.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/core/snd-timer.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soundcore.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/atom/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/atom/sst/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-acpi.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-core.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/common/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/intel/common/snd-soc-acpi-intel-match.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/amd/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/amd/snd-acp-config.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-tgl.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-mlink.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-cnl.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-lnl.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-generic.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-mtl.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/amd/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/amd/snd-sof-amd-renoir.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/amd/snd-sof-amd-acp.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/snd-sof-utils.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/snd-sof-pci.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/snd-sof.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/snd-sof-probes.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/xtensa/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/sof/xtensa/snd-sof-xtensa-dsp.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/snd-soc-core.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/snd-soc-acpi.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/codecs/
lib/modules/6.10.0-rc1-xe/kernel/sound/soc/codecs/snd-soc-hdac-hda.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/hda/
lib/modules/6.10.0-rc1-xe/kernel/sound/hda/snd-intel-sdw-acpi.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/hda/ext/
lib/modules/6.10.0-rc1-xe/kernel/sound/hda/ext/snd-hda-ext-core.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/hda/snd-intel-dspcfg.ko
lib/modules/6.10.0-rc1-xe/kernel/sound/hda/snd-hda-core.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/kernel/
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/kernel/msr.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/kernel/cpuid.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/sha512-ssse3.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/crct10dif-pclmul.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/ghash-clmulni-intel.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/sha1-ssse3.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/crc32-pclmul.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/sha256-ssse3.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/aesni-intel.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/crypto/polyval-clmulni.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/events/
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/events/intel/
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/events/intel/intel-cstate.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/events/rapl.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/kvm/
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.10.0-rc1-xe/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/
lib/modules/6.10.0-rc1-xe/kernel/crypto/crypto_simd.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/cmac.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/ccm.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/cryptd.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/polyval-generic.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/async_tx/
lib/modules/6.10.0-rc1-xe/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.10.0-rc1-xe/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.10.0-rc1-xe/build
lib/modules/6.10.0-rc1-xe/modules.alias.bin
lib/modules/6.10.0-rc1-xe/modules.builtin
lib/modules/6.10.0-rc1-xe/modules.softdep
lib/modules/6.10.0-rc1-xe/modules.alias
lib/modules/6.10.0-rc1-xe/modules.order
lib/modules/6.10.0-rc1-xe/modules.symbols
lib/modules/6.10.0-rc1-xe/modules.dep.bin
+ mv kernel-nodebug.tar.gz ..
+ cd ..
+ rm -rf archive
++ date +%s
+ echo -e '\e[0Ksection_end:1717017199:package_x86_64_nodebug\r\e[0K'
+ sync
^[[0Ksection_end:1717017199:package_x86_64_nodebug
^[[0K
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* ✗ CI.Hooks: failure for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
                   ` (3 preceding siblings ...)
  2024-05-29 21:13 ` ✓ CI.Build: " Patchwork
@ 2024-05-29 21:13 ` Patchwork
  2024-05-29 21:15 ` ✓ CI.checksparse: success " Patchwork
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-29 21:13 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : failure

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
  GEN     Makefile
  UPD     include/generated/compile.h
  UPD     include/config/kernel.release
mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool 
  UPD     include/generated/utsrelease.h
  HOSTCC  /workspace/kernel/build64-default/tools/objtool/fixdep.o
  CALL    ../scripts/checksyscalls.sh
  HOSTLD  /workspace/kernel/build64-default/tools/objtool/fixdep-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/fixdep
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64-default/tools/objtool/weak.o
  CC      /workspace/kernel/build64-default/tools/objtool/check.o
  CC      /workspace/kernel/build64-default/tools/objtool/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64-default/tools/objtool/elf.o
  CC      /workspace/kernel/build64-default/tools/objtool/objtool.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64-default/tools/objtool/libstring.o
  CC      /workspace/kernel/build64-default/tools/objtool/libctype.o
  CC      /workspace/kernel/build64-default/tools/objtool/str_error_r.o
  CC      /workspace/kernel/build64-default/tools/objtool/librbtree.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.o
  LD      /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
  LD      /workspace/kernel/build64-default/tools/objtool/objtool-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default M=drivers/gpu/drm/xe W=1
make[1]: Entering directory '/workspace/kernel/build64-default'
../scripts/Makefile.build:41: drivers/gpu/drm/xe/Makefile: No such file or directory
make[3]: *** No rule to make target 'drivers/gpu/drm/xe/Makefile'.  Stop.
make[2]: *** [/workspace/kernel/Makefile:1934: drivers/gpu/drm/xe] Error 2
make[1]: *** [/workspace/kernel/Makefile:240: __sub-make] Error 2
make[1]: Leaving directory '/workspace/kernel/build64-default'
make: *** [Makefile:240: __sub-make] Error 2
run-parts: /workspace/ci/hooks/10-build-W1 exited with return code 2



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

* ✓ CI.checksparse: success for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
                   ` (4 preceding siblings ...)
  2024-05-29 21:13 ` ✗ CI.Hooks: failure " Patchwork
@ 2024-05-29 21:15 ` Patchwork
  2024-05-29 21:39 ` ✗ CI.BAT: failure " Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-29 21:15 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : success

== Summary ==

+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 55d6179b96e0390025f2ba101c03b94b50cab7a1
Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1)
Fast mode used, each commit won't be checked separately.
Okay!

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



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

* ✗ CI.BAT: failure for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
                   ` (5 preceding siblings ...)
  2024-05-29 21:15 ` ✓ CI.checksparse: success " Patchwork
@ 2024-05-29 21:39 ` Patchwork
  2024-05-29 21:41 ` [PATCH] " Matthew Brost
  2024-05-30  0:42 ` ✗ CI.FULL: failure for " Patchwork
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-29 21:39 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : failure

== Summary ==

CI Bug Log - changes from xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1_BAT -> xe-pw-134202v1_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-134202v1_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-134202v1_BAT, 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 -> 5)
------------------------------

  Additional (1): bat-atsm-2 

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

  Here are the unknown changes that may have been introduced in xe-pw-134202v1_BAT:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_exec_balancer@twice-parallel-basic:
    - bat-pvc-2:          [PASS][1] -> [FAIL][2] +3 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/bat-pvc-2/igt@xe_exec_balancer@twice-parallel-basic.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-pvc-2/igt@xe_exec_balancer@twice-parallel-basic.html

  * igt@xe_exec_balancer@twice-parallel-rebind:
    - bat-dg2-oem2:       [PASS][3] -> [FAIL][4] +2 other tests fail
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/bat-dg2-oem2/igt@xe_exec_balancer@twice-parallel-rebind.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-dg2-oem2/igt@xe_exec_balancer@twice-parallel-rebind.html

  * igt@xe_exec_balancer@twice-parallel-userptr-rebind:
    - bat-atsm-2:         NOTRUN -> [FAIL][5] +3 other tests fail
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@xe_exec_balancer@twice-parallel-userptr-rebind.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_addfb_basic@invalid-set-prop-any:
    - bat-atsm-2:         NOTRUN -> [SKIP][6] ([i915#6077]) +30 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_addfb_basic@invalid-set-prop-any.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - bat-atsm-2:         NOTRUN -> [SKIP][7] ([Intel XE#1024] / [Intel XE#782]) +5 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@kms_dsc@dsc-basic:
    - bat-atsm-2:         NOTRUN -> [SKIP][8] ([Intel XE#1024] / [Intel XE#784])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_dsc@dsc-basic.html

  * igt@kms_flip@basic-flip-vs-modeset:
    - bat-atsm-2:         NOTRUN -> [SKIP][9] ([Intel XE#1024] / [Intel XE#947]) +3 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_flip@basic-flip-vs-modeset.html

  * igt@kms_force_connector_basic@force-connector-state:
    - bat-atsm-2:         NOTRUN -> [SKIP][10] ([Intel XE#540]) +3 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-atsm-2:         NOTRUN -> [SKIP][11] ([Intel XE#1024] / [Intel XE#783])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@nonblocking-crc:
    - bat-atsm-2:         NOTRUN -> [SKIP][12] ([i915#1836]) +6 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_pipe_crc_basic@nonblocking-crc.html

  * igt@kms_prop_blob@basic:
    - bat-atsm-2:         NOTRUN -> [SKIP][13] ([Intel XE#780])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_prop_blob@basic.html

  * igt@kms_psr@psr-primary-page-flip:
    - bat-atsm-2:         NOTRUN -> [SKIP][14] ([Intel XE#1024]) +2 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@kms_psr@psr-primary-page-flip.html

  * igt@xe_exec_fault_mode@twice-userptr-invalidate-imm:
    - bat-atsm-2:         NOTRUN -> [SKIP][15] ([Intel XE#288]) +32 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-invalidate-imm.html

  * igt@xe_huc_copy@huc_copy:
    - bat-atsm-2:         NOTRUN -> [SKIP][16] ([Intel XE#255])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@xe_huc_copy@huc_copy.html

  * igt@xe_pat@pat-index-xe2:
    - bat-atsm-2:         NOTRUN -> [SKIP][17] ([Intel XE#977])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@xe_pat@pat-index-xe2.html

  * igt@xe_pat@pat-index-xehpc:
    - bat-atsm-2:         NOTRUN -> [SKIP][18] ([Intel XE#979]) +1 other test skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/bat-atsm-2/igt@xe_pat@pat-index-xehpc.html

  
  [Intel XE#1024]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1024
  [Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/540
  [Intel XE#780]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/780
  [Intel XE#782]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/782
  [Intel XE#783]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/783
  [Intel XE#784]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/784
  [Intel XE#947]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/947
  [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#1836]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1836
  [i915#6077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6077


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

  * Linux: xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1 -> xe-pw-134202v1

  IGT_7873: b9bcded9123ac56ce05748de6c4870fb49451b87 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1: 55d6179b96e0390025f2ba101c03b94b50cab7a1
  xe-pw-134202v1: 134202v1

== Logs ==

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

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

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

* Re: [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
                   ` (6 preceding siblings ...)
  2024-05-29 21:39 ` ✗ CI.BAT: failure " Patchwork
@ 2024-05-29 21:41 ` Matthew Brost
  2024-05-30  0:42 ` ✗ CI.FULL: failure for " Patchwork
  8 siblings, 0 replies; 11+ messages in thread
From: Matthew Brost @ 2024-05-29 21:41 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

On Wed, May 29, 2024 at 12:29:46PM -0700, Niranjana Vishwanathapura wrote:
> Decouple xe_lrc from xe_exec_queue and reference count xe_lrc.
> Removing hard coupling between xe_exec_queue and xe_lrc allows
> flexible design where the user interface xe_exec_queue can be
> destroyed independent of the hardware/firmware interface xe_lrc.
> 
> Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>

Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_exec_queue.c       | 26 +++++++-------
>  drivers/gpu/drm/xe/xe_exec_queue_types.h |  2 +-
>  drivers/gpu/drm/xe/xe_execlist.c         | 10 +++---
>  drivers/gpu/drm/xe/xe_gt.c               |  4 +--
>  drivers/gpu/drm/xe/xe_guc_submit.c       | 30 ++++++++--------
>  drivers/gpu/drm/xe/xe_hw_engine.c        | 10 +++---
>  drivers/gpu/drm/xe/xe_hw_engine_types.h  |  2 +-
>  drivers/gpu/drm/xe/xe_lrc.c              | 44 +++++++++++++++++++-----
>  drivers/gpu/drm/xe/xe_lrc.h              | 19 ++++++++--
>  drivers/gpu/drm/xe/xe_lrc_types.h        |  5 +++
>  drivers/gpu/drm/xe/xe_ring_ops.c         | 10 +++---
>  drivers/gpu/drm/xe/xe_sched_job.c        |  6 ++--
>  12 files changed, 109 insertions(+), 59 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
> index a2daae10ccc6..27215075c799 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -86,7 +86,7 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
>  
>  	if (extensions) {
>  		/*
> -		 * may set q->usm, must come before xe_lrc_init(),
> +		 * may set q->usm, must come before xe_lrc_create(),
>  		 * may overwrite q->sched_props, must come before q->ops->init()
>  		 */
>  		err = exec_queue_user_extensions(xe, q, extensions, 0);
> @@ -104,9 +104,11 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
>  	int i, err;
>  
>  	for (i = 0; i < q->width; ++i) {
> -		err = xe_lrc_init(q->lrc + i, q->hwe, q, q->vm, SZ_16K);
> -		if (err)
> +		q->lrc[i] = xe_lrc_create(q->hwe, q->vm, SZ_16K);
> +		if (IS_ERR(q->lrc[i])) {
> +			err = PTR_ERR(q->lrc[i]);
>  			goto err_lrc;
> +		}
>  	}
>  
>  	err = q->ops->init(q);
> @@ -117,7 +119,7 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
>  
>  err_lrc:
>  	for (i = i - 1; i >= 0; --i)
> -		xe_lrc_finish(q->lrc + i);
> +		xe_lrc_put(q->lrc[i]);
>  	return err;
>  }
>  
> @@ -198,7 +200,7 @@ void xe_exec_queue_fini(struct xe_exec_queue *q)
>  	int i;
>  
>  	for (i = 0; i < q->width; ++i)
> -		xe_lrc_finish(q->lrc + i);
> +		xe_lrc_put(q->lrc[i]);
>  	__xe_exec_queue_free(q);
>  }
>  
> @@ -701,7 +703,7 @@ bool xe_exec_queue_is_lr(struct xe_exec_queue *q)
>  
>  static s32 xe_exec_queue_num_job_inflight(struct xe_exec_queue *q)
>  {
> -	return q->lrc->fence_ctx.next_seqno - xe_lrc_seqno(q->lrc) - 1;
> +	return q->lrc[0]->fence_ctx.next_seqno - xe_lrc_seqno(q->lrc[0]) - 1;
>  }
>  
>  /**
> @@ -712,7 +714,7 @@ static s32 xe_exec_queue_num_job_inflight(struct xe_exec_queue *q)
>   */
>  bool xe_exec_queue_ring_full(struct xe_exec_queue *q)
>  {
> -	struct xe_lrc *lrc = q->lrc;
> +	struct xe_lrc *lrc = q->lrc[0];
>  	s32 max_job = lrc->ring.size / MAX_JOB_SIZE_BYTES;
>  
>  	return xe_exec_queue_num_job_inflight(q) >= max_job;
> @@ -738,16 +740,16 @@ bool xe_exec_queue_is_idle(struct xe_exec_queue *q)
>  		int i;
>  
>  		for (i = 0; i < q->width; ++i) {
> -			if (xe_lrc_seqno(&q->lrc[i]) !=
> -			    q->lrc[i].fence_ctx.next_seqno - 1)
> +			if (xe_lrc_seqno(q->lrc[i]) !=
> +			    q->lrc[i]->fence_ctx.next_seqno - 1)
>  				return false;
>  		}
>  
>  		return true;
>  	}
>  
> -	return xe_lrc_seqno(&q->lrc[0]) ==
> -		q->lrc[0].fence_ctx.next_seqno - 1;
> +	return xe_lrc_seqno(q->lrc[0]) ==
> +		q->lrc[0]->fence_ctx.next_seqno - 1;
>  }
>  
>  /**
> @@ -779,7 +781,7 @@ void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q)
>  	 * the LRCs and reading them in different time could also introduce
>  	 * errors.
>  	 */
> -	lrc = &q->lrc[0];
> +	lrc = q->lrc[0];
>  	new_ts = xe_lrc_update_timestamp(lrc, &old_ts);
>  	q->run_ticks += (new_ts - old_ts) * q->width;
>  }
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
> index e81704c7c030..18d8b2a60928 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
> +++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
> @@ -146,7 +146,7 @@ struct xe_exec_queue {
>  	/** @run_ticks: hw engine class run time in ticks for this exec queue */
>  	u64 run_ticks;
>  	/** @lrc: logical ring context for this exec queue */
> -	struct xe_lrc lrc[];
> +	struct xe_lrc *lrc[];
>  };
>  
>  /**
> diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
> index 8e5c591fcecd..db906117db6d 100644
> --- a/drivers/gpu/drm/xe/xe_execlist.c
> +++ b/drivers/gpu/drm/xe/xe_execlist.c
> @@ -109,7 +109,7 @@ static void __xe_execlist_port_start(struct xe_execlist_port *port,
>  			port->last_ctx_id = 1;
>  	}
>  
> -	__start_lrc(port->hwe, exl->q->lrc, port->last_ctx_id);
> +	__start_lrc(port->hwe, exl->q->lrc[0], port->last_ctx_id);
>  	port->running_exl = exl;
>  	exl->has_run = true;
>  }
> @@ -123,14 +123,14 @@ static void __xe_execlist_port_idle(struct xe_execlist_port *port)
>  	if (!port->running_exl)
>  		return;
>  
> -	xe_lrc_write_ring(&port->hwe->kernel_lrc, noop, sizeof(noop));
> -	__start_lrc(port->hwe, &port->hwe->kernel_lrc, 0);
> +	xe_lrc_write_ring(port->hwe->kernel_lrc, noop, sizeof(noop));
> +	__start_lrc(port->hwe, port->hwe->kernel_lrc, 0);
>  	port->running_exl = NULL;
>  }
>  
>  static bool xe_execlist_is_idle(struct xe_execlist_exec_queue *exl)
>  {
> -	struct xe_lrc *lrc = exl->q->lrc;
> +	struct xe_lrc *lrc = exl->q->lrc[0];
>  
>  	return lrc->ring.tail == lrc->ring.old_tail;
>  }
> @@ -333,7 +333,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q)
>  	exl->q = q;
>  
>  	err = drm_sched_init(&exl->sched, &drm_sched_ops, NULL, 1,
> -			     q->lrc[0].ring.size / MAX_JOB_SIZE_BYTES,
> +			     q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES,
>  			     XE_SCHED_HANG_LIMIT, XE_SCHED_JOB_TIMEOUT,
>  			     NULL, NULL, q->hwe->name,
>  			     gt_to_xe(q->gt)->drm.dev);
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index 34c1896807e9..9e9da887f4ca 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -297,8 +297,8 @@ int xe_gt_record_default_lrcs(struct xe_gt *gt)
>  		}
>  
>  		xe_map_memcpy_from(xe, default_lrc,
> -				   &q->lrc[0].bo->vmap,
> -				   xe_lrc_pphwsp_offset(&q->lrc[0]),
> +				   &q->lrc[0]->bo->vmap,
> +				   xe_lrc_pphwsp_offset(q->lrc[0]),
>  				   xe_gt_lrc_size(gt, hwe->class));
>  
>  		gt->default_lrc[hwe->class] = default_lrc;
> diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
> index e22bd6b09a74..30b3619c2f26 100644
> --- a/drivers/gpu/drm/xe/xe_guc_submit.c
> +++ b/drivers/gpu/drm/xe/xe_guc_submit.c
> @@ -490,7 +490,7 @@ static void __register_mlrc_exec_queue(struct xe_guc *guc,
>  	action[len++] = info->hwlrca_hi;
>  
>  	for (i = 1; i < q->width; ++i) {
> -		struct xe_lrc *lrc = q->lrc + i;
> +		struct xe_lrc *lrc = q->lrc[i];
>  
>  		action[len++] = lower_32_bits(xe_lrc_descriptor(lrc));
>  		action[len++] = upper_32_bits(xe_lrc_descriptor(lrc));
> @@ -527,7 +527,7 @@ static void register_exec_queue(struct xe_exec_queue *q)
>  {
>  	struct xe_guc *guc = exec_queue_to_guc(q);
>  	struct xe_device *xe = guc_to_xe(guc);
> -	struct xe_lrc *lrc = q->lrc;
> +	struct xe_lrc *lrc = q->lrc[0];
>  	struct guc_ctxt_registration_info info;
>  
>  	xe_assert(xe, !exec_queue_registered(q));
> @@ -586,7 +586,7 @@ static int wq_wait_for_space(struct xe_exec_queue *q, u32 wqi_size)
>  {
>  	struct xe_guc *guc = exec_queue_to_guc(q);
>  	struct xe_device *xe = guc_to_xe(guc);
> -	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
> +	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
>  	unsigned int sleep_period_ms = 1;
>  
>  #define AVAILABLE_SPACE \
> @@ -614,7 +614,7 @@ static int wq_noop_append(struct xe_exec_queue *q)
>  {
>  	struct xe_guc *guc = exec_queue_to_guc(q);
>  	struct xe_device *xe = guc_to_xe(guc);
> -	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
> +	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
>  	u32 len_dw = wq_space_until_wrap(q) / sizeof(u32) - 1;
>  
>  	if (wq_wait_for_space(q, wq_space_until_wrap(q)))
> @@ -634,7 +634,7 @@ static void wq_item_append(struct xe_exec_queue *q)
>  {
>  	struct xe_guc *guc = exec_queue_to_guc(q);
>  	struct xe_device *xe = guc_to_xe(guc);
> -	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
> +	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
>  #define WQ_HEADER_SIZE	4	/* Includes 1 LRC address too */
>  	u32 wqi[XE_HW_ENGINE_MAX_INSTANCE + (WQ_HEADER_SIZE - 1)];
>  	u32 wqi_size = (q->width + (WQ_HEADER_SIZE - 1)) * sizeof(u32);
> @@ -650,12 +650,12 @@ static void wq_item_append(struct xe_exec_queue *q)
>  
>  	wqi[i++] = FIELD_PREP(WQ_TYPE_MASK, WQ_TYPE_MULTI_LRC) |
>  		FIELD_PREP(WQ_LEN_MASK, len_dw);
> -	wqi[i++] = xe_lrc_descriptor(q->lrc);
> +	wqi[i++] = xe_lrc_descriptor(q->lrc[0]);
>  	wqi[i++] = FIELD_PREP(WQ_GUC_ID_MASK, q->guc->id) |
> -		FIELD_PREP(WQ_RING_TAIL_MASK, q->lrc->ring.tail / sizeof(u64));
> +		FIELD_PREP(WQ_RING_TAIL_MASK, q->lrc[0]->ring.tail / sizeof(u64));
>  	wqi[i++] = 0;
>  	for (j = 1; j < q->width; ++j) {
> -		struct xe_lrc *lrc = q->lrc + j;
> +		struct xe_lrc *lrc = q->lrc[0] + j;
>  
>  		wqi[i++] = lrc->ring.tail / sizeof(u64);
>  	}
> @@ -670,7 +670,7 @@ static void wq_item_append(struct xe_exec_queue *q)
>  
>  	xe_device_wmb(xe);
>  
> -	map = xe_lrc_parallel_map(q->lrc);
> +	map = xe_lrc_parallel_map(q->lrc[0]);
>  	parallel_write(xe, map, wq_desc.tail, q->guc->wqi_tail);
>  }
>  
> @@ -679,7 +679,7 @@ static void submit_exec_queue(struct xe_exec_queue *q)
>  {
>  	struct xe_guc *guc = exec_queue_to_guc(q);
>  	struct xe_device *xe = guc_to_xe(guc);
> -	struct xe_lrc *lrc = q->lrc;
> +	struct xe_lrc *lrc = q->lrc[0];
>  	u32 action[3];
>  	u32 g2h_len = 0;
>  	u32 num_g2h = 0;
> @@ -1236,7 +1236,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
>  		  msecs_to_jiffies(q->sched_props.job_timeout_ms);
>  	err = xe_sched_init(&ge->sched, &drm_sched_ops, &xe_sched_ops,
>  			    get_submit_wq(guc),
> -			    q->lrc[0].ring.size / MAX_JOB_SIZE_BYTES, 64,
> +			    q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES, 64,
>  			    timeout, guc_to_gt(guc)->ordered_wq, NULL,
>  			    q->name, gt_to_xe(q->gt)->drm.dev);
>  	if (err)
> @@ -1464,7 +1464,7 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
>  				ban = true;
>  			}
>  		} else if (xe_exec_queue_is_lr(q) &&
> -			   (xe_lrc_ring_head(q->lrc) != xe_lrc_ring_tail(q->lrc))) {
> +			   (xe_lrc_ring_head(q->lrc[0]) != xe_lrc_ring_tail(q->lrc[0]))) {
>  			ban = true;
>  		}
>  
> @@ -1529,7 +1529,7 @@ static void guc_exec_queue_start(struct xe_exec_queue *q)
>  
>  		trace_xe_exec_queue_resubmit(q);
>  		for (i = 0; i < q->width; ++i)
> -			xe_lrc_set_ring_head(q->lrc + i, q->lrc[i].ring.tail);
> +			xe_lrc_set_ring_head(q->lrc[i], q->lrc[i]->ring.tail);
>  		xe_sched_resubmit_jobs(sched);
>  	}
>  
> @@ -1775,7 +1775,7 @@ guc_exec_queue_wq_snapshot_capture(struct xe_exec_queue *q,
>  {
>  	struct xe_guc *guc = exec_queue_to_guc(q);
>  	struct xe_device *xe = guc_to_xe(guc);
> -	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
> +	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
>  	int i;
>  
>  	snapshot->guc.wqi_head = q->guc->wqi_head;
> @@ -1855,7 +1855,7 @@ xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q)
>  
>  	if (snapshot->lrc) {
>  		for (i = 0; i < q->width; ++i) {
> -			struct xe_lrc *lrc = q->lrc + i;
> +			struct xe_lrc *lrc = q->lrc[i];
>  
>  			snapshot->lrc[i] = xe_lrc_snapshot_capture(lrc);
>  		}
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
> index 9eef789be897..0a83506e1ad8 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> @@ -268,7 +268,7 @@ static void hw_engine_fini(struct drm_device *drm, void *arg)
>  
>  	if (hwe->exl_port)
>  		xe_execlist_port_destroy(hwe->exl_port);
> -	xe_lrc_finish(&hwe->kernel_lrc);
> +	xe_lrc_put(hwe->kernel_lrc);
>  
>  	hwe->gt = NULL;
>  }
> @@ -527,9 +527,11 @@ static int hw_engine_init(struct xe_gt *gt, struct xe_hw_engine *hwe,
>  		goto err_name;
>  	}
>  
> -	err = xe_lrc_init(&hwe->kernel_lrc, hwe, NULL, NULL, SZ_16K);
> -	if (err)
> +	hwe->kernel_lrc = xe_lrc_create(hwe, NULL, SZ_16K);
> +	if (IS_ERR(hwe->kernel_lrc)) {
> +		err = PTR_ERR(hwe->kernel_lrc);
>  		goto err_hwsp;
> +	}
>  
>  	if (!xe_device_uc_enabled(xe)) {
>  		hwe->exl_port = xe_execlist_port_create(xe, hwe);
> @@ -554,7 +556,7 @@ static int hw_engine_init(struct xe_gt *gt, struct xe_hw_engine *hwe,
>  	return drmm_add_action_or_reset(&xe->drm, hw_engine_fini, hwe);
>  
>  err_kernel_lrc:
> -	xe_lrc_finish(&hwe->kernel_lrc);
> +	xe_lrc_put(hwe->kernel_lrc);
>  err_hwsp:
>  	xe_bo_unpin_map_no_vm(hwe->hwsp);
>  err_name:
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine_types.h b/drivers/gpu/drm/xe/xe_hw_engine_types.h
> index b2f64b92a636..580bbd7e83b2 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine_types.h
> +++ b/drivers/gpu/drm/xe/xe_hw_engine_types.h
> @@ -137,7 +137,7 @@ struct xe_hw_engine {
>  	/** @hwsp: hardware status page buffer object */
>  	struct xe_bo *hwsp;
>  	/** @kernel_lrc: Kernel LRC (should be replaced /w an xe_engine) */
> -	struct xe_lrc kernel_lrc;
> +	struct xe_lrc *kernel_lrc;
>  	/** @exl_port: execlists port */
>  	struct xe_execlist_port *exl_port;
>  	/** @fence_irq: fence IRQ to run when a hw engine IRQ is received */
> diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
> index e91967070478..26922e1bac82 100644
> --- a/drivers/gpu/drm/xe/xe_lrc.c
> +++ b/drivers/gpu/drm/xe/xe_lrc.c
> @@ -808,11 +808,20 @@ static void xe_lrc_set_ppgtt(struct xe_lrc *lrc, struct xe_vm *vm)
>  	xe_lrc_write_ctx_reg(lrc, CTX_PDP0_LDW, lower_32_bits(desc));
>  }
>  
> +static void xe_lrc_finish(struct xe_lrc *lrc)
> +{
> +	xe_hw_fence_ctx_finish(&lrc->fence_ctx);
> +	xe_bo_lock(lrc->bo, false);
> +	xe_bo_unpin(lrc->bo);
> +	xe_bo_unlock(lrc->bo);
> +	xe_bo_put(lrc->bo);
> +}
> +
>  #define PVC_CTX_ASID		(0x2e + 1)
>  #define PVC_CTX_ACC_CTR_THOLD	(0x2a + 1)
>  
> -int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
> -		struct xe_exec_queue *q, struct xe_vm *vm, u32 ring_size)
> +static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
> +		       struct xe_vm *vm, u32 ring_size)
>  {
>  	struct xe_gt *gt = hwe->gt;
>  	struct xe_tile *tile = gt_to_tile(gt);
> @@ -823,6 +832,7 @@ int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
>  	u32 lrc_size;
>  	int err;
>  
> +	kref_init(&lrc->refcount);
>  	lrc->flags = 0;
>  	lrc_size = ring_size + xe_gt_lrc_size(gt, hwe->class);
>  	if (xe_gt_has_indirect_ring_state(gt))
> @@ -935,13 +945,31 @@ int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
>  	return err;
>  }
>  
> -void xe_lrc_finish(struct xe_lrc *lrc)
> +struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
> +			     u32 ring_size)
>  {
> -	xe_hw_fence_ctx_finish(&lrc->fence_ctx);
> -	xe_bo_lock(lrc->bo, false);
> -	xe_bo_unpin(lrc->bo);
> -	xe_bo_unlock(lrc->bo);
> -	xe_bo_put(lrc->bo);
> +	struct xe_lrc *lrc;
> +	int err;
> +
> +	lrc = kzalloc(sizeof(*lrc), GFP_KERNEL);
> +	if (!lrc)
> +		return ERR_PTR(-ENOMEM);
> +
> +	err = xe_lrc_init(lrc, hwe, vm, ring_size);
> +	if (err) {
> +		kfree(lrc);
> +		return ERR_PTR(err);
> +	}
> +
> +	return lrc;
> +}
> +
> +void xe_lrc_destroy(struct kref *ref)
> +{
> +	struct xe_lrc *lrc = container_of(ref, struct xe_lrc, refcount);
> +
> +	xe_lrc_finish(lrc);
> +	kfree(lrc);
>  }
>  
>  void xe_lrc_set_ring_tail(struct xe_lrc *lrc, u32 tail)
> diff --git a/drivers/gpu/drm/xe/xe_lrc.h b/drivers/gpu/drm/xe/xe_lrc.h
> index c2df6bfd1889..ebe0e362e434 100644
> --- a/drivers/gpu/drm/xe/xe_lrc.h
> +++ b/drivers/gpu/drm/xe/xe_lrc.h
> @@ -7,6 +7,8 @@
>  
>  #include <linux/types.h>
>  
> +#include "xe_lrc_types.h"
> +
>  struct drm_printer;
>  struct xe_bb;
>  struct xe_device;
> @@ -20,9 +22,20 @@ struct xe_vm;
>  
>  #define LRC_PPHWSP_SCRATCH_ADDR (0x34 * 4)
>  
> -int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
> -		struct xe_exec_queue *q, struct xe_vm *vm, u32 ring_size);
> -void xe_lrc_finish(struct xe_lrc *lrc);
> +struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
> +			     u32 ring_size);
> +void xe_lrc_destroy(struct kref *ref);
> +
> +static inline struct xe_lrc *xe_lrc_get(struct xe_lrc *lrc)
> +{
> +	kref_get(&lrc->refcount);
> +	return lrc;
> +}
> +
> +static inline void xe_lrc_put(struct xe_lrc *lrc)
> +{
> +	kref_put(&lrc->refcount, xe_lrc_destroy);
> +}
>  
>  size_t xe_gt_lrc_size(struct xe_gt *gt, enum xe_engine_class class);
>  u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc);
> diff --git a/drivers/gpu/drm/xe/xe_lrc_types.h b/drivers/gpu/drm/xe/xe_lrc_types.h
> index 0fa055da6b27..71ecb453f811 100644
> --- a/drivers/gpu/drm/xe/xe_lrc_types.h
> +++ b/drivers/gpu/drm/xe/xe_lrc_types.h
> @@ -6,6 +6,8 @@
>  #ifndef _XE_LRC_TYPES_H_
>  #define _XE_LRC_TYPES_H_
>  
> +#include <linux/kref.h>
> +
>  #include "xe_hw_fence_types.h"
>  
>  struct xe_bo;
> @@ -30,6 +32,9 @@ struct xe_lrc {
>  #define XE_LRC_FLAG_INDIRECT_RING_STATE		0x1
>  	u32 flags;
>  
> +	/** @refcount: ref count of this lrc */
> +	struct kref refcount;
> +
>  	/** @ring: submission ring state */
>  	struct {
>  		/** @ring.size: size of submission ring */
> diff --git a/drivers/gpu/drm/xe/xe_ring_ops.c b/drivers/gpu/drm/xe/xe_ring_ops.c
> index 550c3eafbc1d..2a607c141d65 100644
> --- a/drivers/gpu/drm/xe/xe_ring_ops.c
> +++ b/drivers/gpu/drm/xe/xe_ring_ops.c
> @@ -396,7 +396,7 @@ static void emit_job_gen12_gsc(struct xe_sched_job *job)
>  
>  	xe_gt_assert(gt, job->q->width <= 1); /* no parallel submission for GSCCS */
>  
> -	__emit_job_gen12_simple(job, job->q->lrc,
> +	__emit_job_gen12_simple(job, job->q->lrc[0],
>  				job->ptrs[0].batch_addr,
>  				xe_sched_job_lrc_seqno(job));
>  }
> @@ -406,13 +406,13 @@ static void emit_job_gen12_copy(struct xe_sched_job *job)
>  	int i;
>  
>  	if (xe_sched_job_is_migration(job->q)) {
> -		emit_migration_job_gen12(job, job->q->lrc,
> +		emit_migration_job_gen12(job, job->q->lrc[0],
>  					 xe_sched_job_lrc_seqno(job));
>  		return;
>  	}
>  
>  	for (i = 0; i < job->q->width; ++i)
> -		__emit_job_gen12_simple(job, job->q->lrc + i,
> +		__emit_job_gen12_simple(job, job->q->lrc[i],
>  					job->ptrs[i].batch_addr,
>  					xe_sched_job_lrc_seqno(job));
>  }
> @@ -423,7 +423,7 @@ static void emit_job_gen12_video(struct xe_sched_job *job)
>  
>  	/* FIXME: Not doing parallel handshake for now */
>  	for (i = 0; i < job->q->width; ++i)
> -		__emit_job_gen12_video(job, job->q->lrc + i,
> +		__emit_job_gen12_video(job, job->q->lrc[i],
>  				       job->ptrs[i].batch_addr,
>  				       xe_sched_job_lrc_seqno(job));
>  }
> @@ -433,7 +433,7 @@ static void emit_job_gen12_render_compute(struct xe_sched_job *job)
>  	int i;
>  
>  	for (i = 0; i < job->q->width; ++i)
> -		__emit_job_gen12_render_compute(job, job->q->lrc + i,
> +		__emit_job_gen12_render_compute(job, job->q->lrc[i],
>  						job->ptrs[i].batch_addr,
>  						xe_sched_job_lrc_seqno(job));
>  }
> diff --git a/drivers/gpu/drm/xe/xe_sched_job.c b/drivers/gpu/drm/xe/xe_sched_job.c
> index 29f3201d7dfa..5c013904877a 100644
> --- a/drivers/gpu/drm/xe/xe_sched_job.c
> +++ b/drivers/gpu/drm/xe/xe_sched_job.c
> @@ -216,7 +216,7 @@ void xe_sched_job_set_error(struct xe_sched_job *job, int error)
>  
>  bool xe_sched_job_started(struct xe_sched_job *job)
>  {
> -	struct xe_lrc *lrc = job->q->lrc;
> +	struct xe_lrc *lrc = job->q->lrc[0];
>  
>  	return !__dma_fence_is_later(xe_sched_job_lrc_seqno(job),
>  				     xe_lrc_start_seqno(lrc),
> @@ -225,7 +225,7 @@ bool xe_sched_job_started(struct xe_sched_job *job)
>  
>  bool xe_sched_job_completed(struct xe_sched_job *job)
>  {
> -	struct xe_lrc *lrc = job->q->lrc;
> +	struct xe_lrc *lrc = job->q->lrc[0];
>  
>  	/*
>  	 * Can safely check just LRC[0] seqno as that is last seqno written when
> @@ -265,7 +265,7 @@ void xe_sched_job_arm(struct xe_sched_job *job)
>  		struct dma_fence_chain *chain;
>  
>  		fence = job->ptrs[i].lrc_fence;
> -		xe_lrc_init_seqno_fence(&q->lrc[i], fence);
> +		xe_lrc_init_seqno_fence(q->lrc[i], fence);
>  		job->ptrs[i].lrc_fence = NULL;
>  		if (!i) {
>  			job->lrc_seqno = fence->seqno;
> -- 
> 2.43.0
> 

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

* [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc
@ 2024-05-29 21:49 Niranjana Vishwanathapura
  0 siblings, 0 replies; 11+ messages in thread
From: Niranjana Vishwanathapura @ 2024-05-29 21:49 UTC (permalink / raw)
  To: intel-xe

Decouple xe_lrc from xe_exec_queue and reference count xe_lrc.
Removing hard coupling between xe_exec_queue and xe_lrc allows
flexible design where the user interface xe_exec_queue can be
destroyed independent of the hardware/firmware interface xe_lrc.

Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c       | 26 +++++++-------
 drivers/gpu/drm/xe/xe_exec_queue_types.h |  2 +-
 drivers/gpu/drm/xe/xe_execlist.c         | 10 +++---
 drivers/gpu/drm/xe/xe_gt.c               |  4 +--
 drivers/gpu/drm/xe/xe_guc_submit.c       | 30 ++++++++--------
 drivers/gpu/drm/xe/xe_hw_engine.c        | 10 +++---
 drivers/gpu/drm/xe/xe_hw_engine_types.h  |  2 +-
 drivers/gpu/drm/xe/xe_lrc.c              | 44 +++++++++++++++++++-----
 drivers/gpu/drm/xe/xe_lrc.h              | 19 ++++++++--
 drivers/gpu/drm/xe/xe_lrc_types.h        |  5 +++
 drivers/gpu/drm/xe/xe_ring_ops.c         | 10 +++---
 drivers/gpu/drm/xe/xe_sched_job.c        |  6 ++--
 12 files changed, 109 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index a2daae10ccc6..27215075c799 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -86,7 +86,7 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
 
 	if (extensions) {
 		/*
-		 * may set q->usm, must come before xe_lrc_init(),
+		 * may set q->usm, must come before xe_lrc_create(),
 		 * may overwrite q->sched_props, must come before q->ops->init()
 		 */
 		err = exec_queue_user_extensions(xe, q, extensions, 0);
@@ -104,9 +104,11 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
 	int i, err;
 
 	for (i = 0; i < q->width; ++i) {
-		err = xe_lrc_init(q->lrc + i, q->hwe, q, q->vm, SZ_16K);
-		if (err)
+		q->lrc[i] = xe_lrc_create(q->hwe, q->vm, SZ_16K);
+		if (IS_ERR(q->lrc[i])) {
+			err = PTR_ERR(q->lrc[i]);
 			goto err_lrc;
+		}
 	}
 
 	err = q->ops->init(q);
@@ -117,7 +119,7 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
 
 err_lrc:
 	for (i = i - 1; i >= 0; --i)
-		xe_lrc_finish(q->lrc + i);
+		xe_lrc_put(q->lrc[i]);
 	return err;
 }
 
@@ -198,7 +200,7 @@ void xe_exec_queue_fini(struct xe_exec_queue *q)
 	int i;
 
 	for (i = 0; i < q->width; ++i)
-		xe_lrc_finish(q->lrc + i);
+		xe_lrc_put(q->lrc[i]);
 	__xe_exec_queue_free(q);
 }
 
@@ -701,7 +703,7 @@ bool xe_exec_queue_is_lr(struct xe_exec_queue *q)
 
 static s32 xe_exec_queue_num_job_inflight(struct xe_exec_queue *q)
 {
-	return q->lrc->fence_ctx.next_seqno - xe_lrc_seqno(q->lrc) - 1;
+	return q->lrc[0]->fence_ctx.next_seqno - xe_lrc_seqno(q->lrc[0]) - 1;
 }
 
 /**
@@ -712,7 +714,7 @@ static s32 xe_exec_queue_num_job_inflight(struct xe_exec_queue *q)
  */
 bool xe_exec_queue_ring_full(struct xe_exec_queue *q)
 {
-	struct xe_lrc *lrc = q->lrc;
+	struct xe_lrc *lrc = q->lrc[0];
 	s32 max_job = lrc->ring.size / MAX_JOB_SIZE_BYTES;
 
 	return xe_exec_queue_num_job_inflight(q) >= max_job;
@@ -738,16 +740,16 @@ bool xe_exec_queue_is_idle(struct xe_exec_queue *q)
 		int i;
 
 		for (i = 0; i < q->width; ++i) {
-			if (xe_lrc_seqno(&q->lrc[i]) !=
-			    q->lrc[i].fence_ctx.next_seqno - 1)
+			if (xe_lrc_seqno(q->lrc[i]) !=
+			    q->lrc[i]->fence_ctx.next_seqno - 1)
 				return false;
 		}
 
 		return true;
 	}
 
-	return xe_lrc_seqno(&q->lrc[0]) ==
-		q->lrc[0].fence_ctx.next_seqno - 1;
+	return xe_lrc_seqno(q->lrc[0]) ==
+		q->lrc[0]->fence_ctx.next_seqno - 1;
 }
 
 /**
@@ -779,7 +781,7 @@ void xe_exec_queue_update_run_ticks(struct xe_exec_queue *q)
 	 * the LRCs and reading them in different time could also introduce
 	 * errors.
 	 */
-	lrc = &q->lrc[0];
+	lrc = q->lrc[0];
 	new_ts = xe_lrc_update_timestamp(lrc, &old_ts);
 	q->run_ticks += (new_ts - old_ts) * q->width;
 }
diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index e81704c7c030..18d8b2a60928 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -146,7 +146,7 @@ struct xe_exec_queue {
 	/** @run_ticks: hw engine class run time in ticks for this exec queue */
 	u64 run_ticks;
 	/** @lrc: logical ring context for this exec queue */
-	struct xe_lrc lrc[];
+	struct xe_lrc *lrc[];
 };
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_execlist.c b/drivers/gpu/drm/xe/xe_execlist.c
index 8e5c591fcecd..db906117db6d 100644
--- a/drivers/gpu/drm/xe/xe_execlist.c
+++ b/drivers/gpu/drm/xe/xe_execlist.c
@@ -109,7 +109,7 @@ static void __xe_execlist_port_start(struct xe_execlist_port *port,
 			port->last_ctx_id = 1;
 	}
 
-	__start_lrc(port->hwe, exl->q->lrc, port->last_ctx_id);
+	__start_lrc(port->hwe, exl->q->lrc[0], port->last_ctx_id);
 	port->running_exl = exl;
 	exl->has_run = true;
 }
@@ -123,14 +123,14 @@ static void __xe_execlist_port_idle(struct xe_execlist_port *port)
 	if (!port->running_exl)
 		return;
 
-	xe_lrc_write_ring(&port->hwe->kernel_lrc, noop, sizeof(noop));
-	__start_lrc(port->hwe, &port->hwe->kernel_lrc, 0);
+	xe_lrc_write_ring(port->hwe->kernel_lrc, noop, sizeof(noop));
+	__start_lrc(port->hwe, port->hwe->kernel_lrc, 0);
 	port->running_exl = NULL;
 }
 
 static bool xe_execlist_is_idle(struct xe_execlist_exec_queue *exl)
 {
-	struct xe_lrc *lrc = exl->q->lrc;
+	struct xe_lrc *lrc = exl->q->lrc[0];
 
 	return lrc->ring.tail == lrc->ring.old_tail;
 }
@@ -333,7 +333,7 @@ static int execlist_exec_queue_init(struct xe_exec_queue *q)
 	exl->q = q;
 
 	err = drm_sched_init(&exl->sched, &drm_sched_ops, NULL, 1,
-			     q->lrc[0].ring.size / MAX_JOB_SIZE_BYTES,
+			     q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES,
 			     XE_SCHED_HANG_LIMIT, XE_SCHED_JOB_TIMEOUT,
 			     NULL, NULL, q->hwe->name,
 			     gt_to_xe(q->gt)->drm.dev);
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 34c1896807e9..9e9da887f4ca 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -297,8 +297,8 @@ int xe_gt_record_default_lrcs(struct xe_gt *gt)
 		}
 
 		xe_map_memcpy_from(xe, default_lrc,
-				   &q->lrc[0].bo->vmap,
-				   xe_lrc_pphwsp_offset(&q->lrc[0]),
+				   &q->lrc[0]->bo->vmap,
+				   xe_lrc_pphwsp_offset(q->lrc[0]),
 				   xe_gt_lrc_size(gt, hwe->class));
 
 		gt->default_lrc[hwe->class] = default_lrc;
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index e22bd6b09a74..30b3619c2f26 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -490,7 +490,7 @@ static void __register_mlrc_exec_queue(struct xe_guc *guc,
 	action[len++] = info->hwlrca_hi;
 
 	for (i = 1; i < q->width; ++i) {
-		struct xe_lrc *lrc = q->lrc + i;
+		struct xe_lrc *lrc = q->lrc[i];
 
 		action[len++] = lower_32_bits(xe_lrc_descriptor(lrc));
 		action[len++] = upper_32_bits(xe_lrc_descriptor(lrc));
@@ -527,7 +527,7 @@ static void register_exec_queue(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct xe_lrc *lrc = q->lrc;
+	struct xe_lrc *lrc = q->lrc[0];
 	struct guc_ctxt_registration_info info;
 
 	xe_assert(xe, !exec_queue_registered(q));
@@ -586,7 +586,7 @@ static int wq_wait_for_space(struct xe_exec_queue *q, u32 wqi_size)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 	unsigned int sleep_period_ms = 1;
 
 #define AVAILABLE_SPACE \
@@ -614,7 +614,7 @@ static int wq_noop_append(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 	u32 len_dw = wq_space_until_wrap(q) / sizeof(u32) - 1;
 
 	if (wq_wait_for_space(q, wq_space_until_wrap(q)))
@@ -634,7 +634,7 @@ static void wq_item_append(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 #define WQ_HEADER_SIZE	4	/* Includes 1 LRC address too */
 	u32 wqi[XE_HW_ENGINE_MAX_INSTANCE + (WQ_HEADER_SIZE - 1)];
 	u32 wqi_size = (q->width + (WQ_HEADER_SIZE - 1)) * sizeof(u32);
@@ -650,12 +650,12 @@ static void wq_item_append(struct xe_exec_queue *q)
 
 	wqi[i++] = FIELD_PREP(WQ_TYPE_MASK, WQ_TYPE_MULTI_LRC) |
 		FIELD_PREP(WQ_LEN_MASK, len_dw);
-	wqi[i++] = xe_lrc_descriptor(q->lrc);
+	wqi[i++] = xe_lrc_descriptor(q->lrc[0]);
 	wqi[i++] = FIELD_PREP(WQ_GUC_ID_MASK, q->guc->id) |
-		FIELD_PREP(WQ_RING_TAIL_MASK, q->lrc->ring.tail / sizeof(u64));
+		FIELD_PREP(WQ_RING_TAIL_MASK, q->lrc[0]->ring.tail / sizeof(u64));
 	wqi[i++] = 0;
 	for (j = 1; j < q->width; ++j) {
-		struct xe_lrc *lrc = q->lrc + j;
+		struct xe_lrc *lrc = q->lrc[0] + j;
 
 		wqi[i++] = lrc->ring.tail / sizeof(u64);
 	}
@@ -670,7 +670,7 @@ static void wq_item_append(struct xe_exec_queue *q)
 
 	xe_device_wmb(xe);
 
-	map = xe_lrc_parallel_map(q->lrc);
+	map = xe_lrc_parallel_map(q->lrc[0]);
 	parallel_write(xe, map, wq_desc.tail, q->guc->wqi_tail);
 }
 
@@ -679,7 +679,7 @@ static void submit_exec_queue(struct xe_exec_queue *q)
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct xe_lrc *lrc = q->lrc;
+	struct xe_lrc *lrc = q->lrc[0];
 	u32 action[3];
 	u32 g2h_len = 0;
 	u32 num_g2h = 0;
@@ -1236,7 +1236,7 @@ static int guc_exec_queue_init(struct xe_exec_queue *q)
 		  msecs_to_jiffies(q->sched_props.job_timeout_ms);
 	err = xe_sched_init(&ge->sched, &drm_sched_ops, &xe_sched_ops,
 			    get_submit_wq(guc),
-			    q->lrc[0].ring.size / MAX_JOB_SIZE_BYTES, 64,
+			    q->lrc[0]->ring.size / MAX_JOB_SIZE_BYTES, 64,
 			    timeout, guc_to_gt(guc)->ordered_wq, NULL,
 			    q->name, gt_to_xe(q->gt)->drm.dev);
 	if (err)
@@ -1464,7 +1464,7 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
 				ban = true;
 			}
 		} else if (xe_exec_queue_is_lr(q) &&
-			   (xe_lrc_ring_head(q->lrc) != xe_lrc_ring_tail(q->lrc))) {
+			   (xe_lrc_ring_head(q->lrc[0]) != xe_lrc_ring_tail(q->lrc[0]))) {
 			ban = true;
 		}
 
@@ -1529,7 +1529,7 @@ static void guc_exec_queue_start(struct xe_exec_queue *q)
 
 		trace_xe_exec_queue_resubmit(q);
 		for (i = 0; i < q->width; ++i)
-			xe_lrc_set_ring_head(q->lrc + i, q->lrc[i].ring.tail);
+			xe_lrc_set_ring_head(q->lrc[i], q->lrc[i]->ring.tail);
 		xe_sched_resubmit_jobs(sched);
 	}
 
@@ -1775,7 +1775,7 @@ guc_exec_queue_wq_snapshot_capture(struct xe_exec_queue *q,
 {
 	struct xe_guc *guc = exec_queue_to_guc(q);
 	struct xe_device *xe = guc_to_xe(guc);
-	struct iosys_map map = xe_lrc_parallel_map(q->lrc);
+	struct iosys_map map = xe_lrc_parallel_map(q->lrc[0]);
 	int i;
 
 	snapshot->guc.wqi_head = q->guc->wqi_head;
@@ -1855,7 +1855,7 @@ xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue *q)
 
 	if (snapshot->lrc) {
 		for (i = 0; i < q->width; ++i) {
-			struct xe_lrc *lrc = q->lrc + i;
+			struct xe_lrc *lrc = q->lrc[i];
 
 			snapshot->lrc[i] = xe_lrc_snapshot_capture(lrc);
 		}
diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 9eef789be897..0a83506e1ad8 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -268,7 +268,7 @@ static void hw_engine_fini(struct drm_device *drm, void *arg)
 
 	if (hwe->exl_port)
 		xe_execlist_port_destroy(hwe->exl_port);
-	xe_lrc_finish(&hwe->kernel_lrc);
+	xe_lrc_put(hwe->kernel_lrc);
 
 	hwe->gt = NULL;
 }
@@ -527,9 +527,11 @@ static int hw_engine_init(struct xe_gt *gt, struct xe_hw_engine *hwe,
 		goto err_name;
 	}
 
-	err = xe_lrc_init(&hwe->kernel_lrc, hwe, NULL, NULL, SZ_16K);
-	if (err)
+	hwe->kernel_lrc = xe_lrc_create(hwe, NULL, SZ_16K);
+	if (IS_ERR(hwe->kernel_lrc)) {
+		err = PTR_ERR(hwe->kernel_lrc);
 		goto err_hwsp;
+	}
 
 	if (!xe_device_uc_enabled(xe)) {
 		hwe->exl_port = xe_execlist_port_create(xe, hwe);
@@ -554,7 +556,7 @@ static int hw_engine_init(struct xe_gt *gt, struct xe_hw_engine *hwe,
 	return drmm_add_action_or_reset(&xe->drm, hw_engine_fini, hwe);
 
 err_kernel_lrc:
-	xe_lrc_finish(&hwe->kernel_lrc);
+	xe_lrc_put(hwe->kernel_lrc);
 err_hwsp:
 	xe_bo_unpin_map_no_vm(hwe->hwsp);
 err_name:
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_types.h b/drivers/gpu/drm/xe/xe_hw_engine_types.h
index b2f64b92a636..580bbd7e83b2 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_types.h
+++ b/drivers/gpu/drm/xe/xe_hw_engine_types.h
@@ -137,7 +137,7 @@ struct xe_hw_engine {
 	/** @hwsp: hardware status page buffer object */
 	struct xe_bo *hwsp;
 	/** @kernel_lrc: Kernel LRC (should be replaced /w an xe_engine) */
-	struct xe_lrc kernel_lrc;
+	struct xe_lrc *kernel_lrc;
 	/** @exl_port: execlists port */
 	struct xe_execlist_port *exl_port;
 	/** @fence_irq: fence IRQ to run when a hw engine IRQ is received */
diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
index e91967070478..26922e1bac82 100644
--- a/drivers/gpu/drm/xe/xe_lrc.c
+++ b/drivers/gpu/drm/xe/xe_lrc.c
@@ -808,11 +808,20 @@ static void xe_lrc_set_ppgtt(struct xe_lrc *lrc, struct xe_vm *vm)
 	xe_lrc_write_ctx_reg(lrc, CTX_PDP0_LDW, lower_32_bits(desc));
 }
 
+static void xe_lrc_finish(struct xe_lrc *lrc)
+{
+	xe_hw_fence_ctx_finish(&lrc->fence_ctx);
+	xe_bo_lock(lrc->bo, false);
+	xe_bo_unpin(lrc->bo);
+	xe_bo_unlock(lrc->bo);
+	xe_bo_put(lrc->bo);
+}
+
 #define PVC_CTX_ASID		(0x2e + 1)
 #define PVC_CTX_ACC_CTR_THOLD	(0x2a + 1)
 
-int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
-		struct xe_exec_queue *q, struct xe_vm *vm, u32 ring_size)
+static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
+		       struct xe_vm *vm, u32 ring_size)
 {
 	struct xe_gt *gt = hwe->gt;
 	struct xe_tile *tile = gt_to_tile(gt);
@@ -823,6 +832,7 @@ int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
 	u32 lrc_size;
 	int err;
 
+	kref_init(&lrc->refcount);
 	lrc->flags = 0;
 	lrc_size = ring_size + xe_gt_lrc_size(gt, hwe->class);
 	if (xe_gt_has_indirect_ring_state(gt))
@@ -935,13 +945,31 @@ int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
 	return err;
 }
 
-void xe_lrc_finish(struct xe_lrc *lrc)
+struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
+			     u32 ring_size)
 {
-	xe_hw_fence_ctx_finish(&lrc->fence_ctx);
-	xe_bo_lock(lrc->bo, false);
-	xe_bo_unpin(lrc->bo);
-	xe_bo_unlock(lrc->bo);
-	xe_bo_put(lrc->bo);
+	struct xe_lrc *lrc;
+	int err;
+
+	lrc = kzalloc(sizeof(*lrc), GFP_KERNEL);
+	if (!lrc)
+		return ERR_PTR(-ENOMEM);
+
+	err = xe_lrc_init(lrc, hwe, vm, ring_size);
+	if (err) {
+		kfree(lrc);
+		return ERR_PTR(err);
+	}
+
+	return lrc;
+}
+
+void xe_lrc_destroy(struct kref *ref)
+{
+	struct xe_lrc *lrc = container_of(ref, struct xe_lrc, refcount);
+
+	xe_lrc_finish(lrc);
+	kfree(lrc);
 }
 
 void xe_lrc_set_ring_tail(struct xe_lrc *lrc, u32 tail)
diff --git a/drivers/gpu/drm/xe/xe_lrc.h b/drivers/gpu/drm/xe/xe_lrc.h
index c2df6bfd1889..ebe0e362e434 100644
--- a/drivers/gpu/drm/xe/xe_lrc.h
+++ b/drivers/gpu/drm/xe/xe_lrc.h
@@ -7,6 +7,8 @@
 
 #include <linux/types.h>
 
+#include "xe_lrc_types.h"
+
 struct drm_printer;
 struct xe_bb;
 struct xe_device;
@@ -20,9 +22,20 @@ struct xe_vm;
 
 #define LRC_PPHWSP_SCRATCH_ADDR (0x34 * 4)
 
-int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
-		struct xe_exec_queue *q, struct xe_vm *vm, u32 ring_size);
-void xe_lrc_finish(struct xe_lrc *lrc);
+struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
+			     u32 ring_size);
+void xe_lrc_destroy(struct kref *ref);
+
+static inline struct xe_lrc *xe_lrc_get(struct xe_lrc *lrc)
+{
+	kref_get(&lrc->refcount);
+	return lrc;
+}
+
+static inline void xe_lrc_put(struct xe_lrc *lrc)
+{
+	kref_put(&lrc->refcount, xe_lrc_destroy);
+}
 
 size_t xe_gt_lrc_size(struct xe_gt *gt, enum xe_engine_class class);
 u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc);
diff --git a/drivers/gpu/drm/xe/xe_lrc_types.h b/drivers/gpu/drm/xe/xe_lrc_types.h
index 0fa055da6b27..71ecb453f811 100644
--- a/drivers/gpu/drm/xe/xe_lrc_types.h
+++ b/drivers/gpu/drm/xe/xe_lrc_types.h
@@ -6,6 +6,8 @@
 #ifndef _XE_LRC_TYPES_H_
 #define _XE_LRC_TYPES_H_
 
+#include <linux/kref.h>
+
 #include "xe_hw_fence_types.h"
 
 struct xe_bo;
@@ -30,6 +32,9 @@ struct xe_lrc {
 #define XE_LRC_FLAG_INDIRECT_RING_STATE		0x1
 	u32 flags;
 
+	/** @refcount: ref count of this lrc */
+	struct kref refcount;
+
 	/** @ring: submission ring state */
 	struct {
 		/** @ring.size: size of submission ring */
diff --git a/drivers/gpu/drm/xe/xe_ring_ops.c b/drivers/gpu/drm/xe/xe_ring_ops.c
index 550c3eafbc1d..2a607c141d65 100644
--- a/drivers/gpu/drm/xe/xe_ring_ops.c
+++ b/drivers/gpu/drm/xe/xe_ring_ops.c
@@ -396,7 +396,7 @@ static void emit_job_gen12_gsc(struct xe_sched_job *job)
 
 	xe_gt_assert(gt, job->q->width <= 1); /* no parallel submission for GSCCS */
 
-	__emit_job_gen12_simple(job, job->q->lrc,
+	__emit_job_gen12_simple(job, job->q->lrc[0],
 				job->ptrs[0].batch_addr,
 				xe_sched_job_lrc_seqno(job));
 }
@@ -406,13 +406,13 @@ static void emit_job_gen12_copy(struct xe_sched_job *job)
 	int i;
 
 	if (xe_sched_job_is_migration(job->q)) {
-		emit_migration_job_gen12(job, job->q->lrc,
+		emit_migration_job_gen12(job, job->q->lrc[0],
 					 xe_sched_job_lrc_seqno(job));
 		return;
 	}
 
 	for (i = 0; i < job->q->width; ++i)
-		__emit_job_gen12_simple(job, job->q->lrc + i,
+		__emit_job_gen12_simple(job, job->q->lrc[i],
 					job->ptrs[i].batch_addr,
 					xe_sched_job_lrc_seqno(job));
 }
@@ -423,7 +423,7 @@ static void emit_job_gen12_video(struct xe_sched_job *job)
 
 	/* FIXME: Not doing parallel handshake for now */
 	for (i = 0; i < job->q->width; ++i)
-		__emit_job_gen12_video(job, job->q->lrc + i,
+		__emit_job_gen12_video(job, job->q->lrc[i],
 				       job->ptrs[i].batch_addr,
 				       xe_sched_job_lrc_seqno(job));
 }
@@ -433,7 +433,7 @@ static void emit_job_gen12_render_compute(struct xe_sched_job *job)
 	int i;
 
 	for (i = 0; i < job->q->width; ++i)
-		__emit_job_gen12_render_compute(job, job->q->lrc + i,
+		__emit_job_gen12_render_compute(job, job->q->lrc[i],
 						job->ptrs[i].batch_addr,
 						xe_sched_job_lrc_seqno(job));
 }
diff --git a/drivers/gpu/drm/xe/xe_sched_job.c b/drivers/gpu/drm/xe/xe_sched_job.c
index 29f3201d7dfa..5c013904877a 100644
--- a/drivers/gpu/drm/xe/xe_sched_job.c
+++ b/drivers/gpu/drm/xe/xe_sched_job.c
@@ -216,7 +216,7 @@ void xe_sched_job_set_error(struct xe_sched_job *job, int error)
 
 bool xe_sched_job_started(struct xe_sched_job *job)
 {
-	struct xe_lrc *lrc = job->q->lrc;
+	struct xe_lrc *lrc = job->q->lrc[0];
 
 	return !__dma_fence_is_later(xe_sched_job_lrc_seqno(job),
 				     xe_lrc_start_seqno(lrc),
@@ -225,7 +225,7 @@ bool xe_sched_job_started(struct xe_sched_job *job)
 
 bool xe_sched_job_completed(struct xe_sched_job *job)
 {
-	struct xe_lrc *lrc = job->q->lrc;
+	struct xe_lrc *lrc = job->q->lrc[0];
 
 	/*
 	 * Can safely check just LRC[0] seqno as that is last seqno written when
@@ -265,7 +265,7 @@ void xe_sched_job_arm(struct xe_sched_job *job)
 		struct dma_fence_chain *chain;
 
 		fence = job->ptrs[i].lrc_fence;
-		xe_lrc_init_seqno_fence(&q->lrc[i], fence);
+		xe_lrc_init_seqno_fence(q->lrc[i], fence);
 		job->ptrs[i].lrc_fence = NULL;
 		if (!i) {
 			job->lrc_seqno = fence->seqno;
-- 
2.43.0


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

* ✗ CI.FULL: failure for drm/xe: Decouple xe_exec_queue and xe_lrc
  2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
                   ` (7 preceding siblings ...)
  2024-05-29 21:41 ` [PATCH] " Matthew Brost
@ 2024-05-30  0:42 ` Patchwork
  8 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-05-30  0:42 UTC (permalink / raw)
  To: Niranjana Vishwanathapura; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe: Decouple xe_exec_queue and xe_lrc
URL   : https://patchwork.freedesktop.org/series/134202/
State : failure

== Summary ==

CI Bug Log - changes from xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1_full -> xe-pw-134202v1_full
====================================================

Summary
-------

  **FAILURE**

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

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-134202v1_full:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_exec_threads@threads-bal-fd-userptr:
    - shard-dg2-set2:     [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@xe_exec_threads@threads-bal-fd-userptr.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_exec_threads@threads-bal-fd-userptr.html

  * igt@xe_exec_threads@threads-bal-fd-userptr-invalidate-race:
    - shard-adlp:         [PASS][3] -> [FAIL][4] +5 other tests fail
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-9/igt@xe_exec_threads@threads-bal-fd-userptr-invalidate-race.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_exec_threads@threads-bal-fd-userptr-invalidate-race.html

  * igt@xe_exec_threads@threads-bal-rebind:
    - shard-adlp:         NOTRUN -> [FAIL][5] +6 other tests fail
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@xe_exec_threads@threads-bal-rebind.html

  * igt@xe_exec_threads@threads-bal-userptr:
    - shard-dg2-set2:     [PASS][6] -> [FAIL][7] +28 other tests fail
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@xe_exec_threads@threads-bal-userptr.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_exec_threads@threads-bal-userptr.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_cursor_legacy:
    - {shard-lnl}:        NOTRUN -> [INCOMPLETE][8]
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-lnl-5/igt@kms_cursor_legacy.html

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

  Here are the changes found in xe-pw-134202v1_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@intel_hwmon@hwmon-read:
    - shard-adlp:         NOTRUN -> [SKIP][9] ([Intel XE#1125] / [Intel XE#1201])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@intel_hwmon@hwmon-read.html

  * igt@kms_big_fb@4-tiled-addfb-size-offset-overflow:
    - shard-adlp:         NOTRUN -> [SKIP][10] ([Intel XE#1201] / [Intel XE#607])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@x-tiled-64bpp-rotate-270:
    - shard-dg2-set2:     NOTRUN -> [SKIP][11] ([Intel XE#1201] / [Intel XE#316]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-adlp:         NOTRUN -> [DMESG-FAIL][12] ([Intel XE#324]) +2 other tests dmesg-fail
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-adlp:         NOTRUN -> [SKIP][13] ([Intel XE#1201] / [Intel XE#316]) +4 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-adlp:         NOTRUN -> [FAIL][14] ([Intel XE#1231])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-adlp:         NOTRUN -> [SKIP][15] ([Intel XE#1124] / [Intel XE#1201]) +15 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-addfb-size-overflow:
    - shard-adlp:         NOTRUN -> [SKIP][16] ([Intel XE#1201] / [Intel XE#610])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-dg2-set2:     NOTRUN -> [SKIP][17] ([Intel XE#1124] / [Intel XE#1201]) +2 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_bw@linear-tiling-1-displays-1920x1080p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][18] ([Intel XE#1201] / [Intel XE#367]) +1 other test skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-1-displays-2160x1440p:
    - shard-adlp:         NOTRUN -> [SKIP][19] ([Intel XE#1201] / [Intel XE#367]) +5 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_bw@linear-tiling-1-displays-2160x1440p.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][20] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +7 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][21] ([Intel XE#1201] / [Intel XE#787]) +65 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][22] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +43 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1.html

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

  * igt@kms_ccs@crc-primary-basic-4-tiled-xe2-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][24] ([Intel XE#1201] / [Intel XE#1252])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_ccs@crc-primary-basic-4-tiled-xe2-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-xe2-ccs:
    - shard-adlp:         NOTRUN -> [SKIP][25] ([Intel XE#1201] / [Intel XE#1252]) +1 other test skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_ccs@crc-primary-rotation-180-4-tiled-xe2-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-adlp:         NOTRUN -> [SKIP][26] ([Intel XE#1201] / [Intel XE#314] / [Intel XE#455]) +1 other test skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][27] ([Intel XE#1201] / [Intel XE#314]) +2 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_cdclk@mode-transition@pipe-b-hdmi-a-1.html

  * igt@kms_chamelium_color@ctm-0-25:
    - shard-adlp:         NOTRUN -> [SKIP][28] ([Intel XE#1201] / [Intel XE#306]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_chamelium_color@ctm-0-25.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-adlp:         NOTRUN -> [SKIP][29] ([Intel XE#1201] / [Intel XE#373]) +14 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium_hpd@dp-hpd-after-suspend:
    - shard-dg2-set2:     NOTRUN -> [SKIP][30] ([Intel XE#1201] / [Intel XE#373])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][31] ([Intel XE#1201] / [Intel XE#307])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-adlp:         NOTRUN -> [SKIP][32] ([Intel XE#1201] / [Intel XE#307]) +1 other test skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-adlp:         NOTRUN -> [SKIP][33] ([Intel XE#1201] / [Intel XE#308])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-256x256:
    - shard-dg2-set2:     NOTRUN -> [DMESG-WARN][34] ([Intel XE#1214] / [Intel XE#282]) +6 other tests dmesg-warn
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_cursor_crc@cursor-random-256x256.html

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
    - shard-adlp:         NOTRUN -> [SKIP][35] ([Intel XE#1201] / [Intel XE#309]) +8 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-toggle:
    - shard-dg2-set2:     [PASS][36] -> [DMESG-WARN][37] ([Intel XE#1214] / [Intel XE#282]) +5 other tests dmesg-warn
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-466/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-adlp:         NOTRUN -> [SKIP][38] ([Intel XE#1201] / [Intel XE#323])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-adlp:         NOTRUN -> [INCOMPLETE][39] ([Intel XE#1195] / [Intel XE#927])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_feature_discovery@display-4x:
    - shard-adlp:         NOTRUN -> [SKIP][40] ([Intel XE#1138] / [Intel XE#1201])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-adlp:         NOTRUN -> [SKIP][41] ([Intel XE#1137] / [Intel XE#1201])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr1:
    - shard-adlp:         NOTRUN -> [SKIP][42] ([Intel XE#1135] / [Intel XE#1201])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-adlp:         NOTRUN -> [SKIP][43] ([Intel XE#1201] / [Intel XE#310]) +10 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-hdmi-a6-dp4:
    - shard-dg2-set2:     [PASS][44] -> [DMESG-WARN][45] ([Intel XE#1214] / [Intel XE#1638]) +1 other test dmesg-warn
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-hdmi-a6-dp4.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-433/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-hdmi-a6-dp4.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][46] ([Intel XE#1195]) +3 other tests incomplete
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_flip@flip-vs-blocking-wf-vblank.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-adlp:         NOTRUN -> [SKIP][47] ([Intel XE#1201] / [Intel XE#656]) +66 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
    - shard-adlp:         NOTRUN -> [FAIL][48] ([Intel XE#1861])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-adlp:         NOTRUN -> [SKIP][49] ([Intel XE#1201] / [Intel XE#651]) +16 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render:
    - shard-dg2-set2:     NOTRUN -> [SKIP][50] ([Intel XE#1201] / [Intel XE#651]) +5 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][51] ([Intel XE#1201] / [Intel XE#653]) +1 other test skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
    - shard-adlp:         NOTRUN -> [SKIP][52] ([Intel XE#1201] / [Intel XE#653]) +24 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-adlp:         NOTRUN -> [SKIP][53] ([Intel XE#1151] / [Intel XE#1201]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][54] ([Intel XE#1191] / [Intel XE#1214])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-hdmi-a-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
    - shard-adlp:         NOTRUN -> [SKIP][55] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#498]) +3 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-b-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][56] ([Intel XE#1201] / [Intel XE#498]) +5 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-b-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-b-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][57] ([Intel XE#1201] / [Intel XE#305]) +5 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-b-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][58] ([Intel XE#1201] / [Intel XE#305] / [Intel XE#455]) +3 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25:
    - shard-dg2-set2:     NOTRUN -> [SKIP][59] ([Intel XE#1201] / [Intel XE#305] / [Intel XE#455]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][60] ([Intel XE#1201] / [Intel XE#305]) +2 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-c-hdmi-a-6.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-adlp:         NOTRUN -> [SKIP][61] ([Intel XE#1129] / [Intel XE#1201])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-adlp:         NOTRUN -> [SKIP][62] ([Intel XE#1201] / [Intel XE#734])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-adlp:         NOTRUN -> [SKIP][63] ([Intel XE#1201] / [Intel XE#1211])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-adlp:         NOTRUN -> [SKIP][64] ([Intel XE#1201] / [Intel XE#836]) +1 other test skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-sf:
    - shard-adlp:         NOTRUN -> [SKIP][65] ([Intel XE#1201]) +7 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_psr2_sf@fbc-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-adlp:         NOTRUN -> [SKIP][66] ([Intel XE#1122] / [Intel XE#1201])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-pr-primary-page-flip:
    - shard-adlp:         NOTRUN -> [SKIP][67] ([Intel XE#1201] / [Intel XE#929]) +25 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@kms_psr@fbc-pr-primary-page-flip.html

  * igt@kms_psr@fbc-psr2-sprite-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][68] ([Intel XE#1201] / [Intel XE#929]) +2 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_psr@fbc-psr2-sprite-blt.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-dg2-set2:     NOTRUN -> [SKIP][69] ([Intel XE#1149] / [Intel XE#1201])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-adlp:         NOTRUN -> [FAIL][70] ([Intel XE#1874]) +7 other tests fail
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-adlp:         NOTRUN -> [SKIP][71] ([Intel XE#1127] / [Intel XE#1201])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-dg2-set2:     NOTRUN -> [SKIP][72] ([Intel XE#1201] / [Intel XE#327])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-adlp:         NOTRUN -> [SKIP][73] ([Intel XE#1201] / [Intel XE#327]) +2 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_scaling_modes@scaling-mode-full-aspect:
    - shard-dg2-set2:     NOTRUN -> [SKIP][74] ([Intel XE#1201] / [Intel XE#455]) +1 other test skip
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_scaling_modes@scaling-mode-full-aspect.html

  * igt@kms_tv_load_detect@load-detect:
    - shard-adlp:         NOTRUN -> [SKIP][75] ([Intel XE#1201] / [Intel XE#330])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_tv_load_detect@load-detect.html

  * igt@kms_universal_plane@cursor-fb-leak:
    - shard-adlp:         NOTRUN -> [FAIL][76] ([Intel XE#771] / [Intel XE#899])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_universal_plane@cursor-fb-leak.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-c-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [FAIL][77] ([Intel XE#899]) +2 other tests fail
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_universal_plane@cursor-fb-leak@pipe-c-hdmi-a-1.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6:
    - shard-dg2-set2:     [PASS][78] -> [FAIL][79] ([Intel XE#899])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html

  * igt@kms_vrr@flip-suspend:
    - shard-adlp:         NOTRUN -> [SKIP][80] ([Intel XE#1201] / [Intel XE#455]) +33 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_vrr@flip-suspend.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-adlp:         NOTRUN -> [SKIP][81] ([Intel XE#1201] / [Intel XE#756]) +1 other test skip
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@sriov_basic@enable-vfs-autoprobe-on:
    - shard-adlp:         NOTRUN -> [SKIP][82] ([Intel XE#1201] / [Intel XE#1932])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@sriov_basic@enable-vfs-autoprobe-on.html

  * igt@xe_ccs@block-copy-compressed-inc-dimension:
    - shard-adlp:         NOTRUN -> [SKIP][83] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#488]) +1 other test skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@xe_ccs@block-copy-compressed-inc-dimension.html

  * igt@xe_compute@ccs-mode-compute-kernel:
    - shard-adlp:         NOTRUN -> [SKIP][84] ([Intel XE#1201] / [Intel XE#1447])
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@xe_compute@ccs-mode-compute-kernel.html

  * igt@xe_copy_basic@mem-copy-linear-0xfffe:
    - shard-adlp:         NOTRUN -> [SKIP][85] ([Intel XE#1123] / [Intel XE#1201])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@xe_copy_basic@mem-copy-linear-0xfffe.html

  * igt@xe_copy_basic@mem-set-linear-0x3fff:
    - shard-adlp:         NOTRUN -> [SKIP][86] ([Intel XE#1126] / [Intel XE#1201]) +1 other test skip
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@xe_copy_basic@mem-set-linear-0x3fff.html

  * igt@xe_evict@evict-large-cm:
    - shard-adlp:         NOTRUN -> [SKIP][87] ([Intel XE#1201] / [Intel XE#261]) +6 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_evict@evict-large-cm.html

  * igt@xe_evict@evict-small-multi-vm-cm:
    - shard-adlp:         NOTRUN -> [SKIP][88] ([Intel XE#1201] / [Intel XE#261] / [Intel XE#688]) +6 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@xe_evict@evict-small-multi-vm-cm.html

  * igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen:
    - shard-adlp:         NOTRUN -> [SKIP][89] ([Intel XE#1201] / [Intel XE#688]) +1 other test skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen.html

  * igt@xe_exec_balancer@many-execqueues-parallel-userptr-invalidate-race:
    - shard-adlp:         NOTRUN -> [FAIL][90] ([Intel XE#1081]) +2 other tests fail
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_exec_balancer@many-execqueues-parallel-userptr-invalidate-race.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate-race:
    - shard-adlp:         NOTRUN -> [SKIP][91] ([Intel XE#1201] / [Intel XE#1392]) +10 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-race:
    - shard-dg2-set2:     NOTRUN -> [SKIP][92] ([Intel XE#1201] / [Intel XE#288]) +4 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-rebind-prefetch:
    - shard-adlp:         NOTRUN -> [SKIP][93] ([Intel XE#1201] / [Intel XE#288]) +40 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-rebind-prefetch.html

  * igt@xe_exec_reset@cat-error:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][94] ([Intel XE#1214] / [Intel XE#1638] / [Intel XE#358])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_exec_reset@cat-error.html

  * igt@xe_exec_reset@cm-gt-reset:
    - shard-adlp:         NOTRUN -> [FAIL][95] ([Intel XE#1068])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@xe_exec_reset@cm-gt-reset.html

  * igt@xe_exec_reset@gt-reset-stress:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][96] ([Intel XE#1214] / [Intel XE#1638])
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_exec_reset@gt-reset-stress.html

  * igt@xe_exec_threads@threads-bal-mixed-fd-userptr-invalidate-race:
    - shard-dg2-set2:     [PASS][97] -> [DMESG-FAIL][98] ([Intel XE#1069] / [Intel XE#358]) +1 other test dmesg-fail
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@xe_exec_threads@threads-bal-mixed-fd-userptr-invalidate-race.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-433/igt@xe_exec_threads@threads-bal-mixed-fd-userptr-invalidate-race.html

  * igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate-race:
    - shard-dg2-set2:     [PASS][99] -> [DMESG-FAIL][100] ([Intel XE#358])
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate-race.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate-race.html

  * igt@xe_exec_threads@threads-bal-mixed-userptr:
    - shard-dg2-set2:     [PASS][101] -> [FAIL][102] ([Intel XE#1069]) +17 other tests fail
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-463/igt@xe_exec_threads@threads-bal-mixed-userptr.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-434/igt@xe_exec_threads@threads-bal-mixed-userptr.html

  * igt@xe_exec_threads@threads-bal-shared-vm-userptr-invalidate-race:
    - shard-adlp:         [PASS][103] -> [FAIL][104] ([Intel XE#1081]) +1 other test fail
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-6/igt@xe_exec_threads@threads-bal-shared-vm-userptr-invalidate-race.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@xe_exec_threads@threads-bal-shared-vm-userptr-invalidate-race.html
    - shard-dg2-set2:     [PASS][105] -> [FAIL][106] ([Intel XE#1081]) +3 other tests fail
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-434/igt@xe_exec_threads@threads-bal-shared-vm-userptr-invalidate-race.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-464/igt@xe_exec_threads@threads-bal-shared-vm-userptr-invalidate-race.html

  * igt@xe_mmap@small-bar:
    - shard-adlp:         NOTRUN -> [SKIP][107] ([Intel XE#1201] / [Intel XE#512])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@xe_mmap@small-bar.html

  * igt@xe_module_load@load:
    - shard-adlp:         NOTRUN -> [SKIP][108] ([Intel XE#1201] / [Intel XE#378]) +1 other test skip
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@xe_module_load@load.html

  * igt@xe_pm@s2idle-d3cold-basic-exec:
    - shard-adlp:         NOTRUN -> [SKIP][109] ([Intel XE#1201] / [Intel XE#366]) +2 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_pm@s2idle-d3cold-basic-exec.html

  * igt@xe_pm@s2idle-multiple-execs:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][110] ([Intel XE#1191] / [Intel XE#1214] / [Intel XE#1608]) +1 other test dmesg-warn
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@xe_pm@s2idle-multiple-execs.html

  * igt@xe_pm@s2idle-vm-bind-prefetch:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][111] ([Intel XE#1214] / [Intel XE#1608])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@xe_pm@s2idle-vm-bind-prefetch.html

  * igt@xe_pm@s4-d3hot-basic-exec:
    - shard-adlp:         [PASS][112] -> [ABORT][113] ([Intel XE#1358])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-2/igt@xe_pm@s4-d3hot-basic-exec.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@xe_pm@s4-d3hot-basic-exec.html

  * igt@xe_pm@s4-vm-bind-prefetch:
    - shard-adlp:         NOTRUN -> [INCOMPLETE][114] ([Intel XE#1195])
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@xe_pm@s4-vm-bind-prefetch.html

  * igt@xe_query@multigpu-query-invalid-extension:
    - shard-adlp:         NOTRUN -> [SKIP][115] ([Intel XE#1201] / [Intel XE#944]) +4 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_query@multigpu-query-invalid-extension.html

  * igt@xe_wedged@basic-wedged:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][116] ([Intel XE#1214] / [Intel XE#1760])
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@xe_wedged@basic-wedged.html

  
#### Possible fixes ####

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions:
    - shard-dg2-set2:     [DMESG-WARN][117] ([Intel XE#1214] / [Intel XE#282]) -> [PASS][118] +3 other tests pass
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-464/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-dg2-set2:     [FAIL][119] ([Intel XE#480] / [Intel XE#886]) -> [PASS][120]
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-433/igt@kms_flip@2x-plain-flip-ts-check.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-436/igt@kms_flip@2x-plain-flip-ts-check.html

  * igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a6-dp4:
    - shard-dg2-set2:     [FAIL][121] ([Intel XE#886]) -> [PASS][122]
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-433/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a6-dp4.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-436/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a6-dp4.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-dg2-set2:     [DMESG-WARN][123] ([Intel XE#1162] / [Intel XE#1214]) -> [PASS][124]
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_pm_rpm@system-suspend-modeset.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-433/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4:
    - shard-dg2-set2:     [FAIL][125] ([Intel XE#899]) -> [PASS][126] +1 other test pass
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_universal_plane@cursor-fb-leak@pipe-b-dp-4.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-c-edp-1:
    - {shard-lnl}:        [FAIL][127] ([Intel XE#899]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-lnl-3/igt@kms_universal_plane@cursor-fb-leak@pipe-c-edp-1.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-lnl-1/igt@kms_universal_plane@cursor-fb-leak@pipe-c-edp-1.html

  * igt@xe_ccs@suspend-resume@tile64-compressed-compfmt0-vram01-vram01:
    - shard-dg2-set2:     [INCOMPLETE][129] ([Intel XE#1195]) -> [PASS][130] +2 other tests pass
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-466/igt@xe_ccs@suspend-resume@tile64-compressed-compfmt0-vram01-vram01.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@xe_ccs@suspend-resume@tile64-compressed-compfmt0-vram01-vram01.html

  * igt@xe_evict@evict-mixed-threads-large:
    - shard-dg2-set2:     [TIMEOUT][131] ([Intel XE#1473] / [Intel XE#392]) -> [PASS][132]
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@xe_evict@evict-mixed-threads-large.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_evict@evict-mixed-threads-large.html

  * igt@xe_exec_fault_mode@many-userptr-invalidate-race:
    - {shard-lnl}:        [ABORT][133] ([Intel XE#1761]) -> [PASS][134] +2 other tests pass
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-lnl-2/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-lnl-1/igt@xe_exec_fault_mode@many-userptr-invalidate-race.html

  * igt@xe_gt_freq@freq_fixed_exec:
    - shard-dg2-set2:     [FAIL][135] -> [PASS][136]
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@xe_gt_freq@freq_fixed_exec.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-466/igt@xe_gt_freq@freq_fixed_exec.html

  * igt@xe_pm@s4-basic:
    - {shard-lnl}:        [ABORT][137] ([Intel XE#1358] / [Intel XE#1607]) -> [PASS][138]
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-lnl-2/igt@xe_pm@s4-basic.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-lnl-6/igt@xe_pm@s4-basic.html

  
#### Warnings ####

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - shard-dg2-set2:     [SKIP][139] ([Intel XE#1201] / [Intel XE#623]) -> [SKIP][140] ([Intel XE#623])
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_async_flips@invalid-async-flip:
    - shard-dg2-set2:     [SKIP][141] ([Intel XE#1201] / [Intel XE#873]) -> [SKIP][142] ([Intel XE#873])
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_async_flips@invalid-async-flip.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_async_flips@invalid-async-flip.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-dg2-set2:     [SKIP][143] ([Intel XE#1201] / [Intel XE#316]) -> [SKIP][144] ([Intel XE#316]) +1 other test skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-dg2-set2:     [SKIP][145] ([Intel XE#316]) -> [SKIP][146] ([Intel XE#1201] / [Intel XE#316])
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-180:
    - shard-dg2-set2:     [SKIP][147] ([Intel XE#1124]) -> [SKIP][148] ([Intel XE#1124] / [Intel XE#1201]) +1 other test skip
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-dg2-set2:     [SKIP][149] ([Intel XE#1201] / [Intel XE#607]) -> [SKIP][150] ([Intel XE#607]) +1 other test skip
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-dg2-set2:     [SKIP][151] ([Intel XE#1124] / [Intel XE#1201]) -> [SKIP][152] ([Intel XE#1124]) +3 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@linear-tiling-2-displays-2160x1440p:
    - shard-dg2-set2:     [SKIP][153] ([Intel XE#367]) -> [SKIP][154] ([Intel XE#1201] / [Intel XE#367])
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html

  * igt@kms_bw@linear-tiling-2-displays-3840x2160p:
    - shard-dg2-set2:     [SKIP][155] ([Intel XE#1201] / [Intel XE#367]) -> [SKIP][156] ([Intel XE#367])
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs@pipe-a-dp-4:
    - shard-dg2-set2:     [SKIP][157] ([Intel XE#1201] / [Intel XE#787]) -> [SKIP][158] ([Intel XE#787]) +55 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs@pipe-a-dp-4.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs@pipe-a-dp-4.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs:
    - shard-dg2-set2:     [SKIP][159] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][160] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +1 other test skip
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     [SKIP][161] ([Intel XE#787]) -> [SKIP][162] ([Intel XE#1201] / [Intel XE#787]) +6 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     [SKIP][163] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) -> [SKIP][164] ([Intel XE#455] / [Intel XE#787]) +15 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-dp-4.html

  * igt@kms_chamelium_color@gamma:
    - shard-dg2-set2:     [SKIP][165] ([Intel XE#1201] / [Intel XE#306]) -> [SKIP][166] ([Intel XE#306])
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_chamelium_color@gamma.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_chamelium_color@gamma.html

  * igt@kms_chamelium_edid@vga-edid-read:
    - shard-dg2-set2:     [SKIP][167] ([Intel XE#1201] / [Intel XE#373]) -> [SKIP][168] ([Intel XE#373]) +3 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_chamelium_edid@vga-edid-read.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_chamelium_edid@vga-edid-read.html

  * igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe:
    - shard-dg2-set2:     [SKIP][169] ([Intel XE#373]) -> [SKIP][170] ([Intel XE#1201] / [Intel XE#373]) +1 other test skip
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html

  * igt@kms_cursor_edge_walk@256x256-top-edge:
    - shard-dg2-set2:     [DMESG-WARN][171] ([Intel XE#282]) -> [DMESG-WARN][172] ([Intel XE#1214] / [Intel XE#282]) +3 other tests dmesg-warn
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_cursor_edge_walk@256x256-top-edge.html
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_cursor_edge_walk@256x256-top-edge.html

  * igt@kms_cursor_legacy@cursora-vs-flipa-varying-size:
    - shard-dg2-set2:     [DMESG-WARN][173] ([Intel XE#1214] / [Intel XE#282]) -> [DMESG-WARN][174] ([Intel XE#282]) +3 other tests dmesg-warn
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-dg2-set2:     [SKIP][175] ([Intel XE#1201] / [Intel XE#323]) -> [SKIP][176] ([Intel XE#323])
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-dg2-set2:     [SKIP][177] ([Intel XE#455]) -> [SKIP][178] ([Intel XE#1201] / [Intel XE#455]) +4 other tests skip
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@psr:
    - shard-dg2-set2:     [SKIP][179] ([Intel XE#1201] / [Intel XE#776]) -> [SKIP][180] ([Intel XE#776])
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_fbcon_fbt@psr.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@display-3x:
    - shard-dg2-set2:     [SKIP][181] ([Intel XE#1201] / [Intel XE#703]) -> [SKIP][182] ([Intel XE#703])
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_feature_discovery@display-3x.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_feature_discovery@display-3x.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-dg2-set2:     [INCOMPLETE][183] ([Intel XE#1195]) -> [DMESG-WARN][184] ([Intel XE#1162] / [Intel XE#1214])
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-463/igt@kms_flip@flip-vs-suspend.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][185] ([Intel XE#1191] / [Intel XE#1214] / [Intel XE#1608]) -> [INCOMPLETE][186] ([Intel XE#1195]) +1 other test incomplete
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-6/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a6:
    - shard-dg2-set2:     [DMESG-WARN][187] ([Intel XE#1162]) -> [DMESG-WARN][188] ([Intel XE#1162] / [Intel XE#1214]) +1 other test dmesg-warn
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a6.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a6.html

  * igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary:
    - shard-dg2-set2:     [SKIP][189] ([Intel XE#651]) -> [SKIP][190] ([Intel XE#1201] / [Intel XE#651]) +6 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@drrs-suspend:
    - shard-dg2-set2:     [SKIP][191] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][192] ([Intel XE#651]) +14 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-suspend.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-suspend.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-dg2-set2:     [SKIP][193] ([Intel XE#1158] / [Intel XE#1201]) -> [SKIP][194] ([Intel XE#1158])
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
    - shard-dg2-set2:     [SKIP][195] ([Intel XE#1201] / [Intel XE#653]) -> [SKIP][196] ([Intel XE#653]) +14 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt:
    - shard-dg2-set2:     [SKIP][197] ([Intel XE#653]) -> [SKIP][198] ([Intel XE#1201] / [Intel XE#653]) +5 other tests skip
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - shard-adlp:         [INCOMPLETE][199] ([Intel XE#1195] / [Intel XE#927]) -> [DMESG-WARN][200] ([Intel XE#1191] / [Intel XE#1214])
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_pipe_crc_basic@suspend-read-crc.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1:
    - shard-adlp:         [INCOMPLETE][201] ([Intel XE#1195]) -> [DMESG-WARN][202] ([Intel XE#1191] / [Intel XE#1214])
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-1/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-2/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation:
    - shard-dg2-set2:     [SKIP][203] ([Intel XE#455] / [Intel XE#498]) -> [SKIP][204] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#498]) +1 other test skip
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     [SKIP][205] ([Intel XE#498]) -> [SKIP][206] ([Intel XE#1201] / [Intel XE#498]) +2 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-b-hdmi-a-6.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-rotation@pipe-b-hdmi-a-6.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-dg2-set2:     [SKIP][207] ([Intel XE#1201] / [Intel XE#870]) -> [SKIP][208] ([Intel XE#870])
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_pm_backlight@bad-brightness.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-dg2-set2:     [SKIP][209] ([Intel XE#870]) -> [SKIP][210] ([Intel XE#1201] / [Intel XE#870])
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_pm_backlight@fade-with-dpms.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
    - shard-dg2-set2:     [SKIP][211] ([Intel XE#929]) -> [SKIP][212] ([Intel XE#1201] / [Intel XE#929]) +2 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html

  * igt@kms_psr@psr-cursor-render:
    - shard-dg2-set2:     [SKIP][213] ([Intel XE#1201] / [Intel XE#929]) -> [SKIP][214] ([Intel XE#929]) +7 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_psr@psr-cursor-render.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_psr@psr-cursor-render.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-dg2-set2:     [SKIP][215] ([Intel XE#1201] / [Intel XE#327]) -> [SKIP][216] ([Intel XE#327]) +1 other test skip
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-dg2-set2:     [SKIP][217] ([Intel XE#1201] / [Intel XE#1500]) -> [SKIP][218] ([Intel XE#1201] / [Intel XE#362])
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-464/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@flip-dpms:
    - shard-dg2-set2:     [SKIP][219] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][220] ([Intel XE#455]) +6 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@kms_vrr@flip-dpms.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@kms_vrr@flip-dpms.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-dg2-set2:     [SKIP][221] ([Intel XE#756]) -> [SKIP][222] ([Intel XE#1201] / [Intel XE#756])
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@kms_writeback@writeback-pixel-formats.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@kms_writeback@writeback-pixel-formats.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-dg2-set2:     [SKIP][223] ([Intel XE#1091] / [Intel XE#1201]) -> [SKIP][224] ([Intel XE#1091])
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@sriov_basic@bind-unbind-vf.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@sriov_basic@bind-unbind-vf.html

  * igt@xe_copy_basic@mem-copy-linear-0x3fff:
    - shard-dg2-set2:     [SKIP][225] ([Intel XE#1123] / [Intel XE#1201]) -> [SKIP][226] ([Intel XE#1123])
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0x3fff.html
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_copy_basic@mem-copy-linear-0x3fff.html

  * igt@xe_exec_fault_mode@once-userptr-invalidate-imm:
    - shard-dg2-set2:     [SKIP][227] ([Intel XE#288]) -> [SKIP][228] ([Intel XE#1201] / [Intel XE#288]) +4 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@xe_exec_fault_mode@once-userptr-invalidate-imm.html
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@xe_exec_fault_mode@once-userptr-invalidate-imm.html

  * igt@xe_exec_fault_mode@twice-bindexecqueue-rebind:
    - shard-dg2-set2:     [SKIP][229] ([Intel XE#1201] / [Intel XE#288]) -> [SKIP][230] ([Intel XE#288]) +11 other tests skip
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-435/igt@xe_exec_fault_mode@twice-bindexecqueue-rebind.html
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_exec_fault_mode@twice-bindexecqueue-rebind.html

  * igt@xe_pm@d3cold-multiple-execs:
    - shard-dg2-set2:     [SKIP][231] ([Intel XE#1201] / [Intel XE#366]) -> [SKIP][232] ([Intel XE#366]) +1 other test skip
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@xe_pm@d3cold-multiple-execs.html
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_pm@d3cold-multiple-execs.html

  * igt@xe_pm@s3-basic:
    - shard-adlp:         [DMESG-WARN][233] ([Intel XE#1191] / [Intel XE#1214]) -> [INCOMPLETE][234] ([Intel XE#1195] / [Intel XE#1358])
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-2/igt@xe_pm@s3-basic.html
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-9/igt@xe_pm@s3-basic.html

  * igt@xe_pm@s3-basic-exec:
    - shard-adlp:         [INCOMPLETE][235] ([Intel XE#1044] / [Intel XE#1195] / [Intel XE#1358]) -> [DMESG-WARN][236] ([Intel XE#1191] / [Intel XE#1214])
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-1/igt@xe_pm@s3-basic-exec.html
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-8/igt@xe_pm@s3-basic-exec.html

  * igt@xe_pm@s3-d3hot-basic-exec:
    - shard-adlp:         [DMESG-WARN][237] ([Intel XE#1162] / [Intel XE#1191] / [Intel XE#1214]) -> [INCOMPLETE][238] ([Intel XE#1044] / [Intel XE#1195] / [Intel XE#1358])
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-8/igt@xe_pm@s3-d3hot-basic-exec.html
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@xe_pm@s3-d3hot-basic-exec.html

  * igt@xe_pm@s3-vm-bind-prefetch:
    - shard-adlp:         [INCOMPLETE][239] ([Intel XE#1195]) -> [DMESG-WARN][240] ([Intel XE#1214])
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-9/igt@xe_pm@s3-vm-bind-prefetch.html
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-6/igt@xe_pm@s3-vm-bind-prefetch.html

  * igt@xe_pm@s4-multiple-execs:
    - shard-adlp:         [ABORT][241] ([Intel XE#1358] / [Intel XE#1794]) -> [INCOMPLETE][242] ([Intel XE#1195] / [Intel XE#1358])
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-adlp-9/igt@xe_pm@s4-multiple-execs.html
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-adlp-1/igt@xe_pm@s4-multiple-execs.html

  * igt@xe_query@multigpu-query-gt-list:
    - shard-dg2-set2:     [SKIP][243] ([Intel XE#944]) -> [SKIP][244] ([Intel XE#1201] / [Intel XE#944])
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-432/igt@xe_query@multigpu-query-gt-list.html
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-435/igt@xe_query@multigpu-query-gt-list.html

  * igt@xe_query@multigpu-query-invalid-query:
    - shard-dg2-set2:     [SKIP][245] ([Intel XE#1201] / [Intel XE#944]) -> [SKIP][246] ([Intel XE#944])
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-436/igt@xe_query@multigpu-query-invalid-query.html
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-432/igt@xe_query@multigpu-query-invalid-query.html

  * igt@xe_wedged@wedged-at-any-timeout:
    - shard-dg2-set2:     [DMESG-WARN][247] ([Intel XE#1214] / [Intel XE#1760]) -> [DMESG-FAIL][248] ([Intel XE#1760])
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1/shard-dg2-464/igt@xe_wedged@wedged-at-any-timeout.html
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-134202v1/shard-dg2-434/igt@xe_wedged@wedged-at-any-timeout.html

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

  [Intel XE#1044]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1044
  [Intel XE#1062]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1062
  [Intel XE#1068]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1068
  [Intel XE#1069]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1069
  [Intel XE#1081]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1081
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [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#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
  [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#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
  [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#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1149
  [Intel XE#1151]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1151
  [Intel XE#1158]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1158
  [Intel XE#1162]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1162
  [Intel XE#1191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1191
  [Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195
  [Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201
  [Intel XE#1211]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1211
  [Intel XE#1214]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1214
  [Intel XE#1231]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1231
  [Intel XE#1252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1252
  [Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399
  [Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
  [Intel XE#1413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1413
  [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
  [Intel XE#1437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1437
  [Intel XE#1446]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1446
  [Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
  [Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
  [Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
  [Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
  [Intel XE#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
  [Intel XE#1607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1607
  [Intel XE#1608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1608
  [Intel XE#1638]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1638
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#1760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1760
  [Intel XE#1761]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1761
  [Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
  [Intel XE#1861]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1861
  [Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
  [Intel XE#1932]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1932
  [Intel XE#1960]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1960
  [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
  [Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#305]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/305
  [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#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
  [Intel XE#314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/314
  [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#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324
  [Intel XE#327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/327
  [Intel XE#330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/330
  [Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
  [Intel XE#358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/358
  [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#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
  [Intel XE#392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/392
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480
  [Intel XE#488]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/488
  [Intel XE#498]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/498
  [Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
  [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#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#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#702]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/702
  [Intel XE#703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/703
  [Intel XE#734]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/734
  [Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
  [Intel XE#771]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/771
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#873]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/873
  [Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
  [Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
  [Intel XE#927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/927
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * Linux: xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1 -> xe-pw-134202v1

  IGT_7873: b9bcded9123ac56ce05748de6c4870fb49451b87 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-1374-55d6179b96e0390025f2ba101c03b94b50cab7a1: 55d6179b96e0390025f2ba101c03b94b50cab7a1
  xe-pw-134202v1: 134202v1

== Logs ==

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

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

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

end of thread, other threads:[~2024-05-30  0:42 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-29 19:29 [PATCH] drm/xe: Decouple xe_exec_queue and xe_lrc Niranjana Vishwanathapura
2024-05-29 21:00 ` ✓ CI.Patch_applied: success for " Patchwork
2024-05-29 21:00 ` ✓ CI.checkpatch: " Patchwork
2024-05-29 21:01 ` ✓ CI.KUnit: " Patchwork
2024-05-29 21:13 ` ✓ CI.Build: " Patchwork
2024-05-29 21:13 ` ✗ CI.Hooks: failure " Patchwork
2024-05-29 21:15 ` ✓ CI.checksparse: success " Patchwork
2024-05-29 21:39 ` ✗ CI.BAT: failure " Patchwork
2024-05-29 21:41 ` [PATCH] " Matthew Brost
2024-05-30  0:42 ` ✗ CI.FULL: failure for " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2024-05-29 21:49 [PATCH] " Niranjana Vishwanathapura

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