Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4
@ 2026-05-22 16:43 Thomas Hellström
  2026-05-22 16:43 ` [PATCH 1/5] drm/xe/guc: Defer user exec queue scheduler start until after page table restore Thomas Hellström
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Thomas Hellström @ 2026-05-22 16:43 UTC (permalink / raw)
  To: intel-xe; +Cc: Thomas Hellström

Long Running (LR) exec queues — used by compute workloads with SVM
(fault-mode) and by preempt-fence-mode — were not surviving S3/S4
suspend/resume correctly.  Five distinct problems are addressed:

1. Exec queue scheduler start during resume was not deferred: user exec
   queue schedulers were started before page table BOs and LRC BOs were
   restored.  A job in this window would cause GuC to load a context
   from stale or invalid VRAM.  User exec queue schedulers are now
   deferred until after page tables and LRC BOs are restored.  Migrate
   and kernel VM queues are still started immediately as they are
   required by the restore process itself.

2. Exec queue suspend/resume lacked coordination when multiple paths
   (PM, mode switching, preempt fences) needed to hold the queue
   suspended simultaneously.  A resume from one path could prematurely
   re-enable a queue still held suspended by another.  Each caller can
   now independently hold a suspend; the queue resumes only when all
   callers have released it.

3. During PM suspend, any user exec queue with a started-but-incomplete
   job was banned.  For LR queues this is always true — their jobs are
   designed to run indefinitely — so every PM suspend permanently
   banned the queue.  The ban is now suppressed for LR VM exec queues
   during PM suspend or hibernation while being preserved for GT reset
   (legitimate hang detection).

4. The execution mode constant EXEC_MODE_LR in xe_hw_engine_group was
   misleading since not all long-running queues use fault mode.  It is
   renamed to EXEC_MODE_FAULT.  No functional change.

5. Fault-mode (SVM) VMs use GPU page faults to access memory.  A
   running fault-mode job can re-fault pages torn down by VRAM
   eviction, racing with the eviction.  Fault-mode exec queues are now
   suspended and drained before any VRAM eviction begins.  On resume,
   they are re-registered and restarted once hardware is restored.
   Exec queues created concurrently with PM suspend are immediately
   suspended so the resume path picks them up.

Note: A prerequisite revert ("Revert drm/xe: Skip exec queue schedule
toggle if queue is idle during suspend") was already sent as a separate
patch and is not included here.

v2:
 - Dropped "Restore userspace LRC BOs early on resume": replaced by
   patch 1/5 which defers user exec queue scheduler start until after
   page tables are restored, achieving the same ordering guarantee.
 - Added patch 1/5: Defer user exec queue scheduler start until after
   page table restore.
 - Added patch 4/5: Rename EXEC_MODE_LR to EXEC_MODE_FAULT.
 - Patch 5/5: see per-patch v2 changelog.

Thomas Hellström (5):
  drm/xe/guc: Defer user exec queue scheduler start until after page
    table restore
  drm/xe/guc: Don't ban LR VM exec queues on PM suspend
  drm/xe/guc: Add suspend refcount to exec queue ops
  drm/xe: Rename EXEC_MODE_LR to EXEC_MODE_FAULT in hw engine group
  drm/xe: Suspend fault-mode LR jobs before VRAM eviction on S3/S4

 drivers/gpu/drm/xe/xe_device_types.h          |   8 +
 drivers/gpu/drm/xe/xe_exec.c                  |   2 +-
 drivers/gpu/drm/xe/xe_exec_queue_types.h      |   7 +
 drivers/gpu/drm/xe/xe_gt.c                    |  16 ++
 drivers/gpu/drm/xe/xe_gt.h                    |   2 +
 drivers/gpu/drm/xe/xe_guc.c                   |  13 ++
 drivers/gpu/drm/xe/xe_guc.h                   |   1 +
 drivers/gpu/drm/xe/xe_guc_exec_queue_types.h  |   7 +
 drivers/gpu/drm/xe/xe_guc_submit.c            | 103 ++++++++++-
 drivers/gpu/drm/xe/xe_guc_submit.h            |   2 +
 drivers/gpu/drm/xe/xe_hw_engine_group.c       | 171 ++++++++++++++++--
 drivers/gpu/drm/xe/xe_hw_engine_group.h       |   3 +
 drivers/gpu/drm/xe/xe_hw_engine_group_types.h |  11 +-
 drivers/gpu/drm/xe/xe_pm.c                    |  26 ++-
 drivers/gpu/drm/xe/xe_uc.c                    |  16 ++
 drivers/gpu/drm/xe/xe_uc.h                    |   1 +
 16 files changed, 357 insertions(+), 32 deletions(-)

-- 
2.54.0


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

* [PATCH 1/5] drm/xe/guc: Defer user exec queue scheduler start until after page table restore
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
@ 2026-05-22 16:43 ` Thomas Hellström
  2026-05-22 16:43 ` [PATCH 2/5] drm/xe/guc: Don't ban LR VM exec queues on PM suspend Thomas Hellström
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellström @ 2026-05-22 16:43 UTC (permalink / raw)
  To: intel-xe; +Cc: Thomas Hellström, Matthew Auld, Satyanarayana K V P, stable

On S3/S4 and d3cold runtime PM resume, exec queue schedulers are
restarted before xe_bo_restore_late() has restored userspace VM page
table BOs and LRC BOs. If a pending job is submitted in this window,
GuC will attempt to load the context using stale or invalid data in
VRAM, leading to GuC exceptions.

Defer user exec queue scheduler start until after page tables and LRC
BOs are restored, ensuring no job can be submitted before the backing
storage is valid. Migrate and kernel VM exec queues are still started
immediately as they are required by the restore process itself.

For GT reset, VRAM is not evicted and all BOs remain valid, so user
exec queue schedulers are started without deferral.

This covers both LR and non-LR userspace exec queues.

Fixes: 7f387e6012b6 ("drm/xe: add XE_BO_FLAG_PINNED_LATE_RESTORE")
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: <stable@vger.kernel.org> # v6.16+
Assisted-by: GitHub_Copilot:claude-sonnet-4.6
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/xe/xe_gt.c         | 16 +++++++++++
 drivers/gpu/drm/xe/xe_gt.h         |  2 ++
 drivers/gpu/drm/xe/xe_guc.c        | 13 +++++++++
 drivers/gpu/drm/xe/xe_guc.h        |  1 +
 drivers/gpu/drm/xe/xe_guc_submit.c | 44 ++++++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_guc_submit.h |  1 +
 drivers/gpu/drm/xe/xe_pm.c         |  6 ++++
 drivers/gpu/drm/xe/xe_uc.c         | 16 +++++++++++
 drivers/gpu/drm/xe/xe_uc.h         |  1 +
 9 files changed, 100 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 783eb6d631b5..2c63e4d6a649 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -955,6 +955,8 @@ static void gt_reset_worker(struct work_struct *w)
 	if (err)
 		goto err_out;
 
+	xe_uc_start_user_queues(&gt->uc);
+
 	xe_force_wake_put(gt_to_fw(gt), fw_ref);
 
 	/* Pair with get while enqueueing the work in xe_gt_reset_async() */
@@ -967,6 +969,7 @@ static void gt_reset_worker(struct work_struct *w)
 err_out:
 	xe_force_wake_put(gt_to_fw(gt), fw_ref);
 	XE_WARN_ON(xe_uc_start(&gt->uc));
+	xe_uc_start_user_queues(&gt->uc);
 
 err_fail:
 	xe_gt_err(gt, "reset failed (%pe)\n", ERR_PTR(err));
@@ -1050,6 +1053,19 @@ int xe_gt_sanitize_freq(struct xe_gt *gt)
 	return ret;
 }
 
+/**
+ * xe_gt_start_user_queues() - Start user exec queues after page table restore
+ * @gt: the GT object
+ *
+ * Starts the DRM schedulers for all user exec queues on the GT. This must be
+ * called after xe_bo_restore_late() to ensure that userspace page table BOs
+ * are valid before any job submission triggers GuC context registration.
+ */
+void xe_gt_start_user_queues(struct xe_gt *gt)
+{
+	xe_uc_start_user_queues(&gt->uc);
+}
+
 int xe_gt_resume(struct xe_gt *gt)
 {
 	int err;
diff --git a/drivers/gpu/drm/xe/xe_gt.h b/drivers/gpu/drm/xe/xe_gt.h
index 4150aa594f05..b6ba05a317f7 100644
--- a/drivers/gpu/drm/xe/xe_gt.h
+++ b/drivers/gpu/drm/xe/xe_gt.h
@@ -170,4 +170,6 @@ static inline bool xe_gt_supports_multi_queue(const struct xe_gt *gt,
 	return gt->info.multi_queue_engine_class_mask & BIT(class);
 }
 
+void xe_gt_start_user_queues(struct xe_gt *gt);
+
 #endif
diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index 4023700ff2a9..0359909b8b27 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -1717,6 +1717,19 @@ int xe_guc_start(struct xe_guc *guc)
 	return xe_guc_submit_start(guc);
 }
 
+/**
+ * xe_guc_start_user_queues() - Start user exec queue schedulers on the GuC
+ * @guc: the GuC object
+ *
+ * Starts the DRM schedulers for all user exec queues managed by this GuC.
+ * Must be called after xe_bo_restore_late() to ensure page tables are valid
+ * before any job submission triggers GuC context registration.
+ */
+void xe_guc_start_user_queues(struct xe_guc *guc)
+{
+	xe_guc_submit_start_user_queues(guc);
+}
+
 /**
  * xe_guc_runtime_suspend() - GuC runtime suspend
  * @guc: The GuC object
diff --git a/drivers/gpu/drm/xe/xe_guc.h b/drivers/gpu/drm/xe/xe_guc.h
index 02514914f404..ad2a6521852c 100644
--- a/drivers/gpu/drm/xe/xe_guc.h
+++ b/drivers/gpu/drm/xe/xe_guc.h
@@ -60,6 +60,7 @@ void xe_guc_reset_wait(struct xe_guc *guc);
 void xe_guc_stop_prepare(struct xe_guc *guc);
 void xe_guc_stop(struct xe_guc *guc);
 int xe_guc_start(struct xe_guc *guc);
+void xe_guc_start_user_queues(struct xe_guc *guc);
 void xe_guc_declare_wedged(struct xe_guc *guc);
 bool xe_guc_using_main_gamctrl_queues(struct xe_guc *guc);
 
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 4d32b430bc15..084ecc8e7efa 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -2535,6 +2535,16 @@ static void guc_exec_queue_start(struct xe_exec_queue *q)
 	xe_sched_submission_resume_tdr(sched);
 }
 
+/*
+ * Returns true for user exec queues whose page tables may not yet be
+ * restored when xe_guc_submit_start() is called during GT resume.
+ * These queues must be started later, after xe_bo_restore_late().
+ */
+static bool exec_queue_needs_late_start(const struct xe_exec_queue *q)
+{
+	return !(q->flags & (EXEC_QUEUE_FLAG_MIGRATE | EXEC_QUEUE_FLAG_VM));
+}
+
 int xe_guc_submit_start(struct xe_guc *guc)
 {
 	struct xe_exec_queue *q;
@@ -2549,6 +2559,10 @@ int xe_guc_submit_start(struct xe_guc *guc)
 		if (q->guc->id != index)
 			continue;
 
+		/* User queues are deferred until page tables are restored */
+		if (exec_queue_needs_late_start(q))
+			continue;
+
 		guc_exec_queue_start(q);
 	}
 	mutex_unlock(&guc->submission_state.lock);
@@ -2558,6 +2572,36 @@ int xe_guc_submit_start(struct xe_guc *guc)
 	return 0;
 }
 
+/**
+ * xe_guc_submit_start_user_queues() - Start user exec queues after late restore
+ * @guc: the GuC object
+ *
+ * Starts the DRM schedulers for all user exec queues (those not flagged as
+ * migrate or VM queues). Must be called after xe_bo_restore_late() to ensure
+ * page tables are valid before any job submission is attempted.
+ */
+void xe_guc_submit_start_user_queues(struct xe_guc *guc)
+{
+	struct xe_exec_queue *q;
+	unsigned long index;
+
+	if (!guc->submission_state.initialized)
+		return;
+
+	mutex_lock(&guc->submission_state.lock);
+	xa_for_each(&guc->submission_state.exec_queue_lookup, index, q) {
+		/* Prevent redundant attempts to start parallel queues */
+		if (q->guc->id != index)
+			continue;
+
+		if (!exec_queue_needs_late_start(q))
+			continue;
+
+		guc_exec_queue_start(q);
+	}
+	mutex_unlock(&guc->submission_state.lock);
+}
+
 static void guc_exec_queue_unpause_prepare(struct xe_guc *guc,
 					   struct xe_exec_queue *q)
 {
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.h b/drivers/gpu/drm/xe/xe_guc_submit.h
index b3839a90c142..b210b2f6cd2d 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.h
+++ b/drivers/gpu/drm/xe/xe_guc_submit.h
@@ -20,6 +20,7 @@ int xe_guc_submit_reset_prepare(struct xe_guc *guc);
 void xe_guc_submit_reset_wait(struct xe_guc *guc);
 void xe_guc_submit_stop(struct xe_guc *guc);
 int xe_guc_submit_start(struct xe_guc *guc);
+void xe_guc_submit_start_user_queues(struct xe_guc *guc);
 void xe_guc_submit_pause(struct xe_guc *guc);
 void xe_guc_submit_pause_abort(struct xe_guc *guc);
 void xe_guc_submit_pause_vf(struct xe_guc *guc);
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index d4672eb07476..c203a59d7000 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -282,6 +282,9 @@ int xe_pm_resume(struct xe_device *xe)
 	if (err)
 		goto err;
 
+	for_each_gt(gt, xe, id)
+		xe_gt_start_user_queues(gt);
+
 	xe_pxp_pm_resume(xe->pxp);
 
 	if (IS_VF_CCS_READY(xe))
@@ -696,6 +699,9 @@ int xe_pm_runtime_resume(struct xe_device *xe)
 		err = xe_bo_restore_late(xe);
 		if (err)
 			goto out;
+
+		for_each_gt(gt, xe, id)
+			xe_gt_start_user_queues(gt);
 	}
 
 	xe_pxp_pm_resume(xe->pxp);
diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
index 75091bde0d50..12606133f5bc 100644
--- a/drivers/gpu/drm/xe/xe_uc.c
+++ b/drivers/gpu/drm/xe/xe_uc.c
@@ -263,6 +263,22 @@ int xe_uc_start(struct xe_uc *uc)
 	return xe_guc_start(&uc->guc);
 }
 
+/**
+ * xe_uc_start_user_queues() - Start user exec queues after late restore
+ * @uc: the UC object
+ *
+ * Starts the DRM schedulers for all user exec queues. Must be called after
+ * xe_bo_restore_late() to ensure page tables are valid before any job
+ * submission is attempted. Has no effect if GuC submission is not enabled.
+ */
+void xe_uc_start_user_queues(struct xe_uc *uc)
+{
+	if (!xe_device_uc_enabled(uc_to_xe(uc)))
+		return;
+
+	xe_guc_start_user_queues(&uc->guc);
+}
+
 static void uc_reset_wait(struct xe_uc *uc)
 {
 	int ret;
diff --git a/drivers/gpu/drm/xe/xe_uc.h b/drivers/gpu/drm/xe/xe_uc.h
index 255a54a8f876..2fd056cfa1d0 100644
--- a/drivers/gpu/drm/xe/xe_uc.h
+++ b/drivers/gpu/drm/xe/xe_uc.h
@@ -18,6 +18,7 @@ void xe_uc_runtime_suspend(struct xe_uc *uc);
 void xe_uc_stop_prepare(struct xe_uc *uc);
 void xe_uc_stop(struct xe_uc *uc);
 int xe_uc_start(struct xe_uc *uc);
+void xe_uc_start_user_queues(struct xe_uc *uc);
 void xe_uc_suspend_prepare(struct xe_uc *uc);
 int xe_uc_suspend(struct xe_uc *uc);
 int xe_uc_sanitize_reset(struct xe_uc *uc);
-- 
2.54.0


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

* [PATCH 2/5] drm/xe/guc: Don't ban LR VM exec queues on PM suspend
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
  2026-05-22 16:43 ` [PATCH 1/5] drm/xe/guc: Defer user exec queue scheduler start until after page table restore Thomas Hellström
@ 2026-05-22 16:43 ` Thomas Hellström
  2026-05-22 16:43 ` [PATCH 3/5] drm/xe/guc: Add suspend refcount to exec queue ops Thomas Hellström
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellström @ 2026-05-22 16:43 UTC (permalink / raw)
  To: intel-xe
  Cc: Thomas Hellström, Matthew Brost, Tomasz Lis, Rodrigo Vivi,
	stable

When xe_guc_submit_stop() is called during an S3/S4 suspend or GT
reset, guc_exec_queue_stop() bans any user exec queue that has a job
which has started but not yet completed.  For normal (non-LR) exec
queues this is the correct behaviour: a started-but-incomplete job at
reset time may indicate a hung workload.

For exec queues attached to Long Running (LR) VMs the same condition
is always true during normal operation: LR jobs are designed to run
indefinitely and are never "completed" in the DRM scheduler sense —
they are preempted and resumed via the preempt-fence mechanism.
Banning such an exec queue on PM suspend permanently prevents the job
from restarting after resume, causing the userspace compute workload to
fail silently.

Fix this by not banning LR VM exec queues when a system suspend or
hibernation is in progress, while preserving the ban for GT reset where
a started-but-incomplete job is a legitimate indicator of a hang.

Fixes: f6375fb3aa94 ("drm/xe: Track LR jobs in DRM scheduler pending list")
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Tomasz Lis <tomasz.lis@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: <stable@vger.kernel.org> # v6.19+
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Assisted-by: GitHub_Copilot:claude-sonnet-4.6
---
 drivers/gpu/drm/xe/xe_device_types.h |  8 ++++++++
 drivers/gpu/drm/xe/xe_guc_submit.c   | 10 +++++++++-
 drivers/gpu/drm/xe/xe_pm.c           |  5 ++++-
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 32dd2ffbc796..9dbf7b3a0c49 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -433,6 +433,14 @@ struct xe_device {
 	struct notifier_block pm_notifier;
 	/** @pm_block: Completion to block validating tasks on suspend / hibernate prepare */
 	struct completion pm_block;
+	/**
+	 * @pm_suspend_in_progress: True while the device is going through
+	 * system suspend or hibernation (set at xe_pm_suspend() entry, cleared
+	 * at xe_pm_resume() entry or on suspend error). Used to suppress exec
+	 * queue bans that should only apply during GT reset, not PM suspend.
+	 * Serialised by the PM suspend sequence; no lock required.
+	 */
+	bool pm_suspend_in_progress;
 	/** @rebind_resume_list: List of wq items to kick on resume. */
 	struct list_head rebind_resume_list;
 	/** @rebind_resume_lock: Lock to protect the rebind_resume_list */
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 084ecc8e7efa..42bc7425de0d 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -2268,8 +2268,16 @@ static void guc_exec_queue_stop(struct xe_guc *guc, struct xe_exec_queue *q)
 	 * Ban any engine (aside from kernel and engines used for VM ops) with a
 	 * started but not complete job or if a job has gone through a GT reset
 	 * more than twice.
+	 *
+	 * LR VM exec queues are excluded from this ban during PM suspend: their
+	 * jobs are intentionally long-running and are preempted and resumed via
+	 * the preempt-fence mechanism. Banning them on PM suspend would
+	 * permanently prevent the job from restarting after resume.
+	 * On GT reset however we do want to ban them, as that may indicate a
+	 * genuinely hung workload.
 	 */
-	if (!(q->flags & (EXEC_QUEUE_FLAG_KERNEL | EXEC_QUEUE_FLAG_VM))) {
+	if (!(q->flags & (EXEC_QUEUE_FLAG_KERNEL | EXEC_QUEUE_FLAG_VM)) &&
+	    !(q->vm && xe_vm_in_lr_mode(q->vm) && guc_to_xe(guc)->pm_suspend_in_progress)) {
 		struct xe_sched_job *job = xe_sched_first_pending_job(sched);
 		bool ban = false;
 
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index c203a59d7000..76d211986822 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -176,6 +176,7 @@ int xe_pm_suspend(struct xe_device *xe)
 	int err;
 
 	drm_dbg(&xe->drm, "Suspending device\n");
+	xe->pm_suspend_in_progress = true;
 	xe_pm_block_begin_signalling();
 	trace_xe_pm_suspend(xe, __builtin_return_address(0));
 
@@ -217,6 +218,7 @@ int xe_pm_suspend(struct xe_device *xe)
 	xe_pxp_pm_resume(xe->pxp);
 err:
 	drm_dbg(&xe->drm, "Device suspend failed %d\n", err);
+	xe->pm_suspend_in_progress = false;
 	xe_pm_block_end_signalling();
 	return err;
 }
@@ -234,8 +236,9 @@ int xe_pm_resume(struct xe_device *xe)
 	u8 id;
 	int err;
 
-	xe_pm_block_begin_signalling();
+	xe->pm_suspend_in_progress = false;
 	drm_dbg(&xe->drm, "Resuming device\n");
+	xe_pm_block_begin_signalling();
 	trace_xe_pm_resume(xe, __builtin_return_address(0));
 
 	for_each_gt(gt, xe, id)
-- 
2.54.0


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

* [PATCH 3/5] drm/xe/guc: Add suspend refcount to exec queue ops
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
  2026-05-22 16:43 ` [PATCH 1/5] drm/xe/guc: Defer user exec queue scheduler start until after page table restore Thomas Hellström
  2026-05-22 16:43 ` [PATCH 2/5] drm/xe/guc: Don't ban LR VM exec queues on PM suspend Thomas Hellström
@ 2026-05-22 16:43 ` Thomas Hellström
  2026-05-22 16:43 ` [PATCH 4/5] drm/xe: Rename EXEC_MODE_LR to EXEC_MODE_FAULT in hw engine group Thomas Hellström
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellström @ 2026-05-22 16:43 UTC (permalink / raw)
  To: intel-xe; +Cc: Thomas Hellström

Concurrent call sites that suspend exec queues (PM, mode switching,
preempt fences) each need to pair their own suspend/resume without
caring about other callers. Without coordination, a resume from one
path can prematurely re-enable a queue still suspended by another.

Add a reference count to exec queue suspend operations. A queue remains
suspended as long as any caller holds a suspend; it resumes only when
the last caller releases it. Each caller simply pairs its own suspend
with a resume without needing to know about others.

Assisted-by: GitHub_Copilot:claude-sonnet-4.6
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/xe/xe_guc_exec_queue_types.h |  7 ++++++
 drivers/gpu/drm/xe/xe_guc_submit.c           | 24 ++++++++++++--------
 2 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc_exec_queue_types.h b/drivers/gpu/drm/xe/xe_guc_exec_queue_types.h
index e5e53b421f29..1207d51cf770 100644
--- a/drivers/gpu/drm/xe/xe_guc_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_guc_exec_queue_types.h
@@ -49,6 +49,13 @@ struct xe_guc_exec_queue {
 	wait_queue_head_t suspend_wait;
 	/** @suspend_pending: a suspend of the exec_queue is pending */
 	bool suspend_pending;
+	/**
+	 * @suspend_count: Reference count of active suspend requests. The
+	 * exec_queue remains suspended while this is non-zero, allowing
+	 * multiple concurrent callers to independently hold a suspend without
+	 * prematurely re-enabling the queue. Protected by @sched.msg_lock.
+	 */
+	int suspend_count;
 	/**
 	 * @needs_cleanup: Needs a cleanup message during VF post migration
 	 * recovery.
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 42bc7425de0d..7da7db2059ff 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -2131,15 +2131,18 @@ static int guc_exec_queue_set_multi_queue_priority(struct xe_exec_queue *q,
 
 static int guc_exec_queue_suspend(struct xe_exec_queue *q)
 {
-	struct xe_gpu_scheduler *sched = &q->guc->sched;
-	struct xe_sched_msg *msg = q->guc->static_msgs + STATIC_MSG_SUSPEND;
+	struct xe_guc_exec_queue *ge = q->guc;
+	struct xe_gpu_scheduler *sched = &ge->sched;
+	struct xe_sched_msg *msg = ge->static_msgs + STATIC_MSG_SUSPEND;
 
 	if (exec_queue_killed_or_banned_or_wedged(q))
 		return -EINVAL;
 
 	xe_sched_msg_lock(sched);
-	if (guc_exec_queue_try_add_msg(q, msg, SUSPEND))
-		q->guc->suspend_pending = true;
+	if (++ge->suspend_count == 1) {
+		if (guc_exec_queue_try_add_msg(q, msg, SUSPEND))
+			ge->suspend_pending = true;
+	}
 	xe_sched_msg_unlock(sched);
 
 	return 0;
@@ -2190,14 +2193,17 @@ static int guc_exec_queue_suspend_wait(struct xe_exec_queue *q)
 
 static void guc_exec_queue_resume(struct xe_exec_queue *q)
 {
-	struct xe_gpu_scheduler *sched = &q->guc->sched;
-	struct xe_sched_msg *msg = q->guc->static_msgs + STATIC_MSG_RESUME;
+	struct xe_guc_exec_queue *ge = q->guc;
+	struct xe_gpu_scheduler *sched = &ge->sched;
+	struct xe_sched_msg *msg = ge->static_msgs + STATIC_MSG_RESUME;
 	struct xe_guc *guc = exec_queue_to_guc(q);
 
-	xe_gt_assert(guc_to_gt(guc), !q->guc->suspend_pending);
-
 	xe_sched_msg_lock(sched);
-	guc_exec_queue_try_add_msg(q, msg, RESUME);
+	xe_gt_assert(guc_to_gt(guc), ge->suspend_count > 0);
+	if (--ge->suspend_count == 0) {
+		xe_gt_assert(guc_to_gt(guc), !ge->suspend_pending);
+		guc_exec_queue_try_add_msg(q, msg, RESUME);
+	}
 	xe_sched_msg_unlock(sched);
 }
 
-- 
2.54.0


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

* [PATCH 4/5] drm/xe: Rename EXEC_MODE_LR to EXEC_MODE_FAULT in hw engine group
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
                   ` (2 preceding siblings ...)
  2026-05-22 16:43 ` [PATCH 3/5] drm/xe/guc: Add suspend refcount to exec queue ops Thomas Hellström
@ 2026-05-22 16:43 ` Thomas Hellström
  2026-05-22 16:43 ` [PATCH 5/5] drm/xe: Suspend fault-mode LR jobs before VRAM eviction on S3/S4 Thomas Hellström
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellström @ 2026-05-22 16:43 UTC (permalink / raw)
  To: intel-xe; +Cc: Thomas Hellström

The execution mode tracked by xe_hw_engine_group_execution_mode
describes whether the hw engine group is currently executing jobs
in fault mode (long-running, fault-capable) or in DMA fence mode.
The EXEC_MODE_LR label was misleading since not all LR queues use
fault mode; rename it to EXEC_MODE_FAULT for clarity.

No functional change.

Assisted-by: GitHub_Copilot:claude-sonnet-4.6
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/xe/xe_exec.c                  |  2 +-
 drivers/gpu/drm/xe/xe_hw_engine_group.c       | 10 +++++-----
 drivers/gpu/drm/xe/xe_hw_engine_group_types.h |  4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec.c b/drivers/gpu/drm/xe/xe_exec.c
index e05dabfcd43c..15ad0fee906c 100644
--- a/drivers/gpu/drm/xe/xe_exec.c
+++ b/drivers/gpu/drm/xe/xe_exec.c
@@ -342,7 +342,7 @@ int xe_exec_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
 		spin_unlock(&xe->ttm.lru_lock);
 	}
 
-	if (mode == EXEC_MODE_LR)
+	if (mode == EXEC_MODE_FAULT)
 		xe_hw_engine_group_resume_faulting_lr_jobs(group);
 
 err_repin:
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_group.c b/drivers/gpu/drm/xe/xe_hw_engine_group.c
index 791be6edd0a4..fba0ed039bad 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_group.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine_group.c
@@ -22,12 +22,12 @@ hw_engine_group_resume_lr_jobs_func(struct work_struct *w)
 	int err;
 	enum xe_hw_engine_group_execution_mode previous_mode;
 
-	err = xe_hw_engine_group_get_mode(group, EXEC_MODE_LR, &previous_mode,
+	err = xe_hw_engine_group_get_mode(group, EXEC_MODE_FAULT, &previous_mode,
 					  NULL, 0);
 	if (err)
 		return;
 
-	if (previous_mode == EXEC_MODE_LR)
+	if (previous_mode == EXEC_MODE_FAULT)
 		goto put;
 
 	list_for_each_entry(q, &group->exec_queue_list, hw_engine_group_link) {
@@ -292,13 +292,13 @@ static int switch_mode(struct xe_hw_engine_group *group, bool has_deps)
 	lockdep_assert_held_write(&group->mode_sem);
 
 	switch (group->cur_mode) {
-	case EXEC_MODE_LR:
+	case EXEC_MODE_FAULT:
 		new_mode = EXEC_MODE_DMA_FENCE;
 		err = xe_hw_engine_group_suspend_faulting_lr_jobs(group,
 								  has_deps);
 		break;
 	case EXEC_MODE_DMA_FENCE:
-		new_mode = EXEC_MODE_LR;
+		new_mode = EXEC_MODE_FAULT;
 		err = xe_hw_engine_group_wait_for_dma_fence_jobs(group);
 		break;
 	}
@@ -395,7 +395,7 @@ enum xe_hw_engine_group_execution_mode
 xe_hw_engine_group_find_exec_mode(struct xe_exec_queue *q)
 {
 	if (xe_vm_in_fault_mode(q->vm))
-		return EXEC_MODE_LR;
+		return EXEC_MODE_FAULT;
 	else
 		return EXEC_MODE_DMA_FENCE;
 }
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_group_types.h b/drivers/gpu/drm/xe/xe_hw_engine_group_types.h
index 92b6e0712c03..b4c41de6ba5f 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_group_types.h
+++ b/drivers/gpu/drm/xe/xe_hw_engine_group_types.h
@@ -14,11 +14,11 @@
  * enum xe_hw_engine_group_execution_mode - possible execution modes of a hw
  * engine group
  *
- * @EXEC_MODE_LR: execution in long-running mode
+ * @EXEC_MODE_FAULT: execution in fault mode (long-running, fault-capable)
  * @EXEC_MODE_DMA_FENCE: execution in dma fence mode
  */
 enum xe_hw_engine_group_execution_mode {
-	EXEC_MODE_LR,
+	EXEC_MODE_FAULT,
 	EXEC_MODE_DMA_FENCE,
 };
 
-- 
2.54.0


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

* [PATCH 5/5] drm/xe: Suspend fault-mode LR jobs before VRAM eviction on S3/S4
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
                   ` (3 preceding siblings ...)
  2026-05-22 16:43 ` [PATCH 4/5] drm/xe: Rename EXEC_MODE_LR to EXEC_MODE_FAULT in hw engine group Thomas Hellström
@ 2026-05-22 16:43 ` Thomas Hellström
  2026-05-22 18:46 ` ✓ CI.KUnit: success for drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2) Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: Thomas Hellström @ 2026-05-22 16:43 UTC (permalink / raw)
  To: intel-xe; +Cc: Thomas Hellström, Matthew Auld, Rodrigo Vivi, stable

Fault-mode (SVM) exec queues run persistent LR jobs that can re-fault
GPU page table entries at any time. During S3/S4 suspend, VRAM eviction
unmaps GPU VMAs, but a running fault-mode job can immediately re-fault
those pages back in, racing with the eviction.

Fault-mode exec queues are suspended and drained before any VRAM
eviction begins, ensuring the GPU is quiescent before page tables or
BOs are invalidated. On resume, all previously suspended fault-mode
exec queues are re-registered and restarted once hardware is restored
and page fault handlers are ready to run.

Fault-mode exec queues created concurrently with PM suspend are
immediately suspended so the resume path picks them up, closing the
window where a newly-created queue could race with eviction.

Remove the stale "FIXME: Super racey..." comment from xe_pm_suspend():
the race it described is now prevented by suspending fault-mode jobs
before any eviction begins.

v2:
 - Add xe_device::pm_suspend_in_progress flag to suppress erroneous LR
   exec queue bans during PM suspend (now handled in a separate patch)
 - Rebase on exec queue suspend refcount and EXEC_MODE_LR rename patches

Fixes: eb5723a75104 ("drm/xe: Block exec and rebind worker while evicting for suspend / hibernate")
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: <stable@vger.kernel.org> # v6.17+
Assisted-by: GitHub_Copilot:claude-sonnet-4.6
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue_types.h      |   7 +
 drivers/gpu/drm/xe/xe_guc_submit.c            |  25 +++
 drivers/gpu/drm/xe/xe_guc_submit.h            |   1 +
 drivers/gpu/drm/xe/xe_hw_engine_group.c       | 161 ++++++++++++++++--
 drivers/gpu/drm/xe/xe_hw_engine_group.h       |   3 +
 drivers/gpu/drm/xe/xe_hw_engine_group_types.h |   7 +
 drivers/gpu/drm/xe/xe_pm.c                    |  15 +-
 7 files changed, 206 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue_types.h b/drivers/gpu/drm/xe/xe_exec_queue_types.h
index 2f5ccf294675..77f2bc5ff2f6 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue_types.h
+++ b/drivers/gpu/drm/xe/xe_exec_queue_types.h
@@ -200,6 +200,13 @@ struct xe_exec_queue {
 		u32 seqno;
 		/** @lr.link: link into VM's list of exec queues */
 		struct list_head link;
+		/**
+		 * @lr.pm_suspended: Marks that this fault-mode exec
+		 * queue was suspended for PM and must be resumed on
+		 * PM post-suspend. Protected by the hw engine group's
+		 * mode_sem.
+		 */
+		bool pm_suspended;
 	} lr;
 
 #define XE_EXEC_QUEUE_TLB_INVAL_PRIMARY_GT	0
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index 7da7db2059ff..a97a4caf6dc8 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -2616,6 +2616,31 @@ void xe_guc_submit_start_user_queues(struct xe_guc *guc)
 	mutex_unlock(&guc->submission_state.lock);
 }
 
+/**
+ * xe_guc_submit_pm_resume_exec_queue() - Re-enable a fault-mode exec queue after PM resume
+ * @q: the exec queue to resume
+ *
+ * Re-enables a fault-mode LR exec queue for execution after PM resume.
+ * Has no effect if GuC is stopped or if the queue is in a terminal state
+ * (killed, banned, wedged, or destroyed).
+ */
+void xe_guc_submit_pm_resume_exec_queue(struct xe_exec_queue *q)
+{
+	struct xe_guc *guc = exec_queue_to_guc(q);
+
+	if (!guc->submission_state.initialized)
+		return;
+
+	mutex_lock(&guc->submission_state.lock);
+	if (!xe_guc_read_stopped(guc) &&
+	    !exec_queue_killed_or_banned_or_wedged(q) && !exec_queue_destroyed(q)) {
+		if (!exec_queue_registered(q))
+			register_exec_queue(q, GUC_CONTEXT_NORMAL);
+		q->ops->resume(q);
+	}
+	mutex_unlock(&guc->submission_state.lock);
+}
+
 static void guc_exec_queue_unpause_prepare(struct xe_guc *guc,
 					   struct xe_exec_queue *q)
 {
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.h b/drivers/gpu/drm/xe/xe_guc_submit.h
index b210b2f6cd2d..c312fe31d917 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.h
+++ b/drivers/gpu/drm/xe/xe_guc_submit.h
@@ -21,6 +21,7 @@ void xe_guc_submit_reset_wait(struct xe_guc *guc);
 void xe_guc_submit_stop(struct xe_guc *guc);
 int xe_guc_submit_start(struct xe_guc *guc);
 void xe_guc_submit_start_user_queues(struct xe_guc *guc);
+void xe_guc_submit_pm_resume_exec_queue(struct xe_exec_queue *q);
 void xe_guc_submit_pause(struct xe_guc *guc);
 void xe_guc_submit_pause_abort(struct xe_guc *guc);
 void xe_guc_submit_pause_vf(struct xe_guc *guc);
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_group.c b/drivers/gpu/drm/xe/xe_hw_engine_group.c
index fba0ed039bad..1561fb95fdcf 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_group.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine_group.c
@@ -6,11 +6,14 @@
 #include <drm/drm_managed.h>
 
 #include "xe_assert.h"
+#include "xe_device.h"
 #include "xe_device_types.h"
 #include "xe_exec_queue.h"
 #include "xe_gt.h"
 #include "xe_gt_stats.h"
+#include "xe_guc_submit.h"
 #include "xe_hw_engine_group.h"
+#include "xe_hw_engine_types.h"
 #include "xe_sync.h"
 #include "xe_vm.h"
 
@@ -126,11 +129,10 @@ int xe_hw_engine_setup_groups(struct xe_gt *gt)
 int xe_hw_engine_group_add_exec_queue(struct xe_hw_engine_group *group, struct xe_exec_queue *q)
 {
 	int err;
-	struct xe_device *xe = gt_to_xe(q->gt);
 
-	xe_assert(xe, group);
-	xe_assert(xe, !(q->flags & EXEC_QUEUE_FLAG_VM));
-	xe_assert(xe, q->vm);
+	xe_assert(gt_to_xe(q->gt), group);
+	xe_assert(gt_to_xe(q->gt), !(q->flags & EXEC_QUEUE_FLAG_VM));
+	xe_assert(gt_to_xe(q->gt), q->vm);
 
 	if (xe_vm_in_preempt_fence_mode(q->vm))
 		return 0;
@@ -139,13 +141,22 @@ int xe_hw_engine_group_add_exec_queue(struct xe_hw_engine_group *group, struct x
 	if (err)
 		return err;
 
-	if (xe_vm_in_fault_mode(q->vm) && group->cur_mode == EXEC_MODE_DMA_FENCE) {
-		q->ops->suspend(q);
-		err = q->ops->suspend_wait(q);
-		if (err)
-			goto err_suspend;
+	if (xe_vm_in_fault_mode(q->vm)) {
+		if (group->pm_suspended) {
+			q->lr.pm_suspended = true;
+			q->ops->suspend(q);
+			err = q->ops->suspend_wait(q);
+			if (err)
+				goto err_suspend;
+		}
+		if (group->cur_mode == EXEC_MODE_DMA_FENCE) {
+			q->ops->suspend(q);
+			err = q->ops->suspend_wait(q);
+			if (err)
+				goto err_suspend;
 
-		xe_hw_engine_group_resume_faulting_lr_jobs(group);
+			xe_hw_engine_group_resume_faulting_lr_jobs(group);
+		}
 	}
 
 	list_add(&q->hw_engine_group_link, &group->exec_queue_list);
@@ -176,6 +187,8 @@ void xe_hw_engine_group_del_exec_queue(struct xe_hw_engine_group *group, struct
 	if (!list_empty(&q->hw_engine_group_link))
 		list_del(&q->hw_engine_group_link);
 
+	q->lr.pm_suspended = false;
+
 	up_write(&group->mode_sem);
 }
 
@@ -189,6 +202,134 @@ void xe_hw_engine_group_resume_faulting_lr_jobs(struct xe_hw_engine_group *group
 	queue_work(group->resume_wq, &group->resume_work);
 }
 
+/**
+ * xe_suspend_all_faulting_lr_jobs() - Suspend all fault-mode exec queues on the device
+ * @xe: the xe device
+ *
+ * Suspends all fault-mode LR exec queues across all GTs before VRAM eviction
+ * during PM suspend. Fault-mode jobs can re-fault GPU page table entries at
+ * any time, racing with the eviction process. Must be paired with
+ * xe_resume_all_faulting_lr_jobs() after hardware is restored on resume.
+ *
+ * Return: 0 on success, negative error code on failure.
+ */
+int xe_suspend_all_faulting_lr_jobs(struct xe_device *xe)
+{
+	struct xe_hw_engine_group *visited[XE_ENGINE_CLASS_MAX] = {};
+	int n_visited = 0;
+	struct xe_gt *gt;
+	u8 gt_id;
+	int err;
+
+	for_each_gt(gt, xe, gt_id) {
+		struct xe_hw_engine *hwe;
+		enum xe_hw_engine_id hwe_id;
+
+		for_each_hw_engine(hwe, gt, hwe_id) {
+			struct xe_hw_engine_group *group = hwe->hw_engine_group;
+			struct xe_exec_queue *q;
+			bool already_seen = false;
+			int i;
+
+			if (!group)
+				continue;
+
+			for (i = 0; i < n_visited; i++) {
+				if (visited[i] == group) {
+					already_seen = true;
+					break;
+				}
+			}
+			if (already_seen)
+				continue;
+
+			visited[n_visited++] = group;
+
+			err = down_write_killable(&group->mode_sem);
+			if (err)
+				goto err_resume;
+
+			group->pm_suspended = true;
+			list_for_each_entry(q, &group->exec_queue_list, hw_engine_group_link) {
+				if (xe_vm_in_fault_mode(q->vm)) {
+					q->lr.pm_suspended = true;
+					q->ops->suspend(q);
+				}
+			}
+
+			list_for_each_entry(q, &group->exec_queue_list, hw_engine_group_link) {
+				if (!xe_vm_in_fault_mode(q->vm))
+					continue;
+
+				err = q->ops->suspend_wait(q);
+				if (err) {
+					up_write(&group->mode_sem);
+					goto err_resume;
+				}
+			}
+
+			up_write(&group->mode_sem);
+		}
+	}
+
+	return 0;
+
+err_resume:
+	xe_resume_all_faulting_lr_jobs(xe);
+	return err;
+}
+
+/**
+ * xe_resume_all_faulting_lr_jobs() - Resume all fault-mode exec queues on the device
+ * @xe: the xe device
+ *
+ * Re-enables all fault-mode LR exec queues that were suspended for PM. Must be
+ * called after hardware is restored and page fault handlers are free to run.
+ */
+void xe_resume_all_faulting_lr_jobs(struct xe_device *xe)
+{
+	struct xe_hw_engine_group *visited[XE_ENGINE_CLASS_MAX] = {};
+	int n_visited = 0;
+	struct xe_gt *gt;
+	u8 gt_id;
+
+	for_each_gt(gt, xe, gt_id) {
+		struct xe_hw_engine *hwe;
+		enum xe_hw_engine_id hwe_id;
+
+		for_each_hw_engine(hwe, gt, hwe_id) {
+			struct xe_hw_engine_group *group = hwe->hw_engine_group;
+			struct xe_exec_queue *q;
+			bool already_seen = false;
+			int i;
+
+			if (!group)
+				continue;
+
+			for (i = 0; i < n_visited; i++) {
+				if (visited[i] == group) {
+					already_seen = true;
+					break;
+				}
+			}
+			if (already_seen)
+				continue;
+
+			visited[n_visited++] = group;
+
+			down_write(&group->mode_sem);
+			group->pm_suspended = false;
+			list_for_each_entry(q, &group->exec_queue_list, hw_engine_group_link) {
+				if (!q->lr.pm_suspended)
+					continue;
+				q->lr.pm_suspended = false;
+				xe_guc_submit_pm_resume_exec_queue(q);
+			}
+			up_write(&group->mode_sem);
+		}
+	}
+}
+
 /**
  * xe_hw_engine_group_suspend_faulting_lr_jobs() - Suspend the faulting LR jobs of this group
  * @group: The hw engine group
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_group.h b/drivers/gpu/drm/xe/xe_hw_engine_group.h
index 8b17ccd30b70..67807d67530c 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_group.h
+++ b/drivers/gpu/drm/xe/xe_hw_engine_group.h
@@ -9,6 +9,7 @@
 #include "xe_hw_engine_group_types.h"
 
 struct drm_device;
+struct xe_device;
 struct xe_exec_queue;
 struct xe_gt;
 struct xe_sync_entry;
@@ -27,5 +28,7 @@ void xe_hw_engine_group_put(struct xe_hw_engine_group *group);
 enum xe_hw_engine_group_execution_mode
 xe_hw_engine_group_find_exec_mode(struct xe_exec_queue *q);
 void xe_hw_engine_group_resume_faulting_lr_jobs(struct xe_hw_engine_group *group);
+int xe_suspend_all_faulting_lr_jobs(struct xe_device *xe);
+void xe_resume_all_faulting_lr_jobs(struct xe_device *xe);
 
 #endif
diff --git a/drivers/gpu/drm/xe/xe_hw_engine_group_types.h b/drivers/gpu/drm/xe/xe_hw_engine_group_types.h
index b4c41de6ba5f..090313da2f25 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine_group_types.h
+++ b/drivers/gpu/drm/xe/xe_hw_engine_group_types.h
@@ -46,6 +46,13 @@ struct xe_hw_engine_group {
 	struct rw_semaphore mode_sem;
 	/** @cur_mode: current execution mode of this hw engine group */
 	enum xe_hw_engine_group_execution_mode cur_mode;
+	/**
+	 * @pm_suspended: true while PM suspend is in progress for this group.
+	 * New fault-mode exec queues added while this is set are immediately
+	 * suspended (with @lr.pm_suspended marked) and resumed by
+	 * xe_resume_all_faulting_lr_jobs(). Protected by @mode_sem.
+	 */
+	bool pm_suspended;
 };
 
 #endif
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index 76d211986822..58afb44b1b0c 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -20,6 +20,7 @@
 #include "xe_ggtt.h"
 #include "xe_gt.h"
 #include "xe_gt_idle.h"
+#include "xe_hw_engine_group.h"
 #include "xe_i2c.h"
 #include "xe_irq.h"
 #include "xe_late_bind_fw.h"
@@ -191,7 +192,6 @@ int xe_pm_suspend(struct xe_device *xe)
 
 	xe_display_pm_suspend(xe);
 
-	/* FIXME: Super racey... */
 	err = xe_bo_evict_all(xe);
 	if (err)
 		goto err_display;
@@ -414,9 +414,17 @@ static int xe_pm_notifier_callback(struct notifier_block *nb,
 	{
 		struct xe_validation_ctx ctx;
 
-		reinit_completion(&xe->pm_block);
-		xe_pm_block_begin_signalling();
 		xe_pm_runtime_get(xe);
+
+		err = xe_suspend_all_faulting_lr_jobs(xe);
+		if (err) {
+			drm_err(&xe->drm, "Notifier suspend faulting LR jobs failed (%d)\n", err);
+			xe_pm_runtime_put(xe);
+			return notifier_from_errno(err);
+		}
+
+		xe_pm_block_begin_signalling();
+		reinit_completion(&xe->pm_block);
 		(void)xe_validation_ctx_init(&ctx, &xe->val, NULL,
 					     (struct xe_val_flags) {.exclusive = true});
 		err = xe_bo_evict_all_user(xe);
@@ -440,6 +448,7 @@ static int xe_pm_notifier_callback(struct notifier_block *nb,
 		complete_all(&xe->pm_block);
 		xe_pm_wake_rebind_workers(xe);
 		xe_bo_notifier_unprepare_all_pinned(xe);
+		xe_resume_all_faulting_lr_jobs(xe);
 		xe_pm_runtime_put(xe);
 		break;
 	}
-- 
2.54.0


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

* ✓ CI.KUnit: success for drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2)
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
                   ` (4 preceding siblings ...)
  2026-05-22 16:43 ` [PATCH 5/5] drm/xe: Suspend fault-mode LR jobs before VRAM eviction on S3/S4 Thomas Hellström
@ 2026-05-22 18:46 ` Patchwork
  2026-05-22 19:23 ` ✗ Xe.CI.BAT: failure " Patchwork
  2026-05-23  3:23 ` ✗ Xe.CI.FULL: " Patchwork
  7 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-05-22 18:46 UTC (permalink / raw)
  To: Thomas Hellström; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2)
URL   : https://patchwork.freedesktop.org/series/167032/
State : success

== Summary ==

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

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

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

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



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

* ✗ Xe.CI.BAT: failure for drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2)
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
                   ` (5 preceding siblings ...)
  2026-05-22 18:46 ` ✓ CI.KUnit: success for drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2) Patchwork
@ 2026-05-22 19:23 ` Patchwork
  2026-05-23  3:23 ` ✗ Xe.CI.FULL: " Patchwork
  7 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-05-22 19:23 UTC (permalink / raw)
  To: Thomas Hellström; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2)
URL   : https://patchwork.freedesktop.org/series/167032/
State : failure

== Summary ==

CI Bug Log - changes from xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124_BAT -> xe-pw-167032v2_BAT
====================================================

Summary
-------

  **FAILURE**

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

  

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

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-167032v2_BAT:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_waitfence@abstime:
    - bat-atsm-2:         [PASS][1] -> [TIMEOUT][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/bat-atsm-2/igt@xe_waitfence@abstime.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/bat-atsm-2/igt@xe_waitfence@abstime.html

  


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

  * Linux: xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124 -> xe-pw-167032v2

  IGT_8936: 98b65acc4f6edf68cd52b30f27b83049c4c5c83b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124: 60d51bdeabf700864c26264c51b146a86b0a9124
  xe-pw-167032v2: 167032v2

== Logs ==

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

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

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

* ✗ Xe.CI.FULL: failure for drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2)
  2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
                   ` (6 preceding siblings ...)
  2026-05-22 19:23 ` ✗ Xe.CI.BAT: failure " Patchwork
@ 2026-05-23  3:23 ` Patchwork
  7 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-05-23  3:23 UTC (permalink / raw)
  To: Thomas Hellström; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2)
URL   : https://patchwork.freedesktop.org/series/167032/
State : failure

== Summary ==

CI Bug Log - changes from xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124_FULL -> xe-pw-167032v2_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-167032v2_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-167032v2_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-167032v2_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_pm_rpm@i2c:
    - shard-bmg:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-3/igt@kms_pm_rpm@i2c.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-5/igt@kms_pm_rpm@i2c.html

  * igt@xe_exec_reset@gt-reset-stress:
    - shard-lnl:          [PASS][3] -> [ABORT][4]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-lnl-8/igt@xe_exec_reset@gt-reset-stress.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-lnl-5/igt@xe_exec_reset@gt-reset-stress.html

  
New tests
---------

  New tests have been introduced between xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124_FULL and xe-pw-167032v2_FULL:

### New IGT tests (34) ###

  * igt@xe_pmu@engine-activity-all-load:
    - Statuses : 2 pass(s)
    - Exec time: [2.04] s

  * igt@xe_pmu@engine-activity-all-load-idle:
    - Statuses :
    - Exec time: [None] s

  * igt@xe_pmu@engine-activity-most-load:
    - Statuses : 2 pass(s)
    - Exec time: [10.18, 14.24] s

  * igt@xe_pmu@engine-activity-most-load-idle:
    - Statuses : 2 pass(s)
    - Exec time: [10.19, 14.21] s

  * igt@xe_pmu@engine-activity-most-load-idle@engine-drm_xe_engine_class_compute0:
    - Statuses : 2 pass(s)
    - Exec time: [2.02, 2.04] s

  * igt@xe_pmu@engine-activity-most-load-idle@engine-drm_xe_engine_class_copy0:
    - Statuses : 2 pass(s)
    - Exec time: [2.02, 2.04] s

  * igt@xe_pmu@engine-activity-most-load-idle@engine-drm_xe_engine_class_render0:
    - Statuses : 2 pass(s)
    - Exec time: [2.02] s

  * igt@xe_pmu@engine-activity-most-load-idle@engine-drm_xe_engine_class_video_decode0:
    - Statuses : 2 pass(s)
    - Exec time: [2.03, 2.04] s

  * igt@xe_pmu@engine-activity-most-load-idle@engine-drm_xe_engine_class_video_decode1:
    - Statuses : 1 pass(s)
    - Exec time: [2.04] s

  * igt@xe_pmu@engine-activity-most-load-idle@engine-drm_xe_engine_class_video_enhance0:
    - Statuses : 2 pass(s)
    - Exec time: [2.03, 2.04] s

  * igt@xe_pmu@engine-activity-most-load-idle@engine-drm_xe_engine_class_video_enhance1:
    - Statuses : 1 pass(s)
    - Exec time: [2.03] s

  * igt@xe_pmu@engine-activity-most-load@engine-drm_xe_engine_class_compute0:
    - Statuses : 2 pass(s)
    - Exec time: [2.03, 2.04] s

  * igt@xe_pmu@engine-activity-most-load@engine-drm_xe_engine_class_copy0:
    - Statuses : 2 pass(s)
    - Exec time: [2.03] s

  * igt@xe_pmu@engine-activity-most-load@engine-drm_xe_engine_class_render0:
    - Statuses : 2 pass(s)
    - Exec time: [2.02, 2.03] s

  * igt@xe_pmu@engine-activity-most-load@engine-drm_xe_engine_class_video_decode0:
    - Statuses : 2 pass(s)
    - Exec time: [2.03, 2.04] s

  * igt@xe_pmu@engine-activity-most-load@engine-drm_xe_engine_class_video_decode1:
    - Statuses : 1 pass(s)
    - Exec time: [2.03] s

  * igt@xe_pmu@engine-activity-most-load@engine-drm_xe_engine_class_video_enhance0:
    - Statuses : 2 pass(s)
    - Exec time: [2.04] s

  * igt@xe_pmu@engine-activity-most-load@engine-drm_xe_engine_class_video_enhance1:
    - Statuses : 1 pass(s)
    - Exec time: [2.04] s

  * igt@xe_pmu@engine-activity-single-load:
    - Statuses : 2 pass(s)
    - Exec time: [10.13, 14.09] s

  * igt@xe_pmu@engine-activity-single-load-idle:
    - Statuses : 2 pass(s)
    - Exec time: [10.13, 14.10] s

  * igt@xe_pmu@engine-activity-single-load-idle@engine-drm_xe_engine_class_compute0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.02] s

  * igt@xe_pmu@engine-activity-single-load-idle@engine-drm_xe_engine_class_copy0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.03] s

  * igt@xe_pmu@engine-activity-single-load-idle@engine-drm_xe_engine_class_render0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01] s

  * igt@xe_pmu@engine-activity-single-load-idle@engine-drm_xe_engine_class_video_decode0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.02] s

  * igt@xe_pmu@engine-activity-single-load-idle@engine-drm_xe_engine_class_video_decode1:
    - Statuses : 1 pass(s)
    - Exec time: [2.02] s

  * igt@xe_pmu@engine-activity-single-load-idle@engine-drm_xe_engine_class_video_enhance0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.02] s

  * igt@xe_pmu@engine-activity-single-load-idle@engine-drm_xe_engine_class_video_enhance1:
    - Statuses : 1 pass(s)
    - Exec time: [2.01] s

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_compute0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.03] s

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_copy0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.02] s

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_render0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01] s

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_video_decode0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.02] s

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_video_decode1:
    - Statuses : 1 pass(s)
    - Exec time: [2.01] s

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_video_enhance0:
    - Statuses : 2 pass(s)
    - Exec time: [2.01, 2.02] s

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_video_enhance1:
    - Statuses : 1 pass(s)
    - Exec time: [2.01] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#2327])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#1124])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-target-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#7679])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_bw@connected-linear-tiling-2-displays-target-2560x1440p.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#2887]) +2 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#2724] / [Intel XE#7449])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_frames@dp-frame-dump:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2252]) +1 other test skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_chamelium_frames@dp-frame-dump.html

  * igt@kms_content_protection@mei-interface:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#7642])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_content_protection@mei-interface.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x32:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#2320]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#1508])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2244])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

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

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
    - shard-lnl:          [PASS][16] -> [FAIL][17] ([Intel XE#301] / [Intel XE#3149])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-lnl:          [PASS][18] -> [FAIL][19] ([Intel XE#301]) +1 other test fail
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#7178] / [Intel XE#7351])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2311]) +12 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#7399]) +1 other test skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#4141]) +3 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#2313]) +15 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_plane@pixel-format-4-tiled-modifier@pipe-a-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#7130]) +1 other test skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_plane@pixel-format-4-tiled-modifier@pipe-a-plane-5.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#7794])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#1489]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2387] / [Intel XE#7429])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@psr2-sprite-render:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2234] / [Intel XE#2850]) +2 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_psr@psr2-sprite-render.html

  * igt@kms_sharpness_filter@invalid-filter-with-nearest-neighbor:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#6503])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_sharpness_filter@invalid-filter-with-nearest-neighbor.html

  * igt@kms_vrr@seamless-rr-switch-drrs:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#1499])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@kms_vrr@seamless-rr-switch-drrs.html

  * igt@xe_eudebug@discovery-race:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#7636]) +2 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_eudebug@discovery-race.html

  * igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#2322] / [Intel XE#7372])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#7136]) +5 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm.html

  * igt@xe_exec_multi_queue@two-queues-userptr:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#6874]) +8 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_exec_multi_queue@two-queues-userptr.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#7138]) +2 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_exec_threads@threads-multi-queue-mixed-rebind.html

  * igt@xe_page_reclaim@many-vma-same-bo:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#7793])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_page_reclaim@many-vma-same-bo.html

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

  * igt@xe_wedged@wedged-mode-toggle:
    - shard-bmg:          [PASS][40] -> [ABORT][41] ([Intel XE#8007])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-1/igt@xe_wedged@wedged-mode-toggle.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_wedged@wedged-mode-toggle.html

  
#### Possible fixes ####

  * igt@core_setmaster@master-drop-set-user:
    - shard-bmg:          [FAIL][42] -> [PASS][43] +7 other tests pass
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@core_setmaster@master-drop-set-user.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@core_setmaster@master-drop-set-user.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-lnl:          [FAIL][44] ([i915#4767]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-lnl-1/igt@kms_fbcon_fbt@fbc-suspend.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-lnl-1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-bmg:          [DMESG-WARN][46] ([Intel XE#7774]) -> [PASS][47] +1 other test pass
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
    - shard-lnl:          [FAIL][48] ([Intel XE#301]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [SKIP][50] ([Intel XE#1503]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-6/igt@kms_hdr@invalid-hdr.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_hdr@invalid-hdr.html

  * igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010:
    - shard-bmg:          [SKIP][52] ([Intel XE#7922]) -> [PASS][53] +1 other test pass
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-6/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html

  * igt@kms_hdr@static-swap@pipe-a-hdmi-a-3-xrgb2101010:
    - shard-bmg:          [SKIP][54] ([Intel XE#7915]) -> [PASS][55] +3 other tests pass
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-1/igt@kms_hdr@static-swap@pipe-a-hdmi-a-3-xrgb2101010.html
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-6/igt@kms_hdr@static-swap@pipe-a-hdmi-a-3-xrgb2101010.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          [INCOMPLETE][56] ([Intel XE#6321]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-5/igt@xe_evict@evict-beng-mixed-many-threads-small.html
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-6/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  * igt@xe_exec_reset@long-spin-reuse-many-preempt-threads:
    - shard-bmg:          [FAIL][58] ([Intel XE#7850]) -> [PASS][59]
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-7/igt@xe_exec_reset@long-spin-reuse-many-preempt-threads.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-3/igt@xe_exec_reset@long-spin-reuse-many-preempt-threads.html

  * igt@xe_exec_system_allocator@many-large-execqueues-free-race:
    - shard-bmg:          [ABORT][60] ([Intel XE#6652] / [Intel XE#7893]) -> [PASS][61]
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_system_allocator@many-large-execqueues-free-race.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-8/igt@xe_exec_system_allocator@many-large-execqueues-free-race.html

  * igt@xe_exec_system_allocator@process-many-large-execqueues-mmap-nomemset:
    - shard-bmg:          [DMESG-FAIL][62] ([Intel XE#5545]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_system_allocator@process-many-large-execqueues-mmap-nomemset.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_exec_system_allocator@process-many-large-execqueues-mmap-nomemset.html

  * igt@xe_exec_system_allocator@twice-mmap-free-madvise:
    - shard-bmg:          [SKIP][64] ([Intel XE#6703]) -> [PASS][65] +96 other tests pass
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_system_allocator@twice-mmap-free-madvise.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_exec_system_allocator@twice-mmap-free-madvise.html

  * igt@xe_pmu@engine-activity-most-load-idle (NEW):
    - shard-bmg:          [TIMEOUT][66] ([Intel XE#7774]) -> [PASS][67] +1 other test pass
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_pmu@engine-activity-most-load-idle.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_pmu@engine-activity-most-load-idle.html

  
#### Warnings ####

  * igt@kms_big_fb@y-tiled-16bpp-rotate-0:
    - shard-bmg:          [SKIP][68] ([Intel XE#6703]) -> [SKIP][69] ([Intel XE#1124])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-ccs:
    - shard-bmg:          [SKIP][70] ([Intel XE#6703]) -> [SKIP][71] ([Intel XE#2887]) +2 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_ccs@crc-primary-basic-y-tiled-ccs.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_ccs@crc-primary-basic-y-tiled-ccs.html

  * igt@kms_chamelium_color@degamma:
    - shard-bmg:          [SKIP][72] ([Intel XE#6703]) -> [SKIP][73] ([Intel XE#2325] / [Intel XE#7358])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_chamelium_color@degamma.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_chamelium_color@degamma.html

  * igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats:
    - shard-bmg:          [SKIP][74] ([Intel XE#6703]) -> [SKIP][75] ([Intel XE#2252])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_chamelium_frames@hdmi-crc-nonplanar-formats.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-bmg:          [SKIP][76] ([Intel XE#6703]) -> [SKIP][77] ([Intel XE#2320])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_cursor_crc@cursor-onscreen-max-size.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [FAIL][78] ([Intel XE#301]) -> [FAIL][79] ([Intel XE#301] / [Intel XE#3149])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-bmg:          [SKIP][80] ([Intel XE#6703]) -> [SKIP][81] ([Intel XE#7178] / [Intel XE#7351])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][82] ([Intel XE#6703]) -> [SKIP][83] ([Intel XE#2311]) +4 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render:
    - shard-bmg:          [SKIP][84] ([Intel XE#6703]) -> [SKIP][85] ([Intel XE#4141]) +1 other test skip
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][86] ([Intel XE#6703]) -> [SKIP][87] ([Intel XE#2313]) +8 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-draw-mmap-wc.html
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-bmg:          [SKIP][88] ([Intel XE#6703]) -> [SKIP][89] ([Intel XE#2393])
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_plane_lowres@tiling-yf.html
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf:
    - shard-bmg:          [SKIP][90] ([Intel XE#6703]) -> [SKIP][91] ([Intel XE#1489]) +1 other test skip
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html

  * igt@kms_psr@fbc-psr2-primary-blt:
    - shard-bmg:          [SKIP][92] ([Intel XE#6703]) -> [SKIP][93] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_psr@fbc-psr2-primary-blt.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_psr@fbc-psr2-primary-blt.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-bmg:          [SKIP][94] ([Intel XE#6703]) -> [SKIP][95] ([Intel XE#3904] / [Intel XE#7342])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [SKIP][96] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][97] ([Intel XE#1729] / [Intel XE#7424])
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern.html
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][98] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][99] ([Intel XE#2426] / [Intel XE#5848])
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          [SKIP][100] ([Intel XE#6703]) -> [SKIP][101] ([Intel XE#2168] / [Intel XE#7444])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@kms_vrr@lobf.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@kms_vrr@lobf.html

  * igt@xe_eudebug_online@breakpoint-many-sessions-single-tile:
    - shard-bmg:          [SKIP][102] ([Intel XE#6703]) -> [SKIP][103] ([Intel XE#7636]) +1 other test skip
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_eudebug_online@breakpoint-many-sessions-single-tile.html
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_eudebug_online@breakpoint-many-sessions-single-tile.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate:
    - shard-bmg:          [SKIP][104] ([Intel XE#6703]) -> [SKIP][105] ([Intel XE#2322] / [Intel XE#7372])
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate-race-prefetch:
    - shard-bmg:          [SKIP][106] ([Intel XE#6703]) -> [SKIP][107] ([Intel XE#7136]) +2 other tests skip
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate-race-prefetch.html
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate-race-prefetch.html

  * igt@xe_exec_multi_queue@few-execs-close-fd:
    - shard-bmg:          [SKIP][108] ([Intel XE#6703]) -> [SKIP][109] ([Intel XE#6874]) +4 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_multi_queue@few-execs-close-fd.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_exec_multi_queue@few-execs-close-fd.html

  * igt@xe_exec_reset@long-spin-sys-reuse-many-preempt-threads:
    - shard-bmg:          [SKIP][110] ([Intel XE#6703]) -> [FAIL][111] ([Intel XE#7850])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_reset@long-spin-sys-reuse-many-preempt-threads.html
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_exec_reset@long-spin-sys-reuse-many-preempt-threads.html

  * igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate:
    - shard-bmg:          [SKIP][112] ([Intel XE#6703]) -> [SKIP][113] ([Intel XE#7138])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-fd-userptr-invalidate.html

  * igt@xe_pxp@display-pxp-fb:
    - shard-bmg:          [SKIP][114] ([Intel XE#6703]) -> [SKIP][115] ([Intel XE#4733] / [Intel XE#7417])
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124/shard-bmg-2/igt@xe_pxp@display-pxp-fb.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-167032v2/shard-bmg-7/igt@xe_pxp@display-pxp-fb.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#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#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [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#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7130
  [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [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#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [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#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
  [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
  [Intel XE#7444]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7444
  [Intel XE#7449]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7449
  [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
  [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7774]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7774
  [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
  [Intel XE#7794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7794
  [Intel XE#7850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7850
  [Intel XE#7893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7893
  [Intel XE#7915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7915
  [Intel XE#7922]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7922
  [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [i915#4767]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4767


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

  * Linux: xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124 -> xe-pw-167032v2

  IGT_8936: 98b65acc4f6edf68cd52b30f27b83049c4c5c83b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5118-60d51bdeabf700864c26264c51b146a86b0a9124: 60d51bdeabf700864c26264c51b146a86b0a9124
  xe-pw-167032v2: 167032v2

== Logs ==

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

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

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

end of thread, other threads:[~2026-05-23  3:23 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-22 16:43 [PATCH 0/5] drm/xe: Fix LR exec queue suspend/resume for S3/S4 Thomas Hellström
2026-05-22 16:43 ` [PATCH 1/5] drm/xe/guc: Defer user exec queue scheduler start until after page table restore Thomas Hellström
2026-05-22 16:43 ` [PATCH 2/5] drm/xe/guc: Don't ban LR VM exec queues on PM suspend Thomas Hellström
2026-05-22 16:43 ` [PATCH 3/5] drm/xe/guc: Add suspend refcount to exec queue ops Thomas Hellström
2026-05-22 16:43 ` [PATCH 4/5] drm/xe: Rename EXEC_MODE_LR to EXEC_MODE_FAULT in hw engine group Thomas Hellström
2026-05-22 16:43 ` [PATCH 5/5] drm/xe: Suspend fault-mode LR jobs before VRAM eviction on S3/S4 Thomas Hellström
2026-05-22 18:46 ` ✓ CI.KUnit: success for drm/xe: Fix LR exec queue suspend/resume for S3/S4 (rev2) Patchwork
2026-05-22 19:23 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-05-23  3:23 ` ✗ Xe.CI.FULL: " Patchwork

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