All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
@ 2026-07-02  7:21 Maarten Lankhorst
  2026-07-02  7:21 ` [PATCH 01/10] drm/vblank_work: Add methods to schedule vblank_work in 2 stages Maarten Lankhorst
                   ` (16 more replies)
  0 siblings, 17 replies; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

CONFIG_PREEMPT_RT requires code to be as deterministic as possible,
and codes with interrupts disabled cannot use spinlocks.

In order to handle this correctly, we ensure any locking requirements
are handled before disabling interrupts, and only start locking again
after interrupts are re-enabled and timing sensitive path completed.

This also has the benefit of making the vblank evasion code more
deterministic; without locking there's much less jitter.

Previously, we scheduled vblank work on completion.
This is now handled by scheduling the vblank in advance, only arming
it upon completion without locks.

Maarten Lankhorst (9):
  drm/vblank_work: Add methods to schedule vblank_work in 2 stages
  drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event
  drm/intel/display: Make intel_crtc_arm_vblank_event static
  drm/intel/display: Convert vblank event handling to 2-stage arming
  drm/i915/display: Move vblank put until after critical section
  drm/i915/display: Remove locking from intel_vblank_evade critical
    section
  drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range
    too
  drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
  drm/i915/display: Do not take uncore lock in i915_get_vblank_counter

Mike Galbraith (1):
  drm/i915: Use preempt_disable/enable_rt() where recommended

 drivers/gpu/drm/drm_vblank.c                  |  64 +++++++++-
 drivers/gpu/drm/drm_vblank_work.c             | 110 +++++++++++++----
 drivers/gpu/drm/i915/display/intel_crtc.c     |  86 ++++++-------
 drivers/gpu/drm/i915/display/intel_crtc.h     |   1 -
 drivers/gpu/drm/i915/display/intel_cursor.c   |   8 +-
 drivers/gpu/drm/i915/display/intel_de.h       |   8 ++
 drivers/gpu/drm/i915/display/intel_vblank.c   | 115 ++++++++++--------
 drivers/gpu/drm/i915/display/intel_vblank.h   |   1 +
 drivers/gpu/drm/i915/intel_uncore.h           |  26 ++--
 .../drm/xe/compat-i915-headers/intel_uncore.h |   7 ++
 include/drm/drm_vblank.h                      |  14 ++-
 include/drm/drm_vblank_work.h                 |  12 ++
 12 files changed, 324 insertions(+), 128 deletions(-)

-- 
2.53.0


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

* [PATCH 01/10] drm/vblank_work: Add methods to schedule vblank_work in 2 stages
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:32   ` sashiko-bot
  2026-07-02  7:21 ` [PATCH 02/10] drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event Maarten Lankhorst
                   ` (15 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

In case of vblank evasion in intel/display, it's necessary to
perform some work in advance, so the critical section will always run in
constant time on PREEMPT_RT.

By preparing all the work in advance, the part that needs to finish in
constant time only has to write a single variable instead. This allows
PREEMPT_RT to keep the interrupts disabled at the most critical part,
without completely reworking all locks to be raw spinlocks.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/drm_vblank_work.c | 110 +++++++++++++++++++++++-------
 include/drm/drm_vblank_work.h     |  12 ++++
 2 files changed, 96 insertions(+), 26 deletions(-)

diff --git a/drivers/gpu/drm/drm_vblank_work.c b/drivers/gpu/drm/drm_vblank_work.c
index 70f0199251ea0..ed62c189fe041 100644
--- a/drivers/gpu/drm/drm_vblank_work.c
+++ b/drivers/gpu/drm/drm_vblank_work.c
@@ -54,7 +54,8 @@ void drm_handle_vblank_works(struct drm_vblank_crtc *vblank)
 	assert_spin_locked(&vblank->dev->event_lock);
 
 	list_for_each_entry_safe(work, next, &vblank->pending_work, node) {
-		if (!drm_vblank_passed(count, work->count))
+		/* READ_ONCE pairs with WRITE_ONCE in drm_vblank_work_enable() */
+		if (!READ_ONCE(work->armed) || !drm_vblank_passed(count, work->count))
 			continue;
 
 		list_del_init(&work->node);
@@ -86,30 +87,8 @@ void drm_vblank_cancel_pending_works(struct drm_vblank_crtc *vblank)
 	wake_up_all(&vblank->work_wait_queue);
 }
 
-/**
- * drm_vblank_work_schedule - schedule a vblank work
- * @work: vblank work to schedule
- * @count: target vblank count
- * @nextonmiss: defer until the next vblank if target vblank was missed
- *
- * Schedule @work for execution once the crtc vblank count reaches @count.
- *
- * If the crtc vblank count has already reached @count and @nextonmiss is
- * %false the work starts to execute immediately.
- *
- * If the crtc vblank count has already reached @count and @nextonmiss is
- * %true the work is deferred until the next vblank (as if @count has been
- * specified as crtc vblank count + 1).
- *
- * If @work is already scheduled, this function will reschedule said work
- * using the new @count. This can be used for self-rearming work items.
- *
- * Returns:
- * %1 if @work was successfully (re)scheduled, %0 if it was either already
- * scheduled or cancelled, or a negative error code on failure.
- */
-int drm_vblank_work_schedule(struct drm_vblank_work *work,
-			     u64 count, bool nextonmiss)
+static int __drm_vblank_work_schedule(struct drm_vblank_work *work,
+				      u64 count, bool nextonmiss, bool armed)
 {
 	struct drm_vblank_crtc *vblank = work->vblank;
 	struct drm_device *dev = vblank->dev;
@@ -139,6 +118,7 @@ int drm_vblank_work_schedule(struct drm_vblank_work *work,
 		rescheduling = true;
 	}
 
+	work->armed = armed;
 	work->count = count;
 	cur_vbl = drm_vblank_count(dev, vblank->pipe);
 	passed = drm_vblank_passed(cur_vbl, count);
@@ -147,7 +127,7 @@ int drm_vblank_work_schedule(struct drm_vblank_work *work,
 			     "crtc %d vblank %llu already passed (current %llu)\n",
 			     vblank->pipe, count, cur_vbl);
 
-	if (!nextonmiss && passed) {
+	if (!nextonmiss && passed && armed) {
 		drm_vblank_put(dev, vblank->pipe);
 		ret = kthread_queue_work(vblank->worker, &work->base);
 
@@ -167,8 +147,86 @@ int drm_vblank_work_schedule(struct drm_vblank_work *work,
 		wake_up_all(&vblank->work_wait_queue);
 	return ret;
 }
+
+/**
+ * drm_vblank_work_schedule - schedule a vblank work
+ * @work: vblank work to schedule
+ * @count: target vblank count
+ * @nextonmiss: defer until the next vblank if target vblank was missed
+ *
+ * Schedule @work for execution once the crtc vblank count reaches @count.
+ *
+ * If the crtc vblank count has already reached @count and @nextonmiss is
+ * %false the work starts to execute immediately.
+ *
+ * If the crtc vblank count has already reached @count and @nextonmiss is
+ * %true the work is deferred until the next vblank (as if @count has been
+ * specified as crtc vblank count + 1).
+ *
+ * If @work is already scheduled, this function will reschedule said work
+ * using the new @count. This can be used for self-rearming work items.
+ *
+ * Returns:
+ * %1 if @work was successfully (re)scheduled, %0 if it was either already
+ * scheduled or cancelled, or a negative error code on failure.
+ */
+int drm_vblank_work_schedule(struct drm_vblank_work *work,
+			     u64 count, bool nextonmiss)
+{
+	return __drm_vblank_work_schedule(work, count, nextonmiss, true);
+}
 EXPORT_SYMBOL(drm_vblank_work_schedule);
 
+
+/**
+ * drm_vblank_work_schedule_disabled - schedule a vblank work, withoug enabling
+ * @work: vblank work to schedule
+ * @count: target vblank count
+ *
+ * Schedule @work for execution once the crtc vblank count reaches @count.
+ *
+ * The vblank work will not be scheduled until drm_vblank_work_enable() is called.
+ * If the crtc vblank count has already reached @count, the work will still
+ * not be scheduled until the first following vblank.
+ *
+ * If @work is already scheduled, this function will reschedule said work
+ * using the new @count. This can be used for self-rearming work items.
+ *
+ * Returns:
+ * %1 if @work was successfully (re)scheduled, %0 if it was either already
+ * scheduled or cancelled, or a negative error code on failure.
+ */
+int drm_vblank_work_schedule_disabled(struct drm_vblank_work *work, u64 count)
+{
+	return __drm_vblank_work_schedule(work, count, true, false);
+}
+EXPORT_SYMBOL(drm_vblank_work_schedule_disabled);
+
+/**
+ * drm_vblank_work_enable - enable vblank work
+ * @work: vblank work to enable
+ *
+ * This function is specifically only for when drm_vblank_work_schedule_disabled() is
+ * called. It allows for the work to be armed in any context, without any locks.
+ *
+ * The work will be signalled earliest at the @count argument, if it has been passed,
+ * it will signalled at the next vblank.
+ *
+ * This is particularly useful for PREEMPT_RT, where the spin_lock is converted
+ * into a sleeping rtmutex, and vblank evasion requires some work to be
+ * scheduled on completion with interrupts disabled.
+ */
+void drm_vblank_work_enable(struct drm_vblank_work *work)
+{
+	WARN_ON(work->armed);
+
+	/* Ensure previous writes are visible */
+	smp_wmb();
+
+	WRITE_ONCE(work->armed, true);
+}
+EXPORT_SYMBOL(drm_vblank_work_enable);
+
 /**
  * drm_vblank_work_cancel_sync - cancel a vblank work and wait for it to
  * finish executing
diff --git a/include/drm/drm_vblank_work.h b/include/drm/drm_vblank_work.h
index e04d436b72973..e19351200da24 100644
--- a/include/drm/drm_vblank_work.h
+++ b/include/drm/drm_vblank_work.h
@@ -47,6 +47,14 @@ struct drm_vblank_work {
 	 */
 	int cancelling;
 
+	/**
+	 * @armed: If false, the work item has been added to the
+	 * drm_vblank_crtc.pending_work list, but will not yet be signalled.
+	 *
+	 * Call drm_vblank_work_enable() to fire on next vblank.
+	 */
+	bool armed;
+
 	/**
 	 * @node: The position of this work item in
 	 * &drm_vblank_crtc.pending_work.
@@ -64,6 +72,10 @@ struct drm_vblank_work {
 
 int drm_vblank_work_schedule(struct drm_vblank_work *work,
 			     u64 count, bool nextonmiss);
+
+int drm_vblank_work_schedule_disabled(struct drm_vblank_work *work, u64 count);
+void drm_vblank_work_enable(struct drm_vblank_work *work);
+
 void drm_vblank_work_init(struct drm_vblank_work *work, struct drm_crtc *crtc,
 			  void (*func)(struct kthread_work *work));
 bool drm_vblank_work_cancel_sync(struct drm_vblank_work *work);
-- 
2.53.0


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

* [PATCH 02/10] drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
  2026-07-02  7:21 ` [PATCH 01/10] drm/vblank_work: Add methods to schedule vblank_work in 2 stages Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:35   ` sashiko-bot
  2026-07-02  7:21 ` [PATCH 03/10] drm/intel/display: Make intel_crtc_arm_vblank_event static Maarten Lankhorst
                   ` (14 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

When trying to fix the hardware programming in intel/display, I had
to take all the vblank locks with local_irqs_disabled(). This
required converting the entire vblank code to raw spinlocks.

In the alternative approach, do all preparations in advance, and only
enable the vblank_event with interrupts disabled, this requires only
a simple write and prevents a complete re-architecture of the code.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/drm_vblank.c | 64 +++++++++++++++++++++++++++++++++++-
 include/drm/drm_vblank.h     | 14 +++++++-
 2 files changed, 76 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index f90fb2d13e423..b52e0215312f8 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1127,12 +1127,71 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
 
 	assert_spin_locked(&dev->event_lock);
 
+	WARN_ON(e->postponed);
 	e->pipe = pipe;
 	e->sequence = drm_crtc_accurate_vblank_count(crtc) + 1;
 	list_add_tail(&e->base.link, &dev->vblank_event_list);
 }
 EXPORT_SYMBOL(drm_crtc_arm_vblank_event);
 
+/**
+ * drm_crtc_prepare_arm_vblank_event - arm vblank event *before* pageflip.
+ * @crtc: the source CRTC of the vblank event
+ * @e: the event to send
+ *
+ * See drm_crtc_arm_vblank_event(). This function is a 2-stage version of
+ * that call. This function is called *BEFORE* programming the hardware.
+ *
+ * After programming, call drm_crtc_arm_prepared_vblank_event() and the
+ * event will be scheduled on the next vblank.
+ *
+ * This is mainly useful for code that has to run on PREEMPT_RT kernels,
+ * with interrupts disabled, since all vblank spinlocks are converted to
+ * rtmutexes, and code running with irqs disabled cannot take any vblank lock.
+ *
+ * It also increases determinism for any hardware
+ * programming, since no vblank related locks are taking when arming.
+ */
+void drm_crtc_prepare_arm_vblank_event(struct drm_crtc *crtc,
+				       struct drm_pending_vblank_event *e)
+{
+	drm_crtc_arm_vblank_event(crtc, e);
+
+	/* Set the flag, so that the event is not fired yet */
+	e->postponed = true;
+}
+EXPORT_SYMBOL(drm_crtc_prepare_arm_vblank_event);
+
+/**
+ * drm_crtc_arm_prepared_vblank_event - arm prepared vblank event *after* pageflip.
+ * @crtc: the source CRTC of the vblank event
+ * @e: the event to send
+ *
+ * See drm_crtc_prepare_arm_vblank_event(). This function is a 2-stage version of
+ * that call. This function is called directly *AFTER* programming the hardware.
+ *
+ * Before this function is called, drm_crtc_prepare_arm_vblank_event() should be
+ * called instead.
+ *
+ * This is mainly useful for code that has to run on PREEMPT_RT kernels,
+ * with interrupts disabled, since all vblank spinlocks are converted to
+ * rtmutexes, and code running with irqs disabled cannot take any vblank lock.
+ *
+ * It also increases determinism for any hardware
+ * programming, since no vblank related locks are taking when arming.
+ */
+void drm_crtc_arm_prepared_vblank_event(struct drm_pending_vblank_event *e)
+{
+	WARN_ON(!e->postponed);
+
+	/* Ensure previous writes are visible */
+	smp_wmb();
+
+	/* remove the flag to be processed as a normal event */
+	WRITE_ONCE(e->postponed, false);
+}
+EXPORT_SYMBOL(drm_crtc_arm_prepared_vblank_event);
+
 /**
  * drm_crtc_send_vblank_event - helper to send vblank event after pageflip
  * @crtc: the source CRTC of the vblank event
@@ -1390,6 +1449,8 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
 	list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
 		if (e->pipe != pipe)
 			continue;
+
+		WARN_ON(e->postponed);
 		drm_dbg_core(dev, "Sending premature vblank event on disable: "
 			     "wanted %llu, current %llu\n",
 			     e->sequence, seq);
@@ -1892,7 +1953,8 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
 	seq = drm_vblank_count_and_time(dev, pipe, &now);
 
 	list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
-		if (e->pipe != pipe)
+		/* Matches WRITE_ONCE in drm_crtc_arm_prepared_vblank_event() */
+		if (e->pipe != pipe || READ_ONCE(e->postponed))
 			continue;
 		if (!drm_vblank_passed(seq, e->sequence))
 			continue;
diff --git a/include/drm/drm_vblank.h b/include/drm/drm_vblank.h
index 2fcef9c0f5b1b..956d5621eb7f9 100644
--- a/include/drm/drm_vblank.h
+++ b/include/drm/drm_vblank.h
@@ -53,6 +53,13 @@ struct drm_pending_vblank_event {
 	 * @sequence: frame event should be triggered at
 	 */
 	u64 sequence;
+
+	/**
+	 * @postponed: whether drm_crtc_prepare_arm_vblank_event() is called,
+	 * and drm_crtc_arm_prepared_vblank_event has yet to be called to arm.
+	 */
+	bool postponed;
+
 	/**
 	 * @event: Actual event which will be sent to userspace.
 	 */
@@ -294,7 +301,12 @@ int drm_crtc_next_vblank_start(struct drm_crtc *crtc, ktime_t *vblanktime);
 void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
 			       struct drm_pending_vblank_event *e);
 void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
-			      struct drm_pending_vblank_event *e);
+			       struct drm_pending_vblank_event *e);
+
+void drm_crtc_prepare_arm_vblank_event(struct drm_crtc *crtc,
+				       struct drm_pending_vblank_event *e);
+void drm_crtc_arm_prepared_vblank_event(struct drm_pending_vblank_event *e);
+
 void drm_vblank_set_event(struct drm_pending_vblank_event *e,
 			  u64 *seq,
 			  ktime_t *now);
-- 
2.53.0


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

* [PATCH 03/10] drm/intel/display: Make intel_crtc_arm_vblank_event static
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
  2026-07-02  7:21 ` [PATCH 01/10] drm/vblank_work: Add methods to schedule vblank_work in 2 stages Maarten Lankhorst
  2026-07-02  7:21 ` [PATCH 02/10] drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-10 14:20   ` Ville Syrjälä
  2026-07-02  7:21 ` [PATCH 04/10] drm/intel/display: Convert vblank event handling to 2-stage arming Maarten Lankhorst
                   ` (13 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

Only used inside intel_crtc.c now, so no need to export it any more.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/i915/display/intel_crtc.c | 2 +-
 drivers/gpu/drm/i915/display/intel_crtc.h | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index 10ed9bdfee763..805645318747f 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -684,7 +684,7 @@ static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end)
 static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end) {}
 #endif
 
-void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state)
+static void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	unsigned long irqflags;
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.h b/drivers/gpu/drm/i915/display/intel_crtc.h
index 12507b51ee77e..f65cbafe2b42a 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.h
+++ b/drivers/gpu/drm/i915/display/intel_crtc.h
@@ -33,7 +33,6 @@ int intel_usecs_to_scanlines(const struct drm_display_mode *adjusted_mode,
 			     int usecs);
 int intel_scanlines_to_usecs(const struct drm_display_mode *adjusted_mode,
 			     int scanlines);
-void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state);
 void intel_crtc_prepare_vblank_event(struct intel_crtc_state *crtc_state,
 				     struct drm_pending_vblank_event **event);
 u32 intel_crtc_max_vblank_count(const struct intel_crtc_state *crtc_state);
-- 
2.53.0


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

* [PATCH 04/10] drm/intel/display: Convert vblank event handling to 2-stage arming
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (2 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 03/10] drm/intel/display: Make intel_crtc_arm_vblank_event static Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:37   ` sashiko-bot
  2026-07-02  7:21 ` [PATCH 05/10] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
                   ` (12 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

This is converts the vblank functions to be called with interrupts
disabled, even on PREEMPT_RT kernels.

Because the PREEMPT_RT kernel converts all spinlocks to rt-mutexes,
the normal vblank functions cannot be used inside the critical section.

Instead, prepare the vblank at the start, and then enable the vblank
work after the hardware programming is completed.

This allows us to keep programming the hardware with interrupts
disabled, and still schedule completion on PREEMPT_RT on next vblank.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/i915/display/intel_crtc.c | 84 ++++++++++++-----------
 1 file changed, 44 insertions(+), 40 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index 805645318747f..34a159f7c9a43 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -527,6 +527,10 @@ static void intel_crtc_vblank_work_init(struct intel_crtc_state *crtc_state)
 
 	drm_vblank_work_init(&crtc_state->vblank_work, &crtc->base,
 			     intel_crtc_vblank_work);
+
+	drm_vblank_work_schedule_disabled(&crtc_state->vblank_work,
+					  drm_crtc_accurate_vblank_count(&crtc->base) + 1);
+
 	/*
 	 * Interrupt latency is critical for getting the vblank
 	 * work executed as early as possible during the vblank.
@@ -571,6 +575,21 @@ int intel_scanlines_to_usecs(const struct drm_display_mode *adjusted_mode,
 				adjusted_mode->crtc_clock);
 }
 
+static void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state)
+{
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	unsigned long irqflags;
+
+	if (!crtc_state->uapi.event)
+		return;
+
+	drm_WARN_ON(crtc->base.dev, drm_crtc_vblank_get(&crtc->base) != 0);
+
+	spin_lock_irqsave(&crtc->base.dev->event_lock, irqflags);
+	drm_crtc_prepare_arm_vblank_event(&crtc->base, crtc_state->uapi.event);
+	spin_unlock_irqrestore(&crtc->base.dev->event_lock, irqflags);
+}
+
 /**
  * intel_pipe_update_start() - start update of a set of display registers
  * @state: the atomic state
@@ -607,6 +626,8 @@ void intel_pipe_update_start(struct intel_atomic_state *state,
 
 	if (intel_crtc_needs_vblank_work(new_crtc_state))
 		intel_crtc_vblank_work_init(new_crtc_state);
+	else
+		intel_crtc_arm_vblank_event(new_crtc_state);
 
 	if (state->base.legacy_cursor_update) {
 		struct intel_plane *plane;
@@ -684,23 +705,6 @@ static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end)
 static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end) {}
 #endif
 
-static void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state)
-{
-	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
-	unsigned long irqflags;
-
-	if (!crtc_state->uapi.event)
-		return;
-
-	drm_WARN_ON(crtc->base.dev, drm_crtc_vblank_get(&crtc->base) != 0);
-
-	spin_lock_irqsave(&crtc->base.dev->event_lock, irqflags);
-	drm_crtc_arm_vblank_event(&crtc->base, crtc_state->uapi.event);
-	spin_unlock_irqrestore(&crtc->base.dev->event_lock, irqflags);
-
-	crtc_state->uapi.event = NULL;
-}
-
 void intel_crtc_prepare_vblank_event(struct intel_crtc_state *crtc_state,
 				     struct drm_pending_vblank_event **event)
 {
@@ -754,29 +758,10 @@ void intel_pipe_update_end(struct intel_atomic_state *state,
 	 * event outside of the critical section - the spinlock might spin for a
 	 * while ... */
 	if (intel_crtc_needs_vblank_work(new_crtc_state)) {
-		drm_vblank_work_schedule(&new_crtc_state->vblank_work,
-					 drm_crtc_accurate_vblank_count(&crtc->base) + 1,
-					 false);
-	} else {
-		intel_crtc_arm_vblank_event(new_crtc_state);
-	}
-
-	if (state->base.legacy_cursor_update) {
-		struct intel_plane *plane;
-		struct intel_plane_state *old_plane_state;
-		int i;
-
-		for_each_old_intel_plane_in_state(state, plane, old_plane_state, i) {
-			if (old_plane_state->hw.crtc == &crtc->base &&
-			    old_plane_state->unpin_work.vblank) {
-				drm_vblank_work_schedule(&old_plane_state->unpin_work,
-							 drm_crtc_accurate_vblank_count(&crtc->base) + 1,
-							 false);
-
-				/* Remove plane from atomic state, cleanup/free is done from vblank worker. */
-				memset(&state->base.planes[i], 0, sizeof(state->base.planes[i]));
-			}
-		}
+		drm_vblank_work_enable(&new_crtc_state->vblank_work);
+	} else if (new_crtc_state->uapi.event) {
+		drm_crtc_arm_prepared_vblank_event(new_crtc_state->uapi.event);
+		new_crtc_state->uapi.event = NULL;
 	}
 
 	/*
@@ -800,6 +785,25 @@ void intel_pipe_update_end(struct intel_atomic_state *state,
 
 	local_irq_enable();
 
+	/* Run after local_irq_enable(), not timing sensitive */
+	if (state->base.legacy_cursor_update) {
+		struct intel_plane *plane;
+		struct intel_plane_state *old_plane_state;
+		int i;
+
+		for_each_old_intel_plane_in_state(state, plane, old_plane_state, i) {
+			if (old_plane_state->hw.crtc == &crtc->base &&
+			    old_plane_state->unpin_work.vblank) {
+				drm_vblank_work_schedule(&old_plane_state->unpin_work,
+							 drm_crtc_accurate_vblank_count(&crtc->base) + 1,
+							 false);
+
+				/* Remove plane from atomic state, cleanup/free is done from vblank worker. */
+				memset(&state->base.planes[i], 0, sizeof(state->base.planes[i]));
+			}
+		}
+	}
+
 	if (intel_parent_vgpu_active(display))
 		goto out;
 
-- 
2.53.0


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

* [PATCH 05/10] drm/i915/display: Move vblank put until after critical section
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (3 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 04/10] drm/intel/display: Convert vblank event handling to 2-stage arming Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:34   ` sashiko-bot
  2026-07-02  7:21 ` [PATCH 06/10] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
                   ` (11 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst, Uma Shankar

drm_crtc_vblank_put may take some locks, this should probably
not be the first thing we do after entering the time sensitive
part.

A better place is after programming is completed. Add a flag
to put the vblank after completion.

In the case of drm_vblank_work_schedule, we may not even need
to disable the vblank interrupt any more if it takes its own
reference.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
---
 drivers/gpu/drm/i915/display/intel_cursor.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
index 88384dea868b4..68b44a00567e4 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -816,6 +816,7 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
 		to_intel_crtc_state(crtc->base.state);
 	struct intel_crtc_state *new_crtc_state;
 	struct intel_vblank_evade_ctx evade;
+	bool has_vblank = false;
 	int ret;
 
 	/*
@@ -913,6 +914,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
 	intel_psr_lock(crtc_state);
 
 	if (!drm_WARN_ON(display->drm, drm_crtc_vblank_get(&crtc->base))) {
+		has_vblank = true;
+
 		/*
 		 * TODO: maybe check if we're still in PSR
 		 * and skip the vblank evasion entirely?
@@ -922,8 +925,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
 		local_irq_disable();
 
 		intel_vblank_evade(&evade);
-
-		drm_crtc_vblank_put(&crtc->base);
 	} else {
 		local_irq_disable();
 	}
@@ -939,6 +940,9 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
 
 	intel_psr_unlock(crtc_state);
 
+	if (has_vblank)
+		drm_crtc_vblank_put(&crtc->base);
+
 	if (old_plane_state->ggtt_vma != new_plane_state->ggtt_vma) {
 		drm_vblank_work_init(&old_plane_state->unpin_work, &crtc->base,
 				     intel_cursor_unpin_work);
-- 
2.53.0


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

* [PATCH 06/10] drm/i915/display: Remove locking from intel_vblank_evade critical section
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (4 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 05/10] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:36   ` sashiko-bot
  2026-07-02  7:21 ` [PATCH 07/10] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
                   ` (10 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

finish_wait() may take a lock, which means that it can take any amount
of time. On PREEMPT-RT we should not be taking any lock after disabling
preemption, so ensure that the completion is done before disabling
interrupts.

This also has the benefit of making vblank evasion more deterministic,
by performing the final vblank check after all locking is done.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/i915/display/intel_crtc.c   |  2 +-
 drivers/gpu/drm/i915/display/intel_vblank.c | 30 +++++++++------------
 drivers/gpu/drm/i915/display/intel_vblank.h |  1 +
 3 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
index 34a159f7c9a43..8218938985b41 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -734,7 +734,7 @@ void intel_pipe_update_end(struct intel_atomic_state *state,
 	struct intel_crtc_state *new_crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
 	enum pipe pipe = crtc->pipe;
-	int scanline_end = intel_get_crtc_scanline(crtc);
+	int scanline_end = __intel_get_crtc_scanline(crtc);
 	u32 end_vbl_count = intel_crtc_get_vblank_counter(crtc);
 	ktime_t end_vbl_time = ktime_get();
 
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 28d81199792ef..ca08059e088ea 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -241,7 +241,7 @@ int intel_crtc_scanline_offset(const struct intel_crtc_state *crtc_state)
  * intel_de_read_fw(), only for fast reads of display block, no need for
  * forcewake etc.
  */
-static int __intel_get_crtc_scanline(struct intel_crtc *crtc)
+int __intel_get_crtc_scanline(struct intel_crtc *crtc)
 {
 	struct intel_display *display = to_intel_display(crtc);
 	struct drm_vblank_crtc *vblank = drm_crtc_vblank_crtc(&crtc->base);
@@ -732,6 +732,16 @@ void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
 		evade->min -= vblank_delay;
 }
 
+static bool scanline_in_safe_range(struct intel_vblank_evade_ctx *evade, int *scanline, bool unlocked)
+{
+	if (unlocked)
+		*scanline = intel_get_crtc_scanline(evade->crtc);
+	else
+		*scanline = __intel_get_crtc_scanline(evade->crtc);
+
+	return *scanline < evade->min || *scanline > evade->max;
+}
+
 /* must be called with vblank interrupt already enabled! */
 int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
 {
@@ -739,24 +749,12 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
 	struct intel_display *display = to_intel_display(crtc);
 	long timeout = msecs_to_jiffies_timeout(1);
 	wait_queue_head_t *wq = drm_crtc_vblank_waitqueue(&crtc->base);
-	DEFINE_WAIT(wait);
 	int scanline;
 
 	if (evade->min <= 0 || evade->max <= 0)
 		return 0;
 
-	for (;;) {
-		/*
-		 * prepare_to_wait() has a memory barrier, which guarantees
-		 * other CPUs can see the task state update by the time we
-		 * read the scanline.
-		 */
-		prepare_to_wait(wq, &wait, TASK_UNINTERRUPTIBLE);
-
-		scanline = intel_get_crtc_scanline(crtc);
-		if (scanline < evade->min || scanline > evade->max)
-			break;
-
+	while (!scanline_in_safe_range(evade, &scanline, false)) {
 		if (!timeout) {
 			drm_dbg_kms(display->drm,
 				    "Potential atomic update failure on pipe %c\n",
@@ -766,13 +764,11 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
 
 		local_irq_enable();
 
-		timeout = schedule_timeout(timeout);
+		timeout = wait_event_timeout(*wq, scanline_in_safe_range(evade, &scanline, true), timeout);
 
 		local_irq_disable();
 	}
 
-	finish_wait(wq, &wait);
-
 	/*
 	 * On VLV/CHV DSI the scanline counter would appear to
 	 * increment approx. 1/3 of a scanline before start of vblank.
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.h b/drivers/gpu/drm/i915/display/intel_vblank.h
index 98d04cacd65f8..aa1974400e9fc 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.h
+++ b/drivers/gpu/drm/i915/display/intel_vblank.h
@@ -38,6 +38,7 @@ u32 g4x_get_vblank_counter(struct drm_crtc *crtc);
 bool intel_crtc_get_vblank_timestamp(struct drm_crtc *crtc, int *max_error,
 				     ktime_t *vblank_time, bool in_vblank_irq);
 int intel_get_crtc_scanline(struct intel_crtc *crtc);
+int __intel_get_crtc_scanline(struct intel_crtc *crtc);
 void intel_wait_for_pipe_scanline_stopped(struct intel_crtc *crtc);
 void intel_wait_for_pipe_scanline_moving(struct intel_crtc *crtc);
 void intel_crtc_update_active_timings(const struct intel_crtc_state *crtc_state,
-- 
2.53.0


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

* [PATCH 07/10] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (5 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 06/10] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:30   ` sashiko-bot
  2026-07-02  7:21 ` [PATCH 08/10] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
                   ` (9 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst, Uma Shankar

Now that we have a macro, might as well handle the VLV dsi workaround
too.

This makes the vblank evasion code slightly more deterministic, by not
looping with interrupts disabled.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vblank.c | 36 ++++++++++-----------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index ca08059e088ea..6f1fa952b5391 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -739,6 +739,24 @@ static bool scanline_in_safe_range(struct intel_vblank_evade_ctx *evade, int *sc
 	else
 		*scanline = __intel_get_crtc_scanline(evade->crtc);
 
+	/*
+	 * On VLV/CHV DSI the scanline counter would appear to
+	 * increment approx. 1/3 of a scanline before start of vblank.
+	 * The registers still get latched at start of vblank however.
+	 * This means we must not write any registers on the first
+	 * line of vblank (since not the whole line is actually in
+	 * vblank). And unfortunately we can't use the interrupt to
+	 * wait here since it will fire too soon. We could use the
+	 * frame start interrupt instead since it will fire after the
+	 * critical scanline, but that would require more changes
+	 * in the interrupt code. So for now we'll just do the nasty
+	 * thing and poll for the bad scanline to pass us by.
+	 *
+	 * FIXME figure out if BXT+ DSI suffers from this as well
+	 */
+	if (evade->need_vlv_dsi_wa && *scanline == evade->vblank_start)
+		return false;
+
 	return *scanline < evade->min || *scanline > evade->max;
 }
 
@@ -769,24 +787,6 @@ int intel_vblank_evade(struct intel_vblank_evade_ctx *evade)
 		local_irq_disable();
 	}
 
-	/*
-	 * On VLV/CHV DSI the scanline counter would appear to
-	 * increment approx. 1/3 of a scanline before start of vblank.
-	 * The registers still get latched at start of vblank however.
-	 * This means we must not write any registers on the first
-	 * line of vblank (since not the whole line is actually in
-	 * vblank). And unfortunately we can't use the interrupt to
-	 * wait here since it will fire too soon. We could use the
-	 * frame start interrupt instead since it will fire after the
-	 * critical scanline, but that would require more changes
-	 * in the interrupt code. So for now we'll just do the nasty
-	 * thing and poll for the bad scanline to pass us by.
-	 *
-	 * FIXME figure out if BXT+ DSI suffers from this as well
-	 */
-	while (evade->need_vlv_dsi_wa && scanline == evade->vblank_start)
-		scanline = intel_get_crtc_scanline(crtc);
-
 	return scanline;
 }
 
-- 
2.53.0


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

* [PATCH 08/10] drm/i915: Use preempt_disable/enable_rt() where recommended
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (6 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 07/10] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:36   ` sashiko-bot
  2026-07-02  7:21 ` [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
                   ` (8 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx
  Cc: dri-devel, Mike Galbraith, Mario Kleiner, Thomas Gleixner,
	Sebastian Andrzej Siewior, Maarten Lankhorst, Uma Shankar

From: Mike Galbraith <umgwanakikbuti@gmail.com>

Mario Kleiner suggest in commit
  ad3543ede630f ("drm/intel: Push get_scanout_position() timestamping into kms driver.")

a spots where preemption should be disabled on PREEMPT_RT. The
difference is that on PREEMPT_RT the intel_uncore::lock disables neither
preemption nor interrupts and so region remains preemptible.

The area covers only register reads and writes. The part that worries me
is:
- __intel_get_crtc_scanline() the worst case is 100us if no match is
  found.

- intel_crtc_scanlines_since_frame_timestamp() not sure how long this
  may take in the worst case.

It was in the RT queue for a while and nobody complained.
Disable preemption on PREEPMPT_RT during timestamping.

[bigeasy: patch description.]

Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Mike Galbraith <umgwanakikbuti@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
---
 drivers/gpu/drm/i915/display/intel_vblank.c | 43 ++++++++++++++++-----
 1 file changed, 33 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 6f1fa952b5391..07dca05332e5b 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -316,6 +316,20 @@ static void intel_vblank_section_exit(struct intel_display *display)
 	struct intel_uncore *uncore = to_intel_uncore(display->drm);
 	spin_unlock(&uncore->lock);
 }
+
+static void intel_vblank_section_enter_irqf(struct intel_display *display, unsigned long *flags)
+	__acquires(i915->uncore.lock)
+{
+	struct intel_uncore *uncore = to_intel_uncore(display->drm);
+	spin_lock_irqsave(&uncore->lock, *flags);
+}
+
+static void intel_vblank_section_exit_irqf(struct intel_display *display, unsigned long flags)
+	__releases(i915->uncore.lock)
+{
+	struct intel_uncore *uncore = to_intel_uncore(display->drm);
+	spin_unlock_irqrestore(&uncore->lock, flags);
+}
 #else
 static void intel_vblank_section_enter(struct intel_display *display)
 {
@@ -324,6 +338,17 @@ static void intel_vblank_section_enter(struct intel_display *display)
 static void intel_vblank_section_exit(struct intel_display *display)
 {
 }
+
+static void intel_vblank_section_enter_irqf(struct intel_display *display, unsigned long *flags)
+{
+	*flags = 0;
+}
+
+static void intel_vblank_section_exit_irqf(struct intel_display *display, unsigned long flags)
+{
+	if (flags)
+		return;
+}
 #endif
 
 static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc,
@@ -360,10 +385,10 @@ static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc,
 	 * timing critical raw register reads, potentially with
 	 * preemption disabled, so the following code must not block.
 	 */
-	local_irq_save(irqflags);
-	intel_vblank_section_enter(display);
+	intel_vblank_section_enter_irqf(display, &irqflags);
 
-	/* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */
+	if (IS_ENABLED(CONFIG_PREEMPT_RT))
+		preempt_disable();
 
 	/* Get optional system timestamp before query. */
 	if (stime)
@@ -427,10 +452,10 @@ static bool i915_get_crtc_scanoutpos(struct drm_crtc *_crtc,
 	if (etime)
 		*etime = ktime_get();
 
-	/* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */
+	if (IS_ENABLED(CONFIG_PREEMPT_RT))
+		preempt_enable();
 
-	intel_vblank_section_exit(display);
-	local_irq_restore(irqflags);
+	intel_vblank_section_exit_irqf(display, irqflags);
 
 	/*
 	 * While in vblank, position will be negative
@@ -468,13 +493,11 @@ int intel_get_crtc_scanline(struct intel_crtc *crtc)
 	unsigned long irqflags;
 	int position;
 
-	local_irq_save(irqflags);
-	intel_vblank_section_enter(display);
+	intel_vblank_section_enter_irqf(display, &irqflags);
 
 	position = __intel_get_crtc_scanline(crtc);
 
-	intel_vblank_section_exit(display);
-	local_irq_restore(irqflags);
+	intel_vblank_section_exit_irqf(display, irqflags);
 
 	return position;
 }
-- 
2.53.0


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

* [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (7 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 08/10] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-02  7:43   ` sashiko-bot
  2026-07-10 14:34   ` Ville Syrjälä
  2026-07-02  7:21 ` [PATCH 10/10] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter Maarten Lankhorst
                   ` (7 subsequent siblings)
  16 siblings, 2 replies; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

Fixes the following lockdep splat on PREEMPT_RT:
<3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
<3> in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1373, name: xe_module_load
<3> preempt_count: 1, expected: 0
<3> RCU nest depth: 0, expected: 0
<4> 11 locks held by xe_module_load/1373:
<4>  #0: ffff888107b691a0 (&dev->mutex){....}-{3:3}, at: __driver_attach+0x104/0x220
<4>  #1: ffff88813cd30280 (&dev->clientlist_mutex){+.+.}-{3:3}, at: drm_client_register+0x32/0xe0
<4>  #2: ffffffff837f88f8 (registration_lock){+.+.}-{3:3}, at: register_framebuffer+0x1b/0x50
<4>  #3: ffffffff835985e0 (console_lock){+.+.}-{0:0}, at: fbcon_fb_registered+0x6f/0x90
<4>  #4: ffff88812589e6a0 (&helper->lock){+.+.}-{3:3}, at: __drm_fb_helper_restore_fbdev_mode_unlocked+0x7b/0x110
<4>  #5: ffff88813cd30158 (&dev->master_mutex){+.+.}-{3:3}, at: drm_master_internal_acquire+0x20/0x50
<4>  #6: ffff88812589e488 (&client->modeset_mutex){+.+.}-{3:3}, at: drm_client_modeset_commit_locked+0x2a/0x1b0
<4>  #7: ffffc9000031eef0 (crtc_ww_class_acquire){+.+.}-{0:0}, at: drm_client_modeset_commit_atomic+0x4c/0x2b0
<4>  #8: ffffc9000031ef18 (crtc_ww_class_mutex){+.+.}-{3:3}, at: drm_client_modeset_commit_atomic+0x4c/0x2b0
<4>  #9: ffff888114f7b8b8 (&intel_dp->psr.lock){+.+.}-{3:3}, at: intel_psr_lock+0xc5/0xf0 [xe]
<4>  #10: ffff88812a0cbbc0 (&wl->lock){+.+.}-{2:2}, at: intel_dmc_wl_get+0x3c/0x140 [xe]

This splat will happen otherwise on all tracepoints too, for similar reasons.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/i915/display/intel_vblank.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 07dca05332e5b..c0cc0a4c25dbe 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -132,7 +132,7 @@ u32 g4x_get_vblank_counter(struct drm_crtc *crtc)
 	if (!vblank->max_vblank_count)
 		return 0;
 
-	return intel_de_read(display, PIPE_FRMCOUNT_G4X(display, pipe));
+	return intel_de_read_fw(display, PIPE_FRMCOUNT_G4X(display, pipe));
 }
 
 static u32 intel_crtc_scanlines_since_frame_timestamp(struct intel_crtc *crtc)
-- 
2.53.0


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

* [PATCH 10/10] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (8 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
@ 2026-07-02  7:21 ` Maarten Lankhorst
  2026-07-10 14:19   ` Ville Syrjälä
  2026-07-02  7:56 ` ✗ CI.checkpatch: warning for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Patchwork
                   ` (6 subsequent siblings)
  16 siblings, 1 reply; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-02  7:21 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: dri-devel, Maarten Lankhorst

This fixes a lockdep splat that occurs in the code that should be run
with interrupts disabled. The uncore and DMC locks should not be taken
and released repeatedly in a timing sensitive path.

Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/i915/display/intel_de.h       |  8 ++++++
 drivers/gpu/drm/i915/display/intel_vblank.c   |  4 +--
 drivers/gpu/drm/i915/intel_uncore.h           | 26 +++++++++++++------
 .../drm/xe/compat-i915-headers/intel_uncore.h |  7 +++++
 4 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_de.h b/drivers/gpu/drm/i915/display/intel_de.h
index 1029790194296..497a308322847 100644
--- a/drivers/gpu/drm/i915/display/intel_de.h
+++ b/drivers/gpu/drm/i915/display/intel_de.h
@@ -65,6 +65,14 @@ intel_de_read64_2x32(struct intel_display *display, intel_reg_t reg)
 	return (u64)upper << 32 | lower;
 }
 
+static inline u64
+intel_de_read64_2x32_fw(struct intel_display *display,
+			i915_reg_t lower_reg, i915_reg_t upper_reg)
+{
+	return intel_uncore_read64_2x32_fw(__to_uncore(display),
+					   lower_reg, upper_reg);
+}
+
 static inline void
 intel_de_posting_read(struct intel_display *display, intel_reg_t reg)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index c0cc0a4c25dbe..5ca22899055d7 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -109,8 +109,8 @@ u32 i915_get_vblank_counter(struct drm_crtc *crtc)
 	 * we get a low value that's stable across two reads of the high
 	 * register.
 	 */
-	frame = intel_de_read64_2x32_volatile(display, PIPEFRAMEPIXEL(display, pipe),
-					      PIPEFRAME(display, pipe));
+	frame = intel_de_read64_2x32_fw(display, PIPEFRAMEPIXEL(display, pipe),
+				        PIPEFRAME(display, pipe));
 
 	pixel = frame & PIPE_PIXEL_MASK;
 	frame = (frame >> PIPE_FRAME_LOW_SHIFT) & 0xffffff;
diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
index fafc2ca9a2376..507398a562649 100644
--- a/drivers/gpu/drm/i915/intel_uncore.h
+++ b/drivers/gpu/drm/i915/intel_uncore.h
@@ -449,13 +449,28 @@ static inline void intel_uncore_rmw_fw(struct intel_uncore *uncore,
 		intel_uncore_write_fw(uncore, reg, val);
 }
 
+static inline u64
+intel_uncore_read64_2x32_fw(struct intel_uncore *uncore,
+			    i915_reg_t lower_reg, i915_reg_t upper_reg)
+{
+	u32 upper, lower, old_upper, loop = 0;
+	upper = intel_uncore_read_fw(uncore, upper_reg);
+	do {
+		old_upper = upper;
+		lower = intel_uncore_read_fw(uncore, lower_reg);
+		upper = intel_uncore_read_fw(uncore, upper_reg);
+	} while (upper != old_upper && loop++ < 2);
+
+	return (u64)upper << 32 | lower;
+}
+
 static inline u64
 intel_uncore_read64_2x32(struct intel_uncore *uncore,
 			 i915_reg_t lower_reg, i915_reg_t upper_reg)
 {
-	u32 upper, lower, old_upper, loop = 0;
 	enum forcewake_domains fw_domains;
 	unsigned long flags;
+	u64 ret;
 
 	fw_domains = intel_uncore_forcewake_for_reg(uncore, lower_reg,
 						    FW_REG_READ);
@@ -466,17 +481,12 @@ intel_uncore_read64_2x32(struct intel_uncore *uncore,
 	spin_lock_irqsave(&uncore->lock, flags);
 	intel_uncore_forcewake_get__locked(uncore, fw_domains);
 
-	upper = intel_uncore_read_fw(uncore, upper_reg);
-	do {
-		old_upper = upper;
-		lower = intel_uncore_read_fw(uncore, lower_reg);
-		upper = intel_uncore_read_fw(uncore, upper_reg);
-	} while (upper != old_upper && loop++ < 2);
+	ret = intel_uncore_read64_2x32_fw(uncore, lower_reg, upper_reg);
 
 	intel_uncore_forcewake_put__locked(uncore, fw_domains);
 	spin_unlock_irqrestore(&uncore->lock, flags);
 
-	return (u64)upper << 32 | lower;
+	return ret;
 }
 
 static inline int intel_uncore_write_and_verify(struct intel_uncore *uncore,
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h b/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
index 08d7ab9336725..764bc94044537 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
@@ -74,6 +74,13 @@ intel_uncore_read64_2x32(struct intel_uncore *uncore,
 	return (u64)upper << 32 | lower;
 }
 
+static inline u64
+intel_uncore_read64_2x32_fw(struct intel_uncore *uncore,
+			    i915_reg_t i915_lower_reg, i915_reg_t i915_upper_reg)
+{
+	return intel_uncore_read64_2x32(uncore, i915_lower_reg, i915_upper_reg);
+}
+
 static inline void intel_uncore_posting_read(struct intel_uncore *uncore,
 					     i915_reg_t i915_reg)
 {
-- 
2.53.0


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

* Re: [PATCH 07/10] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too
  2026-07-02  7:21 ` [PATCH 07/10] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
@ 2026-07-02  7:30   ` sashiko-bot
  0 siblings, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:30 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Moving the VLV/CHV DSI hardware workaround into `scanline_in_safe_range` replaces a microsecond-level busy-wait with an unconditional waitqueue sleep, causing a massive latency spike and breaking vblank evasion timing.
--

commit a51b3c62707f214ae277254b37dc4aad780644a2
Author: Maarten Lankhorst <dev@lankhorst.se>

    drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too

This commit moves the VLV/CHV DSI hardware workaround into
scanline_in_safe_range(). This is intended to make the vblank evasion
code slightly more deterministic by not looping with interrupts disabled.

> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> index ca08059e088ea..6f1fa952b5391 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -739,6 +739,24 @@ static bool scanline_in_safe_range(struct intel_vblank_evade_ctx *evade, int *sc
>  	else
>  		*scanline = __intel_get_crtc_scanline(evade->crtc);
>  
> +	/*
> +	 * On VLV/CHV DSI the scanline counter would appear to
> +	 * increment approx. 1/3 of a scanline before start of vblank.
[ ... ]
> +	 *
> +	 * FIXME figure out if BXT+ DSI suffers from this as well
> +	 */
> +	if (evade->need_vlv_dsi_wa && *scanline == evade->vblank_start)
> +		return false;

[Severity: High]
If this returns false because we are in the bad scanline window, will the
wait_event_timeout() in intel_vblank_evade() put the thread to sleep for the
timeout duration?

Since the vblank interrupt fires early on these platforms and there are no
subsequent interrupts for the frame, it seems this wait queue would sleep
until the 1 jiffy timeout expires, rather than busy-waiting the ~10
microseconds for the scanline to pass. Could this cause the atomic commit
thread to completely miss the safe window to update display registers?

> +
>  	return *scanline < evade->min || *scanline > evade->max;
>  }

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=7

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

* Re: [PATCH 01/10] drm/vblank_work: Add methods to schedule vblank_work in 2 stages
  2026-07-02  7:21 ` [PATCH 01/10] drm/vblank_work: Add methods to schedule vblank_work in 2 stages Maarten Lankhorst
@ 2026-07-02  7:32   ` sashiko-bot
  0 siblings, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:32 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:

New issues:
- [High] Missing read memory barrier (`smp_rmb` or `smp_load_acquire`) when reading `work->armed` in `drm_handle_vblank_works` breaks transitive ordering.
- [Medium] `drm_vblank_work_schedule` early return logic fails to arm a disabled work if the target vblank count is identical.

Pre-existing issues:
- [High] Use-after-free risk due to calling `list_del_init(&work->node)` after `kthread_queue_work()`.
--

commit 2d70bdfd10b5fd90f1bf2ecac514ae3f86ae65ba
Author: Maarten Lankhorst <dev@lankhorst.se>

drm/vblank_work: Add methods to schedule vblank_work in 2 stages

In case of vblank evasion in intel/display, it's necessary to
perform some work in advance, so the critical section will always run in
constant time on PREEMPT_RT.

> diff --git a/drivers/gpu/drm/drm_vblank_work.c b/drivers/gpu/drm/drm_vblank_work.c
> index 70f0199251ea0..ed62c189fe041 100644
> --- a/drivers/gpu/drm/drm_vblank_work.c
> +++ b/drivers/gpu/drm/drm_vblank_work.c
> @@ -54,7 +54,8 @@ void drm_handle_vblank_works(struct drm_vblank_crtc *vblank)
>  	assert_spin_locked(&vblank->dev->event_lock);
>  
>  	list_for_each_entry_safe(work, next, &vblank->pending_work, node) {
> -		if (!drm_vblank_passed(count, work->count))
> +		/* READ_ONCE pairs with WRITE_ONCE in drm_vblank_work_enable() */
> +		if (!READ_ONCE(work->armed) || !drm_vblank_passed(count, work->count))
>  			continue;

[Severity: High]
Does this READ_ONCE() need a corresponding read memory barrier like
smp_rmb() or smp_load_acquire() to establish transitive ordering?

Since drm_vblank_work_enable() uses an smp_wmb() before writing to
work->armed, if the reader just uses READ_ONCE() here without an acquire
barrier before transferring the work via kthread_queue_work(), the memory
model doesn't guarantee the writer's data updates will be transitively
visible to the worker thread.

Could the kthread end up reading stale driver state as a result?

[ ... ]

> @@ -139,6 +118,7 @@ int drm_vblank_work_schedule(struct drm_vblank_work *work,
>  		rescheduling = true;
>  	}
>  
> +	work->armed = armed;
>  	work->count = count;

[Severity: Medium]
Does the early return logic in __drm_vblank_work_schedule() break if a work
item is first scheduled disabled, and then re-scheduled to be armed with the
exact same target count?

Earlier in __drm_vblank_work_schedule(), if work->count == count, the function
takes an early return:

	} else if (work->count == count) {
		/* Already scheduled w/ same vbl count */
		goto out;
	} else {

If a driver uses drm_vblank_work_schedule_disabled() to schedule the work,
and later calls drm_vblank_work_schedule() with the exact same count to arm it,
doesn't the early return bypass this new work->armed = armed assignment?

Could this leave the work permanently disabled and never executed?

[ ... ]

> @@ -147,7 +127,7 @@ int drm_vblank_work_schedule(struct drm_vblank_work *work,
>  			     "crtc %d vblank %llu already passed (current %llu)\n",
>  			     vblank->pipe, count, cur_vbl);
>  
> -	if (!nextonmiss && passed) {
> +	if (!nextonmiss && passed && armed) {
>  		drm_vblank_put(dev, vblank->pipe);
>  		ret = kthread_queue_work(vblank->worker, &work->base);
>  

[Severity: High]
This is a pre-existing issue, but is there a use-after-free risk here when
rescheduling a work item that has already passed?

If rescheduling is true, the code right below this in
__drm_vblank_work_schedule() does:

		ret = kthread_queue_work(vblank->worker, &work->base);

		if (rescheduling) {
			list_del_init(&work->node);
			wake = true;
		}

Since kthread_queue_work() immediately places the work on the worker's queue,
could the worker thread run concurrently and execute the work before
list_del_init() is called on the current CPU?

If the work is freed by the executing kthread, the list_del_init() call
would then access freed memory.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=1

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

* Re: [PATCH 05/10] drm/i915/display: Move vblank put until after critical section
  2026-07-02  7:21 ` [PATCH 05/10] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
@ 2026-07-02  7:34   ` sashiko-bot
  0 siblings, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:34 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] The fix for moving `drm_crtc_vblank_put()` out of the time-sensitive critical section was only applied to the legacy cursor update, leaving the identical anti-pattern in the main atomic update path.
--

commit 43066708128be1b281ea9a6a390e979ec4569021
Author: Maarten Lankhorst <dev@lankhorst.se>

    drm/i915/display: Move vblank put until after critical section

This commit moves drm_crtc_vblank_put() after the time-sensitive critical
section in intel_legacy_cursor_update() to avoid acquiring locks with
interrupts disabled. It also introduces a flag to defer putting the vblank
reference until programming is completed.

> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
> index 88384dea868b4..68b44a00567e4 100644
> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c

[ ... ]

> @@ -922,8 +925,6 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  		local_irq_disable();
>  
>  		intel_vblank_evade(&evade);
> -
> -		drm_crtc_vblank_put(&crtc->base);
>  	} else {
>  		local_irq_disable();
>  	}
> @@ -939,6 +940,9 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  
>  	intel_psr_unlock(crtc_state);
>  
> +	if (has_vblank)
> +		drm_crtc_vblank_put(&crtc->base);
> +

[Severity: High]
This isn't a bug introduced by this patch, but should the same fix be applied
to the main atomic update path in intel_pipe_update_start()?

If the kernel parameter drm.vblankoffdelay < 0 is set, dropping the vblank
reference synchronously takes dev->vbl_lock inside vblank_disable_fn().
On PREEMPT_RT kernels, acquiring this spinlock (rt_mutex) with hardware
interrupts disabled causes a "BUG: sleeping function called from invalid
context" panic. Even on non-RT kernels, taking locks here causes jitter
that can disrupt hardware programming.

drivers/gpu/drm/i915/display/intel_crtc.c:intel_pipe_update_start() {
    ...
	local_irq_disable();

	crtc->debug.min_vbl = evade.min;
	crtc->debug.max_vbl = evade.max;
	trace_intel_pipe_update_start(crtc);

	scanline = intel_vblank_evade(&evade);

	drm_crtc_vblank_put(&crtc->base);
    ...
}

Could drm_crtc_vblank_put() also be moved out of the IRQ-disabled section
here?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=5

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

* Re: [PATCH 02/10] drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event
  2026-07-02  7:21 ` [PATCH 02/10] drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event Maarten Lankhorst
@ 2026-07-02  7:35   ` sashiko-bot
  0 siblings, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:35 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Insufficient memory barrier for ordering MMIO hardware programming against vblank event arming
--

commit e7abec27222d12389651c409a1f108b4e73b0d3e
Author: Maarten Lankhorst <dev@lankhorst.se>

drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event

This patch introduces drm_crtc_prepare_arm_vblank_event() and
drm_crtc_arm_prepared_vblank_event() to allow arming vblank events in two
stages. This avoids taking vblank-related spinlocks with interrupts disabled
during hardware programming, which is useful for PREEMPT_RT kernels.

> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index f90fb2d13e423..b52e0215312f8 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
[ ... ]
> +void drm_crtc_arm_prepared_vblank_event(struct drm_pending_vblank_event *e)
> +{
> +	WARN_ON(!e->postponed);
> +
> +	/* Ensure previous writes are visible */
> +	smp_wmb();
> +
> +	/* remove the flag to be processed as a normal event */
> +	WRITE_ONCE(e->postponed, false);
> +}

[Severity: Medium]
Is smp_wmb() sufficient to order prior MMIO hardware programming against this
memory write to e->postponed?

If the intent is to order the prior hardware programming (MMIO writes) against
setting e->postponed to false, smp_wmb() is strictly a CPU-to-CPU barrier for
normal memory. On weakly-ordered architectures (like ARM64), the CPU can
reorder the normal memory write (postponed = false) before the MMIO writes are
issued to the bus, potentially causing the vblank interrupt handler to process
the event before the hardware programming is complete.

Does this need a full wmb() to correctly order I/O against memory?

Conversely, if it were intended for CPU memory ordering, the reader in
drm_handle_vblank_events() lacks a matching smp_rmb(). Since all other CPU
memory fields are protected by event_lock, there shouldn't be lockless CPU
memory writes to order here.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=2

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

* Re: [PATCH 06/10] drm/i915/display: Remove locking from intel_vblank_evade critical section
  2026-07-02  7:21 ` [PATCH 06/10] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
@ 2026-07-02  7:36   ` sashiko-bot
  0 siblings, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:36 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:

New issues:
- [High] Bypassing `uncore->lock` for scanline reads breaks the hardware serialization workaround for older platforms like Ivy Bridge and Haswell, potentially causing hardware hangs.

Pre-existing issues:
- [High] drm_crtc_vblank_put() is called with local interrupts disabled in intel_pipe_update_start().
--

commit a415cb59c253b3a3fa754a68afc62b743249b0f2
Author: Maarten Lankhorst <dev@lankhorst.se>

drm/i915/display: Remove locking from intel_vblank_evade critical section
    
finish_wait() may take a lock, which means that it can take any amount
of time. On PREEMPT-RT we should not be taking any lock after disabling
preemption, so ensure that the completion is done before disabling
interrupts.

This also has the benefit of making vblank evasion more deterministic,
by performing the final vblank check after all locking is done.

> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
> index 34a159f7c9a43..8218938985b41 100644
> --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> @@ -734,7 +734,7 @@ void intel_pipe_update_end(struct intel_atomic_state *state,
>  	struct intel_crtc_state *new_crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
>  	enum pipe pipe = crtc->pipe;
> -	int scanline_end = intel_get_crtc_scanline(crtc);
> +	int scanline_end = __intel_get_crtc_scanline(crtc);

[Severity: High]
Does bypassing uncore->lock here break the hardware serialization workaround
for older platforms?

Calling __intel_get_crtc_scanline() without the lock in intel_pipe_update_end()
risks concurrent mmio access with other threads, such as when reading the
PIPEDSL register, which could cause hardware hangs on platforms like Ivy Bridge
and Haswell.

[ ... ]

> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> index 28d81199792ef..ca08059e088ea 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -732,6 +732,16 @@ void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
>  		evade->min -= vblank_delay;
>  }
>  
> +static bool scanline_in_safe_range(struct intel_vblank_evade_ctx *evade, int *scanline, bool unlocked)
> +{
> +	if (unlocked)
> +		*scanline = intel_get_crtc_scanline(evade->crtc);
> +	else
> +		*scanline = __intel_get_crtc_scanline(evade->crtc);

[Severity: High]
Could this lockless scanline read cause a hardware hang during evasion?

Similar to the above, calling __intel_get_crtc_scanline() here during
the preempt-disabled evasion loop in scanline_in_safe_range() bypasses the
required hardware serialization lock. Older platforms might experience hangs
due to unsynchronized mmio cacheline access.

> +
> +	return *scanline < evade->min || *scanline > evade->max;
> +}

[ ... ]

[Severity: High]
This is a pre-existing issue, but intel_pipe_update_start() calls
drm_crtc_vblank_put() with local interrupts disabled:

drivers/gpu/drm/i915/display/intel_crtc.c:intel_pipe_update_start() {
    ...
    local_irq_disable();

    crtc->debug.min_vbl = evade.min;
    crtc->debug.max_vbl = evade.max;
    trace_intel_pipe_update_start(crtc);

    scanline = intel_vblank_evade(&evade);

    drm_crtc_vblank_put(&crtc->base);
    ...
}

Could this lead to scheduling while atomic on preempt-rt kernels?

When the reference count drops to zero, drm_crtc_vblank_put() might acquire
dev->vbl_lock, which is a spinlock_t that sleeps on preempt-rt.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=6

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

* Re: [PATCH 08/10] drm/i915: Use preempt_disable/enable_rt() where recommended
  2026-07-02  7:21 ` [PATCH 08/10] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
@ 2026-07-02  7:36   ` sashiko-bot
  0 siblings, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:36 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] The patch inadvertently removes `local_irq_save()` protection from the Xe driver's vblank timestamping critical section, allowing hard IRQs to interrupt timing-critical register reads.
- [Low] The sparse context annotations `__acquires(i915->uncore.lock)` and `__releases(i915->uncore.lock)` reference an undeclared identifier `i915`.
--

(Note: The format of this report is altered to provide a free-form summary
without directly quoting the patch code, due to automated recitation
restrictions.)

commit 8fb6242d95640a7bbab92fc65f4627e01aae6b0b
Author: Mike Galbraith <umgwanakikbuti@gmail.com>
drm/i915: Use preempt_disable/enable_rt() where recommended

This patch changes preemption disabling in the intel vblank timestamping
critical section, moving spin_lock_irqsave() into helper functions and
explicitly disabling preemption for preempt-rt configurations.

[Severity: Low]
Will this cause a build failure when running the sparse static analyzer?

The sparse annotations __acquires(i915->uncore.lock) and
__releases(i915->uncore.lock) reference the i915 identifier in
intel_vblank_section_enter_irqf() and intel_vblank_section_exit_irqf().
However, the function parameter is named display, and i915 is not locally
declared. Should this reference the uncore lock through the display parameter
instead?

[Severity: Medium]
Could this inadvertently remove IRQ protection for the Xe driver during timing
critical register reads?

Previously, i915_get_crtc_scanoutpos() explicitly called local_irq_save()
before calling the intel_vblank_section_enter() stub. With this patch, the
IRQ save is moved inside intel_vblank_section_enter_irqf().

However, the #else block implementation of intel_vblank_section_enter_irqf()
merely sets *flags = 0. This means builds where that #else block is active
(like the Xe driver) will no longer disable interrupts during this critical
section.

Might this allow hard IRQs to interrupt the sequence, creating an
artificially large time delta between stime and etime, and causing the DRM
core's max_error check to spuriously fail?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=8

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

* Re: [PATCH 04/10] drm/intel/display: Convert vblank event handling to 2-stage arming
  2026-07-02  7:21 ` [PATCH 04/10] drm/intel/display: Convert vblank event handling to 2-stage arming Maarten Lankhorst
@ 2026-07-02  7:37   ` sashiko-bot
  0 siblings, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:37 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:

New issues:
- [High] Moving vblank event preparation and counter sampling before vblank evasion causes events and workers to fire one frame early if an evasion wait occurs.

Pre-existing issues:
- [High] drm_crtc_vblank_put() is called within a local_irq_disable() critical section, which can acquire a sleepable rt_mutex on PREEMPT_RT kernels, causing a lockdep splat and potential system crash.
--

commit 90a4948ef379d3e7a2ebc312abe7069b65f38a68
Author: Maarten Lankhorst <dev@lankhorst.se>

drm/intel/display: Convert vblank event handling to 2-stage arming

This converts the vblank functions to be called with interrupts
disabled, even on PREEMPT_RT kernels. Instead of using the normal
vblank functions inside the critical section, it prepares the vblank
at the start and enables the work after hardware programming completes.

> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
> index 805645318747f..34a159f7c9a43 100644
> --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
[ ... ]
> @@ -607,6 +626,8 @@ void intel_pipe_update_start(struct intel_atomic_state *state,
>  
>  	if (intel_crtc_needs_vblank_work(new_crtc_state))
>  		intel_crtc_vblank_work_init(new_crtc_state);
> +	else
> +		intel_crtc_arm_vblank_event(new_crtc_state);

[Severity: High]
Does moving the vblank event preparation and counter sampling before the
evasion wait cause the event to fire a frame early if the wait actually
spins?

If intel_pipe_update_start() locks the target vblank sequence to the
current vblank count + 1, and the CPU is delayed so that the evasion
wait spins:

intel_pipe_update_start() {
    ...
    scanline = intel_vblank_evade(&evade);
    ...
}

The hardware latching point will have passed, meaning the registers will
apply at N+2. However, because the event sequence is already locked to N+1
prior to the evasion, the event will fire a frame early in
intel_pipe_update_end() when un-postponed:

intel_pipe_update_end() {
    ...
    drm_crtc_arm_prepared_vblank_event(new_crtc_state->uapi.event);
    ...
}

Could this lead to screen tearing or premature compositor synchronization?

[Severity: High]
This is a pre-existing issue, but does calling drm_crtc_vblank_put() inside
the local_irq_disable() block later in this function cause issues on
PREEMPT_RT kernels?

intel_pipe_update_start() {
    ...
    local_irq_disable();
    ...
    scanline = intel_vblank_evade(&evade);
    drm_crtc_vblank_put(&crtc->base);
    ...
}

If this call drops the last vblank reference and immediate vblank disable is
configured, vblank_disable_fn() executes synchronously and acquires
dev->vbl_lock.

Since this spinlock is converted to a sleepable rt_mutex on PREEMPT_RT
kernels, will this cause a lockdep splat or panic by sleeping in atomic
context?

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=4

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

* Re: [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
  2026-07-02  7:21 ` [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
@ 2026-07-02  7:43   ` sashiko-bot
  2026-07-10 14:34   ` Ville Syrjälä
  1 sibling, 0 replies; 30+ messages in thread
From: sashiko-bot @ 2026-07-02  7:43 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: dri-devel

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:

New issues:
- [High] Bypassing the DMC wakelock using `intel_de_read_fw()` in `g4x_get_vblank_counter()` causes unprotected reads of powered-down registers on modern platforms (Xe2+).

Pre-existing issues:
- [High] Tracepoints calling `intel_get_crtc_scanline()` acquire the sleepable `uncore->lock` in atomic context, leading to a PREEMPT_RT lockdep splat.
- [High] Acquiring `wl->lock` in `icl_dsi_frame_update()` while hardware interrupts are disabled causes a PREEMPT_RT lockdep splat.
--

commit a4aff240080d4b3a8f37dee585514c6912bb489d
Author: Maarten Lankhorst <dev@lankhorst.se>

drm/i915/display: Make get_vblank_counter use intel_de_read_fw()

This commit modifies g4x_get_vblank_counter() to use intel_de_read_fw()
instead of intel_de_read() to avoid taking a sleeping lock in atomic
context, fixing a lockdep splat on PREEMPT_RT.

>     Fixes the following lockdep splat on PREEMPT_RT:
>     <3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
[ ... ]
>     <4>  #9: ffff888114f7b8b8 (&intel_dp->psr.lock){+.+.}-{3:3}, at: intel_psr_lock+0xc5/0xf0 [xe]
>     <4>  #10: ffff88812a0cbbc0 (&wl->lock){+.+.}-{2:2}, at: intel_dmc_wl_get+0x3c/0x140 [xe]
>     
>     This splat will happen otherwise on all tracepoints too, for similar reasons.

[Severity: High]
This is a pre-existing issue, but do tracepoints calling
intel_get_crtc_scanline() still acquire the sleepable uncore->lock in
atomic context, leading to a PREEMPT_RT lockdep splat?

For example, trace_intel_pipe_update_start executes with preemption disabled:

intel_display_trace.h:TRACE_EVENT() {
    ...
    __entry->scanline = intel_get_crtc_scanline(crtc);
    ...
}

Which calls the locking function:

intel_vblank.c:intel_get_crtc_scanline() {
    ...
    intel_vblank_section_enter_irqf(display, &irqflags);
    ...
}

And acquires the lock:

intel_vblank.c:intel_vblank_section_enter_irqf() {
    ...
    spin_lock_irqsave(&uncore->lock, *flags);
    ...
}

On PREEMPT_RT, uncore->lock becomes an rt_spinlock which can sleep. Acquiring
a sleeping lock with preemption disabled causes a BUG splat and system
instability.

While i915_get_vblank_counter() was fixed in a subsequent patch in this series
(commit drm/i915/display: Do not take uncore lock in i915_get_vblank_counter),
intel_get_crtc_scanline() remains unfixed at the end of the series.

[Severity: High]
This is a pre-existing issue, but does acquiring wl->lock in
icl_dsi_frame_update() while hardware interrupts are disabled cause a
PREEMPT_RT lockdep splat?

The hardware update sequence between intel_pipe_update_start() and
intel_pipe_update_end() executes with hardware interrupts disabled via
local_irq_disable().

Within this section:

intel_crtc.c:intel_pipe_update_end() {
    ...
    icl_dsi_frame_update(new_crtc_state);
    ...
}

Which calls:

icl_dsi.c:icl_dsi_frame_update() {
    ...
    intel_de_rmw(display, DSI_CMD_FRMCTL(port), 0,
                 DSI_FRAME_UPDATE_REQUEST);
    ...
}

This attempts to acquire the DMC wakelock (wl->lock), which is a sleepable
rt_spinlock on PREEMPT_RT. Taking it while IRQs are disabled triggers a
sleeping function called from invalid context bug.

> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> index 07dca05332e5b..c0cc0a4c25dbe 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -132,7 +132,7 @@ u32 g4x_get_vblank_counter(struct drm_crtc *crtc)
>  	if (!vblank->max_vblank_count)
>  		return 0;
>  
> -	return intel_de_read(display, PIPE_FRMCOUNT_G4X(display, pipe));
> +	return intel_de_read_fw(display, PIPE_FRMCOUNT_G4X(display, pipe));

[Severity: High]
Does bypassing the DMC wakelock here cause unprotected reads of powered-down
registers on modern platforms?

PIPE_FRMCOUNT_G4X (0x70040) is within the powered_off_ranges
(0x60000 - 0x7FFFF) defined in intel_dmc_wl.c. On modern platforms like Xe2+,
MMIO reads do not automatically wake the hardware from DC states, and the
DMC wakelock must be explicitly held. Could using intel_de_read_fw() lead
to reading garbage data (0xFFFFFFFF) or cause MMIO timeouts?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260702072154.171324-1-dev@lankhorst.se?part=9

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

* ✗ CI.checkpatch: warning for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (9 preceding siblings ...)
  2026-07-02  7:21 ` [PATCH 10/10] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter Maarten Lankhorst
@ 2026-07-02  7:56 ` Patchwork
  2026-07-02  7:58 ` ✓ CI.KUnit: success " Patchwork
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2026-07-02  7:56 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe

== Series Details ==

Series: drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
URL   : https://patchwork.freedesktop.org/series/169662/
State : warning

== 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
061140b9bc586ae7f40abc1249c97e1cc72d1b9d
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit b12b9e691fd6389de7294386dc81ad7f9fc984e8
Author: Maarten Lankhorst <dev@lankhorst.se>
Date:   Thu Jul 2 09:21:53 2026 +0200

    drm/i915/display: Do not take uncore lock in i915_get_vblank_counter
    
    This fixes a lockdep splat that occurs in the code that should be run
    with interrupts disabled. The uncore and DMC locks should not be taken
    and released repeatedly in a timing sensitive path.
    
    Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
+ /mt/dim checkpatch 4a1a395fa156b92a83b501f8e331f21cd035c2e1 drm-intel
be6839585cba drm/vblank_work: Add methods to schedule vblank_work in 2 stages
-:116: CHECK:LINE_SPACING: Please don't use multiple blank lines
#116: FILE: drivers/gpu/drm/drm_vblank_work.c:180:
 
+

total: 0 errors, 0 warnings, 1 checks, 166 lines checked
ebe6ac844562 drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event
b519ee567646 drm/intel/display: Make intel_crtc_arm_vblank_event static
d951635dcc39 drm/intel/display: Convert vblank event handling to 2-stage arming
-:139: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#139: FILE: drivers/gpu/drm/i915/display/intel_crtc.c:798:
+							 drm_crtc_accurate_vblank_count(&crtc->base) + 1,

-:142: WARNING:LONG_LINE_COMMENT: line length of 110 exceeds 100 columns
#142: FILE: drivers/gpu/drm/i915/display/intel_crtc.c:801:
+				/* Remove plane from atomic state, cleanup/free is done from vblank worker. */

total: 0 errors, 2 warnings, 0 checks, 120 lines checked
8e240177d4a9 drm/i915/display: Move vblank put until after critical section
aa9571de616d drm/i915/display: Remove locking from intel_vblank_evade critical section
-:47: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#47: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:735:
+static bool scanline_in_safe_range(struct intel_vblank_evade_ctx *evade, int *scanline, bool unlocked)

-:91: WARNING:LONG_LINE: line length of 107 exceeds 100 columns
#91: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:767:
+		timeout = wait_event_timeout(*wq, scanline_in_safe_range(evade, &scanline, true), timeout);

total: 0 errors, 2 warnings, 0 checks, 78 lines checked
ed97d9d2a1b7 drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too
eb0ec1084c24 drm/i915: Use preempt_disable/enable_rt() where recommended
-:7: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#7: 
  ad3543ede630f ("drm/intel: Push get_scanout_position() timestamping into kms driver.")

-:46: WARNING:LINE_SPACING: Missing a blank line after declarations
#46: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:324:
+	struct intel_uncore *uncore = to_intel_uncore(display->drm);
+	spin_lock_irqsave(&uncore->lock, *flags);

-:53: WARNING:LINE_SPACING: Missing a blank line after declarations
#53: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:331:
+	struct intel_uncore *uncore = to_intel_uncore(display->drm);
+	spin_unlock_irqrestore(&uncore->lock, flags);

total: 0 errors, 3 warnings, 0 checks, 78 lines checked
81c996b8b7f0 drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
-:8: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#8: 
<3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48

total: 0 errors, 1 warnings, 0 checks, 8 lines checked
b12b9e691fd6 drm/i915/display: Do not take uncore lock in i915_get_vblank_counter
-:43: ERROR:CODE_INDENT: code indent should use tabs where possible
#43: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:113:
+^I^I^I^I        PIPEFRAME(display, pipe));$

-:43: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#43: FILE: drivers/gpu/drm/i915/display/intel_vblank.c:113:
+	frame = intel_de_read64_2x32_fw(display, PIPEFRAMEPIXEL(display, pipe),
+				        PIPEFRAME(display, pipe));

-:60: WARNING:LINE_SPACING: Missing a blank line after declarations
#60: FILE: drivers/gpu/drm/i915/intel_uncore.h:457:
+	u32 upper, lower, old_upper, loop = 0;
+	upper = intel_uncore_read_fw(uncore, upper_reg);

total: 1 errors, 1 warnings, 1 checks, 85 lines checked



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

* ✓ CI.KUnit: success for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (10 preceding siblings ...)
  2026-07-02  7:56 ` ✗ CI.checkpatch: warning for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Patchwork
@ 2026-07-02  7:58 ` Patchwork
  2026-07-02  8:33 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2026-07-02  7:58 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe

== Series Details ==

Series: drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
URL   : https://patchwork.freedesktop.org/series/169662/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[07:56:50] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[07:56:55] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
../drivers/gpu/drm/xe/xe_pt.c:1420:13: warning: ‘xe_pt_svm_userptr_notifier_lock’ defined but not used [-Wunused-function]
 1420 | static void xe_pt_svm_userptr_notifier_lock(struct xe_vm *vm)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[07:57:26] Starting KUnit Kernel (1/1)...
[07:57:26] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[07:57:27] ================== guc_buf (11 subtests) ===================
[07:57:27] [PASSED] test_smallest
[07:57:27] [PASSED] test_largest
[07:57:27] [PASSED] test_granular
[07:57:27] [PASSED] test_unique
[07:57:27] [PASSED] test_overlap
[07:57:27] [PASSED] test_reusable
[07:57:27] [PASSED] test_too_big
[07:57:27] [PASSED] test_flush
[07:57:27] [PASSED] test_lookup
[07:57:27] [PASSED] test_data
[07:57:27] [PASSED] test_class
[07:57:27] ===================== [PASSED] guc_buf =====================
[07:57:27] =================== guc_dbm (7 subtests) ===================
[07:57:27] [PASSED] test_empty
[07:57:27] [PASSED] test_default
[07:57:27] ======================== test_size  ========================
[07:57:27] [PASSED] 4
[07:57:27] [PASSED] 8
[07:57:27] [PASSED] 32
[07:57:27] [PASSED] 256
[07:57:27] ==================== [PASSED] test_size ====================
[07:57:27] ======================= test_reuse  ========================
[07:57:27] [PASSED] 4
[07:57:27] [PASSED] 8
[07:57:27] [PASSED] 32
[07:57:27] [PASSED] 256
[07:57:27] =================== [PASSED] test_reuse ====================
[07:57:27] =================== test_range_overlap  ====================
[07:57:27] [PASSED] 4
[07:57:27] [PASSED] 8
[07:57:27] [PASSED] 32
[07:57:27] [PASSED] 256
[07:57:27] =============== [PASSED] test_range_overlap ================
[07:57:27] =================== test_range_compact  ====================
[07:57:27] [PASSED] 4
[07:57:27] [PASSED] 8
[07:57:27] [PASSED] 32
[07:57:27] [PASSED] 256
[07:57:27] =============== [PASSED] test_range_compact ================
[07:57:27] ==================== test_range_spare  =====================
[07:57:27] [PASSED] 4
[07:57:27] [PASSED] 8
[07:57:27] [PASSED] 32
[07:57:27] [PASSED] 256
[07:57:27] ================ [PASSED] test_range_spare =================
[07:57:27] ===================== [PASSED] guc_dbm =====================
[07:57:27] =================== guc_idm (6 subtests) ===================
[07:57:27] [PASSED] bad_init
[07:57:27] [PASSED] no_init
[07:57:27] [PASSED] init_fini
[07:57:27] [PASSED] check_used
[07:57:27] [PASSED] check_quota
[07:57:27] [PASSED] check_all
[07:57:27] ===================== [PASSED] guc_idm =====================
[07:57:27] ================== no_relay (3 subtests) ===================
[07:57:27] [PASSED] xe_drops_guc2pf_if_not_ready
[07:57:27] [PASSED] xe_drops_guc2vf_if_not_ready
[07:57:27] [PASSED] xe_rejects_send_if_not_ready
[07:57:27] ==================== [PASSED] no_relay =====================
[07:57:27] ================== pf_relay (14 subtests) ==================
[07:57:27] [PASSED] pf_rejects_guc2pf_too_short
[07:57:27] [PASSED] pf_rejects_guc2pf_too_long
[07:57:27] [PASSED] pf_rejects_guc2pf_no_payload
[07:57:27] [PASSED] pf_fails_no_payload
[07:57:27] [PASSED] pf_fails_bad_origin
[07:57:27] [PASSED] pf_fails_bad_type
[07:57:27] [PASSED] pf_txn_reports_error
[07:57:27] [PASSED] pf_txn_sends_pf2guc
[07:57:27] [PASSED] pf_sends_pf2guc
[07:57:27] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[07:57:27] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[07:57:27] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[07:57:27] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[07:57:27] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[07:57:27] ==================== [PASSED] pf_relay =====================
[07:57:27] ================== vf_relay (3 subtests) ===================
[07:57:27] [PASSED] vf_rejects_guc2vf_too_short
[07:57:27] [PASSED] vf_rejects_guc2vf_too_long
[07:57:27] [PASSED] vf_rejects_guc2vf_no_payload
[07:57:27] ==================== [PASSED] vf_relay =====================
[07:57:27] ================ pf_gt_config (9 subtests) =================
[07:57:27] [PASSED] fair_contexts_1vf
[07:57:27] [PASSED] fair_doorbells_1vf
[07:57:27] [PASSED] fair_ggtt_1vf
[07:57:27] ====================== fair_vram_1vf  ======================
[07:57:27] [PASSED] 3.50 GiB
[07:57:27] [PASSED] 11.5 GiB
[07:57:27] [PASSED] 15.5 GiB
[07:57:27] [PASSED] 31.5 GiB
[07:57:27] [PASSED] 63.5 GiB
[07:57:27] [PASSED] 1.91 GiB
[07:57:27] ================== [PASSED] fair_vram_1vf ==================
[07:57:27] ================ fair_vram_1vf_admin_only  =================
[07:57:27] [PASSED] 3.50 GiB
[07:57:27] [PASSED] 11.5 GiB
[07:57:27] [PASSED] 15.5 GiB
[07:57:27] [PASSED] 31.5 GiB
[07:57:27] [PASSED] 63.5 GiB
[07:57:27] [PASSED] 1.91 GiB
[07:57:27] ============ [PASSED] fair_vram_1vf_admin_only =============
[07:57:27] ====================== fair_contexts  ======================
[07:57:27] [PASSED] 1 VF
[07:57:27] [PASSED] 2 VFs
[07:57:27] [PASSED] 3 VFs
[07:57:27] [PASSED] 4 VFs
[07:57:27] [PASSED] 5 VFs
[07:57:27] [PASSED] 6 VFs
[07:57:27] [PASSED] 7 VFs
[07:57:27] [PASSED] 8 VFs
[07:57:27] [PASSED] 9 VFs
[07:57:27] [PASSED] 10 VFs
[07:57:27] [PASSED] 11 VFs
[07:57:27] [PASSED] 12 VFs
[07:57:27] [PASSED] 13 VFs
[07:57:27] [PASSED] 14 VFs
[07:57:27] [PASSED] 15 VFs
[07:57:27] [PASSED] 16 VFs
[07:57:27] [PASSED] 17 VFs
[07:57:27] [PASSED] 18 VFs
[07:57:27] [PASSED] 19 VFs
[07:57:27] [PASSED] 20 VFs
[07:57:27] [PASSED] 21 VFs
[07:57:27] [PASSED] 22 VFs
[07:57:27] [PASSED] 23 VFs
[07:57:27] [PASSED] 24 VFs
[07:57:27] [PASSED] 25 VFs
[07:57:27] [PASSED] 26 VFs
[07:57:27] [PASSED] 27 VFs
[07:57:27] [PASSED] 28 VFs
[07:57:27] [PASSED] 29 VFs
[07:57:27] [PASSED] 30 VFs
[07:57:27] [PASSED] 31 VFs
[07:57:27] [PASSED] 32 VFs
[07:57:27] [PASSED] 33 VFs
[07:57:27] [PASSED] 34 VFs
[07:57:27] [PASSED] 35 VFs
[07:57:27] [PASSED] 36 VFs
[07:57:27] [PASSED] 37 VFs
[07:57:27] [PASSED] 38 VFs
[07:57:27] [PASSED] 39 VFs
[07:57:27] [PASSED] 40 VFs
[07:57:27] [PASSED] 41 VFs
[07:57:27] [PASSED] 42 VFs
[07:57:27] [PASSED] 43 VFs
[07:57:27] [PASSED] 44 VFs
[07:57:27] [PASSED] 45 VFs
[07:57:27] [PASSED] 46 VFs
[07:57:27] [PASSED] 47 VFs
[07:57:27] [PASSED] 48 VFs
[07:57:27] [PASSED] 49 VFs
[07:57:27] [PASSED] 50 VFs
[07:57:27] [PASSED] 51 VFs
[07:57:27] [PASSED] 52 VFs
[07:57:27] [PASSED] 53 VFs
[07:57:27] [PASSED] 54 VFs
[07:57:27] [PASSED] 55 VFs
[07:57:27] [PASSED] 56 VFs
[07:57:27] [PASSED] 57 VFs
[07:57:27] [PASSED] 58 VFs
[07:57:27] [PASSED] 59 VFs
[07:57:27] [PASSED] 60 VFs
[07:57:27] [PASSED] 61 VFs
[07:57:27] [PASSED] 62 VFs
[07:57:27] [PASSED] 63 VFs
[07:57:27] ================== [PASSED] fair_contexts ==================
[07:57:27] ===================== fair_doorbells  ======================
[07:57:27] [PASSED] 1 VF
[07:57:27] [PASSED] 2 VFs
[07:57:27] [PASSED] 3 VFs
[07:57:27] [PASSED] 4 VFs
[07:57:27] [PASSED] 5 VFs
[07:57:27] [PASSED] 6 VFs
[07:57:27] [PASSED] 7 VFs
[07:57:27] [PASSED] 8 VFs
[07:57:27] [PASSED] 9 VFs
[07:57:27] [PASSED] 10 VFs
[07:57:27] [PASSED] 11 VFs
[07:57:27] [PASSED] 12 VFs
[07:57:27] [PASSED] 13 VFs
[07:57:27] [PASSED] 14 VFs
[07:57:27] [PASSED] 15 VFs
[07:57:27] [PASSED] 16 VFs
[07:57:27] [PASSED] 17 VFs
[07:57:27] [PASSED] 18 VFs
[07:57:27] [PASSED] 19 VFs
[07:57:27] [PASSED] 20 VFs
[07:57:27] [PASSED] 21 VFs
[07:57:27] [PASSED] 22 VFs
[07:57:27] [PASSED] 23 VFs
[07:57:27] [PASSED] 24 VFs
[07:57:27] [PASSED] 25 VFs
[07:57:27] [PASSED] 26 VFs
[07:57:27] [PASSED] 27 VFs
[07:57:27] [PASSED] 28 VFs
[07:57:27] [PASSED] 29 VFs
[07:57:27] [PASSED] 30 VFs
[07:57:27] [PASSED] 31 VFs
[07:57:27] [PASSED] 32 VFs
[07:57:27] [PASSED] 33 VFs
[07:57:27] [PASSED] 34 VFs
[07:57:27] [PASSED] 35 VFs
[07:57:27] [PASSED] 36 VFs
[07:57:27] [PASSED] 37 VFs
[07:57:27] [PASSED] 38 VFs
[07:57:27] [PASSED] 39 VFs
[07:57:27] [PASSED] 40 VFs
[07:57:27] [PASSED] 41 VFs
[07:57:27] [PASSED] 42 VFs
[07:57:27] [PASSED] 43 VFs
[07:57:27] [PASSED] 44 VFs
[07:57:27] [PASSED] 45 VFs
[07:57:27] [PASSED] 46 VFs
[07:57:27] [PASSED] 47 VFs
[07:57:27] [PASSED] 48 VFs
[07:57:27] [PASSED] 49 VFs
[07:57:27] [PASSED] 50 VFs
[07:57:27] [PASSED] 51 VFs
[07:57:27] [PASSED] 52 VFs
[07:57:27] [PASSED] 53 VFs
[07:57:27] [PASSED] 54 VFs
[07:57:27] [PASSED] 55 VFs
[07:57:27] [PASSED] 56 VFs
[07:57:27] [PASSED] 57 VFs
[07:57:27] [PASSED] 58 VFs
[07:57:27] [PASSED] 59 VFs
[07:57:27] [PASSED] 60 VFs
[07:57:27] [PASSED] 61 VFs
[07:57:27] [PASSED] 62 VFs
[07:57:27] [PASSED] 63 VFs
[07:57:27] ================= [PASSED] fair_doorbells ==================
[07:57:27] ======================== fair_ggtt  ========================
[07:57:27] [PASSED] 1 VF
[07:57:27] [PASSED] 2 VFs
[07:57:27] [PASSED] 3 VFs
[07:57:27] [PASSED] 4 VFs
[07:57:27] [PASSED] 5 VFs
[07:57:27] [PASSED] 6 VFs
[07:57:27] [PASSED] 7 VFs
[07:57:27] [PASSED] 8 VFs
[07:57:27] [PASSED] 9 VFs
[07:57:27] [PASSED] 10 VFs
[07:57:27] [PASSED] 11 VFs
[07:57:27] [PASSED] 12 VFs
[07:57:27] [PASSED] 13 VFs
[07:57:27] [PASSED] 14 VFs
[07:57:27] [PASSED] 15 VFs
[07:57:27] [PASSED] 16 VFs
[07:57:27] [PASSED] 17 VFs
[07:57:27] [PASSED] 18 VFs
[07:57:27] [PASSED] 19 VFs
[07:57:27] [PASSED] 20 VFs
[07:57:27] [PASSED] 21 VFs
[07:57:27] [PASSED] 22 VFs
[07:57:27] [PASSED] 23 VFs
[07:57:27] [PASSED] 24 VFs
[07:57:27] [PASSED] 25 VFs
[07:57:27] [PASSED] 26 VFs
[07:57:27] [PASSED] 27 VFs
[07:57:27] [PASSED] 28 VFs
[07:57:27] [PASSED] 29 VFs
[07:57:27] [PASSED] 30 VFs
[07:57:27] [PASSED] 31 VFs
[07:57:27] [PASSED] 32 VFs
[07:57:27] [PASSED] 33 VFs
[07:57:27] [PASSED] 34 VFs
[07:57:27] [PASSED] 35 VFs
[07:57:27] [PASSED] 36 VFs
[07:57:27] [PASSED] 37 VFs
[07:57:27] [PASSED] 38 VFs
[07:57:27] [PASSED] 39 VFs
[07:57:27] [PASSED] 40 VFs
[07:57:27] [PASSED] 41 VFs
[07:57:27] [PASSED] 42 VFs
[07:57:27] [PASSED] 43 VFs
[07:57:27] [PASSED] 44 VFs
[07:57:27] [PASSED] 45 VFs
[07:57:27] [PASSED] 46 VFs
[07:57:27] [PASSED] 47 VFs
[07:57:27] [PASSED] 48 VFs
[07:57:27] [PASSED] 49 VFs
[07:57:27] [PASSED] 50 VFs
[07:57:27] [PASSED] 51 VFs
[07:57:27] [PASSED] 52 VFs
[07:57:27] [PASSED] 53 VFs
[07:57:27] [PASSED] 54 VFs
[07:57:27] [PASSED] 55 VFs
[07:57:27] [PASSED] 56 VFs
[07:57:27] [PASSED] 57 VFs
[07:57:27] [PASSED] 58 VFs
[07:57:27] [PASSED] 59 VFs
[07:57:27] [PASSED] 60 VFs
[07:57:27] [PASSED] 61 VFs
[07:57:27] [PASSED] 62 VFs
[07:57:27] [PASSED] 63 VFs
[07:57:27] ==================== [PASSED] fair_ggtt ====================
[07:57:27] ======================== fair_vram  ========================
[07:57:27] [PASSED] 1 VF
[07:57:27] [PASSED] 2 VFs
[07:57:27] [PASSED] 3 VFs
[07:57:27] [PASSED] 4 VFs
[07:57:27] [PASSED] 5 VFs
[07:57:27] [PASSED] 6 VFs
[07:57:27] [PASSED] 7 VFs
[07:57:27] [PASSED] 8 VFs
[07:57:27] [PASSED] 9 VFs
[07:57:27] [PASSED] 10 VFs
[07:57:27] [PASSED] 11 VFs
[07:57:27] [PASSED] 12 VFs
[07:57:27] [PASSED] 13 VFs
[07:57:27] [PASSED] 14 VFs
[07:57:27] [PASSED] 15 VFs
[07:57:27] [PASSED] 16 VFs
[07:57:27] [PASSED] 17 VFs
[07:57:27] [PASSED] 18 VFs
[07:57:27] [PASSED] 19 VFs
[07:57:27] [PASSED] 20 VFs
[07:57:27] [PASSED] 21 VFs
[07:57:27] [PASSED] 22 VFs
[07:57:27] [PASSED] 23 VFs
[07:57:27] [PASSED] 24 VFs
[07:57:27] [PASSED] 25 VFs
[07:57:27] [PASSED] 26 VFs
[07:57:27] [PASSED] 27 VFs
[07:57:27] [PASSED] 28 VFs
[07:57:27] [PASSED] 29 VFs
[07:57:27] [PASSED] 30 VFs
[07:57:27] [PASSED] 31 VFs
[07:57:27] [PASSED] 32 VFs
[07:57:27] [PASSED] 33 VFs
[07:57:27] [PASSED] 34 VFs
[07:57:27] [PASSED] 35 VFs
[07:57:27] [PASSED] 36 VFs
[07:57:27] [PASSED] 37 VFs
[07:57:27] [PASSED] 38 VFs
[07:57:27] [PASSED] 39 VFs
[07:57:27] [PASSED] 40 VFs
[07:57:27] [PASSED] 41 VFs
[07:57:27] [PASSED] 42 VFs
[07:57:27] [PASSED] 43 VFs
[07:57:27] [PASSED] 44 VFs
[07:57:27] [PASSED] 45 VFs
[07:57:27] [PASSED] 46 VFs
[07:57:27] [PASSED] 47 VFs
[07:57:27] [PASSED] 48 VFs
[07:57:27] [PASSED] 49 VFs
[07:57:27] [PASSED] 50 VFs
[07:57:27] [PASSED] 51 VFs
[07:57:27] [PASSED] 52 VFs
[07:57:27] [PASSED] 53 VFs
[07:57:27] [PASSED] 54 VFs
[07:57:27] [PASSED] 55 VFs
[07:57:27] [PASSED] 56 VFs
[07:57:27] [PASSED] 57 VFs
[07:57:27] [PASSED] 58 VFs
[07:57:27] [PASSED] 59 VFs
[07:57:27] [PASSED] 60 VFs
[07:57:27] [PASSED] 61 VFs
[07:57:27] [PASSED] 62 VFs
[07:57:27] [PASSED] 63 VFs
[07:57:27] ==================== [PASSED] fair_vram ====================
[07:57:27] ================== [PASSED] pf_gt_config ===================
[07:57:27] ===================== lmtt (1 subtest) =====================
[07:57:27] ======================== test_ops  =========================
[07:57:27] [PASSED] 2-level
[07:57:27] [PASSED] multi-level
[07:57:27] ==================== [PASSED] test_ops =====================
[07:57:27] ====================== [PASSED] lmtt =======================
[07:57:27] ================= pf_service (11 subtests) =================
[07:57:27] [PASSED] pf_negotiate_any
[07:57:27] [PASSED] pf_negotiate_base_match
[07:57:27] [PASSED] pf_negotiate_base_newer
[07:57:27] [PASSED] pf_negotiate_base_next
[07:57:27] [SKIPPED] pf_negotiate_base_older (no older minor)
[07:57:27] [PASSED] pf_negotiate_base_prev
[07:57:27] [PASSED] pf_negotiate_latest_match
[07:57:27] [PASSED] pf_negotiate_latest_newer
[07:57:27] [PASSED] pf_negotiate_latest_next
[07:57:27] [SKIPPED] pf_negotiate_latest_older (no older minor)
[07:57:27] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[07:57:27] =================== [PASSED] pf_service ====================
[07:57:27] ================= xe_guc_g2g (2 subtests) ==================
[07:57:27] ============== xe_live_guc_g2g_kunit_default  ==============
[07:57:27] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[07:57:27] ============== xe_live_guc_g2g_kunit_allmem  ===============
[07:57:27] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[07:57:27] =================== [SKIPPED] xe_guc_g2g ===================
[07:57:27] =================== xe_mocs (2 subtests) ===================
[07:57:27] ================ xe_live_mocs_kernel_kunit  ================
[07:57:27] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[07:57:27] ================ xe_live_mocs_reset_kunit  =================
[07:57:27] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[07:57:27] ==================== [SKIPPED] xe_mocs =====================
[07:57:27] ================= xe_migrate (2 subtests) ==================
[07:57:27] ================= xe_migrate_sanity_kunit  =================
[07:57:27] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[07:57:27] ================== xe_validate_ccs_kunit  ==================
[07:57:27] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[07:57:27] =================== [SKIPPED] xe_migrate ===================
[07:57:27] ================== xe_dma_buf (1 subtest) ==================
[07:57:27] ==================== xe_dma_buf_kunit  =====================
[07:57:27] ================ [SKIPPED] xe_dma_buf_kunit ================
[07:57:27] =================== [SKIPPED] xe_dma_buf ===================
[07:57:27] ================= xe_bo_shrink (1 subtest) =================
[07:57:27] =================== xe_bo_shrink_kunit  ====================
[07:57:27] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[07:57:27] ================== [SKIPPED] xe_bo_shrink ==================
[07:57:27] ==================== xe_bo (2 subtests) ====================
[07:57:27] ================== xe_ccs_migrate_kunit  ===================
[07:57:27] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[07:57:27] ==================== xe_bo_evict_kunit  ====================
[07:57:27] =============== [SKIPPED] xe_bo_evict_kunit ================
[07:57:27] ===================== [SKIPPED] xe_bo ======================
[07:57:27] ==================== args (13 subtests) ====================
[07:57:27] [PASSED] count_args_test
[07:57:27] [PASSED] call_args_example
[07:57:27] [PASSED] call_args_test
[07:57:27] [PASSED] drop_first_arg_example
[07:57:27] [PASSED] drop_first_arg_test
[07:57:27] [PASSED] first_arg_example
[07:57:27] [PASSED] first_arg_test
[07:57:27] [PASSED] last_arg_example
[07:57:27] [PASSED] last_arg_test
[07:57:27] [PASSED] pick_arg_example
[07:57:27] [PASSED] if_args_example
[07:57:27] [PASSED] if_args_test
[07:57:27] [PASSED] sep_comma_example
[07:57:27] ====================== [PASSED] args =======================
[07:57:27] =================== xe_pci (3 subtests) ====================
[07:57:27] ==================== check_graphics_ip  ====================
[07:57:27] [PASSED] 12.00 Xe_LP
[07:57:27] [PASSED] 12.10 Xe_LP+
[07:57:27] [PASSED] 12.55 Xe_HPG
[07:57:27] [PASSED] 12.60 Xe_HPC
[07:57:27] [PASSED] 12.70 Xe_LPG
[07:57:27] [PASSED] 12.71 Xe_LPG
[07:57:27] [PASSED] 12.74 Xe_LPG+
[07:57:27] [PASSED] 20.01 Xe2_HPG
[07:57:27] [PASSED] 20.02 Xe2_HPG
[07:57:27] [PASSED] 20.04 Xe2_LPG
[07:57:27] [PASSED] 30.00 Xe3_LPG
[07:57:27] [PASSED] 30.01 Xe3_LPG
[07:57:27] [PASSED] 30.03 Xe3_LPG
[07:57:27] [PASSED] 30.04 Xe3_LPG
[07:57:27] [PASSED] 30.05 Xe3_LPG
[07:57:27] [PASSED] 35.10 Xe3p_LPG
[07:57:27] [PASSED] 35.11 Xe3p_XPC
[07:57:27] ================ [PASSED] check_graphics_ip ================
[07:57:27] ===================== check_media_ip  ======================
[07:57:27] [PASSED] 12.00 Xe_M
[07:57:27] [PASSED] 12.55 Xe_HPM
[07:57:27] [PASSED] 13.00 Xe_LPM+
[07:57:27] [PASSED] 13.01 Xe2_HPM
[07:57:27] [PASSED] 20.00 Xe2_LPM
[07:57:27] [PASSED] 30.00 Xe3_LPM
[07:57:27] [PASSED] 30.02 Xe3_LPM
[07:57:27] [PASSED] 35.00 Xe3p_LPM
[07:57:27] [PASSED] 35.03 Xe3p_HPM
[07:57:27] ================= [PASSED] check_media_ip ==================
[07:57:27] =================== check_platform_desc  ===================
[07:57:27] [PASSED] 0x9A60 (TIGERLAKE)
[07:57:27] [PASSED] 0x9A68 (TIGERLAKE)
[07:57:27] [PASSED] 0x9A70 (TIGERLAKE)
[07:57:27] [PASSED] 0x9A40 (TIGERLAKE)
[07:57:27] [PASSED] 0x9A49 (TIGERLAKE)
[07:57:27] [PASSED] 0x9A59 (TIGERLAKE)
[07:57:27] [PASSED] 0x9A78 (TIGERLAKE)
[07:57:27] [PASSED] 0x9AC0 (TIGERLAKE)
[07:57:27] [PASSED] 0x9AC9 (TIGERLAKE)
[07:57:27] [PASSED] 0x9AD9 (TIGERLAKE)
[07:57:27] [PASSED] 0x9AF8 (TIGERLAKE)
[07:57:27] [PASSED] 0x4C80 (ROCKETLAKE)
[07:57:27] [PASSED] 0x4C8A (ROCKETLAKE)
[07:57:27] [PASSED] 0x4C8B (ROCKETLAKE)
[07:57:27] [PASSED] 0x4C8C (ROCKETLAKE)
[07:57:27] [PASSED] 0x4C90 (ROCKETLAKE)
[07:57:27] [PASSED] 0x4C9A (ROCKETLAKE)
[07:57:27] [PASSED] 0x4680 (ALDERLAKE_S)
[07:57:27] [PASSED] 0x4682 (ALDERLAKE_S)
[07:57:27] [PASSED] 0x4688 (ALDERLAKE_S)
[07:57:27] [PASSED] 0x468A (ALDERLAKE_S)
[07:57:27] [PASSED] 0x468B (ALDERLAKE_S)
[07:57:27] [PASSED] 0x4690 (ALDERLAKE_S)
[07:57:27] [PASSED] 0x4692 (ALDERLAKE_S)
[07:57:27] [PASSED] 0x4693 (ALDERLAKE_S)
[07:57:27] [PASSED] 0x46A0 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46A1 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46A2 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46A3 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46A6 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46A8 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46AA (ALDERLAKE_P)
[07:57:27] [PASSED] 0x462A (ALDERLAKE_P)
[07:57:27] [PASSED] 0x4626 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x4628 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46B0 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46B1 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46B2 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46B3 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46C0 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46C1 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46C2 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46C3 (ALDERLAKE_P)
[07:57:27] [PASSED] 0x46D0 (ALDERLAKE_N)
[07:57:27] [PASSED] 0x46D1 (ALDERLAKE_N)
[07:57:27] [PASSED] 0x46D2 (ALDERLAKE_N)
[07:57:27] [PASSED] 0x46D3 (ALDERLAKE_N)
[07:57:27] [PASSED] 0x46D4 (ALDERLAKE_N)
[07:57:27] [PASSED] 0xA721 (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7A1 (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7A9 (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7AC (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7AD (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA720 (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7A0 (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7A8 (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7AA (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA7AB (ALDERLAKE_P)
[07:57:27] [PASSED] 0xA780 (ALDERLAKE_S)
[07:57:27] [PASSED] 0xA781 (ALDERLAKE_S)
[07:57:27] [PASSED] 0xA782 (ALDERLAKE_S)
[07:57:27] [PASSED] 0xA783 (ALDERLAKE_S)
[07:57:27] [PASSED] 0xA788 (ALDERLAKE_S)
[07:57:27] [PASSED] 0xA789 (ALDERLAKE_S)
[07:57:27] [PASSED] 0xA78A (ALDERLAKE_S)
[07:57:27] [PASSED] 0xA78B (ALDERLAKE_S)
[07:57:27] [PASSED] 0x4905 (DG1)
[07:57:27] [PASSED] 0x4906 (DG1)
[07:57:27] [PASSED] 0x4907 (DG1)
[07:57:27] [PASSED] 0x4908 (DG1)
[07:57:27] [PASSED] 0x4909 (DG1)
[07:57:27] [PASSED] 0x56C0 (DG2)
[07:57:27] [PASSED] 0x56C2 (DG2)
[07:57:27] [PASSED] 0x56C1 (DG2)
[07:57:27] [PASSED] 0x7D51 (METEORLAKE)
[07:57:27] [PASSED] 0x7DD1 (METEORLAKE)
[07:57:27] [PASSED] 0x7D41 (METEORLAKE)
[07:57:27] [PASSED] 0x7D67 (METEORLAKE)
[07:57:27] [PASSED] 0xB640 (METEORLAKE)
[07:57:27] [PASSED] 0x56A0 (DG2)
[07:57:27] [PASSED] 0x56A1 (DG2)
[07:57:27] [PASSED] 0x56A2 (DG2)
[07:57:27] [PASSED] 0x56BE (DG2)
[07:57:27] [PASSED] 0x56BF (DG2)
[07:57:27] [PASSED] 0x5690 (DG2)
[07:57:27] [PASSED] 0x5691 (DG2)
[07:57:27] [PASSED] 0x5692 (DG2)
[07:57:27] [PASSED] 0x56A5 (DG2)
[07:57:27] [PASSED] 0x56A6 (DG2)
[07:57:27] [PASSED] 0x56B0 (DG2)
[07:57:27] [PASSED] 0x56B1 (DG2)
[07:57:27] [PASSED] 0x56BA (DG2)
[07:57:27] [PASSED] 0x56BB (DG2)
[07:57:27] [PASSED] 0x56BC (DG2)
[07:57:27] [PASSED] 0x56BD (DG2)
[07:57:27] [PASSED] 0x5693 (DG2)
[07:57:27] [PASSED] 0x5694 (DG2)
[07:57:27] [PASSED] 0x5695 (DG2)
[07:57:27] [PASSED] 0x56A3 (DG2)
[07:57:27] [PASSED] 0x56A4 (DG2)
[07:57:27] [PASSED] 0x56B2 (DG2)
[07:57:27] [PASSED] 0x56B3 (DG2)
[07:57:27] [PASSED] 0x5696 (DG2)
[07:57:27] [PASSED] 0x5697 (DG2)
[07:57:27] [PASSED] 0xB69 (PVC)
[07:57:27] [PASSED] 0xB6E (PVC)
[07:57:27] [PASSED] 0xBD4 (PVC)
[07:57:27] [PASSED] 0xBD5 (PVC)
[07:57:27] [PASSED] 0xBD6 (PVC)
[07:57:27] [PASSED] 0xBD7 (PVC)
[07:57:27] [PASSED] 0xBD8 (PVC)
[07:57:27] [PASSED] 0xBD9 (PVC)
[07:57:27] [PASSED] 0xBDA (PVC)
[07:57:27] [PASSED] 0xBDB (PVC)
[07:57:27] [PASSED] 0xBE0 (PVC)
[07:57:27] [PASSED] 0xBE1 (PVC)
[07:57:27] [PASSED] 0xBE5 (PVC)
[07:57:27] [PASSED] 0x7D40 (METEORLAKE)
[07:57:27] [PASSED] 0x7D45 (METEORLAKE)
[07:57:27] [PASSED] 0x7D55 (METEORLAKE)
[07:57:27] [PASSED] 0x7D60 (METEORLAKE)
[07:57:27] [PASSED] 0x7DD5 (METEORLAKE)
[07:57:27] [PASSED] 0x6420 (LUNARLAKE)
[07:57:27] [PASSED] 0x64A0 (LUNARLAKE)
[07:57:27] [PASSED] 0x64B0 (LUNARLAKE)
[07:57:27] [PASSED] 0xE202 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE209 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE20B (BATTLEMAGE)
[07:57:27] [PASSED] 0xE20C (BATTLEMAGE)
[07:57:27] [PASSED] 0xE20D (BATTLEMAGE)
[07:57:27] [PASSED] 0xE210 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE211 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE212 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE216 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE220 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE221 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE222 (BATTLEMAGE)
[07:57:27] [PASSED] 0xE223 (BATTLEMAGE)
[07:57:27] [PASSED] 0xB080 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB081 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB082 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB083 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB084 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB085 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB086 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB087 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB08F (PANTHERLAKE)
[07:57:27] [PASSED] 0xB090 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB0A0 (PANTHERLAKE)
[07:57:27] [PASSED] 0xB0B0 (PANTHERLAKE)
[07:57:27] [PASSED] 0xFD80 (PANTHERLAKE)
[07:57:27] [PASSED] 0xFD81 (PANTHERLAKE)
[07:57:27] [PASSED] 0xD740 (NOVALAKE_S)
[07:57:27] [PASSED] 0xD741 (NOVALAKE_S)
[07:57:27] [PASSED] 0xD742 (NOVALAKE_S)
[07:57:27] [PASSED] 0xD743 (NOVALAKE_S)
[07:57:27] [PASSED] 0xD745 (NOVALAKE_S)
[07:57:27] [PASSED] 0xD74A (NOVALAKE_S)
[07:57:27] [PASSED] 0xD74B (NOVALAKE_S)
[07:57:27] [PASSED] 0x674C (CRESCENTISLAND)
[07:57:27] [PASSED] 0x674D (CRESCENTISLAND)
[07:57:27] [PASSED] 0x674E (CRESCENTISLAND)
[07:57:27] [PASSED] 0x674F (CRESCENTISLAND)
[07:57:27] [PASSED] 0x6750 (CRESCENTISLAND)
[07:57:27] [PASSED] 0xD750 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD751 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD752 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD753 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD754 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD755 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD756 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD757 (NOVALAKE_P)
[07:57:27] [PASSED] 0xD75F (NOVALAKE_P)
[07:57:27] =============== [PASSED] check_platform_desc ===============
[07:57:27] ===================== [PASSED] xe_pci ======================
[07:57:27] ============= xe_rtp_tables_test (5 subtests) ==============
[07:57:27] ================== xe_rtp_table_gt_test  ===================
[07:57:27] [PASSED] gt_was/14011060649
[07:57:27] [PASSED] gt_was/14011059788
[07:57:27] [PASSED] gt_was/14015795083
[07:57:27] [PASSED] gt_was/16021867713
[07:57:27] [PASSED] gt_was/14019449301
[07:57:27] [PASSED] gt_was/16028005424
[07:57:27] [PASSED] gt_was/14026578760
[07:57:27] [PASSED] gt_was/1409420604
[07:57:27] [PASSED] gt_was/1408615072
[07:57:27] [PASSED] gt_was/22010523718
[07:57:27] [PASSED] gt_was/14011006942
[07:57:27] [PASSED] gt_was/14014830051
[07:57:27] [PASSED] gt_was/18018781329
[07:57:27] [PASSED] gt_was/1509235366
[07:57:27] [PASSED] gt_was/18018781329
[07:57:27] [PASSED] gt_was/16016694945
[07:57:27] [PASSED] gt_was/14018575942
[07:57:27] [PASSED] gt_was/22016670082
[07:57:27] [PASSED] gt_was/22016670082
[07:57:27] [PASSED] gt_was/14017421178
[07:57:27] [PASSED] gt_was/16025250150
[07:57:27] [PASSED] gt_was/14021871409
[07:57:27] [PASSED] gt_was/16021865536
[07:57:27] [PASSED] gt_was/14021486841
[07:57:27] [PASSED] gt_was/14025160223
[07:57:27] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[07:57:27] [PASSED] gt_was/14025635424
[07:57:27] [PASSED] gt_was/16028005424
[07:57:27] ============== [PASSED] xe_rtp_table_gt_test ===============
[07:57:27] ================== xe_rtp_table_gt_test  ===================
[07:57:27] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[07:57:27] [PASSED] gt_tunings/Tuning: 32B Access Enable
[07:57:27] [PASSED] gt_tunings/Tuning: L3 cache
[07:57:27] [PASSED] gt_tunings/Tuning: L3 cache - media
[07:57:27] [PASSED] gt_tunings/Tuning: Compression Overfetch
[07:57:27] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[07:57:27] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[07:57:27] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[07:57:27] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[07:57:27] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[07:57:27] [PASSED] gt_tunings/Tuning: Stateless compression control
[07:57:27] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[07:57:27] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[07:57:27] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[07:57:27] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[07:57:27] ============== [PASSED] xe_rtp_table_gt_test ===============
[07:57:27] ================== xe_rtp_table_oob_test  ==================
[07:57:27] [PASSED] oob_was/1607983814
[07:57:27] [PASSED] oob_was/16010904313
[07:57:27] [PASSED] oob_was/18022495364
[07:57:27] [PASSED] oob_was/22012773006
[07:57:27] [PASSED] oob_was/14014475959
[07:57:27] [PASSED] oob_was/22011391025
[07:57:27] [PASSED] oob_was/22012727170
[07:57:27] [PASSED] oob_was/22012727685
[07:57:27] [PASSED] oob_was/22016596838
[07:57:27] [PASSED] oob_was/18020744125
[07:57:27] [PASSED] oob_was/1409600907
[07:57:27] [PASSED] oob_was/22014953428
[07:57:27] [PASSED] oob_was/16017236439
[07:57:27] [PASSED] oob_was/14019821291
[07:57:27] [PASSED] oob_was/14015076503
[07:57:27] [PASSED] oob_was/14018913170
[07:57:27] [PASSED] oob_was/14018094691
[07:57:27] [PASSED] oob_was/18024947630
[07:57:27] [PASSED] oob_was/16022287689
[07:57:27] [PASSED] oob_was/13011645652
[07:57:27] [PASSED] oob_was/14022293748
[07:57:27] [PASSED] oob_was/22019794406
[07:57:27] [PASSED] oob_was/22019338487
[07:57:27] [PASSED] oob_was/16023588340
[07:57:27] [PASSED] oob_was/14019789679
[07:57:27] [PASSED] oob_was/14022866841
[07:57:27] [PASSED] oob_was/16021333562
[07:57:27] [PASSED] oob_was/14016712196
[07:57:27] [PASSED] oob_was/14015568240
[07:57:27] [PASSED] oob_was/18013179988
[07:57:27] [PASSED] oob_was/1508761755
[07:57:27] [PASSED] oob_was/16023105232
[07:57:27] [PASSED] oob_was/16026508708
[07:57:27] [PASSED] oob_was/14020001231
[07:57:27] [PASSED] oob_was/16023683509
[07:57:27] [PASSED] oob_was/14025515070
[07:57:27] [PASSED] oob_was/15015404425_disable
[07:57:27] [PASSED] oob_was/16026007364
[07:57:27] [PASSED] oob_was/14020316580
[07:57:27] [PASSED] oob_was/14025883347
[07:57:27] [PASSED] oob_was/16029380221
[07:57:27] ============== [PASSED] xe_rtp_table_oob_test ==============
[07:57:27] ================ xe_rtp_table_dev_oob_test  ================
[07:57:27] [PASSED] device_oob_was/22010954014
[07:57:27] [PASSED] device_oob_was/15015404425
[07:57:27] [PASSED] device_oob_was/22019338487_display
[07:57:27] [PASSED] device_oob_was/14022085890
[07:57:27] [PASSED] device_oob_was/14026539277
[07:57:27] [PASSED] device_oob_was/14026633728
[07:57:27] [PASSED] device_oob_was/14026746987
[07:57:27] [PASSED] device_oob_was/14026779378
[07:57:27] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[07:57:27] ========== xe_rtp_table_missing_upper_bound_test  ==========
[07:57:27] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[07:57:27] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[07:57:27] [PASSED] register_whitelist/1806527549
[07:57:27] [PASSED] register_whitelist/allow_read_ctx_timestamp
[07:57:27] [PASSED] register_whitelist/allow_read_queue_timestamp
[07:57:27] [PASSED] register_whitelist/16014440446
[07:57:27] [PASSED] register_whitelist/16017236439
[07:57:27] [PASSED] register_whitelist/16020183090
[07:57:27] [PASSED] register_whitelist/14024997852
[07:57:27] [PASSED] register_whitelist/14024997852
[07:57:27] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[07:57:27] =============== [PASSED] xe_rtp_tables_test ================
[07:57:27] =================== xe_rtp (3 subtests) ====================
[07:57:27] =================== xe_rtp_rules_tests  ====================
[07:57:27] [PASSED] no
[07:57:27] [PASSED] yes
[07:57:27] [PASSED] no-and-no
[07:57:27] [PASSED] no-and-yes
[07:57:27] [PASSED] yes-and-no
[07:57:27] [PASSED] yes-and-yes
[07:57:27] [PASSED] no-or-no
[07:57:27] [PASSED] no-or-yes
[07:57:27] [PASSED] yes-or-no
[07:57:27] [PASSED] yes-or-yes
[07:57:27] [PASSED] no-yes-or-yes-no
[07:57:27] [PASSED] no-yes-or-yes-yes
[07:57:27] [PASSED] yes-yes-or-no-yes
[07:57:27] [PASSED] yes-yes-or-yes-yes
[07:57:27] [PASSED] no-no-or-yes-or-no
[07:57:27] [PASSED] or
[07:57:27] [PASSED] or-yes
[07:57:27] [PASSED] or-no
[07:57:27] [PASSED] yes-or
[07:57:27] [PASSED] no-or
[07:57:27] [PASSED] no-or-or-yes
[07:57:27] [PASSED] yes-or-or-no
[07:57:27] [PASSED] no-or-or-no
[07:57:27] [PASSED] missing-context-engine-class
[07:57:27] [PASSED] missing-context-engine-class-or-yes
[07:57:27] [PASSED] missing-context-engine-class-or-or-yes
[07:57:27] =============== [PASSED] xe_rtp_rules_tests ================
[07:57:27] =============== xe_rtp_process_to_sr_tests  ================
[07:57:27] [PASSED] coalesce-same-reg
[07:57:27] [PASSED] coalesce-same-reg-literal-and-func
[07:57:27] [PASSED] no-match-no-add
[07:57:27] [PASSED] two-regs-two-entries
[07:57:27] [PASSED] clr-one-set-other
[07:57:27] [PASSED] set-field
[07:57:27] [PASSED] conflict-duplicate
[07:57:27] [PASSED] conflict-not-disjoint
[07:57:27] [PASSED] conflict-not-disjoint-literal-and-func
[07:57:27] [PASSED] conflict-reg-type
[07:57:27] [PASSED] bad-mcr-reg-forced-to-regular
[07:57:27] [PASSED] bad-regular-reg-forced-to-mcr
[07:57:27] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[07:57:27] ================== xe_rtp_process_tests  ===================
[07:57:27] [PASSED] active1
[07:57:27] [PASSED] active2
[07:57:27] [PASSED] active-inactive
[07:57:27] [PASSED] inactive-active
[07:57:27] [PASSED] inactive-active-inactive
[07:57:27] [PASSED] inactive-inactive-inactive
[07:57:27] ============== [PASSED] xe_rtp_process_tests ===============
[07:57:27] ===================== [PASSED] xe_rtp ======================
[07:57:27] ==================== xe_wa (1 subtest) =====================
[07:57:27] ======================== xe_wa_gt  =========================
[07:57:27] [PASSED] TIGERLAKE B0
[07:57:27] [PASSED] DG1 A0
[07:57:27] [PASSED] DG1 B0
[07:57:27] [PASSED] ALDERLAKE_S A0
[07:57:27] [PASSED] ALDERLAKE_S B0
[07:57:27] [PASSED] ALDERLAKE_S C0
[07:57:27] [PASSED] ALDERLAKE_S D0
[07:57:27] [PASSED] ALDERLAKE_P A0
[07:57:27] [PASSED] ALDERLAKE_P B0
[07:57:27] [PASSED] ALDERLAKE_P C0
[07:57:27] [PASSED] ALDERLAKE_S RPLS D0
[07:57:27] [PASSED] ALDERLAKE_P RPLU E0
[07:57:27] [PASSED] DG2 G10 C0
[07:57:27] [PASSED] DG2 G11 B1
[07:57:27] [PASSED] DG2 G12 A1
[07:57:27] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[07:57:27] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[07:57:27] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[07:57:27] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[07:57:27] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[07:57:27] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[07:57:27] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[07:57:27] ==================== [PASSED] xe_wa_gt =====================
[07:57:27] ====================== [PASSED] xe_wa ======================
[07:57:27] ============================================================
[07:57:27] Testing complete. Ran 729 tests: passed: 711, skipped: 18
[07:57:27] Elapsed time: 36.788s total, 4.421s configuring, 31.698s building, 0.647s running

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

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

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



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

* ✓ Xe.CI.BAT: success for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (11 preceding siblings ...)
  2026-07-02  7:58 ` ✓ CI.KUnit: success " Patchwork
@ 2026-07-02  8:33 ` Patchwork
  2026-07-02 10:04 ` ✓ i915.CI.BAT: " Patchwork
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2026-07-02  8:33 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe

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

== Series Details ==

Series: drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
URL   : https://patchwork.freedesktop.org/series/169662/
State : success

== Summary ==

CI Bug Log - changes from xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a_BAT -> xe-pw-169662v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  Missing    (1): bat-ptl-vm 


Changes
-------

  No changes found


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

  * Linux: xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a -> xe-pw-169662v1

  IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a: fa669b282e875afd49a387644ad4d47767fe2e0a
  xe-pw-169662v1: 169662v1

== Logs ==

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

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

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

* ✓ i915.CI.BAT: success for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (12 preceding siblings ...)
  2026-07-02  8:33 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-07-02 10:04 ` Patchwork
  2026-07-03  2:09 ` ✗ Xe.CI.FULL: failure " Patchwork
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2026-07-02 10:04 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

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

== Series Details ==

Series: drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
URL   : https://patchwork.freedesktop.org/series/169663/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_18749 -> Patchwork_169663v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/index.html

Participating hosts (42 -> 39)
------------------------------

  Missing    (3): bat-dg2-13 bat-arls-5 fi-snb-2520m 


Changes
-------

  No changes found


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

  * Linux: CI_DRM_18749 -> Patchwork_169663v1

  CI-20190529: 20190529
  CI_DRM_18749: 4a1a395fa156b92a83b501f8e331f21cd035c2e1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_169663v1: 4a1a395fa156b92a83b501f8e331f21cd035c2e1 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/index.html

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

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

* ✗ Xe.CI.FULL: failure for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (13 preceding siblings ...)
  2026-07-02 10:04 ` ✓ i915.CI.BAT: " Patchwork
@ 2026-07-03  2:09 ` Patchwork
  2026-07-03  2:17 ` ✗ i915.CI.Full: " Patchwork
  2026-07-10 14:43 ` [PATCH 00/10] " Ville Syrjälä
  16 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2026-07-03  2:09 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe

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

== Series Details ==

Series: drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
URL   : https://patchwork.freedesktop.org/series/169662/
State : failure

== Summary ==

CI Bug Log - changes from xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a_FULL -> xe-pw-169662v1_FULL
====================================================

Summary
-------

  **WARNING**

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

  

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Warnings ####

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-bmg:          [FAIL][1] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) -> [DMESG-FAIL][2] +1 other test dmesg-fail
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-8/igt@kms_content_protection@atomic-hdcp14.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-9/igt@kms_content_protection@atomic-hdcp14.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@hotrebind:
    - shard-bmg:          [PASS][3] -> [ABORT][4] ([Intel XE#8007]) +1 other test abort
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-10/igt@core_hotunplug@hotrebind.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-8/igt@core_hotunplug@hotrebind.html

  * igt@kms_addfb_basic@unused-pitches:
    - shard-bmg:          NOTRUN -> [ABORT][5] ([Intel XE#8007])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-1/igt@kms_addfb_basic@unused-pitches.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-bmg:          [PASS][6] -> [FAIL][7] ([Intel XE#3718] / [Intel XE#6078]) +1 other test fail
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-9/igt@kms_async_flips@alternate-sync-async-flip.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-1/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#2327]) +2 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-32bpp-rotate-0:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#1124]) +3 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-addfb:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2328] / [Intel XE#7367])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_big_fb@yf-tiled-addfb.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#2887]) +2 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-bmg:          [PASS][12] -> [INCOMPLETE][13] ([Intel XE#7084] / [Intel XE#8150]) +1 other test incomplete
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#3432])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html

  * igt@kms_chamelium_color@degamma:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#2325] / [Intel XE#7358])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_chamelium_color@degamma.html

  * igt@kms_chamelium_color_pipeline@plane-lut3d-green-only:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#7358])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html

  * igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2252]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode.html

  * igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][18] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-rapid-movement-max-size:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2320])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#4156] / [Intel XE#7425])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2375])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-bmg:          [PASS][22] -> [FAIL][23] ([Intel XE#3321]) +1 other test fail
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#7178] / [Intel XE#7351])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

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

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#4141]) +3 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#7061]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#7399])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2313]) +17 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [PASS][31] -> [SKIP][32] ([Intel XE#1503])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-8/igt@kms_hdr@invalid-hdr.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-9/igt@kms_hdr@invalid-hdr.html

  * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier@pipe-b-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#8303]) +1 other test skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#7283]) +1 other test skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html

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

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc3co-framedrop-check:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#8395]) +1 other test skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_pm_dc@dc3co-framedrop-check.html

  * igt@kms_pm_dc@dc3co-framedrop-check@psr2:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#8396])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_pm_dc@dc3co-framedrop-check@psr2.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#1489]) +2 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr@psr2-primary-page-flip:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_psr@psr2-primary-page-flip.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#7795])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#2330] / [Intel XE#5813])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@xe_compute@ccs-mode-basic:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#6599])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_compute@ccs-mode-basic.html

  * igt@xe_eudebug@read-metadata:
    - shard-bmg:          NOTRUN -> [SKIP][44] ([Intel XE#7636]) +5 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@xe_eudebug@read-metadata.html

  * igt@xe_evict@evict-small-multi-queue-cm:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#8370])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@xe_evict@evict-small-multi-queue-cm.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate.html

  * igt@xe_exec_fault_mode@once-multi-queue-userptr-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#8374]) +2 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_exec_fault_mode@once-multi-queue-userptr-prefetch.html

  * igt@xe_exec_multi_queue@max-queues-preempt-mode-fault-priority:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#8364]) +7 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_exec_multi_queue@max-queues-preempt-mode-fault-priority.html

  * igt@xe_exec_threads@threads-multi-queue-hang-fd-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#8378]) +3 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_exec_threads@threads-multi-queue-hang-fd-userptr-invalidate-race.html

  * igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#6281] / [Intel XE#7426])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html

  * igt@xe_pat@pat-sw-hw-suspend:
    - shard-bmg:          NOTRUN -> [FAIL][51] ([Intel XE#7695])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@xe_pat@pat-sw-hw-suspend.html

  * igt@xe_pat@xa-app-transient-media-off:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#7590])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_pat@xa-app-transient-media-off.html

  * igt@xe_pm@s2idle-d3cold-basic-exec:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#2284] / [Intel XE#7370])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-6/igt@xe_pm@s2idle-d3cold-basic-exec.html

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

  * igt@xe_wedged@wedged-mode-toggle:
    - shard-lnl:          [PASS][55] -> [ABORT][56] ([Intel XE#8007])
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-lnl-4/igt@xe_wedged@wedged-mode-toggle.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-lnl-3/igt@xe_wedged@wedged-mode-toggle.html

  
#### Possible fixes ####

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [FAIL][57] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][58] +1 other test pass
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
    - shard-lnl:          [FAIL][59] ([Intel XE#301]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html

  * igt@xe_evict@evict-mixed-many-threads-small:
    - shard-bmg:          [INCOMPLETE][61] ([Intel XE#6321] / [Intel XE#8355]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-10/igt@xe_evict@evict-mixed-many-threads-small.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-8/igt@xe_evict@evict-mixed-many-threads-small.html

  * igt@xe_module_load@many-reload:
    - shard-bmg:          [ABORT][63] ([Intel XE#8007]) -> [PASS][64] +2 other tests pass
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-10/igt@xe_module_load@many-reload.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@xe_module_load@many-reload.html

  
#### Warnings ####

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
    - shard-lnl:          [SKIP][65] ([Intel XE#309] / [Intel XE#7343]) -> [SKIP][66] ([Intel XE#309] / [Intel XE#7343] / [Intel XE#7935])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-lnl-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-lnl-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][67] ([Intel XE#3544]) -> [SKIP][68] ([Intel XE#3374] / [Intel XE#3544])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [FAIL][69] ([Intel XE#1729] / [Intel XE#7424]) -> [SKIP][70] ([Intel XE#2426] / [Intel XE#5848])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a/shard-bmg-10/igt@kms_tiled_display@basic-test-pattern.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-169662v1/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2375
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156
  [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
  [Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
  [Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
  [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
  [Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
  [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
  [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
  [Intel XE#7425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7425
  [Intel XE#7426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7426
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
  [Intel XE#7695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7695
  [Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
  [Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795
  [Intel XE#7935]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7935
  [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
  [Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
  [Intel XE#8303]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8303
  [Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
  [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
  [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
  [Intel XE#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395
  [Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * Linux: xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a -> xe-pw-169662v1

  IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5328-fa669b282e875afd49a387644ad4d47767fe2e0a: fa669b282e875afd49a387644ad4d47767fe2e0a
  xe-pw-169662v1: 169662v1

== Logs ==

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

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

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

* ✗ i915.CI.Full: failure for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (14 preceding siblings ...)
  2026-07-03  2:09 ` ✗ Xe.CI.FULL: failure " Patchwork
@ 2026-07-03  2:17 ` Patchwork
  2026-07-10 14:43 ` [PATCH 00/10] " Ville Syrjälä
  16 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2026-07-03  2:17 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx

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

== Series Details ==

Series: drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
URL   : https://patchwork.freedesktop.org/series/169663/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_18749_full -> Patchwork_169663v1_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_169663v1_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_169663v1_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 (10 -> 10)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in Patchwork_169663v1_full:

### IGT changes ###

#### Possible regressions ####

  * igt@perf_pmu@semaphore-busy:
    - shard-dg2:          [PASS][1] -> [FAIL][2] +2 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-7/igt@perf_pmu@semaphore-busy.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@perf_pmu@semaphore-busy.html

  
#### Warnings ####

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-glk:          [INCOMPLETE][3] ([i915#15500] / [i915#16184]) -> [FAIL][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk4/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk1/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html

  
New tests
---------

  New tests have been introduced between CI_DRM_18749_full and Patchwork_169663v1_full:

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

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-3:
    - Statuses : 1 pass(s)
    - Exec time: [5.13] s

  

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

  Here are the changes found in Patchwork_169663v1_full that come from known issues:

### CI changes ###

#### Possible fixes ####

  * boot:
    - shard-dg2:          ([PASS][5], [PASS][6], [PASS][7], [PASS][8], [PASS][9], [PASS][10], [PASS][11], [PASS][12], [PASS][13], [PASS][14], [PASS][15], [PASS][16], [PASS][17], [PASS][18], [PASS][19], [PASS][20], [PASS][21], [PASS][22], [FAIL][23], [PASS][24], [PASS][25], [PASS][26], [PASS][27], [PASS][28]) -> ([PASS][29], [PASS][30], [PASS][31], [PASS][32], [PASS][33], [PASS][34], [PASS][35], [PASS][36], [PASS][37], [PASS][38], [PASS][39], [PASS][40], [PASS][41], [PASS][42], [PASS][43], [PASS][44], [PASS][45], [PASS][46], [PASS][47], [PASS][48], [PASS][49], [PASS][50], [PASS][51], [PASS][52], [PASS][53])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-3/boot.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-3/boot.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-3/boot.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-3/boot.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/boot.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/boot.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-1/boot.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/boot.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/boot.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-5/boot.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-5/boot.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-5/boot.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-6/boot.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-6/boot.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-6/boot.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-7/boot.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-7/boot.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-7/boot.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-10/boot.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-8/boot.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-8/boot.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-8/boot.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-1/boot.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-1/boot.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-8/boot.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-8/boot.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-8/boot.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-8/boot.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-7/boot.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-7/boot.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-7/boot.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-6/boot.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-6/boot.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-6/boot.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/boot.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/boot.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/boot.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/boot.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/boot.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/boot.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/boot.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/boot.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-3/boot.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-3/boot.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-3/boot.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-1/boot.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-1/boot.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-1/boot.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-10/boot.html

  

### IGT changes ###

#### Issues hit ####

  * igt@device_reset@cold-reset-bound:
    - shard-tglu-1:       NOTRUN -> [SKIP][54] ([i915#11078])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@device_reset@cold-reset-bound.html
    - shard-rkl:          NOTRUN -> [SKIP][55] ([i915#11078])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@device_reset@cold-reset-bound.html

  * igt@dmabuf@all-tests:
    - shard-dg2:          NOTRUN -> [SKIP][56] ([i915#15931])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@dmabuf@all-tests.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-tglu:         NOTRUN -> [SKIP][57] ([i915#9323])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-tglu:         NOTRUN -> [SKIP][58] ([i915#3555] / [i915#9323])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-rkl:          NOTRUN -> [SKIP][59] ([i915#7697])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_ctx_isolation@preservation-s3:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][60] ([i915#13356] / [i915#16466]) +1 other test incomplete
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk10/igt@gem_ctx_isolation@preservation-s3.html

  * igt@gem_ctx_persistence@saturated-hostile-nopreempt:
    - shard-dg2:          NOTRUN -> [SKIP][61] ([i915#5882]) +7 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_ctx_persistence@saturated-hostile-nopreempt.html

  * igt@gem_ctx_sseu@mmap-args:
    - shard-tglu:         NOTRUN -> [SKIP][62] ([i915#280])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@gem_ctx_sseu@mmap-args.html

  * igt@gem_eio@in-flight-suspend:
    - shard-rkl:          [PASS][63] -> [INCOMPLETE][64] ([i915#13390])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@gem_eio@in-flight-suspend.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_balancer@bonded-semaphore:
    - shard-dg2:          NOTRUN -> [SKIP][65] ([i915#4812])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_exec_balancer@bonded-semaphore.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-rkl:          NOTRUN -> [SKIP][66] ([i915#4525]) +1 other test skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-tglu:         NOTRUN -> [SKIP][67] ([i915#4525])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_flush@basic-wb-pro-default:
    - shard-dg2:          NOTRUN -> [SKIP][68] ([i915#3539] / [i915#4852])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_exec_flush@basic-wb-pro-default.html

  * igt@gem_exec_reloc@basic-cpu-noreloc:
    - shard-rkl:          NOTRUN -> [SKIP][69] ([i915#3281]) +7 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_exec_reloc@basic-cpu-noreloc.html

  * igt@gem_exec_reloc@basic-wc-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][70] ([i915#3281]) +6 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_exec_reloc@basic-wc-cpu.html

  * igt@gem_exec_schedule@preempt-queue-contexts:
    - shard-dg2:          NOTRUN -> [SKIP][71] ([i915#4537] / [i915#4812]) +1 other test skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_exec_schedule@preempt-queue-contexts.html

  * igt@gem_huc_copy@huc-copy:
    - shard-rkl:          NOTRUN -> [SKIP][72] ([i915#2190])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-tglu-1:       NOTRUN -> [SKIP][73] ([i915#4613]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - shard-rkl:          NOTRUN -> [SKIP][74] ([i915#4613])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
    - shard-tglu:         NOTRUN -> [SKIP][75] ([i915#4613]) +3 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-glk:          NOTRUN -> [SKIP][76] ([i915#4613]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk8/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_mmap_gtt@cpuset-big-copy-odd:
    - shard-dg2:          NOTRUN -> [SKIP][77] ([i915#4077]) +3 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_mmap_gtt@cpuset-big-copy-odd.html

  * igt@gem_mmap_wc@bad-size:
    - shard-dg2:          NOTRUN -> [SKIP][78] ([i915#4083]) +1 other test skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_mmap_wc@bad-size.html

  * igt@gem_pread@bench:
    - shard-dg2:          NOTRUN -> [SKIP][79] ([i915#3282]) +1 other test skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_pread@bench.html

  * igt@gem_pread@exhaustion:
    - shard-glk11:        NOTRUN -> [WARN][80] ([i915#2658])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk11/igt@gem_pread@exhaustion.html

  * igt@gem_pxp@hw-rejects-pxp-buffer:
    - shard-rkl:          NOTRUN -> [SKIP][81] ([i915#13717])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@gem_pxp@hw-rejects-pxp-buffer.html
    - shard-tglu:         NOTRUN -> [SKIP][82] ([i915#13398])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@gem_pxp@hw-rejects-pxp-buffer.html

  * igt@gem_pxp@regular-baseline-src-copy-readible:
    - shard-dg2:          NOTRUN -> [SKIP][83] ([i915#4270])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_pxp@regular-baseline-src-copy-readible.html

  * igt@gem_readwrite@beyond-eob:
    - shard-rkl:          NOTRUN -> [SKIP][84] ([i915#3282]) +2 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_readwrite@beyond-eob.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][85] ([i915#5190] / [i915#8428]) +2 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled.html

  * igt@gem_softpin@noreloc-s3:
    - shard-rkl:          [PASS][86] -> [INCOMPLETE][87] ([i915#13809] / [i915#16226])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@gem_softpin@noreloc-s3.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-4/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@access-control:
    - shard-dg2:          NOTRUN -> [SKIP][88] ([i915#3297])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_userptr_blits@access-control.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-rkl:          NOTRUN -> [SKIP][89] ([i915#3297]) +1 other test skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@gem_userptr_blits@create-destroy-unsync.html
    - shard-tglu-1:       NOTRUN -> [SKIP][90] ([i915#3297])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@gem_userptr_blits@create-destroy-unsync.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-dg2:          NOTRUN -> [SKIP][91] ([i915#3297] / [i915#4880])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@relocations:
    - shard-dg2:          NOTRUN -> [SKIP][92] ([i915#3281] / [i915#3297])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gem_userptr_blits@relocations.html

  * igt@gem_userptr_blits@unsync-overlap:
    - shard-tglu:         NOTRUN -> [SKIP][93] ([i915#3297]) +2 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@gem_userptr_blits@unsync-overlap.html

  * igt@gen9_exec_parse@batch-zero-length:
    - shard-tglu:         NOTRUN -> [SKIP][94] ([i915#2527] / [i915#2856]) +3 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@gen9_exec_parse@batch-zero-length.html

  * igt@gen9_exec_parse@bb-start-param:
    - shard-tglu-1:       NOTRUN -> [SKIP][95] ([i915#2527] / [i915#2856]) +2 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@gen9_exec_parse@bb-start-param.html

  * igt@gen9_exec_parse@secure-batches:
    - shard-rkl:          NOTRUN -> [SKIP][96] ([i915#2527]) +1 other test skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@gen9_exec_parse@secure-batches.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2:          NOTRUN -> [SKIP][97] ([i915#2856]) +1 other test skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@gen9_exec_parse@unaligned-access.html

  * igt@i915_drm_fdinfo@busy-check-all@vecs0:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([i915#11527]) +15 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@i915_drm_fdinfo@busy-check-all@vecs0.html

  * igt@i915_module_load@fault-injection@__uc_init:
    - shard-rkl:          NOTRUN -> [SKIP][99] ([i915#15479]) +4 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@i915_module_load@fault-injection@__uc_init.html
    - shard-tglu-1:       NOTRUN -> [SKIP][100] ([i915#15479]) +4 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@i915_module_load@fault-injection@__uc_init.html

  * igt@i915_module_load@fault-injection@intel_connector_register:
    - shard-rkl:          NOTRUN -> [ABORT][101] ([i915#15342]) +1 other test abort
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@i915_module_load@fault-injection@intel_connector_register.html
    - shard-tglu-1:       NOTRUN -> [ABORT][102] ([i915#15342]) +1 other test abort
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@i915_module_load@fault-injection@intel_connector_register.html

  * igt@i915_pm_rc6_residency@media-rc6-accuracy:
    - shard-tglu:         NOTRUN -> [SKIP][103] ([i915#16080] / [i915#16166])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@i915_pm_rc6_residency@media-rc6-accuracy.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-tglu:         NOTRUN -> [WARN][104] ([i915#13790] / [i915#2681]) +1 other test warn
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-glk:          NOTRUN -> [INCOMPLETE][105] ([i915#13356] / [i915#15172])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk9/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@i915_query@hwconfig_table:
    - shard-tglu:         NOTRUN -> [SKIP][106] ([i915#6245])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@i915_query@hwconfig_table.html
    - shard-rkl:          NOTRUN -> [SKIP][107] ([i915#6245])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@i915_query@hwconfig_table.html

  * igt@i915_query@query-topology-known-pci-ids:
    - shard-rkl:          NOTRUN -> [SKIP][108] ([i915#16109])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@i915_query@query-topology-known-pci-ids.html

  * igt@i915_query@query-topology-unsupported:
    - shard-rkl:          NOTRUN -> [SKIP][109] ([i915#16079])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@i915_query@query-topology-unsupported.html
    - shard-tglu:         NOTRUN -> [SKIP][110] ([i915#16079])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@i915_query@query-topology-unsupported.html

  * igt@i915_suspend@forcewake:
    - shard-glk:          NOTRUN -> [INCOMPLETE][111] ([i915#16182] / [i915#4817])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk4/igt@i915_suspend@forcewake.html

  * igt@intel_hwmon@hwmon-read:
    - shard-rkl:          NOTRUN -> [SKIP][112] ([i915#7707])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@intel_hwmon@hwmon-read.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][113] ([i915#5190])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-rkl:          NOTRUN -> [SKIP][114] ([i915#12454] / [i915#12712])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_async_flips@async-flip-suspend-resume:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][115] ([i915#12761])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk10/igt@kms_async_flips@async-flip-suspend-resume.html

  * igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][116] ([i915#12761] / [i915#14995])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk10/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][117] ([i915#5286]) +5 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-tglu:         NOTRUN -> [SKIP][118] ([i915#5286]) +5 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-rkl:          NOTRUN -> [SKIP][119] ([i915#5286]) +6 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][120] ([i915#3828])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-5/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][121] ([i915#3638]) +1 other test skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180:
    - shard-dg2:          NOTRUN -> [SKIP][122] ([i915#4538] / [i915#5190]) +6 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][123] ([i915#6095]) +83 other tests skip
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-4/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][124] ([i915#14544] / [i915#6095]) +7 other tests skip
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][125] ([i915#14098] / [i915#14544] / [i915#6095]) +3 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][126] ([i915#12313])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc:
    - shard-tglu:         NOTRUN -> [SKIP][127] ([i915#6095]) +54 other tests skip
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][128] ([i915#12313]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][129] ([i915#6095]) +34 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
    - shard-rkl:          [PASS][130] -> [INCOMPLETE][131] ([i915#15582])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][132] ([i915#15582])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][133] ([i915#6095]) +3 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-dg1:          NOTRUN -> [SKIP][134] ([i915#6095]) +131 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-15/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][135] ([i915#14694] / [i915#15582])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk3/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][136] ([i915#14098] / [i915#6095]) +54 other tests skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-4/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][137] ([i915#12313]) +2 other tests skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][138] ([i915#10307] / [i915#10434] / [i915#6095])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][139] ([i915#10307] / [i915#6095]) +49 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][140] ([i915#12313])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-glk:          NOTRUN -> [SKIP][141] +292 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk8/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][142] ([i915#13781]) +3 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html

  * igt@kms_chamelium_audio@hdmi-audio-after-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][143] ([i915#11151])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_chamelium_audio@hdmi-audio-after-suspend.html

  * igt@kms_chamelium_color@ctm-negative:
    - shard-dg2:          NOTRUN -> [SKIP][144] +5 other tests skip
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_chamelium_color@ctm-negative.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d:
    - shard-tglu-1:       NOTRUN -> [SKIP][145] ([i915#16471])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d.html

  * igt@kms_chamelium_color_pipeline@plane-lut3d-green-only:
    - shard-dg2:          NOTRUN -> [SKIP][146] ([i915#16471])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html
    - shard-tglu:         NOTRUN -> [SKIP][147] ([i915#16471]) +1 other test skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html

  * igt@kms_chamelium_frames@dp-crc-single:
    - shard-tglu:         NOTRUN -> [SKIP][148] ([i915#11151] / [i915#7828]) +6 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_chamelium_frames@dp-crc-single.html

  * igt@kms_chamelium_frames@vga-frame-dump:
    - shard-dg2:          NOTRUN -> [SKIP][149] ([i915#11151] / [i915#7828]) +2 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_chamelium_frames@vga-frame-dump.html

  * igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode:
    - shard-rkl:          NOTRUN -> [SKIP][150] ([i915#11151] / [i915#7828]) +9 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_chamelium_hpd@hdmi-hpd-with-enabled-mode.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - shard-tglu-1:       NOTRUN -> [SKIP][151] ([i915#11151] / [i915#7828]) +3 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][152] ([i915#15865]) +1 other test skip
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@content-type-change:
    - shard-tglu:         NOTRUN -> [SKIP][153] ([i915#15865]) +1 other test skip
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_content_protection@content-type-change.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][154] ([i915#15330] / [i915#3116] / [i915#3299])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-tglu:         NOTRUN -> [SKIP][155] ([i915#15330] / [i915#3116] / [i915#3299])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@dp-mst-type-0-suspend-resume:
    - shard-rkl:          NOTRUN -> [SKIP][156] ([i915#15330])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][157] ([i915#15330] / [i915#3116])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [SKIP][158] ([i915#15865])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_content_protection@srm.html

  * igt@kms_content_protection@uevent-hdcp14:
    - shard-tglu-1:       NOTRUN -> [SKIP][159] ([i915#15865]) +1 other test skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_content_protection@uevent-hdcp14.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-dg2:          NOTRUN -> [SKIP][160] ([i915#13049])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_cursor_crc@cursor-offscreen-512x512.html
    - shard-tglu:         NOTRUN -> [SKIP][161] ([i915#13049])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-tglu-1:       NOTRUN -> [SKIP][162] ([i915#3555]) +3 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-a-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [FAIL][163] ([i915#13566]) +1 other test fail
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_cursor_crc@cursor-onscreen-64x21@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#3555]) +3 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][165] ([i915#13049]) +1 other test skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [FAIL][166] ([i915#13566]) +3 other tests fail
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-sliding-max-size:
    - shard-dg2:          NOTRUN -> [SKIP][167] ([i915#3555]) +1 other test skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_cursor_crc@cursor-sliding-max-size.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][168] ([i915#12358] / [i915#14152] / [i915#7882])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk11/igt@kms_cursor_crc@cursor-suspend.html
    - shard-rkl:          [PASS][169] -> [ABORT][170] ([i915#15132]) +1 other test abort
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-3/igt@kms_cursor_crc@cursor-suspend.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-1/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][171] ([i915#12358] / [i915#14152])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk11/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-tglu:         NOTRUN -> [SKIP][172] ([i915#4103]) +1 other test skip
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][173] ([i915#13046] / [i915#5354]) +1 other test skip
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html

  * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
    - shard-rkl:          NOTRUN -> [SKIP][174] ([i915#9067])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][175] ([i915#9723])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
    - shard-tglu:         NOTRUN -> [SKIP][176] ([i915#9723])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-dg2:          NOTRUN -> [SKIP][177] ([i915#9833])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglu-1:       NOTRUN -> [SKIP][178] ([i915#13691])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-dg2:          NOTRUN -> [SKIP][179] ([i915#13749])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_dp_linktrain_fallback@dsc-fallback:
    - shard-dg2:          NOTRUN -> [SKIP][180] ([i915#13707])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_dp_linktrain_fallback@dsc-fallback.html
    - shard-tglu:         NOTRUN -> [SKIP][181] ([i915#13707])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_dp_linktrain_fallback@dsc-fallback.html

  * igt@kms_dsc@dsc-with-bpc-bigjoiner:
    - shard-tglu-1:       NOTRUN -> [SKIP][182] ([i915#16361]) +2 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_dsc@dsc-with-bpc-bigjoiner.html

  * igt@kms_dsc@dsc-with-bpc-formats-bigjoiner:
    - shard-dg2:          NOTRUN -> [SKIP][183] ([i915#16361])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_dsc@dsc-with-bpc-formats-bigjoiner.html

  * igt@kms_dsc@dsc-with-formats:
    - shard-tglu:         NOTRUN -> [SKIP][184] ([i915#16361]) +3 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_dsc@dsc-with-formats.html

  * igt@kms_dsc@dsc-with-output-formats-bigjoiner:
    - shard-rkl:          NOTRUN -> [SKIP][185] ([i915#16361]) +2 other tests skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_dsc@dsc-with-output-formats-bigjoiner.html

  * igt@kms_fbcon_fbt@psr:
    - shard-rkl:          NOTRUN -> [SKIP][186] ([i915#3955])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@chamelium:
    - shard-tglu:         NOTRUN -> [SKIP][187] ([i915#2065])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_feature_discovery@chamelium.html
    - shard-dg2:          NOTRUN -> [SKIP][188] ([i915#16084])
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@psr2:
    - shard-dg2:          NOTRUN -> [SKIP][189] ([i915#658])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-dg2:          NOTRUN -> [SKIP][190] ([i915#9934]) +6 other tests skip
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-blocking-wf_vblank:
    - shard-tglu-1:       NOTRUN -> [SKIP][191] ([i915#3637] / [i915#9934]) +2 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_flip@2x-blocking-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-fences:
    - shard-rkl:          NOTRUN -> [SKIP][192] ([i915#9934]) +4 other tests skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@kms_flip@2x-flip-vs-fences.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-tglu:         NOTRUN -> [SKIP][193] ([i915#3637] / [i915#9934]) +9 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-rkl:          [PASS][194] -> [INCOMPLETE][195] ([i915#16276] / [i915#6113])
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_flip@flip-vs-suspend-interruptible.html
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][196] ([i915#16276] / [i915#6113])
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a2.html

  * igt@kms_flip@plain-flip-ts-check:
    - shard-dg2:          [PASS][197] -> [FAIL][198] ([i915#14600]) +1 other test fail
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-5/igt@kms_flip@plain-flip-ts-check.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-6/igt@kms_flip@plain-flip-ts-check.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-rkl:          NOTRUN -> [SKIP][199] ([i915#15643]) +4 other tests skip
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][200] ([i915#15643]) +1 other test skip
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][201] ([i915#15643]) +3 other tests skip
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-glk11:        NOTRUN -> [SKIP][202] +97 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk11/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][203] ([i915#1825]) +4 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-tglu-1:       NOTRUN -> [SKIP][204] +61 other tests skip
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-rkl:          NOTRUN -> [SKIP][205] ([i915#5439])
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-cur-indfb-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][206] +91 other tests skip
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-plflip-blt:
    - shard-tglu:         NOTRUN -> [SKIP][207] +112 other tests skip
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbchdr-tiling-4:
    - shard-tglu:         NOTRUN -> [SKIP][208] ([i915#5439])
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_frontbuffer_tracking@fbchdr-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-blt:
    - shard-dg2:          NOTRUN -> [SKIP][209] ([i915#15991] / [i915#5354]) +9 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][210] ([i915#15102] / [i915#3023]) +14 other tests skip
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][211] ([i915#15990]) +4 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb565-draw-mmap-cpu:
    - shard-glk10:        NOTRUN -> [SKIP][212] +69 other tests skip
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk10/igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb565-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-stridechange:
    - shard-dg2:          NOTRUN -> [SKIP][213] ([i915#15102]) +18 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsrhdr-stridechange.html

  * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-indfb-draw-blt:
    - shard-tglu:         NOTRUN -> [SKIP][214] ([i915#15989]) +21 other tests skip
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][215] ([i915#15989]) +18 other tests skip
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][216] ([i915#15989]) +9 other tests skip
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-rkl:          [PASS][217] -> [SKIP][218] ([i915#15989]) +5 other tests skip
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-pwrite.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-indfb-draw-mmap-cpu:
    - shard-glk:          [PASS][219] -> [SKIP][220] +19 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk8/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-indfb-draw-mmap-cpu.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk3/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-pwrite:
    - shard-tglu-1:       NOTRUN -> [SKIP][221] ([i915#15989]) +11 other tests skip
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@hdr-suspend:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][222] ([i915#16056])
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk11/igt@kms_frontbuffer_tracking@hdr-suspend.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][223] ([i915#15102]) +23 other tests skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][224] ([i915#10433] / [i915#15102])
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move:
    - shard-tglu:         NOTRUN -> [SKIP][225] ([i915#15102]) +40 other tests skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][226] ([i915#15990] / [i915#8708]) +6 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-move:
    - shard-rkl:          NOTRUN -> [SKIP][227] ([i915#15102]) +26 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-render:
    - shard-dg2:          NOTRUN -> [SKIP][228] ([i915#15991]) +17 other tests skip
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_hdmi_inject@inject-4k:
    - shard-mtlp:         [PASS][229] -> [SKIP][230] ([i915#15725]) +1 other test skip
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-mtlp-4/igt@kms_hdmi_inject@inject-4k.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-mtlp-1/igt@kms_hdmi_inject@inject-4k.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglu:         [PASS][231] -> [FAIL][232] ([i915#16115])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-9/igt@kms_hdmi_inject@inject-audio.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@bpc-switch-dpms:
    - shard-rkl:          [PASS][233] -> [SKIP][234] ([i915#3555] / [i915#8228])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_hdr@bpc-switch-dpms.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_hdr@bpc-switch-dpms.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg2:          NOTRUN -> [SKIP][235] ([i915#12713] / [i915#16518])
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_hdr@brightness-with-hdr.html
    - shard-tglu:         NOTRUN -> [SKIP][236] ([i915#12713])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][237] ([i915#3555] / [i915#8228]) +1 other test skip
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_hdr@static-toggle-suspend.html
    - shard-tglu:         NOTRUN -> [SKIP][238] ([i915#3555] / [i915#8228])
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][239] ([i915#15459])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-tglu-1:       NOTRUN -> [SKIP][240] ([i915#15458])
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][241] ([i915#15638] / [i915#15722])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-tglu:         NOTRUN -> [SKIP][242] ([i915#15638] / [i915#15722])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - shard-dg2:          [PASS][243] -> [ABORT][244] ([i915#15132])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-3/igt@kms_pipe_crc_basic@suspend-read-crc.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-10/igt@kms_pipe_crc_basic@suspend-read-crc.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3:
    - shard-dg2:          NOTRUN -> [ABORT][245] ([i915#15132])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-10/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3.html

  * igt@kms_pipe_stress@stress-xrgb8888-4tiled:
    - shard-rkl:          NOTRUN -> [SKIP][246] ([i915#14712])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html

  * igt@kms_pipe_stress@stress-xrgb8888-yftiled:
    - shard-dg2:          NOTRUN -> [SKIP][247] ([i915#14712])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier:
    - shard-dg2:          NOTRUN -> [SKIP][248] ([i915#15709])
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7:
    - shard-tglu:         NOTRUN -> [SKIP][249] ([i915#16386]) +1 other test skip
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5:
    - shard-dg2:          NOTRUN -> [SKIP][250] ([i915#16386]) +1 other test skip
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-7:
    - shard-tglu-1:       NOTRUN -> [SKIP][251] ([i915#16386]) +1 other test skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-7.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier:
    - shard-rkl:          NOTRUN -> [SKIP][252] ([i915#15709]) +3 other tests skip
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_plane@pixel-format-yf-tiled-modifier.html
    - shard-tglu:         NOTRUN -> [SKIP][253] ([i915#15709]) +2 other tests skip
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_plane@pixel-format-yf-tiled-modifier.html

  * igt@kms_plane_alpha_blend@alpha-opaque-fb:
    - shard-glk:          NOTRUN -> [FAIL][254] ([i915#10647] / [i915#12169])
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk4/igt@kms_plane_alpha_blend@alpha-opaque-fb.html

  * igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][255] ([i915#10647]) +1 other test fail
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk4/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html

  * igt@kms_plane_multiple@2x-tiling-4:
    - shard-tglu-1:       NOTRUN -> [SKIP][256] ([i915#13958]) +1 other test skip
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-4.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-tglu:         NOTRUN -> [SKIP][257] ([i915#13958])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-rkl:          NOTRUN -> [SKIP][258] ([i915#6953])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@invalid-num-scalers:
    - shard-dg1:          [PASS][259] -> [DMESG-WARN][260] ([i915#4423])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg1-15/igt@kms_plane_scaling@invalid-num-scalers.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-18/igt@kms_plane_scaling@invalid-num-scalers.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][261] ([i915#15329]) +8 other tests skip
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
    - shard-rkl:          NOTRUN -> [SKIP][262] ([i915#15329] / [i915#3555])
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html
    - shard-tglu:         NOTRUN -> [SKIP][263] ([i915#15329] / [i915#3555])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
    - shard-rkl:          NOTRUN -> [SKIP][264] ([i915#15329]) +2 other tests skip
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-tglu-1:       NOTRUN -> [SKIP][265] ([i915#12343])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][266] ([i915#12343] / [i915#5354]) +1 other test skip
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_pm_dc@dc5-retention-flops:
    - shard-tglu-1:       NOTRUN -> [SKIP][267] ([i915#3828])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_pm_dc@dc5-retention-flops.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-rkl:          NOTRUN -> [SKIP][268] ([i915#15948])
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_pm_dc@dc6-psr.html
    - shard-tglu:         NOTRUN -> [SKIP][269] ([i915#15948])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg2:          [PASS][270] -> [SKIP][271] ([i915#9340])
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/igt@kms_pm_lpsp@kms-lpsp.html
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-1/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-rkl:          NOTRUN -> [SKIP][272] ([i915#15073]) +1 other test skip
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_pm_rpm@dpms-lpsp.html
    - shard-dg1:          [PASS][273] -> [SKIP][274] ([i915#15073]) +1 other test skip
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg1-14/igt@kms_pm_rpm@dpms-lpsp.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-19/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-rkl:          [PASS][275] -> [SKIP][276] ([i915#14544] / [i915#15073]) +1 other test skip
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-rkl:          [PASS][277] -> [SKIP][278] ([i915#15073]) +1 other test skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-tglu-1:       NOTRUN -> [SKIP][279] ([i915#15073])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-dg2:          NOTRUN -> [SKIP][280] ([i915#6524] / [i915#6805]) +1 other test skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-rkl:          NOTRUN -> [SKIP][281] ([i915#6524]) +1 other test skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_prime@basic-modeset-hybrid.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-tglu:         NOTRUN -> [SKIP][282] ([i915#11520]) +5 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][283] ([i915#11520]) +5 other tests skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk6/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
    - shard-dg2:          NOTRUN -> [SKIP][284] ([i915#11520]) +2 other tests skip
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-glk10:        NOTRUN -> [SKIP][285] ([i915#11520])
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk10/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-glk11:        NOTRUN -> [SKIP][286] ([i915#11520]) +1 other test skip
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk11/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-tglu-1:       NOTRUN -> [SKIP][287] ([i915#11520]) +6 other tests skip
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][288] ([i915#11520]) +8 other tests skip
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr@fbc-psr-cursor-plane-onoff:
    - shard-tglu:         NOTRUN -> [SKIP][289] ([i915#9732]) +22 other tests skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_psr@fbc-psr-cursor-plane-onoff.html

  * igt@kms_psr@pr-cursor-blt:
    - shard-dg2:          NOTRUN -> [SKIP][290] ([i915#1072] / [i915#9732]) +9 other tests skip
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_psr@pr-cursor-blt.html

  * igt@kms_psr@psr-sprite-mmap-cpu:
    - shard-tglu-1:       NOTRUN -> [SKIP][291] ([i915#9732]) +9 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@kms_psr@psr-sprite-mmap-cpu.html

  * igt@kms_psr@psr2-sprite-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][292] ([i915#1072] / [i915#9732]) +21 other tests skip
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_psr@psr2-sprite-mmap-cpu.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-dg2:          NOTRUN -> [SKIP][293] ([i915#12755] / [i915#15867])
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
    - shard-dg2:          NOTRUN -> [SKIP][294] ([i915#12755] / [i915#15867] / [i915#5190])
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-tglu:         NOTRUN -> [SKIP][295] ([i915#5289])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-rkl:          NOTRUN -> [SKIP][296] ([i915#5289])
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-tglu:         NOTRUN -> [SKIP][297] ([i915#8623])
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@kms_tiled_display@basic-test-pattern.html
    - shard-rkl:          NOTRUN -> [SKIP][298] ([i915#8623])
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1:
    - shard-glk:          NOTRUN -> [INCOMPLETE][299] ([i915#12276]) +1 other test incomplete
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk4/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html

  * igt@kms_vrr@flip-basic:
    - shard-tglu:         NOTRUN -> [SKIP][300] ([i915#3555]) +2 other tests skip
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_vrr@flip-basic.html

  * igt@kms_vrr@flip-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][301] ([i915#15243] / [i915#3555])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@lobf:
    - shard-rkl:          NOTRUN -> [SKIP][302] ([i915#11920])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_vrr@lobf.html

  * igt@perf@global-sseu-config:
    - shard-dg2:          NOTRUN -> [SKIP][303] ([i915#7387])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@perf@global-sseu-config.html

  * igt@perf_pmu@module-unload:
    - shard-tglu:         NOTRUN -> [ABORT][304] ([i915#15778])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-5/igt@perf_pmu@module-unload.html

  * igt@prime_udl@share-import:
    - shard-dg2:          NOTRUN -> [SKIP][305] ([i915#16420])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@prime_udl@share-import.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-dg2:          NOTRUN -> [SKIP][306] ([i915#9917])
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@sriov_basic@bind-unbind-vf.html

  * igt@sriov_basic@bind-unbind-vf@vf-4:
    - shard-tglu:         NOTRUN -> [SKIP][307] ([i915#16066]) +9 other tests skip
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@sriov_basic@bind-unbind-vf@vf-4.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-rkl:          NOTRUN -> [SKIP][308] ([i915#9917])
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
    - shard-tglu-1:       NOTRUN -> [SKIP][309] ([i915#16066])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-1/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@preservation-s3:
    - shard-rkl:          [INCOMPLETE][310] ([i915#13356]) -> [PASS][311] +2 other tests pass
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@gem_ctx_isolation@preservation-s3.html
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@gem_ctx_isolation@preservation-s3.html

  * igt@i915_module_load@load:
    - shard-tglu:         ([PASS][312], [SKIP][313], [PASS][314], [PASS][315], [PASS][316], [PASS][317], [PASS][318], [PASS][319], [PASS][320], [PASS][321], [PASS][322], [PASS][323], [PASS][324], [PASS][325], [PASS][326], [PASS][327], [PASS][328], [PASS][329], [PASS][330], [PASS][331]) ([i915#16165]) -> ([PASS][332], [PASS][333], [PASS][334], [PASS][335], [PASS][336], [PASS][337], [PASS][338], [PASS][339], [PASS][340], [PASS][341], [PASS][342], [PASS][343], [PASS][344], [PASS][345], [PASS][346], [PASS][347], [PASS][348], [PASS][349], [PASS][350], [PASS][351], [PASS][352], [PASS][353])
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-8/igt@i915_module_load@load.html
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-3/igt@i915_module_load@load.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-5/igt@i915_module_load@load.html
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-5/igt@i915_module_load@load.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-3/igt@i915_module_load@load.html
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-2/igt@i915_module_load@load.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-6/igt@i915_module_load@load.html
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-4/igt@i915_module_load@load.html
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-6/igt@i915_module_load@load.html
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-6/igt@i915_module_load@load.html
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-7/igt@i915_module_load@load.html
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-7/igt@i915_module_load@load.html
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-7/igt@i915_module_load@load.html
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-10/igt@i915_module_load@load.html
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-4/igt@i915_module_load@load.html
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-8/igt@i915_module_load@load.html
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-10/igt@i915_module_load@load.html
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-3/igt@i915_module_load@load.html
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-9/igt@i915_module_load@load.html
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-9/igt@i915_module_load@load.html
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-7/igt@i915_module_load@load.html
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-4/igt@i915_module_load@load.html
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-4/igt@i915_module_load@load.html
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@i915_module_load@load.html
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-5/igt@i915_module_load@load.html
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@i915_module_load@load.html
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-9/igt@i915_module_load@load.html
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-3/igt@i915_module_load@load.html
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-2/igt@i915_module_load@load.html
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-9/igt@i915_module_load@load.html
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-6/igt@i915_module_load@load.html
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-9/igt@i915_module_load@load.html
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-2/igt@i915_module_load@load.html
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-6/igt@i915_module_load@load.html
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@i915_module_load@load.html
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@i915_module_load@load.html
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@i915_module_load@load.html
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@i915_module_load@load.html
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-5/igt@i915_module_load@load.html
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-7/igt@i915_module_load@load.html
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@i915_module_load@load.html
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-8/igt@i915_module_load@load.html
    - shard-rkl:          ([PASS][354], [PASS][355], [PASS][356], [PASS][357], [PASS][358], [PASS][359], [PASS][360], [PASS][361], [PASS][362], [PASS][363], [PASS][364], [SKIP][365], [PASS][366], [PASS][367], [PASS][368], [PASS][369], [PASS][370], [PASS][371], [PASS][372], [PASS][373], [PASS][374]) ([i915#16165]) -> ([PASS][375], [PASS][376], [PASS][377], [PASS][378], [PASS][379], [PASS][380], [PASS][381], [PASS][382], [PASS][383], [PASS][384], [PASS][385], [PASS][386], [PASS][387], [PASS][388], [PASS][389], [PASS][390], [PASS][391], [PASS][392], [PASS][393], [PASS][394], [PASS][395], [PASS][396], [PASS][397])
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-8/igt@i915_module_load@load.html
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-8/igt@i915_module_load@load.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-8/igt@i915_module_load@load.html
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@i915_module_load@load.html
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@i915_module_load@load.html
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@i915_module_load@load.html
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@i915_module_load@load.html
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@i915_module_load@load.html
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@i915_module_load@load.html
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-1/igt@i915_module_load@load.html
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-1/igt@i915_module_load@load.html
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@i915_module_load@load.html
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@i915_module_load@load.html
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@i915_module_load@load.html
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@i915_module_load@load.html
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-3/igt@i915_module_load@load.html
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-3/igt@i915_module_load@load.html
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-4/igt@i915_module_load@load.html
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@i915_module_load@load.html
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-4/igt@i915_module_load@load.html
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-4/igt@i915_module_load@load.html
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-4/igt@i915_module_load@load.html
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-4/igt@i915_module_load@load.html
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-5/igt@i915_module_load@load.html
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-4/igt@i915_module_load@load.html
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-5/igt@i915_module_load@load.html
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@i915_module_load@load.html
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-5/igt@i915_module_load@load.html
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@i915_module_load@load.html
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@i915_module_load@load.html
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@i915_module_load@load.html
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@i915_module_load@load.html
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@i915_module_load@load.html
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@i915_module_load@load.html
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@i915_module_load@load.html
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@i915_module_load@load.html
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@i915_module_load@load.html
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@i915_module_load@load.html
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-1/igt@i915_module_load@load.html
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@i915_module_load@load.html
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@i915_module_load@load.html
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@i915_module_load@load.html
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@i915_module_load@load.html
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@i915_module_load@load.html

  * igt@i915_suspend@sysfs-reader:
    - shard-rkl:          [INCOMPLETE][398] ([i915#4817]) -> [PASS][399]
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-3/igt@i915_suspend@sysfs-reader.html
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-2/igt@i915_suspend@sysfs-reader.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1:
    - shard-mtlp:         [FAIL][400] ([i915#5956]) -> [PASS][401] +1 other test pass
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-mtlp-5/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1.html
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-mtlp-5/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels@pipe-a-edp-1.html

  * igt@kms_atomic_transition@plane-toggle-modeset-transition:
    - shard-dg2:          [FAIL][402] ([i915#5956]) -> [PASS][403]
   [402]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-7/igt@kms_atomic_transition@plane-toggle-modeset-transition.html
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-4/igt@kms_atomic_transition@plane-toggle-modeset-transition.html

  * igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][404] ([i915#15662]) -> [PASS][405] +1 other test pass
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-tglu-10/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-1.html
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-tglu-10/igt@kms_atomic_transition@plane-toggle-modeset-transition@pipe-a-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [FAIL][406] ([i915#15733] / [i915#5138]) -> [PASS][407]
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-mtlp-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-180:
    - shard-dg1:          [DMESG-WARN][408] ([i915#4423]) -> [PASS][409]
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg1-15/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-18/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          [INCOMPLETE][410] ([i915#15582]) -> [PASS][411]
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk8/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk3/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions:
    - shard-rkl:          [FAIL][412] ([i915#15967]) -> [PASS][413]
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html

  * igt@kms_flip@plain-flip-ts-check-interruptible:
    - shard-snb:          [FAIL][414] ([i915#14600]) -> [PASS][415] +1 other test pass
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-snb4/igt@kms_flip@plain-flip-ts-check-interruptible.html
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-snb6/igt@kms_flip@plain-flip-ts-check-interruptible.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-blt:
    - shard-rkl:          [SKIP][416] ([i915#15989]) -> [PASS][417] +8 other tests pass
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-blt.html
   [417]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-draw-mmap-cpu:
    - shard-glk:          [SKIP][418] -> [PASS][419] +1 other test pass
   [418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk6/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html
   [419]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk8/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-rkl:          [SKIP][420] ([i915#3555] / [i915#8228]) -> [PASS][421]
   [420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_hdr@static-toggle-dpms.html
   [421]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - shard-rkl:          [ABORT][422] ([i915#15132]) -> [PASS][423] +2 other tests pass
   [422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
   [423]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-8/igt@kms_pipe_crc_basic@suspend-read-crc.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg2:          [SKIP][424] ([i915#15073]) -> [PASS][425]
   [424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
   [425]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
    - shard-rkl:          [SKIP][426] ([i915#15073]) -> [PASS][427]
   [426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
   [427]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-4/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-dg1:          [SKIP][428] ([i915#15073]) -> [PASS][429] +1 other test pass
   [428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg1-15/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [429]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-18/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@system-suspend-idle:
    - shard-dg2:          [SKIP][430] -> [PASS][431]
   [430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/igt@kms_pm_rpm@system-suspend-idle.html
   [431]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-5/igt@kms_pm_rpm@system-suspend-idle.html

  * igt@perf_pmu@busy-double-start@rcs0:
    - shard-mtlp:         [FAIL][432] ([i915#4349]) -> [PASS][433]
   [432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-mtlp-2/igt@perf_pmu@busy-double-start@rcs0.html
   [433]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-mtlp-1/igt@perf_pmu@busy-double-start@rcs0.html

  
#### Warnings ####

  * igt@gem_ccs@block-multicopy-inplace:
    - shard-rkl:          [SKIP][434] ([i915#3555] / [i915#9323]) -> [SKIP][435] ([i915#14544] / [i915#3555] / [i915#9323])
   [434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@gem_ccs@block-multicopy-inplace.html
   [435]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_ccs@block-multicopy-inplace.html

  * igt@gem_ccs@large-ctrl-surf-copy:
    - shard-rkl:          [SKIP][436] ([i915#13008] / [i915#14544]) -> [SKIP][437] ([i915#13008])
   [436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@gem_ccs@large-ctrl-surf-copy.html
   [437]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_ccs@large-ctrl-surf-copy.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-rkl:          [SKIP][438] ([i915#280]) -> [SKIP][439] ([i915#14544] / [i915#280])
   [438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@gem_ctx_sseu@invalid-sseu.html
   [439]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_exec_balancer@parallel-dmabuf-import-out-fence:
    - shard-rkl:          [SKIP][440] ([i915#14544] / [i915#4525]) -> [SKIP][441] ([i915#4525])
   [440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html
   [441]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_exec_balancer@parallel-dmabuf-import-out-fence.html

  * igt@gem_exec_reloc@basic-gtt-wc-noreloc:
    - shard-rkl:          [SKIP][442] ([i915#3281]) -> [SKIP][443] ([i915#14544] / [i915#3281]) +3 other tests skip
   [442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html
   [443]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html

  * igt@gem_exec_reloc@basic-wc:
    - shard-rkl:          [SKIP][444] ([i915#14544] / [i915#3281]) -> [SKIP][445] ([i915#3281]) +3 other tests skip
   [444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@gem_exec_reloc@basic-wc.html
   [445]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@gem_exec_reloc@basic-wc.html

  * igt@gem_lmem_swapping@massive-random:
    - shard-rkl:          [SKIP][446] ([i915#14544] / [i915#4613]) -> [SKIP][447] ([i915#4613])
   [446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@gem_lmem_swapping@massive-random.html
   [447]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@gem_lmem_swapping@massive-random.html

  * igt@gem_lmem_swapping@smem-oom:
    - shard-rkl:          [SKIP][448] ([i915#4613]) -> [SKIP][449] ([i915#14544] / [i915#4613])
   [448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@gem_lmem_swapping@smem-oom.html
   [449]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_lmem_swapping@smem-oom.html

  * igt@gem_pwrite_snooped:
    - shard-rkl:          [SKIP][450] ([i915#3282]) -> [SKIP][451] ([i915#14544] / [i915#3282])
   [450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@gem_pwrite_snooped.html
   [451]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_pwrite_snooped.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-rkl:          [SKIP][452] ([i915#13717]) -> [SKIP][453] ([i915#13717] / [i915#14544])
   [452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@gem_pxp@hw-rejects-pxp-context.html
   [453]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_set_tiling_vs_blt@tiled-to-untiled:
    - shard-rkl:          [SKIP][454] ([i915#8411]) -> [SKIP][455] ([i915#14544] / [i915#8411])
   [454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
   [455]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html

  * igt@gem_tiled_partial_pwrite_pread@writes-after-reads:
    - shard-rkl:          [SKIP][456] ([i915#14544] / [i915#3282]) -> [SKIP][457] ([i915#3282])
   [456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@gem_tiled_partial_pwrite_pread@writes-after-reads.html
   [457]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@gem_tiled_partial_pwrite_pread@writes-after-reads.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-rkl:          [SKIP][458] ([i915#3297]) -> [SKIP][459] ([i915#14544] / [i915#3297]) +1 other test skip
   [458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
   [459]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gen9_exec_parse@basic-rejected:
    - shard-rkl:          [SKIP][460] ([i915#14544] / [i915#2527]) -> [SKIP][461] ([i915#2527])
   [460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@gen9_exec_parse@basic-rejected.html
   [461]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@gen9_exec_parse@basic-rejected.html

  * igt@i915_pm_freq_api@freq-reset:
    - shard-rkl:          [SKIP][462] ([i915#8399]) -> [SKIP][463] ([i915#14544] / [i915#8399])
   [462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@i915_pm_freq_api@freq-reset.html
   [463]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@i915_pm_freq_api@freq-reset.html

  * igt@i915_pm_sseu@full-enable:
    - shard-rkl:          [SKIP][464] ([i915#4387]) -> [SKIP][465] ([i915#14544] / [i915#4387])
   [464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@i915_pm_sseu@full-enable.html
   [465]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@i915_pm_sseu@full-enable.html

  * igt@kms_big_fb@4-tiled-addfb:
    - shard-rkl:          [SKIP][466] ([i915#5286]) -> [SKIP][467] ([i915#14544] / [i915#5286]) +1 other test skip
   [466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_big_fb@4-tiled-addfb.html
   [467]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_big_fb@4-tiled-addfb.html

  * igt@kms_big_fb@linear-16bpp-rotate-270:
    - shard-dg1:          [SKIP][468] ([i915#3638]) -> [SKIP][469] ([i915#3638] / [i915#4423])
   [468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg1-15/igt@kms_big_fb@linear-16bpp-rotate-270.html
   [469]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-18/igt@kms_big_fb@linear-16bpp-rotate-270.html

  * igt@kms_big_fb@linear-32bpp-rotate-270:
    - shard-rkl:          [SKIP][470] ([i915#3638]) -> [SKIP][471] ([i915#14544] / [i915#3638]) +1 other test skip
   [470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_big_fb@linear-32bpp-rotate-270.html
   [471]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_big_fb@linear-32bpp-rotate-270.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-rkl:          [SKIP][472] ([i915#3828]) -> [SKIP][473] ([i915#14544] / [i915#3828])
   [472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html
   [473]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-270:
    - shard-rkl:          [SKIP][474] ([i915#14544] / [i915#3638]) -> [SKIP][475] ([i915#3638])
   [474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html
   [475]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
    - shard-glk:          [INCOMPLETE][476] ([i915#15582]) -> [INCOMPLETE][477] ([i915#14694] / [i915#15582])
   [476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk8/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
   [477]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk3/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
    - shard-rkl:          [SKIP][478] ([i915#12313]) -> [SKIP][479] ([i915#12313] / [i915#14544])
   [478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
   [479]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][480] ([i915#6095]) -> [SKIP][481] ([i915#14544] / [i915#6095]) +3 other tests skip
   [480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-2.html
   [481]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2:
    - shard-rkl:          [SKIP][482] ([i915#14098] / [i915#6095]) -> [SKIP][483] ([i915#14098] / [i915#14544] / [i915#6095]) +7 other tests skip
   [482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html
   [483]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          [SKIP][484] ([i915#14544] / [i915#6095]) -> [SKIP][485] ([i915#6095]) +7 other tests skip
   [484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-a-hdmi-a-2.html
   [485]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          [SKIP][486] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][487] ([i915#14098] / [i915#6095]) +7 other tests skip
   [486]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html
   [487]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_cdclk@plane-scaling:
    - shard-rkl:          [SKIP][488] ([i915#14544] / [i915#3742]) -> [SKIP][489] ([i915#3742])
   [488]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_cdclk@plane-scaling.html
   [489]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_audio@dp-audio-after-suspend:
    - shard-rkl:          [SKIP][490] ([i915#11151]) -> [SKIP][491] ([i915#11151] / [i915#14544])
   [490]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_chamelium_audio@dp-audio-after-suspend.html
   [491]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_chamelium_audio@dp-audio-after-suspend.html

  * igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k:
    - shard-rkl:          [SKIP][492] ([i915#11151] / [i915#7828]) -> [SKIP][493] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
   [492]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k.html
   [493]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k.html

  * igt@kms_chamelium_hpd@vga-hpd:
    - shard-rkl:          [SKIP][494] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][495] ([i915#11151] / [i915#7828])
   [494]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd.html
   [495]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_chamelium_hpd@vga-hpd.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-rkl:          [SKIP][496] ([i915#15330] / [i915#3116]) -> [SKIP][497] ([i915#14544] / [i915#15330] / [i915#3116])
   [496]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_content_protection@dp-mst-lic-type-0.html
   [497]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
    - shard-rkl:          [SKIP][498] ([i915#15330]) -> [SKIP][499] ([i915#14544] / [i915#15330])
   [498]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html
   [499]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html

  * igt@kms_content_protection@lic-type-1:
    - shard-rkl:          [SKIP][500] ([i915#14544] / [i915#15865]) -> [SKIP][501] ([i915#15865])
   [500]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_content_protection@lic-type-1.html
   [501]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_content_protection@lic-type-1.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-rkl:          [SKIP][502] ([i915#13049]) -> [SKIP][503] ([i915#13049] / [i915#14544])
   [502]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@kms_cursor_crc@cursor-offscreen-512x512.html
   [503]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - shard-rkl:          [SKIP][504] ([i915#14544] / [i915#4103]) -> [SKIP][505] ([i915#4103])
   [504]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [505]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-with-formats-ultrajoiner:
    - shard-rkl:          [SKIP][506] ([i915#16361]) -> [SKIP][507] ([i915#14544] / [i915#16361]) +1 other test skip
   [506]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_dsc@dsc-with-formats-ultrajoiner.html
   [507]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_dsc@dsc-with-formats-ultrajoiner.html

  * igt@kms_feature_discovery@chamelium:
    - shard-rkl:          [SKIP][508] ([i915#16084]) -> [SKIP][509] ([i915#14544] / [i915#16084])
   [508]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@kms_feature_discovery@chamelium.html
   [509]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-rkl:          [SKIP][510] ([i915#14544] / [i915#9337]) -> [SKIP][511] ([i915#9337])
   [510]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_feature_discovery@dp-mst.html
   [511]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-rkl:          [SKIP][512] ([i915#9934]) -> [SKIP][513] ([i915#14544] / [i915#9934]) +4 other tests skip
   [512]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-7/igt@kms_flip@2x-absolute-wf_vblank.html
   [513]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-plain-flip-interruptible:
    - shard-rkl:          [SKIP][514] ([i915#14544] / [i915#9934]) -> [SKIP][515] ([i915#9934]) +3 other tests skip
   [514]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_flip@2x-plain-flip-interruptible.html
   [515]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-7/igt@kms_flip@2x-plain-flip-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-glk:          [INCOMPLETE][516] ([i915#12314] / [i915#12745] / [i915#4839]) -> [INCOMPLETE][517] ([i915#12745] / [i915#4839])
   [516]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk8/igt@kms_flip@flip-vs-suspend.html
   [517]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk9/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-glk:          [INCOMPLETE][518] ([i915#12745] / [i915#4839]) -> [INCOMPLETE][519] ([i915#12745] / [i915#4839] / [i915#6113])
   [518]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk9/igt@kms_flip@flip-vs-suspend-interruptible.html
   [519]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk3/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
    - shard-glk:          [INCOMPLETE][520] ([i915#12314] / [i915#12745]) -> [INCOMPLETE][521] ([i915#12745])
   [520]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-glk8/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html
   [521]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-glk9/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
    - shard-rkl:          [SKIP][522] ([i915#15643]) -> [SKIP][523] ([i915#14544] / [i915#15643])
   [522]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
   [523]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][524] ([i915#14544] / [i915#1825]) -> [SKIP][525] ([i915#1825])
   [524]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html
   [525]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu:
    - shard-dg2:          [SKIP][526] ([i915#10433] / [i915#15102]) -> [SKIP][527] ([i915#15102]) +1 other test skip
   [526]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu.html
   [527]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][528] ([i915#1825]) -> [SKIP][529] ([i915#14544] / [i915#1825]) +2 other tests skip
   [528]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt.html
   [529]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu:
    - shard-rkl:          [SKIP][530] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][531] ([i915#15102] / [i915#3023]) +4 other tests skip
   [530]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html
   [531]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-rkl:          [SKIP][532] ([i915#9766]) -> [SKIP][533] ([i915#14544] / [i915#9766])
   [532]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
   [533]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][534] ([i915#15102] / [i915#3023]) -> [SKIP][535] ([i915#14544] / [i915#15102] / [i915#3023]) +10 other tests skip
   [534]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
   [535]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-rkl:          [SKIP][536] ([i915#15102]) -> [SKIP][537] ([i915#14544] / [i915#15102]) +8 other tests skip
   [536]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-mmap-wc.html
   [537]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-shrfb-draw-blt:
    - shard-rkl:          [SKIP][538] ([i915#14544] / [i915#15102]) -> [SKIP][539] ([i915#15102]) +6 other tests skip
   [538]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-shrfb-draw-blt.html
   [539]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][540] ([i915#14544]) -> [SKIP][541] +15 other tests skip
   [540]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-draw-mmap-gtt.html
   [541]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move:
    - shard-rkl:          [SKIP][542] -> [SKIP][543] ([i915#14544]) +34 other tests skip
   [542]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html
   [543]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-move.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg1:          [SKIP][544] ([i915#12713]) -> [SKIP][545] ([i915#1187] / [i915#12713])
   [544]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg1-14/igt@kms_hdr@brightness-with-hdr.html
   [545]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-13/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-rkl:          [SKIP][546] ([i915#14544] / [i915#15458]) -> [SKIP][547] ([i915#15458])
   [546]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_joiner@basic-force-ultra-joiner.html
   [547]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_mst@mst-suspend-read-crc:
    - shard-rkl:          [SKIP][548] ([i915#16451]) -> [SKIP][549] ([i915#14544] / [i915#16451])
   [548]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_mst@mst-suspend-read-crc.html
   [549]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_mst@mst-suspend-read-crc.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
    - shard-rkl:          [SKIP][550] ([i915#15709]) -> [SKIP][551] ([i915#14544] / [i915#15709]) +1 other test skip
   [550]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html
   [551]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping:
    - shard-rkl:          [SKIP][552] ([i915#14544] / [i915#15709]) -> [SKIP][553] ([i915#15709]) +1 other test skip
   [552]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping.html
   [553]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a:
    - shard-rkl:          [SKIP][554] ([i915#15329]) -> [SKIP][555] ([i915#14544] / [i915#15329]) +3 other tests skip
   [554]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html
   [555]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-rkl:          [SKIP][556] ([i915#15948]) -> [SKIP][557] ([i915#14544] / [i915#15948])
   [556]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_pm_dc@dc5-psr.html
   [557]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          [SKIP][558] ([i915#3828]) -> [SKIP][559] ([i915#9340])
   [558]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-8/igt@kms_pm_lpsp@kms-lpsp.html
   [559]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_pm_lpsp@kms-lpsp.html
    - shard-dg1:          [SKIP][560] ([i915#9340]) -> [SKIP][561] ([i915#3828])
   [560]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-dg1-16/igt@kms_pm_lpsp@kms-lpsp.html
   [561]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-dg1-14/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-rkl:          [SKIP][562] ([i915#11520] / [i915#14544]) -> [SKIP][563] ([i915#11520])
   [562]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
   [563]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf:
    - shard-rkl:          [SKIP][564] ([i915#11520]) -> [SKIP][565] ([i915#11520] / [i915#14544]) +2 other tests skip
   [564]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html
   [565]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-rkl:          [SKIP][566] ([i915#14544] / [i915#9683]) -> [SKIP][567] ([i915#9683])
   [566]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_psr2_su@page_flip-xrgb8888.html
   [567]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-psr2-cursor-mmap-gtt:
    - shard-rkl:          [SKIP][568] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][569] ([i915#1072] / [i915#9732]) +3 other tests skip
   [568]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_psr@fbc-psr2-cursor-mmap-gtt.html
   [569]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_psr@fbc-psr2-cursor-mmap-gtt.html

  * igt@kms_psr@psr2-cursor-mmap-gtt:
    - shard-rkl:          [SKIP][570] ([i915#1072] / [i915#9732]) -> [SKIP][571] ([i915#1072] / [i915#14544] / [i915#9732]) +10 other tests skip
   [570]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@kms_psr@psr2-cursor-mmap-gtt.html
   [571]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_psr@psr2-cursor-mmap-gtt.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-rkl:          [SKIP][572] ([i915#14544] / [i915#5289]) -> [SKIP][573] ([i915#5289])
   [572]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
   [573]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_vrr@seamless-rr-switch-vrr:
    - shard-rkl:          [SKIP][574] ([i915#9906]) -> [SKIP][575] ([i915#14544] / [i915#9906])
   [574]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@kms_vrr@seamless-rr-switch-vrr.html
   [575]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-vrr.html

  * igt@prime_vgem@basic-read:
    - shard-rkl:          [SKIP][576] ([i915#3291] / [i915#3708]) -> [SKIP][577] ([i915#14544] / [i915#3291] / [i915#3708])
   [576]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-2/igt@prime_vgem@basic-read.html
   [577]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-rkl:          [SKIP][578] ([i915#14544] / [i915#3708]) -> [SKIP][579] ([i915#3708])
   [578]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-6/igt@prime_vgem@fence-flip-hang.html
   [579]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-3/igt@prime_vgem@fence-flip-hang.html

  * igt@prime_vgem@fence-write-hang:
    - shard-rkl:          [SKIP][580] ([i915#3708]) -> [SKIP][581] ([i915#14544] / [i915#3708])
   [580]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18749/shard-rkl-5/igt@prime_vgem@fence-write-hang.html
   [581]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/shard-rkl-6/igt@prime_vgem@fence-write-hang.html

  
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11527
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
  [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
  [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12314
  [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#12358]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12358
  [i915#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454
  [i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
  [i915#13008]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13008
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
  [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
  [i915#13790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13790
  [i915#13809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13809
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14600
  [i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694
  [i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
  [i915#14995]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14995
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132
  [i915#15172]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15172
  [i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
  [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342
  [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
  [i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459
  [i915#15479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15479
  [i915#15500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15500
  [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582
  [i915#15638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15638
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#15662]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15662
  [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
  [i915#15722]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15722
  [i915#15725]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15725
  [i915#15733]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15733
  [i915#15778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15778
  [i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865
  [i915#15867]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15867
  [i915#15931]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15931
  [i915#15948]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15948
  [i915#15967]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15967
  [i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989
  [i915#15990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15990
  [i915#15991]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15991
  [i915#16056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16056
  [i915#16066]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16066
  [i915#16079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16079
  [i915#16080]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16080
  [i915#16084]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16084
  [i915#16109]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16109
  [i915#16115]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16115
  [i915#16165]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16165
  [i915#16166]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16166
  [i915#16182]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16182
  [i915#16184]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16184
  [i915#16226]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16226
  [i915#16276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16276
  [i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361
  [i915#16386]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16386
  [i915#16420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16420
  [i915#16451]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16451
  [i915#16466]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16466
  [i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471
  [i915#16518]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16518
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [i915#3955]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3955
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#5882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5882
  [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
  [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6805
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7387
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7882
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766
  [i915#9833]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9833
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * Linux: CI_DRM_18749 -> Patchwork_169663v1

  CI-20190529: 20190529
  CI_DRM_18749: 4a1a395fa156b92a83b501f8e331f21cd035c2e1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_169663v1: 4a1a395fa156b92a83b501f8e331f21cd035c2e1 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169663v1/index.html

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

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

* Re: [PATCH 10/10] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter
  2026-07-02  7:21 ` [PATCH 10/10] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter Maarten Lankhorst
@ 2026-07-10 14:19   ` Ville Syrjälä
  0 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2026-07-10 14:19 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe, intel-gfx, dri-devel

On Thu, Jul 02, 2026 at 09:21:53AM +0200, Maarten Lankhorst wrote:
> This fixes a lockdep splat that occurs in the code that should be run
> with interrupts disabled. The uncore and DMC locks should not be taken
> and released repeatedly in a timing sensitive path.
> 
> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
> ---
>  drivers/gpu/drm/i915/display/intel_de.h       |  8 ++++++
>  drivers/gpu/drm/i915/display/intel_vblank.c   |  4 +--
>  drivers/gpu/drm/i915/intel_uncore.h           | 26 +++++++++++++------
>  .../drm/xe/compat-i915-headers/intel_uncore.h |  7 +++++
>  4 files changed, 35 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_de.h b/drivers/gpu/drm/i915/display/intel_de.h
> index 1029790194296..497a308322847 100644
> --- a/drivers/gpu/drm/i915/display/intel_de.h
> +++ b/drivers/gpu/drm/i915/display/intel_de.h
> @@ -65,6 +65,14 @@ intel_de_read64_2x32(struct intel_display *display, intel_reg_t reg)
>  	return (u64)upper << 32 | lower;
>  }
>  
> +static inline u64
> +intel_de_read64_2x32_fw(struct intel_display *display,
> +			i915_reg_t lower_reg, i915_reg_t upper_reg)
> +{
> +	return intel_uncore_read64_2x32_fw(__to_uncore(display),
> +					   lower_reg, upper_reg);
> +}
> +
>  static inline void
>  intel_de_posting_read(struct intel_display *display, intel_reg_t reg)
>  {
> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> index c0cc0a4c25dbe..5ca22899055d7 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -109,8 +109,8 @@ u32 i915_get_vblank_counter(struct drm_crtc *crtc)
>  	 * we get a low value that's stable across two reads of the high
>  	 * register.
>  	 */
> -	frame = intel_de_read64_2x32_volatile(display, PIPEFRAMEPIXEL(display, pipe),
> -					      PIPEFRAME(display, pipe));
> +	frame = intel_de_read64_2x32_fw(display, PIPEFRAMEPIXEL(display, pipe),
> +				        PIPEFRAME(display, pipe));

This is the only user of intel_de_read64_2x32_volatile() and it
doesn't need any locking/wakelocks/etc so we should just convert
intel_de_read64_2x32_volatile() into intel_de_read64_2x32_volatile_fw().
And we should just skip the uncore dependency (so that we'll have one 
less thing to worry about later) so I'd just implement it directly in
intel_de.[ch] in terms of intel_de_read_fw().

>  
>  	pixel = frame & PIPE_PIXEL_MASK;
>  	frame = (frame >> PIPE_FRAME_LOW_SHIFT) & 0xffffff;
> diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
> index fafc2ca9a2376..507398a562649 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.h
> +++ b/drivers/gpu/drm/i915/intel_uncore.h
> @@ -449,13 +449,28 @@ static inline void intel_uncore_rmw_fw(struct intel_uncore *uncore,
>  		intel_uncore_write_fw(uncore, reg, val);
>  }
>  
> +static inline u64
> +intel_uncore_read64_2x32_fw(struct intel_uncore *uncore,
> +			    i915_reg_t lower_reg, i915_reg_t upper_reg)
> +{
> +	u32 upper, lower, old_upper, loop = 0;
> +	upper = intel_uncore_read_fw(uncore, upper_reg);
> +	do {
> +		old_upper = upper;
> +		lower = intel_uncore_read_fw(uncore, lower_reg);
> +		upper = intel_uncore_read_fw(uncore, upper_reg);
> +	} while (upper != old_upper && loop++ < 2);
> +
> +	return (u64)upper << 32 | lower;
> +}
> +
>  static inline u64
>  intel_uncore_read64_2x32(struct intel_uncore *uncore,
>  			 i915_reg_t lower_reg, i915_reg_t upper_reg)
>  {
> -	u32 upper, lower, old_upper, loop = 0;
>  	enum forcewake_domains fw_domains;
>  	unsigned long flags;
> +	u64 ret;
>  
>  	fw_domains = intel_uncore_forcewake_for_reg(uncore, lower_reg,
>  						    FW_REG_READ);
> @@ -466,17 +481,12 @@ intel_uncore_read64_2x32(struct intel_uncore *uncore,
>  	spin_lock_irqsave(&uncore->lock, flags);
>  	intel_uncore_forcewake_get__locked(uncore, fw_domains);
>  
> -	upper = intel_uncore_read_fw(uncore, upper_reg);
> -	do {
> -		old_upper = upper;
> -		lower = intel_uncore_read_fw(uncore, lower_reg);
> -		upper = intel_uncore_read_fw(uncore, upper_reg);
> -	} while (upper != old_upper && loop++ < 2);
> +	ret = intel_uncore_read64_2x32_fw(uncore, lower_reg, upper_reg);
>  
>  	intel_uncore_forcewake_put__locked(uncore, fw_domains);
>  	spin_unlock_irqrestore(&uncore->lock, flags);
>  
> -	return (u64)upper << 32 | lower;
> +	return ret;
>  }
>  
>  static inline int intel_uncore_write_and_verify(struct intel_uncore *uncore,
> diff --git a/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h b/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
> index 08d7ab9336725..764bc94044537 100644
> --- a/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
> +++ b/drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
> @@ -74,6 +74,13 @@ intel_uncore_read64_2x32(struct intel_uncore *uncore,
>  	return (u64)upper << 32 | lower;
>  }
>  
> +static inline u64
> +intel_uncore_read64_2x32_fw(struct intel_uncore *uncore,
> +			    i915_reg_t i915_lower_reg, i915_reg_t i915_upper_reg)
> +{
> +	return intel_uncore_read64_2x32(uncore, i915_lower_reg, i915_upper_reg);
> +}
> +
>  static inline void intel_uncore_posting_read(struct intel_uncore *uncore,
>  					     i915_reg_t i915_reg)
>  {
> -- 
> 2.53.0

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 03/10] drm/intel/display: Make intel_crtc_arm_vblank_event static
  2026-07-02  7:21 ` [PATCH 03/10] drm/intel/display: Make intel_crtc_arm_vblank_event static Maarten Lankhorst
@ 2026-07-10 14:20   ` Ville Syrjälä
  0 siblings, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2026-07-10 14:20 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe, intel-gfx, dri-devel

On Thu, Jul 02, 2026 at 09:21:46AM +0200, Maarten Lankhorst wrote:
> Only used inside intel_crtc.c now, so no need to export it any more.
> 
> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_crtc.c | 2 +-
>  drivers/gpu/drm/i915/display/intel_crtc.h | 1 -
>  2 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c b/drivers/gpu/drm/i915/display/intel_crtc.c
> index 10ed9bdfee763..805645318747f 100644
> --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> @@ -684,7 +684,7 @@ static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end)
>  static void dbg_vblank_evade(struct intel_crtc *crtc, ktime_t end) {}
>  #endif
>  
> -void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state)
> +static void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	unsigned long irqflags;
> diff --git a/drivers/gpu/drm/i915/display/intel_crtc.h b/drivers/gpu/drm/i915/display/intel_crtc.h
> index 12507b51ee77e..f65cbafe2b42a 100644
> --- a/drivers/gpu/drm/i915/display/intel_crtc.h
> +++ b/drivers/gpu/drm/i915/display/intel_crtc.h
> @@ -33,7 +33,6 @@ int intel_usecs_to_scanlines(const struct drm_display_mode *adjusted_mode,
>  			     int usecs);
>  int intel_scanlines_to_usecs(const struct drm_display_mode *adjusted_mode,
>  			     int scanlines);
> -void intel_crtc_arm_vblank_event(struct intel_crtc_state *crtc_state);
>  void intel_crtc_prepare_vblank_event(struct intel_crtc_state *crtc_state,
>  				     struct drm_pending_vblank_event **event);
>  u32 intel_crtc_max_vblank_count(const struct intel_crtc_state *crtc_state);
> -- 
> 2.53.0

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
  2026-07-02  7:21 ` [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
  2026-07-02  7:43   ` sashiko-bot
@ 2026-07-10 14:34   ` Ville Syrjälä
  1 sibling, 0 replies; 30+ messages in thread
From: Ville Syrjälä @ 2026-07-10 14:34 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe, intel-gfx, dri-devel

On Thu, Jul 02, 2026 at 09:21:52AM +0200, Maarten Lankhorst wrote:
> Fixes the following lockdep splat on PREEMPT_RT:
> <3> BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48
> <3> in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1373, name: xe_module_load
> <3> preempt_count: 1, expected: 0
> <3> RCU nest depth: 0, expected: 0
> <4> 11 locks held by xe_module_load/1373:
> <4>  #0: ffff888107b691a0 (&dev->mutex){....}-{3:3}, at: __driver_attach+0x104/0x220
> <4>  #1: ffff88813cd30280 (&dev->clientlist_mutex){+.+.}-{3:3}, at: drm_client_register+0x32/0xe0
> <4>  #2: ffffffff837f88f8 (registration_lock){+.+.}-{3:3}, at: register_framebuffer+0x1b/0x50
> <4>  #3: ffffffff835985e0 (console_lock){+.+.}-{0:0}, at: fbcon_fb_registered+0x6f/0x90
> <4>  #4: ffff88812589e6a0 (&helper->lock){+.+.}-{3:3}, at: __drm_fb_helper_restore_fbdev_mode_unlocked+0x7b/0x110
> <4>  #5: ffff88813cd30158 (&dev->master_mutex){+.+.}-{3:3}, at: drm_master_internal_acquire+0x20/0x50
> <4>  #6: ffff88812589e488 (&client->modeset_mutex){+.+.}-{3:3}, at: drm_client_modeset_commit_locked+0x2a/0x1b0
> <4>  #7: ffffc9000031eef0 (crtc_ww_class_acquire){+.+.}-{0:0}, at: drm_client_modeset_commit_atomic+0x4c/0x2b0
> <4>  #8: ffffc9000031ef18 (crtc_ww_class_mutex){+.+.}-{3:3}, at: drm_client_modeset_commit_atomic+0x4c/0x2b0
> <4>  #9: ffff888114f7b8b8 (&intel_dp->psr.lock){+.+.}-{3:3}, at: intel_psr_lock+0xc5/0xf0 [xe]
> <4>  #10: ffff88812a0cbbc0 (&wl->lock){+.+.}-{2:2}, at: intel_dmc_wl_get+0x3c/0x140 [xe]
> 
> This splat will happen otherwise on all tracepoints too, for similar reasons.
> 
> Signed-off-by: Maarten Lankhorst <dev@lankhorst.se>
> ---
>  drivers/gpu/drm/i915/display/intel_vblank.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> index 07dca05332e5b..c0cc0a4c25dbe 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -132,7 +132,7 @@ u32 g4x_get_vblank_counter(struct drm_crtc *crtc)
>  	if (!vblank->max_vblank_count)
>  		return 0;
>  
> -	return intel_de_read(display, PIPE_FRMCOUNT_G4X(display, pipe));
> +	return intel_de_read_fw(display, PIPE_FRMCOUNT_G4X(display, pipe));

Sashiko didn't complain about potential ivb/hsw same-cacheline issues
here, so I'll point it out. There isn't too much on that cacheline
though so perhaps not a huge issue (assuming the issue is real in the
first place, which I'm not 100% convinced about). But I'm still thinking
that I'll just try to convert the lock into a raw spinlock while moving
all the mmio stuff directly into intel_de.[ch]. That would avoid part
of the problem at least.

The dmc wakelock stuff I'm not sure we should even worry about here.
If the pipe isn't active we shouldn't really end up calling this anyway,
except maybe if we race with the DMC. Although we don't have register
accessors that skip the DMC stuff while still taking the uncore lock.
I'm not super keen on adding yet another register accessor variant
either, so not sure how to deal with this sort of stuff in the end...

>  }
>  
>  static u32 intel_crtc_scanlines_since_frame_timestamp(struct intel_crtc *crtc)
> -- 
> 2.53.0

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
                   ` (15 preceding siblings ...)
  2026-07-03  2:17 ` ✗ i915.CI.Full: " Patchwork
@ 2026-07-10 14:43 ` Ville Syrjälä
  2026-07-13 10:59   ` Maarten Lankhorst
  16 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjälä @ 2026-07-10 14:43 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-xe, intel-gfx, dri-devel

On Thu, Jul 02, 2026 at 09:21:43AM +0200, Maarten Lankhorst wrote:
> CONFIG_PREEMPT_RT requires code to be as deterministic as possible,
> and codes with interrupts disabled cannot use spinlocks.
> 
> In order to handle this correctly, we ensure any locking requirements
> are handled before disabling interrupts, and only start locking again
> after interrupts are re-enabled and timing sensitive path completed.
> 
> This also has the benefit of making the vblank evasion code more
> deterministic; without locking there's much less jitter.
> 
> Previously, we scheduled vblank work on completion.
> This is now handled by scheduling the vblank in advance, only arming
> it upon completion without locks.

Sashiko found a bunch of stuff that I was also thinking would be
a problem. Don't think I'll need to repeat it here.

I'm still thinking the easy way out would be to just convert
everything to raw spinlocks. The uncore lock I think should become
easier to deal with once I manage to move all of it into the
display code. I admit that the vblank locking is kinda annoying
and potentially inefficient. I've been pondering about making the
vblank locks to per-crtc to at least avoid some unnecessary contention,
but the fact that a lot of the drivers poke at the vblank internals
directly makes it a lot more work than it should be :/

> 
> Maarten Lankhorst (9):
>   drm/vblank_work: Add methods to schedule vblank_work in 2 stages
>   drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event
>   drm/intel/display: Make intel_crtc_arm_vblank_event static
>   drm/intel/display: Convert vblank event handling to 2-stage arming
>   drm/i915/display: Move vblank put until after critical section
>   drm/i915/display: Remove locking from intel_vblank_evade critical
>     section
>   drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range
>     too
>   drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
>   drm/i915/display: Do not take uncore lock in i915_get_vblank_counter
> 
> Mike Galbraith (1):
>   drm/i915: Use preempt_disable/enable_rt() where recommended
> 
>  drivers/gpu/drm/drm_vblank.c                  |  64 +++++++++-
>  drivers/gpu/drm/drm_vblank_work.c             | 110 +++++++++++++----
>  drivers/gpu/drm/i915/display/intel_crtc.c     |  86 ++++++-------
>  drivers/gpu/drm/i915/display/intel_crtc.h     |   1 -
>  drivers/gpu/drm/i915/display/intel_cursor.c   |   8 +-
>  drivers/gpu/drm/i915/display/intel_de.h       |   8 ++
>  drivers/gpu/drm/i915/display/intel_vblank.c   | 115 ++++++++++--------
>  drivers/gpu/drm/i915/display/intel_vblank.h   |   1 +
>  drivers/gpu/drm/i915/intel_uncore.h           |  26 ++--
>  .../drm/xe/compat-i915-headers/intel_uncore.h |   7 ++
>  include/drm/drm_vblank.h                      |  14 ++-
>  include/drm/drm_vblank_work.h                 |  12 ++
>  12 files changed, 324 insertions(+), 128 deletions(-)
> 
> -- 
> 2.53.0

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe.
  2026-07-10 14:43 ` [PATCH 00/10] " Ville Syrjälä
@ 2026-07-13 10:59   ` Maarten Lankhorst
  0 siblings, 0 replies; 30+ messages in thread
From: Maarten Lankhorst @ 2026-07-13 10:59 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-xe, intel-gfx, dri-devel

Hey,

On 7/10/26 16:43, Ville Syrjälä wrote:
> On Thu, Jul 02, 2026 at 09:21:43AM +0200, Maarten Lankhorst wrote:
>> CONFIG_PREEMPT_RT requires code to be as deterministic as possible,
>> and codes with interrupts disabled cannot use spinlocks.
>>
>> In order to handle this correctly, we ensure any locking requirements
>> are handled before disabling interrupts, and only start locking again
>> after interrupts are re-enabled and timing sensitive path completed.
>>
>> This also has the benefit of making the vblank evasion code more
>> deterministic; without locking there's much less jitter.
>>
>> Previously, we scheduled vblank work on completion.
>> This is now handled by scheduling the vblank in advance, only arming
>> it upon completion without locks.
> 
> Sashiko found a bunch of stuff that I was also thinking would be
> a problem. Don't think I'll need to repeat it here.
> 
> I'm still thinking the easy way out would be to just convert
> everything to raw spinlocks. The uncore lock I think should become
> easier to deal with once I manage to move all of it into the
> display code. I admit that the vblank locking is kinda annoying
> and potentially inefficient. I've been pondering about making the
> vblank locks to per-crtc to at least avoid some unnecessary contention,
> but the fact that a lot of the drivers poke at the vblank internals
> directly makes it a lot more work than it should be :/

I'll do the full wmb instead of the smp wmb, should hopefully fix it.

In general, the approach I'm taking was ensuring that no raw spinlocks are
ever needed. Every lock is taken before disabling interrupts, and then we
run the time sensitive code only after checking there's enough time left.

This means that even on PROVE_LOCKING, there is no contention of locks,
and the VBLANK_EVASION_TIME_US could be set to 100 µs even with
PROVE_LOCKING set. You can take the uncore lock in advance just like any
other lock if required, but no contention should happen and it can be
taken as normal not raw spinlock.

> 
>>
>> Maarten Lankhorst (9):
>>   drm/vblank_work: Add methods to schedule vblank_work in 2 stages
>>   drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event
>>   drm/intel/display: Make intel_crtc_arm_vblank_event static
>>   drm/intel/display: Convert vblank event handling to 2-stage arming
>>   drm/i915/display: Move vblank put until after critical section
>>   drm/i915/display: Remove locking from intel_vblank_evade critical
>>     section
>>   drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range
>>     too
>>   drm/i915/display: Make get_vblank_counter use intel_de_read_fw()
>>   drm/i915/display: Do not take uncore lock in i915_get_vblank_counter
>>
>> Mike Galbraith (1):
>>   drm/i915: Use preempt_disable/enable_rt() where recommended
>>
>>  drivers/gpu/drm/drm_vblank.c                  |  64 +++++++++-
>>  drivers/gpu/drm/drm_vblank_work.c             | 110 +++++++++++++----
>>  drivers/gpu/drm/i915/display/intel_crtc.c     |  86 ++++++-------
>>  drivers/gpu/drm/i915/display/intel_crtc.h     |   1 -
>>  drivers/gpu/drm/i915/display/intel_cursor.c   |   8 +-
>>  drivers/gpu/drm/i915/display/intel_de.h       |   8 ++
>>  drivers/gpu/drm/i915/display/intel_vblank.c   | 115 ++++++++++--------
>>  drivers/gpu/drm/i915/display/intel_vblank.h   |   1 +
>>  drivers/gpu/drm/i915/intel_uncore.h           |  26 ++--
>>  .../drm/xe/compat-i915-headers/intel_uncore.h |   7 ++
>>  include/drm/drm_vblank.h                      |  14 ++-
>>  include/drm/drm_vblank_work.h                 |  12 ++
>>  12 files changed, 324 insertions(+), 128 deletions(-)
>>
>> -- 
>> 2.53.0
> 
Kind regards,
~Maarten

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

end of thread, other threads:[~2026-07-13 10:58 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-02  7:21 [PATCH 00/10] drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Maarten Lankhorst
2026-07-02  7:21 ` [PATCH 01/10] drm/vblank_work: Add methods to schedule vblank_work in 2 stages Maarten Lankhorst
2026-07-02  7:32   ` sashiko-bot
2026-07-02  7:21 ` [PATCH 02/10] drm/vblank: Add a 2-stage version of drm_crtc_arm_vblank_event Maarten Lankhorst
2026-07-02  7:35   ` sashiko-bot
2026-07-02  7:21 ` [PATCH 03/10] drm/intel/display: Make intel_crtc_arm_vblank_event static Maarten Lankhorst
2026-07-10 14:20   ` Ville Syrjälä
2026-07-02  7:21 ` [PATCH 04/10] drm/intel/display: Convert vblank event handling to 2-stage arming Maarten Lankhorst
2026-07-02  7:37   ` sashiko-bot
2026-07-02  7:21 ` [PATCH 05/10] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
2026-07-02  7:34   ` sashiko-bot
2026-07-02  7:21 ` [PATCH 06/10] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
2026-07-02  7:36   ` sashiko-bot
2026-07-02  7:21 ` [PATCH 07/10] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
2026-07-02  7:30   ` sashiko-bot
2026-07-02  7:21 ` [PATCH 08/10] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
2026-07-02  7:36   ` sashiko-bot
2026-07-02  7:21 ` [PATCH 09/10] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
2026-07-02  7:43   ` sashiko-bot
2026-07-10 14:34   ` Ville Syrjälä
2026-07-02  7:21 ` [PATCH 10/10] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter Maarten Lankhorst
2026-07-10 14:19   ` Ville Syrjälä
2026-07-02  7:56 ` ✗ CI.checkpatch: warning for drm/intel/display: Changes required to make vblank evasion PREEMPT_RT safe Patchwork
2026-07-02  7:58 ` ✓ CI.KUnit: success " Patchwork
2026-07-02  8:33 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-02 10:04 ` ✓ i915.CI.BAT: " Patchwork
2026-07-03  2:09 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-07-03  2:17 ` ✗ i915.CI.Full: " Patchwork
2026-07-10 14:43 ` [PATCH 00/10] " Ville Syrjälä
2026-07-13 10:59   ` Maarten Lankhorst

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