All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Misc PF improvements
@ 2025-07-30 17:49 Michal Wajdeczko
  2025-07-30 17:49 ` [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal Michal Wajdeczko
                   ` (5 more replies)
  0 siblings, 6 replies; 21+ messages in thread
From: Michal Wajdeczko @ 2025-07-30 17:49 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

Michal Wajdeczko (3):
  drm/xe/pf: Disable PF restart worker on device removal
  drm/xe/pf: Make sure PF is ready to configure VFs
  drm/xe/pf: Don't resume device from restart worker

 drivers/gpu/drm/xe/xe_gt_sriov_pf.c         | 79 +++++++++++++++++++--
 drivers/gpu/drm/xe/xe_gt_sriov_pf.h         |  1 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c |  4 +-
 drivers/gpu/drm/xe/xe_pci_sriov.c           |  7 +-
 drivers/gpu/drm/xe/xe_sriov_pf.c            | 27 +++++++
 drivers/gpu/drm/xe/xe_sriov_pf.h            |  1 +
 6 files changed, 113 insertions(+), 6 deletions(-)

-- 
2.47.1


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

* [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
  2025-07-30 17:49 [PATCH 0/3] Misc PF improvements Michal Wajdeczko
@ 2025-07-30 17:49 ` Michal Wajdeczko
  2025-07-30 21:08   ` Cavitt, Jonathan
  2025-08-01 10:23   ` Piotr Piórkowski
  2025-07-30 17:49 ` [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs Michal Wajdeczko
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 21+ messages in thread
From: Michal Wajdeczko @ 2025-07-30 17:49 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

We can't let restart worker run once device is removed, since other
data that it might want to access could be already released.
Explicitly disable worker as part of device cleanup action.

Fixes: a4d1c5d0b99b ("drm/xe/pf: Move VFs reprovisioning to worker")
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 30 ++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
index 35489fa81825..2761319fdc26 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
@@ -50,6 +50,11 @@ static void pf_init_workers(struct xe_gt *gt)
 	INIT_WORK(&gt->sriov.pf.workers.restart, pf_worker_restart_func);
 }
 
+static void pf_fini_workers(struct xe_gt *gt)
+{
+	disable_work_sync(&gt->sriov.pf.workers.restart);
+}
+
 /**
  * xe_gt_sriov_pf_init_early - Prepare SR-IOV PF data structures on PF.
  * @gt: the &xe_gt to initialize
@@ -79,6 +84,21 @@ int xe_gt_sriov_pf_init_early(struct xe_gt *gt)
 	return 0;
 }
 
+static void pf_fini_action(void *arg)
+{
+	struct xe_gt *gt = arg;
+
+	pf_fini_workers(gt);
+}
+
+static int pf_init_late(struct xe_gt *gt)
+{
+	struct xe_device *xe = gt_to_xe(gt);
+
+	xe_gt_assert(gt, IS_SRIOV_PF(xe));
+	return devm_add_action_or_reset(xe->drm.dev, pf_fini_action, gt);
+}
+
 /**
  * xe_gt_sriov_pf_init - Prepare SR-IOV PF data structures on PF.
  * @gt: the &xe_gt to initialize
@@ -95,7 +115,15 @@ int xe_gt_sriov_pf_init(struct xe_gt *gt)
 	if (err)
 		return err;
 
-	return xe_gt_sriov_pf_migration_init(gt);
+	err = xe_gt_sriov_pf_migration_init(gt);
+	if (err)
+		return err;
+
+	err = pf_init_late(gt);
+	if (err)
+		return err;
+
+	return 0;
 }
 
 static bool pf_needs_enable_ggtt_guest_update(struct xe_device *xe)
-- 
2.47.1


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

* [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
  2025-07-30 17:49 [PATCH 0/3] Misc PF improvements Michal Wajdeczko
  2025-07-30 17:49 ` [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal Michal Wajdeczko
@ 2025-07-30 17:49 ` Michal Wajdeczko
  2025-07-30 21:09   ` Cavitt, Jonathan
  2025-08-01 11:25   ` Piotr Piórkowski
  2025-07-30 17:49 ` [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker Michal Wajdeczko
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 21+ messages in thread
From: Michal Wajdeczko @ 2025-07-30 17:49 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

The PF driver might be resumed just to configure VFs, but since
it is doing some asynchronous GuC reconfigurations after fresh
reset, we should wait until all pending works are completed.

This is especially important in case of LMEM provisioning, since
we also need to update the LMTT and send invalidation requests
to all GuCs, which are expected to be already in the VGT mode.

Fixes: 68ae022278a1 ("drm/xe/pf: Force GuC virtualization mode")
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_gt_sriov_pf.c         | 28 +++++++++++++++++++++
 drivers/gpu/drm/xe/xe_gt_sriov_pf.h         |  1 +
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c |  4 ++-
 drivers/gpu/drm/xe/xe_pci_sriov.c           |  7 +++++-
 drivers/gpu/drm/xe/xe_sriov_pf.c            | 27 ++++++++++++++++++++
 drivers/gpu/drm/xe/xe_sriov_pf.h            |  1 +
 6 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
index 2761319fdc26..8bc7d7f9f47a 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
@@ -16,6 +16,7 @@
 #include "xe_gt_sriov_pf_migration.h"
 #include "xe_gt_sriov_pf_service.h"
 #include "xe_gt_sriov_printk.h"
+#include "xe_guc_submit.h"
 #include "xe_mmio.h"
 #include "xe_pm.h"
 
@@ -258,3 +259,30 @@ void xe_gt_sriov_pf_restart(struct xe_gt *gt)
 {
 	pf_queue_restart(gt);
 }
+
+static bool pf_flush_restart(struct xe_gt *gt)
+{
+	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
+
+	return flush_work(&gt->sriov.pf.workers.restart);
+}
+
+/**
+ * xe_gt_sriov_pf_wait_ready() - Wait until per-GT PF SR-IOV support is ready.
+ * @gt: the &xe_gt
+ *
+ * This function can only be called on PF.
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt)
+{
+	/* don't wait if there is another ongoing reset */
+	if (xe_guc_read_stopped(&gt->uc.guc))
+		return -EBUSY;
+
+	if (pf_flush_restart(gt))
+		xe_gt_sriov_dbg_verbose(gt, "ready after restart\n");
+
+	return 0;
+}
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
index e2b2ff8132dc..e7fde3f9937a 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
@@ -11,6 +11,7 @@ struct xe_gt;
 #ifdef CONFIG_PCI_IOV
 int xe_gt_sriov_pf_init_early(struct xe_gt *gt);
 int xe_gt_sriov_pf_init(struct xe_gt *gt);
+int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt);
 void xe_gt_sriov_pf_init_hw(struct xe_gt *gt);
 void xe_gt_sriov_pf_sanitize_hw(struct xe_gt *gt, unsigned int vfid);
 void xe_gt_sriov_pf_stop_prepare(struct xe_gt *gt);
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
index bf679b21f485..3ed245e04d0c 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
@@ -22,6 +22,7 @@
 #include "xe_gt_sriov_pf_policy.h"
 #include "xe_gt_sriov_pf_service.h"
 #include "xe_pm.h"
+#include "xe_sriov_pf.h"
 
 /*
  *      /sys/kernel/debug/dri/0/
@@ -205,7 +206,8 @@ static int CONFIG##_set(void *data, u64 val)					\
 		return -EOVERFLOW;						\
 										\
 	xe_pm_runtime_get(xe);							\
-	err = xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
+	err = xe_sriov_pf_wait_ready(xe) ?:					\
+	      xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
 	xe_pm_runtime_put(xe);							\
 										\
 	return err;								\
diff --git a/drivers/gpu/drm/xe/xe_pci_sriov.c b/drivers/gpu/drm/xe/xe_pci_sriov.c
index 27b148eab49c..af05db07162e 100644
--- a/drivers/gpu/drm/xe/xe_pci_sriov.c
+++ b/drivers/gpu/drm/xe/xe_pci_sriov.c
@@ -16,6 +16,7 @@
 #include "xe_pci_sriov.h"
 #include "xe_pm.h"
 #include "xe_sriov.h"
+#include "xe_sriov_pf.h"
 #include "xe_sriov_pf_helpers.h"
 #include "xe_sriov_printk.h"
 
@@ -154,6 +155,10 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
 	xe_assert(xe, num_vfs <= total_vfs);
 	xe_sriov_dbg(xe, "enabling %u VF%s\n", num_vfs, str_plural(num_vfs));
 
+	err = xe_sriov_pf_wait_ready(xe);
+	if (err)
+		goto out;
+
 	/*
 	 * We must hold additional reference to the runtime PM to keep PF in D0
 	 * during VFs lifetime, as our VFs do not implement the PM capability.
@@ -191,7 +196,7 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
 failed:
 	pf_unprovision_vfs(xe, num_vfs);
 	xe_pm_runtime_put(xe);
-
+out:
 	xe_sriov_notice(xe, "Failed to enable %u VF%s (%pe)\n",
 			num_vfs, str_plural(num_vfs), ERR_PTR(err));
 	return err;
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
index afbdd894bd6e..7e8f3d3ac656 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
@@ -9,6 +9,7 @@
 
 #include "xe_assert.h"
 #include "xe_device.h"
+#include "xe_gt_sriov_pf.h"
 #include "xe_module.h"
 #include "xe_sriov.h"
 #include "xe_sriov_pf.h"
@@ -102,6 +103,32 @@ int xe_sriov_pf_init_early(struct xe_device *xe)
 	return 0;
 }
 
+/**
+ * xe_sriov_pf_wait_ready() - Wait until PF is ready to operate.
+ * @xe: the &xe_device to test
+ *
+ * This function can only be called on PF.
+ *
+ * Return: 0 on success or a negative error code on failure.
+ */
+int xe_sriov_pf_wait_ready(struct xe_device *xe)
+{
+	struct xe_gt *gt;
+	unsigned int id;
+	int err = 0;
+
+	if (xe_device_wedged(xe))
+		return -ECANCELED;
+
+	for_each_gt(gt, xe, id) {
+		err = xe_gt_sriov_pf_wait_ready(gt);
+		if (err)
+			break;
+	}
+
+	return err;
+}
+
 /**
  * xe_sriov_pf_print_vfs_summary - Print SR-IOV PF information.
  * @xe: the &xe_device to print info from
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.h b/drivers/gpu/drm/xe/xe_sriov_pf.h
index c392c3fcf085..e3b34f8f5e04 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.h
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.h
@@ -15,6 +15,7 @@ struct xe_device;
 #ifdef CONFIG_PCI_IOV
 bool xe_sriov_pf_readiness(struct xe_device *xe);
 int xe_sriov_pf_init_early(struct xe_device *xe);
+int xe_sriov_pf_wait_ready(struct xe_device *xe);
 void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root);
 void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p);
 #else
-- 
2.47.1


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

* [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
  2025-07-30 17:49 [PATCH 0/3] Misc PF improvements Michal Wajdeczko
  2025-07-30 17:49 ` [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal Michal Wajdeczko
  2025-07-30 17:49 ` [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs Michal Wajdeczko
@ 2025-07-30 17:49 ` Michal Wajdeczko
  2025-07-30 21:10   ` Cavitt, Jonathan
  2025-08-01 14:04   ` Piotr Piórkowski
  2025-07-30 19:12 ` ✓ CI.KUnit: success for Misc PF improvements Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 21+ messages in thread
From: Michal Wajdeczko @ 2025-07-30 17:49 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

The PF's restart worker shouldn't attempt to resume the device on
its own, since its goal is to finish PF and VFs reprovisioning on
the recently reset GuC. Take extra RPM reference while scheduling
a work and release it from the worker or when we cancel a work.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
index 8bc7d7f9f47a..0c9012fb625d 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
@@ -53,7 +53,11 @@ static void pf_init_workers(struct xe_gt *gt)
 
 static void pf_fini_workers(struct xe_gt *gt)
 {
-	disable_work_sync(&gt->sriov.pf.workers.restart);
+	if (disable_work_sync(&gt->sriov.pf.workers.restart)) {
+		xe_gt_sriov_dbg_verbose(gt, "pending restart disabled!\n");
+		/* release a rpm reference taken on the worker behalf */
+		xe_pm_runtime_put(gt_to_xe(gt));
+	}
 }
 
 /**
@@ -205,8 +209,11 @@ static void pf_cancel_restart(struct xe_gt *gt)
 {
 	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
 
-	if (cancel_work_sync(&gt->sriov.pf.workers.restart))
+	if (cancel_work_sync(&gt->sriov.pf.workers.restart)) {
 		xe_gt_sriov_dbg_verbose(gt, "pending restart canceled!\n");
+		/* release a rpm reference taken on the worker behalf */
+		xe_pm_runtime_put(gt_to_xe(gt));
+	}
 }
 
 /**
@@ -224,9 +231,12 @@ static void pf_restart(struct xe_gt *gt)
 {
 	struct xe_device *xe = gt_to_xe(gt);
 
-	xe_pm_runtime_get(xe);
+	xe_gt_assert(gt, !xe_pm_runtime_suspended(xe));
+
 	xe_gt_sriov_pf_config_restart(gt);
 	xe_gt_sriov_pf_control_restart(gt);
+
+	/* release a rpm reference taken on our behalf */
 	xe_pm_runtime_put(xe);
 
 	xe_gt_sriov_dbg(gt, "restart completed\n");
@@ -245,8 +255,13 @@ static void pf_queue_restart(struct xe_gt *gt)
 
 	xe_gt_assert(gt, IS_SRIOV_PF(xe));
 
-	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart))
+	/* take a rpm reference on behalf of the worker */
+	xe_pm_runtime_get_noresume(xe);
+
+	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart)) {
 		xe_gt_sriov_dbg(gt, "restart already in queue!\n");
+		xe_pm_runtime_put(xe);
+	}
 }
 
 /**
-- 
2.47.1


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

* ✓ CI.KUnit: success for Misc PF improvements
  2025-07-30 17:49 [PATCH 0/3] Misc PF improvements Michal Wajdeczko
                   ` (2 preceding siblings ...)
  2025-07-30 17:49 ` [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker Michal Wajdeczko
@ 2025-07-30 19:12 ` Patchwork
  2025-07-30 20:14 ` ✓ Xe.CI.BAT: " Patchwork
  2025-07-30 21:29 ` ✓ Xe.CI.Full: " Patchwork
  5 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2025-07-30 19:12 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: Misc PF improvements
URL   : https://patchwork.freedesktop.org/series/152303/
State : success

== Summary ==

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

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

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

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



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

* ✓ Xe.CI.BAT: success for Misc PF improvements
  2025-07-30 17:49 [PATCH 0/3] Misc PF improvements Michal Wajdeczko
                   ` (3 preceding siblings ...)
  2025-07-30 19:12 ` ✓ CI.KUnit: success for Misc PF improvements Patchwork
@ 2025-07-30 20:14 ` Patchwork
  2025-07-30 21:29 ` ✓ Xe.CI.Full: " Patchwork
  5 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2025-07-30 20:14 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: Misc PF improvements
URL   : https://patchwork.freedesktop.org/series/152303/
State : success

== Summary ==

CI Bug Log - changes from xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796_BAT -> xe-pw-152303v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (8 -> 7)
------------------------------

  Missing    (1): bat-adlp-vm 

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

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

### IGT changes ###

#### Possible fixes ####

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - bat-adlp-7:         [DMESG-WARN][1] ([Intel XE#4543]) -> [PASS][2] +1 other test pass
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank.html

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


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

  * IGT: IGT_8478 -> IGT_8479
  * Linux: xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796 -> xe-pw-152303v1

  IGT_8478: 3e7c2bd685397f852853878aef4d9c1e4889a28b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8479: 5fea7ca6493415ce108231b0ff29f02d293f9aa6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796: e1805ad9a7175457902ae453ea67b76194e7d796
  xe-pw-152303v1: 152303v1

== Logs ==

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

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

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

* RE: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
  2025-07-30 17:49 ` [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal Michal Wajdeczko
@ 2025-07-30 21:08   ` Cavitt, Jonathan
  2025-07-30 21:34     ` Michal Wajdeczko
  2025-08-01 10:23   ` Piotr Piórkowski
  1 sibling, 1 reply; 21+ messages in thread
From: Cavitt, Jonathan @ 2025-07-30 21:08 UTC (permalink / raw)
  To: Wajdeczko, Michal, intel-xe@lists.freedesktop.org
  Cc: Wajdeczko, Michal, Cavitt, Jonathan

-----Original Message-----
From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
Sent: Wednesday, July 30, 2025 10:49 AM
To: intel-xe@lists.freedesktop.org
Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
Subject: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
> 
> We can't let restart worker run once device is removed, since other
> data that it might want to access could be already released.
> Explicitly disable worker as part of device cleanup action.
> 
> Fixes: a4d1c5d0b99b ("drm/xe/pf: Move VFs reprovisioning to worker")
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 30 ++++++++++++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> index 35489fa81825..2761319fdc26 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> @@ -50,6 +50,11 @@ static void pf_init_workers(struct xe_gt *gt)
>  	INIT_WORK(&gt->sriov.pf.workers.restart, pf_worker_restart_func);
>  }
>  
> +static void pf_fini_workers(struct xe_gt *gt)
> +{
> +	disable_work_sync(&gt->sriov.pf.workers.restart);
> +}
> +
>  /**
>   * xe_gt_sriov_pf_init_early - Prepare SR-IOV PF data structures on PF.
>   * @gt: the &xe_gt to initialize
> @@ -79,6 +84,21 @@ int xe_gt_sriov_pf_init_early(struct xe_gt *gt)
>  	return 0;
>  }
>  
> +static void pf_fini_action(void *arg)
> +{
> +	struct xe_gt *gt = arg;
> +
> +	pf_fini_workers(gt);
> +}
> +
> +static int pf_init_late(struct xe_gt *gt)
> +{
> +	struct xe_device *xe = gt_to_xe(gt);
> +
> +	xe_gt_assert(gt, IS_SRIOV_PF(xe));
> +	return devm_add_action_or_reset(xe->drm.dev, pf_fini_action, gt);
> +}
> +
>  /**
>   * xe_gt_sriov_pf_init - Prepare SR-IOV PF data structures on PF.
>   * @gt: the &xe_gt to initialize
> @@ -95,7 +115,15 @@ int xe_gt_sriov_pf_init(struct xe_gt *gt)
>  	if (err)
>  		return err;
>  
> -	return xe_gt_sriov_pf_migration_init(gt);
> +	err = xe_gt_sriov_pf_migration_init(gt);
> +	if (err)
> +		return err;
> +
> +	err = pf_init_late(gt);
> +	if (err)
> +		return err;

Everything else looks okay, but I don't think this conditional branch is necessary.
I think we can just return err here unconditionally, as if we fail this branch, err
would equal zero anyway, which is what we'd want to return.

With that change:
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
-Jonathan Cavitt

> +
> +	return 0;
>  }
>  
>  static bool pf_needs_enable_ggtt_guest_update(struct xe_device *xe)
> -- 
> 2.47.1
> 
> 

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

* RE: [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
  2025-07-30 17:49 ` [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs Michal Wajdeczko
@ 2025-07-30 21:09   ` Cavitt, Jonathan
  2025-07-30 21:44     ` Michal Wajdeczko
  2025-08-01 11:25   ` Piotr Piórkowski
  1 sibling, 1 reply; 21+ messages in thread
From: Cavitt, Jonathan @ 2025-07-30 21:09 UTC (permalink / raw)
  To: Wajdeczko, Michal, intel-xe@lists.freedesktop.org
  Cc: Wajdeczko, Michal, Cavitt, Jonathan

-----Original Message-----
From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
Sent: Wednesday, July 30, 2025 10:49 AM
To: intel-xe@lists.freedesktop.org
Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
Subject: [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
> 
> The PF driver might be resumed just to configure VFs, but since
> it is doing some asynchronous GuC reconfigurations after fresh
> reset, we should wait until all pending works are completed.
> 
> This is especially important in case of LMEM provisioning, since
> we also need to update the LMTT and send invalidation requests
> to all GuCs, which are expected to be already in the VGT mode.
> 
> Fixes: 68ae022278a1 ("drm/xe/pf: Force GuC virtualization mode")
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c         | 28 +++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.h         |  1 +
>  drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c |  4 ++-
>  drivers/gpu/drm/xe/xe_pci_sriov.c           |  7 +++++-
>  drivers/gpu/drm/xe/xe_sriov_pf.c            | 27 ++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_sriov_pf.h            |  1 +
>  6 files changed, 66 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> index 2761319fdc26..8bc7d7f9f47a 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> @@ -16,6 +16,7 @@
>  #include "xe_gt_sriov_pf_migration.h"
>  #include "xe_gt_sriov_pf_service.h"
>  #include "xe_gt_sriov_printk.h"
> +#include "xe_guc_submit.h"
>  #include "xe_mmio.h"
>  #include "xe_pm.h"
>  
> @@ -258,3 +259,30 @@ void xe_gt_sriov_pf_restart(struct xe_gt *gt)
>  {
>  	pf_queue_restart(gt);
>  }
> +
> +static bool pf_flush_restart(struct xe_gt *gt)
> +{
> +	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt))); 

Asserting here seems unnecessary.  If we're certain that the pf functions
will never be called in a non-pf context, then we probably don't need to
assert the system is in sriov-pf mode here.  And if we aren't certain of this,
it probably makes more sense to put the assertion in
xe_gt_sriov_pf_wait_ready instead, or to have a separate return path instead
of breaking instantly.

Unless the system can exit sriov-pf mode in the middle of execution?  I don't
think that's a possibility, though.

The assertion by itself isn't harmful if we're assuming the system would never
hit the assertion in a non-sriov-pf context, though, so I won't block on it's
removal.  Though a justification would do well here, if only for my sake.

Everything else is
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
-Jonathan Cavitt

> +
> +	return flush_work(&gt->sriov.pf.workers.restart);
> +}
> +
> +/**
> + * xe_gt_sriov_pf_wait_ready() - Wait until per-GT PF SR-IOV support is ready.
> + * @gt: the &xe_gt
> + *
> + * This function can only be called on PF.
> + *
> + * Return: 0 on success or a negative error code on failure.
> + */
> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt)
> +{
> +	/* don't wait if there is another ongoing reset */
> +	if (xe_guc_read_stopped(&gt->uc.guc))
> +		return -EBUSY;
> +
> +	if (pf_flush_restart(gt))
> +		xe_gt_sriov_dbg_verbose(gt, "ready after restart\n");
> +
> +	return 0;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> index e2b2ff8132dc..e7fde3f9937a 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> @@ -11,6 +11,7 @@ struct xe_gt;
>  #ifdef CONFIG_PCI_IOV
>  int xe_gt_sriov_pf_init_early(struct xe_gt *gt);
>  int xe_gt_sriov_pf_init(struct xe_gt *gt);
> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt);
>  void xe_gt_sriov_pf_init_hw(struct xe_gt *gt);
>  void xe_gt_sriov_pf_sanitize_hw(struct xe_gt *gt, unsigned int vfid);
>  void xe_gt_sriov_pf_stop_prepare(struct xe_gt *gt);
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> index bf679b21f485..3ed245e04d0c 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> @@ -22,6 +22,7 @@
>  #include "xe_gt_sriov_pf_policy.h"
>  #include "xe_gt_sriov_pf_service.h"
>  #include "xe_pm.h"
> +#include "xe_sriov_pf.h"
>  
>  /*
>   *      /sys/kernel/debug/dri/0/
> @@ -205,7 +206,8 @@ static int CONFIG##_set(void *data, u64 val)					\
>  		return -EOVERFLOW;						\
>  										\
>  	xe_pm_runtime_get(xe);							\
> -	err = xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
> +	err = xe_sriov_pf_wait_ready(xe) ?:					\
> +	      xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
>  	xe_pm_runtime_put(xe);							\
>  										\
>  	return err;								\
> diff --git a/drivers/gpu/drm/xe/xe_pci_sriov.c b/drivers/gpu/drm/xe/xe_pci_sriov.c
> index 27b148eab49c..af05db07162e 100644
> --- a/drivers/gpu/drm/xe/xe_pci_sriov.c
> +++ b/drivers/gpu/drm/xe/xe_pci_sriov.c
> @@ -16,6 +16,7 @@
>  #include "xe_pci_sriov.h"
>  #include "xe_pm.h"
>  #include "xe_sriov.h"
> +#include "xe_sriov_pf.h"
>  #include "xe_sriov_pf_helpers.h"
>  #include "xe_sriov_printk.h"
>  
> @@ -154,6 +155,10 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
>  	xe_assert(xe, num_vfs <= total_vfs);
>  	xe_sriov_dbg(xe, "enabling %u VF%s\n", num_vfs, str_plural(num_vfs));
>  
> +	err = xe_sriov_pf_wait_ready(xe);
> +	if (err)
> +		goto out;
> +
>  	/*
>  	 * We must hold additional reference to the runtime PM to keep PF in D0
>  	 * during VFs lifetime, as our VFs do not implement the PM capability.
> @@ -191,7 +196,7 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
>  failed:
>  	pf_unprovision_vfs(xe, num_vfs);
>  	xe_pm_runtime_put(xe);
> -
> +out:
>  	xe_sriov_notice(xe, "Failed to enable %u VF%s (%pe)\n",
>  			num_vfs, str_plural(num_vfs), ERR_PTR(err));
>  	return err;
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
> index afbdd894bd6e..7e8f3d3ac656 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
> @@ -9,6 +9,7 @@
>  
>  #include "xe_assert.h"
>  #include "xe_device.h"
> +#include "xe_gt_sriov_pf.h"
>  #include "xe_module.h"
>  #include "xe_sriov.h"
>  #include "xe_sriov_pf.h"
> @@ -102,6 +103,32 @@ int xe_sriov_pf_init_early(struct xe_device *xe)
>  	return 0;
>  }
>  
> +/**
> + * xe_sriov_pf_wait_ready() - Wait until PF is ready to operate.
> + * @xe: the &xe_device to test
> + *
> + * This function can only be called on PF.
> + *
> + * Return: 0 on success or a negative error code on failure.
> + */
> +int xe_sriov_pf_wait_ready(struct xe_device *xe)
> +{
> +	struct xe_gt *gt;
> +	unsigned int id;
> +	int err = 0;
> +
> +	if (xe_device_wedged(xe))
> +		return -ECANCELED;
> +
> +	for_each_gt(gt, xe, id) {
> +		err = xe_gt_sriov_pf_wait_ready(gt);
> +		if (err)
> +			break;
> +	}
> +
> +	return err;
> +}
> +
>  /**
>   * xe_sriov_pf_print_vfs_summary - Print SR-IOV PF information.
>   * @xe: the &xe_device to print info from
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.h b/drivers/gpu/drm/xe/xe_sriov_pf.h
> index c392c3fcf085..e3b34f8f5e04 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf.h
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.h
> @@ -15,6 +15,7 @@ struct xe_device;
>  #ifdef CONFIG_PCI_IOV
>  bool xe_sriov_pf_readiness(struct xe_device *xe);
>  int xe_sriov_pf_init_early(struct xe_device *xe);
> +int xe_sriov_pf_wait_ready(struct xe_device *xe);
>  void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root);
>  void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p);
>  #else
> -- 
> 2.47.1
> 
> 

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

* RE: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
  2025-07-30 17:49 ` [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker Michal Wajdeczko
@ 2025-07-30 21:10   ` Cavitt, Jonathan
  2025-07-30 21:48     ` Michal Wajdeczko
  2025-08-01 14:04   ` Piotr Piórkowski
  1 sibling, 1 reply; 21+ messages in thread
From: Cavitt, Jonathan @ 2025-07-30 21:10 UTC (permalink / raw)
  To: Wajdeczko, Michal, intel-xe@lists.freedesktop.org
  Cc: Wajdeczko, Michal, Cavitt, Jonathan

-----Original Message-----
From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
Sent: Wednesday, July 30, 2025 10:49 AM
To: intel-xe@lists.freedesktop.org
Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
Subject: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
> 
> The PF's restart worker shouldn't attempt to resume the device on
> its own, since its goal is to finish PF and VFs reprovisioning on
> the recently reset GuC. Take extra RPM reference while scheduling
> a work and release it from the worker or when we cancel a work.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 23 +++++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> index 8bc7d7f9f47a..0c9012fb625d 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> @@ -53,7 +53,11 @@ static void pf_init_workers(struct xe_gt *gt)
>  
>  static void pf_fini_workers(struct xe_gt *gt)
>  {
> -	disable_work_sync(&gt->sriov.pf.workers.restart);
> +	if (disable_work_sync(&gt->sriov.pf.workers.restart)) {
> +		xe_gt_sriov_dbg_verbose(gt, "pending restart disabled!\n");
> +		/* release a rpm reference taken on the worker behalf */
> +		xe_pm_runtime_put(gt_to_xe(gt));
> +	}
>  }
>  
>  /**
> @@ -205,8 +209,11 @@ static void pf_cancel_restart(struct xe_gt *gt)
>  {
>  	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
>  
> -	if (cancel_work_sync(&gt->sriov.pf.workers.restart))
> +	if (cancel_work_sync(&gt->sriov.pf.workers.restart)) {
>  		xe_gt_sriov_dbg_verbose(gt, "pending restart canceled!\n");
> +		/* release a rpm reference taken on the worker behalf */
> +		xe_pm_runtime_put(gt_to_xe(gt));
> +	}
>  }
>  
>  /**
> @@ -224,9 +231,12 @@ static void pf_restart(struct xe_gt *gt)
>  {
>  	struct xe_device *xe = gt_to_xe(gt);
>  
> -	xe_pm_runtime_get(xe);
> +	xe_gt_assert(gt, !xe_pm_runtime_suspended(xe));
> +
>  	xe_gt_sriov_pf_config_restart(gt);
>  	xe_gt_sriov_pf_control_restart(gt);
> +
> +	/* release a rpm reference taken on our behalf */

NIT:
For consistency with the other two comments, maybe:
s/our/the worker
Or is the pm reference taken in this instance different from the pm reference
taken in pf_cancel_restart and pf_fini_workers?

There're also some other minor grammar things ("s/a rpm/an rpm" and 
"s/worker behalf/worker's behalf", for example) that can be applied more
generally to the whole patch.

I'm not going to block on minor grammatical fixups, though, so:
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
-Jonathan Cavitt

>  	xe_pm_runtime_put(xe);
>  
>  	xe_gt_sriov_dbg(gt, "restart completed\n");
> @@ -245,8 +255,13 @@ static void pf_queue_restart(struct xe_gt *gt)
>  
>  	xe_gt_assert(gt, IS_SRIOV_PF(xe));
>  
> -	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart))
> +	/* take a rpm reference on behalf of the worker */
> +	xe_pm_runtime_get_noresume(xe);
> +
> +	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart)) {
>  		xe_gt_sriov_dbg(gt, "restart already in queue!\n");
> +		xe_pm_runtime_put(xe);
> +	}
>  }
>  
>  /**
> -- 
> 2.47.1
> 
> 

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

* ✓ Xe.CI.Full: success for Misc PF improvements
  2025-07-30 17:49 [PATCH 0/3] Misc PF improvements Michal Wajdeczko
                   ` (4 preceding siblings ...)
  2025-07-30 20:14 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-07-30 21:29 ` Patchwork
  5 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2025-07-30 21:29 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: Misc PF improvements
URL   : https://patchwork.freedesktop.org/series/152303/
State : success

== Summary ==

CI Bug Log - changes from xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796_FULL -> xe-pw-152303v1_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@hotreplug:
    - shard-bmg:          [PASS][1] -> [SKIP][2] ([Intel XE#4963]) +1 other test skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@core_hotunplug@hotreplug.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@core_hotunplug@hotreplug.html

  * igt@fbdev@nullptr:
    - shard-bmg:          [PASS][3] -> [SKIP][4] ([Intel XE#2134]) +1 other test skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-1/igt@fbdev@nullptr.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@fbdev@nullptr.html

  * igt@fbdev@read:
    - shard-dg2-set2:     [PASS][5] -> [SKIP][6] ([Intel XE#2134])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-433/igt@fbdev@read.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@fbdev@read.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1:
    - shard-lnl:          [PASS][7] -> [FAIL][8] ([Intel XE#911]) +3 other tests fail
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html

  * igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1:
    - shard-adlp:         [PASS][9] -> [FAIL][10] ([Intel XE#3884]) +1 other test fail
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-4/igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1.html

  * igt@kms_atomic_interruptible@legacy-pageflip:
    - shard-dg2-set2:     [PASS][11] -> [SKIP][12] ([Intel XE#4208] / [i915#2575]) +6 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-433/igt@kms_atomic_interruptible@legacy-pageflip.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_atomic_interruptible@legacy-pageflip.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-dg2-set2:     NOTRUN -> [SKIP][13] ([Intel XE#316])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-464/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
    - shard-lnl:          NOTRUN -> [SKIP][14] ([Intel XE#1407])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-adlp:         NOTRUN -> [SKIP][15] ([Intel XE#1124]) +5 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_big_fb@linear-16bpp-rotate-180:
    - shard-bmg:          [PASS][16] -> [SKIP][17] ([Intel XE#4947]) +23 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_big_fb@linear-16bpp-rotate-180.html
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_big_fb@linear-16bpp-rotate-180.html

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

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-adlp:         [PASS][19] -> [DMESG-FAIL][20] ([Intel XE#4543]) +8 other tests dmesg-fail
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-1/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-8/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

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

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-adlp:         NOTRUN -> [DMESG-FAIL][22] ([Intel XE#4543]) +1 other test dmesg-fail
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][23] ([Intel XE#1124]) +3 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-432/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-adlp:         NOTRUN -> [SKIP][24] ([Intel XE#607])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][25] ([Intel XE#607])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-463/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
    - shard-lnl:          NOTRUN -> [SKIP][26] ([Intel XE#1477])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-4/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#1124])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-4/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p:
    - shard-adlp:         NOTRUN -> [SKIP][28] ([Intel XE#2191])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-2/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][29] ([Intel XE#2191])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-435/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#4950]) +4 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html
    - shard-lnl:          NOTRUN -> [SKIP][31] ([Intel XE#2191]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-8/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html

  * igt@kms_bw@linear-tiling-1-displays-2560x1440p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][32] ([Intel XE#367]) +1 other test skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-463/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html

  * igt@kms_ccs@bad-pixel-format-yf-tiled-ccs:
    - shard-lnl:          NOTRUN -> [SKIP][33] ([Intel XE#2887]) +5 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-8/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][34] ([Intel XE#787]) +20 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#2887]) +1 other test skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs@pipe-b-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#2652] / [Intel XE#787]) +7 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs@pipe-b-dp-2.html

  * igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][37] ([Intel XE#455] / [Intel XE#787]) +13 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-2/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-mc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-adlp:         NOTRUN -> [SKIP][38] ([Intel XE#2907])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][39] ([Intel XE#2907])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-436/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][40] ([Intel XE#787]) +153 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-435/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-6.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-dp-2:
    - shard-dg2-set2:     NOTRUN -> [SKIP][41] ([Intel XE#455] / [Intel XE#787]) +29 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-dp-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-dg2-set2:     [PASS][42] -> [INCOMPLETE][43] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][44] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][45] ([Intel XE#2705] / [Intel XE#4212])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-dp-4.html

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

  * igt@kms_chamelium_audio@hdmi-audio-edid:
    - shard-adlp:         NOTRUN -> [SKIP][47] ([Intel XE#373]) +6 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-6/igt@kms_chamelium_audio@hdmi-audio-edid.html

  * igt@kms_chamelium_edid@dp-edid-stress-resolution-4k:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#2252]) +1 other test skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html

  * igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe:
    - shard-dg2-set2:     NOTRUN -> [SKIP][49] ([Intel XE#373]) +9 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-434/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html
    - shard-lnl:          NOTRUN -> [SKIP][50] ([Intel XE#373]) +7 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-7/igt@kms_chamelium_hpd@hdmi-hpd-for-each-pipe.html

  * igt@kms_content_protection@mei-interface:
    - shard-lnl:          NOTRUN -> [SKIP][51] ([Intel XE#1468])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][52] ([Intel XE#1178]) +2 other tests fail
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-436/igt@kms_content_protection@srm@pipe-a-dp-4.html

  * igt@kms_content_protection@type1:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#2341])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_content_protection@type1.html
    - shard-lnl:          NOTRUN -> [SKIP][54] ([Intel XE#3278])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-3/igt@kms_content_protection@type1.html

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

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-adlp:         NOTRUN -> [SKIP][56] ([Intel XE#308])
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-lnl:          NOTRUN -> [SKIP][57] ([Intel XE#1424])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-bmg:          [PASS][58] -> [SKIP][59] ([Intel XE#2291]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-adlp:         NOTRUN -> [SKIP][60] ([Intel XE#309])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-dg2-set2:     NOTRUN -> [SKIP][61] ([Intel XE#323])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-435/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-lnl:          NOTRUN -> [SKIP][62] ([Intel XE#323])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-adlp:         NOTRUN -> [SKIP][63] ([Intel XE#323])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [SKIP][64] ([Intel XE#1340])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-adlp:         NOTRUN -> [SKIP][65] ([Intel XE#776])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-2/igt@kms_fbcon_fbt@psr-suspend.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][66] ([Intel XE#776])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-435/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
    - shard-bmg:          [PASS][67] -> [SKIP][68] ([Intel XE#2316]) +5 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-lnl:          NOTRUN -> [SKIP][69] ([Intel XE#1421]) +1 other test skip
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-5/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-flip-vs-panning-vs-hang:
    - shard-adlp:         NOTRUN -> [SKIP][70] ([Intel XE#310]) +1 other test skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@kms_flip@2x-flip-vs-panning-vs-hang.html

  * igt@kms_flip@2x-nonexisting-fb:
    - shard-bmg:          [PASS][71] -> [SKIP][72] ([Intel XE#4950]) +85 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@kms_flip@2x-nonexisting-fb.html
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_flip@2x-nonexisting-fb.html

  * igt@kms_flip@basic-flip-vs-dpms@c-hdmi-a1:
    - shard-adlp:         [PASS][73] -> [DMESG-WARN][74] ([Intel XE#4543]) +6 other tests dmesg-warn
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-9/igt@kms_flip@basic-flip-vs-dpms@c-hdmi-a1.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-8/igt@kms_flip@basic-flip-vs-dpms@c-hdmi-a1.html

  * igt@kms_flip@bo-too-big-interruptible@a-edp1:
    - shard-lnl:          NOTRUN -> [TIMEOUT][75] ([Intel XE#1504]) +1 other test timeout
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@kms_flip@bo-too-big-interruptible@a-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank@c-edp1:
    - shard-lnl:          [PASS][76] -> [FAIL][77] ([Intel XE#301] / [Intel XE#3149]) +1 other test fail
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html

  * igt@kms_flip@plain-flip-interruptible@b-hdmi-a1:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][78] ([Intel XE#4543]) +1 other test dmesg-warn
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@kms_flip@plain-flip-interruptible@b-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling:
    - shard-dg2-set2:     [PASS][79] -> [SKIP][80] ([Intel XE#2351] / [Intel XE#4208]) +1 other test skip
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-436/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling.html
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-lnl:          NOTRUN -> [SKIP][81] ([Intel XE#1401] / [Intel XE#1745])
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-default-mode:
    - shard-lnl:          NOTRUN -> [SKIP][82] ([Intel XE#1401])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][83] ([Intel XE#2293] / [Intel XE#2380])
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

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

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-adlp:         NOTRUN -> [SKIP][85] ([Intel XE#651]) +1 other test skip
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][86] ([Intel XE#651]) +7 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-render:
    - shard-lnl:          NOTRUN -> [SKIP][87] ([Intel XE#651]) +2 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-3/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-render.html

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

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt:
    - shard-adlp:         NOTRUN -> [SKIP][89] ([Intel XE#656]) +12 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-8/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
    - shard-bmg:          NOTRUN -> [SKIP][90] ([Intel XE#5390]) +1 other test skip
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-lnl:          NOTRUN -> [SKIP][91] ([Intel XE#656]) +8 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-shrfb-scaledprimary:
    - shard-bmg:          NOTRUN -> [SKIP][92] ([Intel XE#4947]) +1 other test skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-shrfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-adlp:         NOTRUN -> [SKIP][93] ([Intel XE#653]) +3 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][94] ([Intel XE#653]) +11 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][95] ([Intel XE#2312])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-msflip-blt.html

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

  * igt@kms_hdr@invalid-hdr:
    - shard-dg2-set2:     [PASS][97] -> [SKIP][98] ([Intel XE#455])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-463/igt@kms_hdr@invalid-hdr.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-436/igt@kms_hdr@invalid-hdr.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-adlp:         NOTRUN -> [SKIP][99] ([Intel XE#2925])
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][100] ([Intel XE#4090])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][101] ([Intel XE#2925])
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-466/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-lnl:          NOTRUN -> [SKIP][102] ([Intel XE#2925])
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_lease@lease-uevent:
    - shard-adlp:         [PASS][103] -> [DMESG-WARN][104] ([Intel XE#2953] / [Intel XE#4173]) +4 other tests dmesg-warn
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-4/igt@kms_lease@lease-uevent.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@kms_lease@lease-uevent.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-bmg:          [PASS][105] -> [SKIP][106] ([Intel XE#4596])
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_plane_multiple@2x-tiling-none.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_plane_multiple@tiling-4:
    - shard-adlp:         NOTRUN -> [SKIP][107] ([Intel XE#5020])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-8/igt@kms_plane_multiple@tiling-4.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a:
    - shard-bmg:          NOTRUN -> [SKIP][108] ([Intel XE#2763]) +3 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-dg2-set2:     NOTRUN -> [SKIP][109] ([Intel XE#870])
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-463/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_dc@dc5-dpms-negative:
    - shard-lnl:          NOTRUN -> [SKIP][110] ([Intel XE#1131])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-4/igt@kms_pm_dc@dc5-dpms-negative.html

  * igt@kms_pm_rpm@drm-resources-equal:
    - shard-bmg:          NOTRUN -> [SKIP][111] ([Intel XE#4962])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_pm_rpm@drm-resources-equal.html

  * igt@kms_pm_rpm@legacy-planes:
    - shard-bmg:          [PASS][112] -> [SKIP][113] ([Intel XE#4962])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-8/igt@kms_pm_rpm@legacy-planes.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_pm_rpm@legacy-planes.html

  * igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area:
    - shard-lnl:          NOTRUN -> [SKIP][114] ([Intel XE#2893])
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@kms_psr2_sf@fbc-pr-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][115] ([Intel XE#4608])
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][116] ([Intel XE#1489]) +3 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-463/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-adlp:         NOTRUN -> [SKIP][117] ([Intel XE#1489]) +4 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-8/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr@fbc-pr-dpms:
    - shard-lnl:          NOTRUN -> [SKIP][118] ([Intel XE#1406]) +1 other test skip
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-4/igt@kms_psr@fbc-pr-dpms.html

  * igt@kms_psr@fbc-psr2-sprite-plane-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][119] ([Intel XE#2850] / [Intel XE#929]) +6 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-434/igt@kms_psr@fbc-psr2-sprite-plane-move.html

  * igt@kms_psr@psr-cursor-plane-onoff:
    - shard-adlp:         NOTRUN -> [SKIP][120] ([Intel XE#2850] / [Intel XE#929]) +4 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-2/igt@kms_psr@psr-cursor-plane-onoff.html

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

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-adlp:         NOTRUN -> [SKIP][122] ([Intel XE#3414])
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-4/igt@kms_rotation_crc@primary-rotation-270.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][123] ([Intel XE#3414]) +1 other test skip
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-466/igt@kms_rotation_crc@primary-rotation-270.html
    - shard-lnl:          NOTRUN -> [SKIP][124] ([Intel XE#3414] / [Intel XE#3904])
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-x-tiled-reflect-x-180:
    - shard-lnl:          NOTRUN -> [FAIL][125] ([Intel XE#4689])
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@kms_rotation_crc@primary-x-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][126] ([Intel XE#1127])
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-463/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-adlp:         NOTRUN -> [SKIP][127] ([Intel XE#362])
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@kms_tiled_display@basic-test-pattern.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][128] ([Intel XE#362])
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html
    - shard-lnl:          NOTRUN -> [SKIP][129] ([Intel XE#362])
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vrr@flip-suspend:
    - shard-adlp:         NOTRUN -> [SKIP][130] ([Intel XE#455]) +6 other tests skip
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-6/igt@kms_vrr@flip-suspend.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][131] ([Intel XE#455]) +6 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-464/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@lobf:
    - shard-adlp:         NOTRUN -> [SKIP][132] ([Intel XE#2168])
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-4/igt@kms_vrr@lobf.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][133] ([Intel XE#2168])
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-436/igt@kms_vrr@lobf.html
    - shard-lnl:          NOTRUN -> [SKIP][134] ([Intel XE#1499])
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@kms_vrr@lobf.html

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

  * igt@xe_configfs@survivability-mode:
    - shard-dg2-set2:     NOTRUN -> [SKIP][136] ([Intel XE#5249])
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_configfs@survivability-mode.html
    - shard-lnl:          NOTRUN -> [SKIP][137] ([Intel XE#5249])
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@xe_configfs@survivability-mode.html
    - shard-adlp:         NOTRUN -> [SKIP][138] ([Intel XE#5249])
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@xe_configfs@survivability-mode.html

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

  * igt@xe_eudebug@vma-ufence-faultable:
    - shard-dg2-set2:     NOTRUN -> [SKIP][140] ([Intel XE#4837]) +5 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-432/igt@xe_eudebug@vma-ufence-faultable.html
    - shard-lnl:          NOTRUN -> [SKIP][141] ([Intel XE#4837]) +2 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-3/igt@xe_eudebug@vma-ufence-faultable.html

  * igt@xe_eudebug_online@interrupt-other:
    - shard-adlp:         NOTRUN -> [SKIP][142] ([Intel XE#4837] / [Intel XE#5565]) +4 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@xe_eudebug_online@interrupt-other.html

  * igt@xe_eudebug_sriov@deny-sriov:
    - shard-adlp:         NOTRUN -> [SKIP][143] ([Intel XE#4519])
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-4/igt@xe_eudebug_sriov@deny-sriov.html

  * igt@xe_evict@evict-small-multi-vm:
    - shard-adlp:         NOTRUN -> [SKIP][144] ([Intel XE#261] / [Intel XE#5564] / [Intel XE#688])
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@xe_evict@evict-small-multi-vm.html

  * igt@xe_exec_basic@multigpu-no-exec-basic-defer-bind:
    - shard-bmg:          NOTRUN -> [SKIP][145] ([Intel XE#2322])
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-4/igt@xe_exec_basic@multigpu-no-exec-basic-defer-bind.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind:
    - shard-adlp:         NOTRUN -> [SKIP][146] ([Intel XE#1392] / [Intel XE#5575]) +1 other test skip
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind.html

  * igt@xe_exec_basic@multigpu-once-basic-defer-mmap:
    - shard-dg2-set2:     [PASS][147] -> [SKIP][148] ([Intel XE#4208]) +15 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-433/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_exec_basic@multigpu-once-basic-defer-mmap.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race:
    - shard-lnl:          NOTRUN -> [SKIP][149] ([Intel XE#1392]) +1 other test skip
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race.html

  * igt@xe_exec_basic@multigpu-once-null:
    - shard-dg2-set2:     [PASS][150] -> [SKIP][151] ([Intel XE#1392]) +9 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-436/igt@xe_exec_basic@multigpu-once-null.html
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-432/igt@xe_exec_basic@multigpu-once-null.html

  * igt@xe_exec_fault_mode@many-userptr-invalidate-race-prefetch:
    - shard-adlp:         NOTRUN -> [SKIP][152] ([Intel XE#288] / [Intel XE#5561]) +9 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-8/igt@xe_exec_fault_mode@many-userptr-invalidate-race-prefetch.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][153] ([Intel XE#288]) +12 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-432/igt@xe_exec_fault_mode@many-userptr-invalidate-race-prefetch.html

  * igt@xe_exec_sip_eudebug@breakpoint-writesip-nodebug:
    - shard-bmg:          NOTRUN -> [SKIP][154] ([Intel XE#4837]) +1 other test skip
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@xe_exec_sip_eudebug@breakpoint-writesip-nodebug.html

  * igt@xe_exec_system_allocator@many-large-execqueues-new-race-nomemset:
    - shard-bmg:          [PASS][155] -> [SKIP][156] ([Intel XE#4945]) +461 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@xe_exec_system_allocator@many-large-execqueues-new-race-nomemset.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_exec_system_allocator@many-large-execqueues-new-race-nomemset.html

  * igt@xe_exec_system_allocator@process-many-execqueues-mmap-nomemset:
    - shard-adlp:         NOTRUN -> [SKIP][157] ([Intel XE#4915] / [Intel XE#5560]) +80 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-4/igt@xe_exec_system_allocator@process-many-execqueues-mmap-nomemset.html

  * igt@xe_exec_system_allocator@process-many-mmap-free-race-nomemset:
    - shard-dg2-set2:     NOTRUN -> [SKIP][158] ([Intel XE#4915]) +100 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-436/igt@xe_exec_system_allocator@process-many-mmap-free-race-nomemset.html

  * igt@xe_exec_system_allocator@process-many-stride-mmap-huge:
    - shard-lnl:          NOTRUN -> [SKIP][159] ([Intel XE#4943]) +4 other tests skip
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-5/igt@xe_exec_system_allocator@process-many-stride-mmap-huge.html
    - shard-bmg:          NOTRUN -> [SKIP][160] ([Intel XE#4943])
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@xe_exec_system_allocator@process-many-stride-mmap-huge.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-stride-new-race:
    - shard-bmg:          NOTRUN -> [SKIP][161] ([Intel XE#4945]) +13 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-new-race.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][162] ([Intel XE#5531])
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv.html

  * igt@xe_module_load@reload:
    - shard-bmg:          [PASS][163] -> [FAIL][164] ([Intel XE#5679])
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@xe_module_load@reload.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_module_load@reload.html

  * igt@xe_oa@non-privileged-map-oa-buffer:
    - shard-dg2-set2:     NOTRUN -> [SKIP][165] ([Intel XE#3573]) +1 other test skip
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-464/igt@xe_oa@non-privileged-map-oa-buffer.html

  * igt@xe_oa@privileged-forked-access-vaddr:
    - shard-adlp:         NOTRUN -> [SKIP][166] ([Intel XE#3573]) +3 other tests skip
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-4/igt@xe_oa@privileged-forked-access-vaddr.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][167] ([Intel XE#2838] / [Intel XE#979])
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-464/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq:
    - shard-adlp:         NOTRUN -> [SKIP][168] ([Intel XE#4733] / [Intel XE#5594]) +2 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][169] ([Intel XE#4733]) +1 other test skip
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html

  * igt@xe_query@multigpu-query-engines:
    - shard-dg2-set2:     NOTRUN -> [SKIP][170] ([Intel XE#944]) +1 other test skip
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-463/igt@xe_query@multigpu-query-engines.html

  * igt@xe_query@multigpu-query-gt-list:
    - shard-adlp:         NOTRUN -> [SKIP][171] ([Intel XE#944])
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-4/igt@xe_query@multigpu-query-gt-list.html
    - shard-lnl:          NOTRUN -> [SKIP][172] ([Intel XE#944])
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-2/igt@xe_query@multigpu-query-gt-list.html

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-bmg:          [SKIP][173] ([Intel XE#4963]) -> [PASS][174]
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@core_hotunplug@unbind-rebind.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@core_hotunplug@unbind-rebind.html

  * igt@core_setmaster@master-drop-set-root:
    - shard-bmg:          [FAIL][175] ([Intel XE#4672]) -> [PASS][176]
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@core_setmaster@master-drop-set-root.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@core_setmaster@master-drop-set-root.html

  * igt@fbdev@pan:
    - shard-bmg:          [SKIP][177] ([Intel XE#2134]) -> [PASS][178] +1 other test pass
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@fbdev@pan.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@fbdev@pan.html

  * igt@intel_hwmon@hwmon-write:
    - shard-bmg:          [SKIP][179] -> [PASS][180] +1 other test pass
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@intel_hwmon@hwmon-write.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@intel_hwmon@hwmon-write.html

  * igt@kms_addfb_basic@legacy-format:
    - shard-adlp:         [DMESG-WARN][181] -> [PASS][182] +1 other test pass
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-4/igt@kms_addfb_basic@legacy-format.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@kms_addfb_basic@legacy-format.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-bmg:          [SKIP][183] ([Intel XE#4947]) -> [PASS][184] +20 other tests pass
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-adlp:         [DMESG-FAIL][185] ([Intel XE#4543]) -> [PASS][186] +10 other tests pass
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-3/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     [INCOMPLETE][187] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [PASS][188] +1 other test pass
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [INCOMPLETE][189] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345]) -> [PASS][190]
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
    - shard-bmg:          [SKIP][191] ([Intel XE#2291]) -> [PASS][192] +3 other tests pass
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-bmg:          [FAIL][193] ([Intel XE#4633]) -> [PASS][194]
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-bmg:          [SKIP][195] ([Intel XE#4302]) -> [PASS][196]
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_display_modes@extended-mode-basic.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-4/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible:
    - shard-bmg:          [SKIP][197] ([Intel XE#2316]) -> [PASS][198] +2 other tests pass
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-8/igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-rmfb-interruptible@b-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][199] ([Intel XE#4543]) -> [PASS][200] +16 other tests pass
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible@b-hdmi-a1.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible@b-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-dg2-set2:     [INCOMPLETE][201] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][202] +1 other test pass
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-463/igt@kms_flip@flip-vs-suspend-interruptible.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-464/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling:
    - shard-adlp:         [DMESG-FAIL][203] ([Intel XE#4543] / [Intel XE#4921]) -> [PASS][204] +1 other test pass
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-8/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-bmg:          [SKIP][205] ([Intel XE#1503]) -> [PASS][206]
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_hdr@static-toggle-dpms.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-bmg:          [SKIP][207] ([Intel XE#3012]) -> [PASS][208]
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-modifiers:
    - shard-bmg:          [SKIP][209] ([Intel XE#4950]) -> [PASS][210] +90 other tests pass
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_plane_scaling@plane-upscale-20x20-with-modifiers.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-4/igt@kms_plane_scaling@plane-upscale-20x20-with-modifiers.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-lnl:          [FAIL][211] ([Intel XE#718]) -> [PASS][212] +2 other tests pass
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-lnl-3/igt@kms_pm_dc@dc6-psr.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-1/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-bmg:          [SKIP][213] ([Intel XE#4962]) -> [PASS][214] +1 other test pass
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_vrr@cmrr@pipe-a-edp-1:
    - shard-lnl:          [FAIL][215] ([Intel XE#4459]) -> [PASS][216] +1 other test pass
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-lnl-2/igt@kms_vrr@cmrr@pipe-a-edp-1.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-lnl-5/igt@kms_vrr@cmrr@pipe-a-edp-1.html

  * igt@kms_vrr@negative-basic:
    - shard-bmg:          [SKIP][217] ([Intel XE#1499]) -> [PASS][218]
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_vrr@negative-basic.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_vrr@negative-basic.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue:
    - shard-dg2-set2:     [SKIP][219] ([Intel XE#1392]) -> [PASS][220] +4 other tests pass
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-432/igt@xe_exec_basic@multigpu-once-bindexecqueue.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_exec_basic@multigpu-once-bindexecqueue.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-adlp:         [DMESG-WARN][221] ([Intel XE#3876]) -> [PASS][222]
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-2/igt@xe_exec_reset@parallel-gt-reset.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-9/igt@xe_exec_reset@parallel-gt-reset.html
    - shard-dg2-set2:     [DMESG-WARN][223] ([Intel XE#3876]) -> [PASS][224]
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-436/igt@xe_exec_reset@parallel-gt-reset.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_exec_reset@parallel-gt-reset.html

  * igt@xe_exec_system_allocator@process-many-new-nomemset:
    - shard-bmg:          [SKIP][225] ([Intel XE#4945]) -> [PASS][226] +444 other tests pass
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_exec_system_allocator@process-many-new-nomemset.html
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@xe_exec_system_allocator@process-many-new-nomemset.html

  * igt@xe_live_ktest@xe_bo:
    - shard-bmg:          [SKIP][227] ([Intel XE#2229]) -> [PASS][228] +1 other test pass
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_live_ktest@xe_bo.html
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@xe_live_ktest@xe_bo.html

  * igt@xe_module_load@reload-no-display:
    - shard-bmg:          [FAIL][229] ([Intel XE#5679]) -> [PASS][230]
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_module_load@reload-no-display.html
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@xe_module_load@reload-no-display.html

  * igt@xe_pm@s2idle-basic-exec:
    - shard-adlp:         [DMESG-WARN][231] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][232] +8 other tests pass
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-9/igt@xe_pm@s2idle-basic-exec.html
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@xe_pm@s2idle-basic-exec.html

  * igt@xe_pm@s3-d3hot-basic-exec:
    - shard-adlp:         [ABORT][233] ([Intel XE#5545]) -> [PASS][234]
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-2/igt@xe_pm@s3-d3hot-basic-exec.html
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-3/igt@xe_pm@s3-d3hot-basic-exec.html

  
#### Warnings ####

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-bmg:          [SKIP][235] ([Intel XE#4950]) -> [SKIP][236] ([Intel XE#2370]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-bmg:          [SKIP][237] ([Intel XE#4947]) -> [SKIP][238] ([Intel XE#2327]) +4 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_big_fb@linear-32bpp-rotate-90.html
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-bmg:          [SKIP][239] ([Intel XE#2327]) -> [SKIP][240] ([Intel XE#4947]) +3 other tests skip
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-32bpp-rotate-180:
    - shard-dg2-set2:     [SKIP][241] ([Intel XE#1124]) -> [SKIP][242] ([Intel XE#4208])
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-436/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_big_fb@y-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-bmg:          [SKIP][243] ([Intel XE#4947]) -> [SKIP][244] ([Intel XE#1124]) +9 other tests skip
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-bmg:          [SKIP][245] ([Intel XE#4947]) -> [SKIP][246] ([Intel XE#607])
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-bmg:          [SKIP][247] ([Intel XE#1124]) -> [SKIP][248] ([Intel XE#4947]) +9 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-8/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
    - shard-bmg:          [SKIP][249] ([Intel XE#2314] / [Intel XE#2894]) -> [SKIP][250] ([Intel XE#4950]) +1 other test skip
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html

  * igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p:
    - shard-bmg:          [SKIP][251] ([Intel XE#4950]) -> [SKIP][252] ([Intel XE#2314] / [Intel XE#2894])
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-1-displays-2560x1440p:
    - shard-bmg:          [SKIP][253] ([Intel XE#4950]) -> [SKIP][254] ([Intel XE#367]) +2 other tests skip
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-3-displays-2560x1440p:
    - shard-dg2-set2:     [SKIP][255] ([Intel XE#367]) -> [SKIP][256] ([Intel XE#4208] / [i915#2575])
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-434/igt@kms_bw@linear-tiling-3-displays-2560x1440p.html
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_bw@linear-tiling-3-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-1920x1080p:
    - shard-bmg:          [SKIP][257] ([Intel XE#367]) -> [SKIP][258] ([Intel XE#4950]) +3 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          [SKIP][259] ([Intel XE#4947]) -> [SKIP][260] ([Intel XE#2887]) +15 other tests skip
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-8/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-bmg:          [SKIP][261] ([Intel XE#2652] / [Intel XE#787]) -> [SKIP][262] ([Intel XE#4947])
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-bmg:          [SKIP][263] ([Intel XE#4947]) -> [SKIP][264] ([Intel XE#2652] / [Intel XE#787])
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          [SKIP][265] ([Intel XE#4947]) -> [SKIP][266] ([Intel XE#3432]) +1 other test skip
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
    - shard-bmg:          [SKIP][267] ([Intel XE#3432]) -> [SKIP][268] ([Intel XE#4947])
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          [SKIP][269] ([Intel XE#2887]) -> [SKIP][270] ([Intel XE#4947]) +17 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc:
    - shard-dg2-set2:     [SKIP][271] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][272] ([Intel XE#4208])
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-436/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][273] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345]) -> [INCOMPLETE][274] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345])
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-bmg:          [SKIP][275] ([Intel XE#2724]) -> [SKIP][276] ([Intel XE#4947])
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-8/igt@kms_cdclk@mode-transition.html
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_color@ctm-negative:
    - shard-bmg:          [SKIP][277] ([Intel XE#2325]) -> [SKIP][278] ([Intel XE#4950])
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-3/igt@kms_chamelium_color@ctm-negative.html
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_chamelium_color@ctm-negative.html

  * igt@kms_chamelium_color@gamma:
    - shard-bmg:          [SKIP][279] ([Intel XE#4950]) -> [SKIP][280] ([Intel XE#2325])
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_chamelium_color@gamma.html
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_chamelium_color@gamma.html

  * igt@kms_chamelium_edid@dp-edid-resolution-list:
    - shard-bmg:          [SKIP][281] ([Intel XE#4950]) -> [SKIP][282] ([Intel XE#2252]) +10 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_chamelium_edid@dp-edid-resolution-list.html
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_chamelium_edid@dp-edid-resolution-list.html

  * igt@kms_chamelium_edid@dp-mode-timings:
    - shard-dg2-set2:     [SKIP][283] ([Intel XE#373]) -> [SKIP][284] ([Intel XE#4208] / [i915#2575])
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-434/igt@kms_chamelium_edid@dp-mode-timings.html
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_chamelium_edid@dp-mode-timings.html

  * igt@kms_chamelium_frames@vga-frame-dump:
    - shard-bmg:          [SKIP][285] ([Intel XE#2252]) -> [SKIP][286] ([Intel XE#4950]) +8 other tests skip
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_chamelium_frames@vga-frame-dump.html
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_chamelium_frames@vga-frame-dump.html

  * igt@kms_content_protection@atomic:
    - shard-bmg:          [FAIL][287] ([Intel XE#1178]) -> [SKIP][288] ([Intel XE#2341])
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_content_protection@atomic.html
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-bmg:          [SKIP][289] ([Intel XE#4950]) -> [SKIP][290] ([Intel XE#2390])
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_content_protection@dp-mst-type-1.html
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@mei-interface:
    - shard-bmg:          [SKIP][291] ([Intel XE#4950]) -> [SKIP][292] ([Intel XE#2341]) +1 other test skip
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_content_protection@mei-interface.html
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-8/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@uevent:
    - shard-bmg:          [SKIP][293] ([Intel XE#2341]) -> [FAIL][294] ([Intel XE#1188])
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_content_protection@uevent.html
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-bmg:          [SKIP][295] ([Intel XE#4950]) -> [SKIP][296] ([Intel XE#2320]) +2 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_cursor_crc@cursor-onscreen-32x32.html
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-4/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-bmg:          [SKIP][297] ([Intel XE#4950]) -> [SKIP][298] ([Intel XE#2321])
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_cursor_crc@cursor-onscreen-512x512.html
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-32x32:
    - shard-bmg:          [SKIP][299] ([Intel XE#2320]) -> [SKIP][300] ([Intel XE#4950]) +6 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-8/igt@kms_cursor_crc@cursor-random-32x32.html
   [300]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_cursor_crc@cursor-random-32x32.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-bmg:          [SKIP][301] ([Intel XE#2321]) -> [SKIP][302] ([Intel XE#4950])
   [301]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-3/igt@kms_cursor_crc@cursor-sliding-512x512.html
   [302]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-bmg:          [SKIP][303] ([Intel XE#2291]) -> [SKIP][304] ([Intel XE#4950])
   [303]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
   [304]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-bmg:          [SKIP][305] ([Intel XE#4950]) -> [SKIP][306] ([Intel XE#2286])
   [305]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
   [306]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dirtyfb@fbc-dirtyfb-ioctl:
    - shard-bmg:          [SKIP][307] ([Intel XE#4947]) -> [SKIP][308] ([Intel XE#5428])
   [307]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html
   [308]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-bmg:          [SKIP][309] ([Intel XE#4354]) -> [SKIP][310] ([Intel XE#4947])
   [309]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@kms_dp_link_training@uhbr-mst.html
   [310]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-bmg:          [SKIP][311] ([Intel XE#2244]) -> [SKIP][312] ([Intel XE#4947]) +2 other tests skip
   [311]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_dsc@dsc-fractional-bpp.html
   [312]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-bmg:          [SKIP][313] ([Intel XE#4947]) -> [SKIP][314] ([Intel XE#2244])
   [313]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
   [314]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-bmg:          [SKIP][315] ([Intel XE#4947]) -> [SKIP][316] ([Intel XE#5425]) +1 other test skip
   [315]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_fbcon_fbt@fbc-suspend.html
   [316]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-bmg:          [SKIP][317] ([Intel XE#4947]) -> [SKIP][318] ([Intel XE#776])
   [317]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_fbcon_fbt@psr-suspend.html
   [318]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@display-4x:
    - shard-bmg:          [SKIP][319] ([Intel XE#1138]) -> [SKIP][320] ([Intel XE#4950])
   [319]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_feature_discovery@display-4x.html
   [320]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-bmg:          [SKIP][321] ([Intel XE#4950]) -> [SKIP][322] ([Intel XE#2375])
   [321]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_feature_discovery@dp-mst.html
   [322]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr2:
    - shard-bmg:          [SKIP][323] ([Intel XE#2374]) -> [SKIP][324] ([Intel XE#4950])
   [323]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@kms_feature_discovery@psr2.html
   [324]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-bmg:          [SKIP][325] ([Intel XE#2316]) -> [SKIP][326] ([Intel XE#4950]) +1 other test skip
   [325]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
   [326]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@flip-vs-rmfb-interruptible:
    - shard-adlp:         [DMESG-WARN][327] ([Intel XE#4543] / [Intel XE#5208]) -> [DMESG-WARN][328] ([Intel XE#5208])
   [327]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible.html
   [328]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-bmg:          [SKIP][329] ([Intel XE#4947]) -> [SKIP][330] ([Intel XE#2293] / [Intel XE#2380]) +4 other tests skip
   [329]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
   [330]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
    - shard-bmg:          [SKIP][331] ([Intel XE#2293] / [Intel XE#2380]) -> [SKIP][332] ([Intel XE#4947]) +5 other tests skip
   [331]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html
   [332]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw:
    - shard-bmg:          [SKIP][333] ([Intel XE#2312]) -> [SKIP][334] ([Intel XE#4947]) +5 other tests skip
   [333]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw.html
   [334]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt:
    - shard-bmg:          [SKIP][335] ([Intel XE#2312]) -> [SKIP][336] ([Intel XE#2311]) +7 other tests skip
   [335]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt.html
   [336]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][337] ([Intel XE#4947]) -> [SKIP][338] ([Intel XE#2311]) +29 other tests skip
   [337]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [338]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-blt:
    - shard-bmg:          [SKIP][339] ([Intel XE#2311]) -> [SKIP][340] ([Intel XE#4947]) +27 other tests skip
   [339]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-blt.html
   [340]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move:
    - shard-bmg:          [SKIP][341] ([Intel XE#2312]) -> [SKIP][342] ([Intel XE#5390])
   [341]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move.html
   [342]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][343] ([Intel XE#4947]) -> [SKIP][344] ([Intel XE#5390]) +13 other tests skip
   [343]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [344]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen:
    - shard-bmg:          [SKIP][345] ([Intel XE#5390]) -> [SKIP][346] ([Intel XE#2312]) +1 other test skip
   [345]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html
   [346]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary:
    - shard-bmg:          [SKIP][347] ([Intel XE#5390]) -> [SKIP][348] ([Intel XE#4947]) +14 other tests skip
   [347]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html
   [348]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-bmg:          [SKIP][349] ([Intel XE#4947]) -> [SKIP][350] ([Intel XE#2352])
   [349]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
   [350]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-dg2-set2:     [SKIP][351] ([Intel XE#651]) -> [SKIP][352] ([Intel XE#4208]) +1 other test skip
   [351]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc.html
   [352]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt:
    - shard-bmg:          [SKIP][353] ([Intel XE#2311]) -> [SKIP][354] ([Intel XE#2312]) +10 other tests skip
   [353]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt.html
   [354]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt:
    - shard-bmg:          [SKIP][355] ([Intel XE#4947]) -> [SKIP][356] ([Intel XE#2313]) +28 other tests skip
   [355]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
   [356]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][357] ([Intel XE#2312]) -> [SKIP][358] ([Intel XE#2313]) +5 other tests skip
   [357]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
   [358]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
    - shard-bmg:          [SKIP][359] ([Intel XE#4947]) -> [SKIP][360] ([Intel XE#2312]) +1 other test skip
   [359]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
   [360]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt:
    - shard-dg2-set2:     [SKIP][361] ([Intel XE#653]) -> [SKIP][362] ([Intel XE#4208]) +1 other test skip
   [361]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-466/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt.html
   [362]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen:
    - shard-bmg:          [SKIP][363] ([Intel XE#2313]) -> [SKIP][364] ([Intel XE#4947]) +31 other tests skip
   [363]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html
   [364]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-bmg:          [SKIP][365] ([Intel XE#2313]) -> [SKIP][366] ([Intel XE#2312]) +8 other tests skip
   [365]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html
   [366]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][367] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][368] ([Intel XE#4950])
   [367]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_hdr@brightness-with-hdr.html
   [368]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@static-toggle:
    - shard-bmg:          [SKIP][369] ([Intel XE#1503]) -> [SKIP][370] ([Intel XE#4950])
   [369]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_hdr@static-toggle.html
   [370]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_hdr@static-toggle.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-bmg:          [SKIP][371] ([Intel XE#4947]) -> [SKIP][372] ([Intel XE#2934])
   [371]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_joiner@basic-force-ultra-joiner.html
   [372]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-bmg:          [SKIP][373] ([Intel XE#4947]) -> [SKIP][374] ([Intel XE#2927])
   [373]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_joiner@invalid-modeset-ultra-joiner.html
   [374]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-bmg:          [SKIP][375] ([Intel XE#4950]) -> [SKIP][376] ([Intel XE#2501])
   [375]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
   [376]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-bmg:          [SKIP][377] ([Intel XE#4950]) -> [SKIP][378] ([Intel XE#5021])
   [377]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-y.html
   [378]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75:
    - shard-bmg:          [SKIP][379] ([Intel XE#2763]) -> [SKIP][380] ([Intel XE#4950]) +1 other test skip
   [379]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html
   [380]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5:
    - shard-bmg:          [SKIP][381] ([Intel XE#4950]) -> [SKIP][382] ([Intel XE#2763])
   [381]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html
   [382]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-bmg:          [SKIP][383] ([Intel XE#4947]) -> [SKIP][384] ([Intel XE#2938])
   [383]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_pm_backlight@brightness-with-dpms.html
   [384]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_backlight@fade:
    - shard-bmg:          [SKIP][385] ([Intel XE#4947]) -> [SKIP][386] ([Intel XE#870])
   [385]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_pm_backlight@fade.html
   [386]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-bmg:          [SKIP][387] ([Intel XE#870]) -> [SKIP][388] ([Intel XE#4947]) +1 other test skip
   [387]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@kms_pm_backlight@fade-with-dpms.html
   [388]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@deep-pkgc:
    - shard-bmg:          [SKIP][389] ([Intel XE#2505]) -> [SKIP][390] ([Intel XE#4947])
   [389]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@kms_pm_dc@deep-pkgc.html
   [390]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_pm_dc@deep-pkgc.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-bmg:          [SKIP][391] ([Intel XE#4947]) -> [SKIP][392] ([Intel XE#2499])
   [391]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_pm_lpsp@kms-lpsp.html
   [392]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-bmg:          [SKIP][393] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836]) -> [SKIP][394] ([Intel XE#4962])
   [393]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_pm_rpm@modeset-lpsp.html
   [394]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          [SKIP][395] ([Intel XE#1489]) -> [SKIP][396] ([Intel XE#4947]) +8 other tests skip
   [395]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-8/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html
   [396]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-sf:
    - shard-dg2-set2:     [SKIP][397] ([Intel XE#1489]) -> [SKIP][398] ([Intel XE#4208])
   [397]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-466/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-sf.html
   [398]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          [SKIP][399] ([Intel XE#4947]) -> [SKIP][400] ([Intel XE#1489]) +9 other tests skip
   [399]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
   [400]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-bmg:          [SKIP][401] ([Intel XE#2387]) -> [SKIP][402] ([Intel XE#4947]) +3 other tests skip
   [401]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@kms_psr2_su@page_flip-p010.html
   [402]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-pr-cursor-blt:
    - shard-dg2-set2:     [SKIP][403] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][404] ([Intel XE#2351] / [Intel XE#4208])
   [403]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-435/igt@kms_psr@fbc-pr-cursor-blt.html
   [404]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_psr@fbc-pr-cursor-blt.html

  * igt@kms_psr@pr-sprite-render:
    - shard-bmg:          [SKIP][405] ([Intel XE#2234] / [Intel XE#2850]) -> [SKIP][406] ([Intel XE#4947]) +12 other tests skip
   [405]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_psr@pr-sprite-render.html
   [406]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_psr@pr-sprite-render.html

  * igt@kms_psr@psr-primary-page-flip:
    - shard-bmg:          [SKIP][407] ([Intel XE#4947]) -> [SKIP][408] ([Intel XE#2234] / [Intel XE#2850]) +12 other tests skip
   [407]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_psr@psr-primary-page-flip.html
   [408]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-4/igt@kms_psr@psr-primary-page-flip.html

  * igt@kms_psr@psr2-primary-render:
    - shard-dg2-set2:     [SKIP][409] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][410] ([Intel XE#4208])
   [409]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-433/igt@kms_psr@psr2-primary-render.html
   [410]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@kms_psr@psr2-primary-render.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-bmg:          [SKIP][411] ([Intel XE#2414]) -> [SKIP][412] ([Intel XE#4947])
   [411]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [412]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-rotation-90:
    - shard-bmg:          [SKIP][413] ([Intel XE#4950]) -> [SKIP][414] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
   [413]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_rotation_crc@primary-rotation-90.html
   [414]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@kms_rotation_crc@primary-rotation-90.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
    - shard-bmg:          [SKIP][415] ([Intel XE#4950]) -> [SKIP][416] ([Intel XE#2330])
   [415]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
   [416]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-bmg:          [SKIP][417] ([Intel XE#3414] / [Intel XE#3904]) -> [SKIP][418] ([Intel XE#4950]) +1 other test skip
   [417]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-2/igt@kms_rotation_crc@sprite-rotation-90.html
   [418]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][419] ([Intel XE#4950]) -> [SKIP][420] ([Intel XE#2426])
   [419]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [420]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@flip-suspend:
    - shard-bmg:          [SKIP][421] ([Intel XE#4950]) -> [SKIP][422] ([Intel XE#1499]) +1 other test skip
   [421]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_vrr@flip-suspend.html
   [422]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          [SKIP][423] ([Intel XE#4950]) -> [SKIP][424] ([Intel XE#2168])
   [423]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@kms_vrr@lobf.html
   [424]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@kms_vrr@lobf.html

  * igt@kms_vrr@max-min:
    - shard-bmg:          [SKIP][425] ([Intel XE#1499]) -> [SKIP][426] ([Intel XE#4950]) +3 other tests skip
   [425]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-6/igt@kms_vrr@max-min.html
   [426]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@kms_vrr@max-min.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-bmg:          [SKIP][427] ([Intel XE#4950]) -> [SKIP][428] ([Intel XE#1091] / [Intel XE#2849]) +1 other test skip
   [427]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@sriov_basic@enable-vfs-autoprobe-off.html
   [428]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@xe_create@multigpu-create-massive-size:
    - shard-bmg:          [SKIP][429] ([Intel XE#4945]) -> [SKIP][430] ([Intel XE#2504])
   [429]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_create@multigpu-create-massive-size.html
   [430]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@xe_create@multigpu-create-massive-size.html

  * igt@xe_eudebug_online@breakpoint-many-sessions-tiles:
    - shard-bmg:          [SKIP][431] ([Intel XE#4837]) -> [SKIP][432] ([Intel XE#4945]) +12 other tests skip
   [431]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-1/igt@xe_eudebug_online@breakpoint-many-sessions-tiles.html
   [432]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_eudebug_online@breakpoint-many-sessions-tiles.html

  * igt@xe_eudebug_online@single-step-one:
    - shard-bmg:          [SKIP][433] ([Intel XE#4945]) -> [SKIP][434] ([Intel XE#4837]) +15 other tests skip
   [433]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_eudebug_online@single-step-one.html
   [434]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@xe_eudebug_online@single-step-one.html

  * igt@xe_eudebug_sriov@deny-sriov:
    - shard-bmg:          [SKIP][435] ([Intel XE#4945]) -> [SKIP][436] ([Intel XE#4518])
   [435]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_eudebug_sriov@deny-sriov.html
   [436]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@xe_eudebug_sriov@deny-sriov.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr:
    - shard-bmg:          [SKIP][437] ([Intel XE#2322]) -> [SKIP][438] ([Intel XE#4945]) +10 other tests skip
   [437]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-1/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html
   [438]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html

  * igt@xe_exec_basic@multigpu-no-exec-rebind:
    - shard-bmg:          [SKIP][439] ([Intel XE#4945]) -> [SKIP][440] ([Intel XE#2322]) +10 other tests skip
   [439]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_exec_basic@multigpu-no-exec-rebind.html
   [440]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@xe_exec_basic@multigpu-no-exec-rebind.html

  * igt@xe_exec_fault_mode@many-userptr-invalidate:
    - shard-dg2-set2:     [SKIP][441] ([Intel XE#288]) -> [SKIP][442] ([Intel XE#4208])
   [441]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-433/igt@xe_exec_fault_mode@many-userptr-invalidate.html
   [442]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_exec_fault_mode@many-userptr-invalidate.html

  * igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset:
    - shard-bmg:          [SKIP][443] ([Intel XE#4943]) -> [SKIP][444] ([Intel XE#4945]) +22 other tests skip
   [443]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-4/igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset.html
   [444]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset.html

  * igt@xe_exec_system_allocator@process-many-stride-mmap-new-huge:
    - shard-bmg:          [SKIP][445] ([Intel XE#4945]) -> [SKIP][446] ([Intel XE#4943]) +25 other tests skip
   [445]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_exec_system_allocator@process-many-stride-mmap-new-huge.html
   [446]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@xe_exec_system_allocator@process-many-stride-mmap-new-huge.html

  * igt@xe_exec_system_allocator@twice-malloc-fork-read:
    - shard-dg2-set2:     [SKIP][447] ([Intel XE#4915]) -> [SKIP][448] ([Intel XE#4208]) +15 other tests skip
   [447]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-463/igt@xe_exec_system_allocator@twice-malloc-fork-read.html
   [448]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_exec_system_allocator@twice-malloc-fork-read.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-bmg:          [SKIP][449] ([Intel XE#4945]) -> [ABORT][450] ([Intel XE#4917] / [Intel XE#5466] / [Intel XE#5530])
   [449]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [450]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-3/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

  * igt@xe_oa@mi-rpc:
    - shard-dg2-set2:     [SKIP][451] ([Intel XE#3573]) -> [SKIP][452] ([Intel XE#4208])
   [451]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-435/igt@xe_oa@mi-rpc.html
   [452]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_oa@mi-rpc.html

  * igt@xe_oa@oa-tlb-invalidate:
    - shard-bmg:          [SKIP][453] ([Intel XE#4945]) -> [SKIP][454] ([Intel XE#2248])
   [453]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_oa@oa-tlb-invalidate.html
   [454]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@xe_oa@oa-tlb-invalidate.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-bmg:          [SKIP][455] ([Intel XE#4945]) -> [SKIP][456] ([Intel XE#1420])
   [455]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_pat@pat-index-xehpc.html
   [456]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pm@d3cold-basic-exec:
    - shard-bmg:          [SKIP][457] ([Intel XE#2284]) -> [SKIP][458] ([Intel XE#4945])
   [457]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@xe_pm@d3cold-basic-exec.html
   [458]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_pm@d3cold-basic-exec.html

  * igt@xe_pm@d3cold-mocs:
    - shard-dg2-set2:     [SKIP][459] ([Intel XE#2284]) -> [SKIP][460] ([Intel XE#4208])
   [459]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-466/igt@xe_pm@d3cold-mocs.html
   [460]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_pm@d3cold-mocs.html

  * igt@xe_pm@s3-d3cold-basic-exec:
    - shard-bmg:          [SKIP][461] ([Intel XE#4945]) -> [SKIP][462] ([Intel XE#2284]) +1 other test skip
   [461]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_pm@s3-d3cold-basic-exec.html
   [462]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-7/igt@xe_pm@s3-d3cold-basic-exec.html

  * igt@xe_pmu@fn-engine-activity-load:
    - shard-bmg:          [SKIP][463] ([Intel XE#4650]) -> [SKIP][464] ([Intel XE#4945])
   [463]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@xe_pmu@fn-engine-activity-load.html
   [464]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_pmu@fn-engine-activity-load.html

  * igt@xe_pxp@display-pxp-fb:
    - shard-bmg:          [SKIP][465] ([Intel XE#4945]) -> [SKIP][466] ([Intel XE#4733]) +2 other tests skip
   [465]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_pxp@display-pxp-fb.html
   [466]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-2/igt@xe_pxp@display-pxp-fb.html

  * igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy:
    - shard-bmg:          [SKIP][467] ([Intel XE#4733]) -> [SKIP][468] ([Intel XE#4945]) +1 other test skip
   [467]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-1/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html
   [468]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html

  * igt@xe_query@multigpu-query-cs-cycles:
    - shard-bmg:          [SKIP][469] ([Intel XE#4945]) -> [SKIP][470] ([Intel XE#944]) +1 other test skip
   [469]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_query@multigpu-query-cs-cycles.html
   [470]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-1/igt@xe_query@multigpu-query-cs-cycles.html

  * igt@xe_query@multigpu-query-mem-usage:
    - shard-bmg:          [SKIP][471] ([Intel XE#944]) -> [SKIP][472] ([Intel XE#4945]) +2 other tests skip
   [471]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-3/igt@xe_query@multigpu-query-mem-usage.html
   [472]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_query@multigpu-query-mem-usage.html

  * igt@xe_query@multigpu-query-pxp-status:
    - shard-dg2-set2:     [SKIP][473] ([Intel XE#944]) -> [SKIP][474] ([Intel XE#4208])
   [473]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-dg2-433/igt@xe_query@multigpu-query-pxp-status.html
   [474]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-dg2-433/igt@xe_query@multigpu-query-pxp-status.html

  * igt@xe_sriov_auto_provisioning@exclusive-ranges:
    - shard-bmg:          [SKIP][475] ([Intel XE#4945]) -> [SKIP][476] ([Intel XE#4130])
   [475]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_sriov_auto_provisioning@exclusive-ranges.html
   [476]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@xe_sriov_auto_provisioning@exclusive-ranges.html

  * igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling:
    - shard-bmg:          [SKIP][477] ([Intel XE#4130]) -> [SKIP][478] ([Intel XE#4945]) +2 other tests skip
   [477]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-7/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html
   [478]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_sriov_auto_provisioning@resources-released-on-vfs-disabling.html

  * igt@xe_sriov_flr@flr-twice:
    - shard-bmg:          [SKIP][479] ([Intel XE#4273]) -> [SKIP][480] ([Intel XE#4945])
   [479]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-8/igt@xe_sriov_flr@flr-twice.html
   [480]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_sriov_flr@flr-twice.html

  * igt@xe_sriov_scheduling@equal-throughput:
    - shard-bmg:          [SKIP][481] ([Intel XE#4351]) -> [SKIP][482] ([Intel XE#4945])
   [481]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-1/igt@xe_sriov_scheduling@equal-throughput.html
   [482]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-5/igt@xe_sriov_scheduling@equal-throughput.html

  * igt@xe_sriov_scheduling@nonpreempt-engine-resets:
    - shard-bmg:          [SKIP][483] ([Intel XE#4945]) -> [SKIP][484] ([Intel XE#4351])
   [483]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796/shard-bmg-5/igt@xe_sriov_scheduling@nonpreempt-engine-resets.html
   [484]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-152303v1/shard-bmg-6/igt@xe_sriov_scheduling@nonpreempt-engine-resets.html

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

  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1131
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1188]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1188
  [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
  [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
  [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
  [Intel XE#1468]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1468
  [Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
  [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#1504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1504
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2248]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2248
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2351
  [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
  [Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2375
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2414
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499
  [Intel XE#2501]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2501
  [Intel XE#2504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2504
  [Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
  [Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
  [Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
  [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
  [Intel XE#3278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3278
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
  [Intel XE#3884]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3884
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4208
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
  [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4351
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4416
  [Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
  [Intel XE#4518]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4518
  [Intel XE#4519]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4519
  [Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
  [Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633
  [Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
  [Intel XE#4672]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4672
  [Intel XE#4689]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4689
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#4917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4917
  [Intel XE#4921]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4921
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#4945]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4945
  [Intel XE#4947]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4947
  [Intel XE#4950]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4950
  [Intel XE#4962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4962
  [Intel XE#4963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4963
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
  [Intel XE#5249]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5249
  [Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
  [Intel XE#5425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5425
  [Intel XE#5428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5428
  [Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
  [Intel XE#5530]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5530
  [Intel XE#5531]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5531
  [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
  [Intel XE#5560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5560
  [Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561
  [Intel XE#5564]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5564
  [Intel XE#5565]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5565
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5594
  [Intel XE#5596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5596
  [Intel XE#5679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5679
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/911
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
  [i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575


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

  * IGT: IGT_8478 -> IGT_8479
  * Linux: xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796 -> xe-pw-152303v1

  IGT_8478: 3e7c2bd685397f852853878aef4d9c1e4889a28b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8479: 5fea7ca6493415ce108231b0ff29f02d293f9aa6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-3489-e1805ad9a7175457902ae453ea67b76194e7d796: e1805ad9a7175457902ae453ea67b76194e7d796
  xe-pw-152303v1: 152303v1

== Logs ==

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

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

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

* Re: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
  2025-07-30 21:08   ` Cavitt, Jonathan
@ 2025-07-30 21:34     ` Michal Wajdeczko
  2025-07-30 21:40       ` Cavitt, Jonathan
  0 siblings, 1 reply; 21+ messages in thread
From: Michal Wajdeczko @ 2025-07-30 21:34 UTC (permalink / raw)
  To: Cavitt, Jonathan, intel-xe@lists.freedesktop.org



On 7/30/2025 11:08 PM, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> Sent: Wednesday, July 30, 2025 10:49 AM
> To: intel-xe@lists.freedesktop.org
> Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> Subject: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
>>
>> We can't let restart worker run once device is removed, since other
>> data that it might want to access could be already released.
>> Explicitly disable worker as part of device cleanup action.
>>
>> Fixes: a4d1c5d0b99b ("drm/xe/pf: Move VFs reprovisioning to worker")
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 30 ++++++++++++++++++++++++++++-
>>  1 file changed, 29 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> index 35489fa81825..2761319fdc26 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> @@ -50,6 +50,11 @@ static void pf_init_workers(struct xe_gt *gt)
>>  	INIT_WORK(&gt->sriov.pf.workers.restart, pf_worker_restart_func);
>>  }
>>  
>> +static void pf_fini_workers(struct xe_gt *gt)
>> +{
>> +	disable_work_sync(&gt->sriov.pf.workers.restart);
>> +}
>> +
>>  /**
>>   * xe_gt_sriov_pf_init_early - Prepare SR-IOV PF data structures on PF.
>>   * @gt: the &xe_gt to initialize
>> @@ -79,6 +84,21 @@ int xe_gt_sriov_pf_init_early(struct xe_gt *gt)
>>  	return 0;
>>  }
>>  
>> +static void pf_fini_action(void *arg)
>> +{
>> +	struct xe_gt *gt = arg;
>> +
>> +	pf_fini_workers(gt);
>> +}
>> +
>> +static int pf_init_late(struct xe_gt *gt)
>> +{
>> +	struct xe_device *xe = gt_to_xe(gt);
>> +
>> +	xe_gt_assert(gt, IS_SRIOV_PF(xe));
>> +	return devm_add_action_or_reset(xe->drm.dev, pf_fini_action, gt);
>> +}
>> +
>>  /**
>>   * xe_gt_sriov_pf_init - Prepare SR-IOV PF data structures on PF.
>>   * @gt: the &xe_gt to initialize
>> @@ -95,7 +115,15 @@ int xe_gt_sriov_pf_init(struct xe_gt *gt)
>>  	if (err)
>>  		return err;
>>  

[1]

>> -	return xe_gt_sriov_pf_migration_init(gt);
>> +	err = xe_gt_sriov_pf_migration_init(gt);
>> +	if (err)
>> +		return err;

[2]

>> +
>> +	err = pf_init_late(gt);
>> +	if (err)
>> +		return err;
> 
> Everything else looks okay, but I don't think this conditional branch is necessary.
> I think we can just return err here unconditionally, as if we fail this branch, err
> would equal zero anyway, which is what we'd want to return.

this was done on purpose

I'm pretty sure modern compilers can optimize that and
IMO it is clearer to leave success path fully visible

especially that in the future we might want to add more steps
to this init() function, so we could have smaller diff and
avoid diffs like [1-2] above

> 
> With that change:
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> -Jonathan Cavitt
> 
>> +
>> +	return 0;
>>  }
>>  
>>  static bool pf_needs_enable_ggtt_guest_update(struct xe_device *xe)
>> -- 
>> 2.47.1
>>
>>


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

* RE: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
  2025-07-30 21:34     ` Michal Wajdeczko
@ 2025-07-30 21:40       ` Cavitt, Jonathan
  2025-08-01 20:48         ` Rodrigo Vivi
  0 siblings, 1 reply; 21+ messages in thread
From: Cavitt, Jonathan @ 2025-07-30 21:40 UTC (permalink / raw)
  To: Wajdeczko, Michal, intel-xe@lists.freedesktop.org; +Cc: Cavitt, Jonathan

-----Original Message-----
From: Wajdeczko, Michal <Michal.Wajdeczko@intel.com> 
Sent: Wednesday, July 30, 2025 2:34 PM
To: Cavitt, Jonathan <jonathan.cavitt@intel.com>; intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
> 
> On 7/30/2025 11:08 PM, Cavitt, Jonathan wrote:
> > -----Original Message-----
> > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> > Sent: Wednesday, July 30, 2025 10:49 AM
> > To: intel-xe@lists.freedesktop.org
> > Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> > Subject: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
> >>
> >> We can't let restart worker run once device is removed, since other
> >> data that it might want to access could be already released.
> >> Explicitly disable worker as part of device cleanup action.
> >>
> >> Fixes: a4d1c5d0b99b ("drm/xe/pf: Move VFs reprovisioning to worker")
> >> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> >> ---
> >>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 30 ++++++++++++++++++++++++++++-
> >>  1 file changed, 29 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> index 35489fa81825..2761319fdc26 100644
> >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> @@ -50,6 +50,11 @@ static void pf_init_workers(struct xe_gt *gt)
> >>  	INIT_WORK(&gt->sriov.pf.workers.restart, pf_worker_restart_func);
> >>  }
> >>  
> >> +static void pf_fini_workers(struct xe_gt *gt)
> >> +{
> >> +	disable_work_sync(&gt->sriov.pf.workers.restart);
> >> +}
> >> +
> >>  /**
> >>   * xe_gt_sriov_pf_init_early - Prepare SR-IOV PF data structures on PF.
> >>   * @gt: the &xe_gt to initialize
> >> @@ -79,6 +84,21 @@ int xe_gt_sriov_pf_init_early(struct xe_gt *gt)
> >>  	return 0;
> >>  }
> >>  
> >> +static void pf_fini_action(void *arg)
> >> +{
> >> +	struct xe_gt *gt = arg;
> >> +
> >> +	pf_fini_workers(gt);
> >> +}
> >> +
> >> +static int pf_init_late(struct xe_gt *gt)
> >> +{
> >> +	struct xe_device *xe = gt_to_xe(gt);
> >> +
> >> +	xe_gt_assert(gt, IS_SRIOV_PF(xe));
> >> +	return devm_add_action_or_reset(xe->drm.dev, pf_fini_action, gt);
> >> +}
> >> +
> >>  /**
> >>   * xe_gt_sriov_pf_init - Prepare SR-IOV PF data structures on PF.
> >>   * @gt: the &xe_gt to initialize
> >> @@ -95,7 +115,15 @@ int xe_gt_sriov_pf_init(struct xe_gt *gt)
> >>  	if (err)
> >>  		return err;
> >>  
> 
> [1]
> 
> >> -	return xe_gt_sriov_pf_migration_init(gt);
> >> +	err = xe_gt_sriov_pf_migration_init(gt);
> >> +	if (err)
> >> +		return err;
> 
> [2]
> 
> >> +
> >> +	err = pf_init_late(gt);
> >> +	if (err)
> >> +		return err;
> > 
> > Everything else looks okay, but I don't think this conditional branch is necessary.
> > I think we can just return err here unconditionally, as if we fail this branch, err
> > would equal zero anyway, which is what we'd want to return.
> 
> this was done on purpose
> 
> I'm pretty sure modern compilers can optimize that and
> IMO it is clearer to leave success path fully visible
> 
> especially that in the future we might want to add more steps
> to this init() function, so we could have smaller diff and
> avoid diffs like [1-2] above

*shrugs*

I don't entirely agree, but I'm not going to cause a problem about it,
so you can take the Reviewed-by without any changes.

-Jonathan Cavitt
> 
> > 
> > With that change:
> > Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> > -Jonathan Cavitt
> > 
> >> +
> >> +	return 0;
> >>  }
> >>  
> >>  static bool pf_needs_enable_ggtt_guest_update(struct xe_device *xe)
> >> -- 
> >> 2.47.1
> >>
> >>
> 
> 

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

* Re: [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
  2025-07-30 21:09   ` Cavitt, Jonathan
@ 2025-07-30 21:44     ` Michal Wajdeczko
  2025-08-01 20:51       ` Rodrigo Vivi
  0 siblings, 1 reply; 21+ messages in thread
From: Michal Wajdeczko @ 2025-07-30 21:44 UTC (permalink / raw)
  To: Cavitt, Jonathan, intel-xe@lists.freedesktop.org



On 7/30/2025 11:09 PM, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> Sent: Wednesday, July 30, 2025 10:49 AM
> To: intel-xe@lists.freedesktop.org
> Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> Subject: [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
>>
>> The PF driver might be resumed just to configure VFs, but since
>> it is doing some asynchronous GuC reconfigurations after fresh
>> reset, we should wait until all pending works are completed.
>>
>> This is especially important in case of LMEM provisioning, since
>> we also need to update the LMTT and send invalidation requests
>> to all GuCs, which are expected to be already in the VGT mode.
>>
>> Fixes: 68ae022278a1 ("drm/xe/pf: Force GuC virtualization mode")
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c         | 28 +++++++++++++++++++++
>>  drivers/gpu/drm/xe/xe_gt_sriov_pf.h         |  1 +
>>  drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c |  4 ++-
>>  drivers/gpu/drm/xe/xe_pci_sriov.c           |  7 +++++-
>>  drivers/gpu/drm/xe/xe_sriov_pf.c            | 27 ++++++++++++++++++++
>>  drivers/gpu/drm/xe/xe_sriov_pf.h            |  1 +
>>  6 files changed, 66 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> index 2761319fdc26..8bc7d7f9f47a 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> @@ -16,6 +16,7 @@
>>  #include "xe_gt_sriov_pf_migration.h"
>>  #include "xe_gt_sriov_pf_service.h"
>>  #include "xe_gt_sriov_printk.h"
>> +#include "xe_guc_submit.h"
>>  #include "xe_mmio.h"
>>  #include "xe_pm.h"
>>  
>> @@ -258,3 +259,30 @@ void xe_gt_sriov_pf_restart(struct xe_gt *gt)
>>  {
>>  	pf_queue_restart(gt);
>>  }
>> +
>> +static bool pf_flush_restart(struct xe_gt *gt)
>> +{
>> +	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt))); 
> 
> Asserting here seems unnecessary.  If we're certain that the pf functions
> will never be called in a non-pf context, then we probably don't need to
> assert the system is in sriov-pf mode here.  And if we aren't certain of this,
> it probably makes more sense to put the assertion in
> xe_gt_sriov_pf_wait_ready instead, or to have a separate return path instead
> of breaking instantly.

the purpose of using our xe_assert() is exactly to be certain that we never call
functions in an unexpected way, without having to analyze crash logs when someone
actually make a mistake 

and while I'm certain that today I'm not calling that wrong, I don't know what
others will do next day

and here in this function we are accessing a PF-only member of the union, so
like in the rest of the SRIOV code, we have explicit assert to tag function

and all xe_asserts() are compiled away on production builds, so no worry

> 
> Unless the system can exit sriov-pf mode in the middle of execution?  I don't
> think that's a possibility, though.
> 
> The assertion by itself isn't harmful if we're assuming the system would never
> hit the assertion in a non-sriov-pf context, though, so I won't block on it's
> removal.  Though a justification would do well here, if only for my sake.

the goal of asserts is that we don't expect they will be hit

> 
> Everything else is
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> -Jonathan Cavitt
> 
>> +
>> +	return flush_work(&gt->sriov.pf.workers.restart);
>> +}
>> +
>> +/**
>> + * xe_gt_sriov_pf_wait_ready() - Wait until per-GT PF SR-IOV support is ready.
>> + * @gt: the &xe_gt
>> + *
>> + * This function can only be called on PF.
>> + *
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt)
>> +{
>> +	/* don't wait if there is another ongoing reset */
>> +	if (xe_guc_read_stopped(&gt->uc.guc))
>> +		return -EBUSY;
>> +
>> +	if (pf_flush_restart(gt))
>> +		xe_gt_sriov_dbg_verbose(gt, "ready after restart\n");
>> +
>> +	return 0;
>> +}
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
>> index e2b2ff8132dc..e7fde3f9937a 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
>> @@ -11,6 +11,7 @@ struct xe_gt;
>>  #ifdef CONFIG_PCI_IOV
>>  int xe_gt_sriov_pf_init_early(struct xe_gt *gt);
>>  int xe_gt_sriov_pf_init(struct xe_gt *gt);
>> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt);
>>  void xe_gt_sriov_pf_init_hw(struct xe_gt *gt);
>>  void xe_gt_sriov_pf_sanitize_hw(struct xe_gt *gt, unsigned int vfid);
>>  void xe_gt_sriov_pf_stop_prepare(struct xe_gt *gt);
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
>> index bf679b21f485..3ed245e04d0c 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
>> @@ -22,6 +22,7 @@
>>  #include "xe_gt_sriov_pf_policy.h"
>>  #include "xe_gt_sriov_pf_service.h"
>>  #include "xe_pm.h"
>> +#include "xe_sriov_pf.h"
>>  
>>  /*
>>   *      /sys/kernel/debug/dri/0/
>> @@ -205,7 +206,8 @@ static int CONFIG##_set(void *data, u64 val)					\
>>  		return -EOVERFLOW;						\
>>  										\
>>  	xe_pm_runtime_get(xe);							\
>> -	err = xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
>> +	err = xe_sriov_pf_wait_ready(xe) ?:					\
>> +	      xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
>>  	xe_pm_runtime_put(xe);							\
>>  										\
>>  	return err;								\
>> diff --git a/drivers/gpu/drm/xe/xe_pci_sriov.c b/drivers/gpu/drm/xe/xe_pci_sriov.c
>> index 27b148eab49c..af05db07162e 100644
>> --- a/drivers/gpu/drm/xe/xe_pci_sriov.c
>> +++ b/drivers/gpu/drm/xe/xe_pci_sriov.c
>> @@ -16,6 +16,7 @@
>>  #include "xe_pci_sriov.h"
>>  #include "xe_pm.h"
>>  #include "xe_sriov.h"
>> +#include "xe_sriov_pf.h"
>>  #include "xe_sriov_pf_helpers.h"
>>  #include "xe_sriov_printk.h"
>>  
>> @@ -154,6 +155,10 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
>>  	xe_assert(xe, num_vfs <= total_vfs);
>>  	xe_sriov_dbg(xe, "enabling %u VF%s\n", num_vfs, str_plural(num_vfs));
>>  
>> +	err = xe_sriov_pf_wait_ready(xe);
>> +	if (err)
>> +		goto out;
>> +
>>  	/*
>>  	 * We must hold additional reference to the runtime PM to keep PF in D0
>>  	 * during VFs lifetime, as our VFs do not implement the PM capability.
>> @@ -191,7 +196,7 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
>>  failed:
>>  	pf_unprovision_vfs(xe, num_vfs);
>>  	xe_pm_runtime_put(xe);
>> -
>> +out:
>>  	xe_sriov_notice(xe, "Failed to enable %u VF%s (%pe)\n",
>>  			num_vfs, str_plural(num_vfs), ERR_PTR(err));
>>  	return err;
>> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
>> index afbdd894bd6e..7e8f3d3ac656 100644
>> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
>> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
>> @@ -9,6 +9,7 @@
>>  
>>  #include "xe_assert.h"
>>  #include "xe_device.h"
>> +#include "xe_gt_sriov_pf.h"
>>  #include "xe_module.h"
>>  #include "xe_sriov.h"
>>  #include "xe_sriov_pf.h"
>> @@ -102,6 +103,32 @@ int xe_sriov_pf_init_early(struct xe_device *xe)
>>  	return 0;
>>  }
>>  
>> +/**
>> + * xe_sriov_pf_wait_ready() - Wait until PF is ready to operate.
>> + * @xe: the &xe_device to test
>> + *
>> + * This function can only be called on PF.
>> + *
>> + * Return: 0 on success or a negative error code on failure.
>> + */
>> +int xe_sriov_pf_wait_ready(struct xe_device *xe)
>> +{
>> +	struct xe_gt *gt;
>> +	unsigned int id;
>> +	int err = 0;
>> +
>> +	if (xe_device_wedged(xe))
>> +		return -ECANCELED;
>> +
>> +	for_each_gt(gt, xe, id) {
>> +		err = xe_gt_sriov_pf_wait_ready(gt);
>> +		if (err)
>> +			break;
>> +	}
>> +
>> +	return err;
>> +}
>> +
>>  /**
>>   * xe_sriov_pf_print_vfs_summary - Print SR-IOV PF information.
>>   * @xe: the &xe_device to print info from
>> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.h b/drivers/gpu/drm/xe/xe_sriov_pf.h
>> index c392c3fcf085..e3b34f8f5e04 100644
>> --- a/drivers/gpu/drm/xe/xe_sriov_pf.h
>> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.h
>> @@ -15,6 +15,7 @@ struct xe_device;
>>  #ifdef CONFIG_PCI_IOV
>>  bool xe_sriov_pf_readiness(struct xe_device *xe);
>>  int xe_sriov_pf_init_early(struct xe_device *xe);
>> +int xe_sriov_pf_wait_ready(struct xe_device *xe);
>>  void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root);
>>  void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p);
>>  #else
>> -- 
>> 2.47.1
>>
>>


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

* Re: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
  2025-07-30 21:10   ` Cavitt, Jonathan
@ 2025-07-30 21:48     ` Michal Wajdeczko
  2025-08-01 20:45       ` Rodrigo Vivi
  0 siblings, 1 reply; 21+ messages in thread
From: Michal Wajdeczko @ 2025-07-30 21:48 UTC (permalink / raw)
  To: Cavitt, Jonathan, intel-xe@lists.freedesktop.org



On 7/30/2025 11:10 PM, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> Sent: Wednesday, July 30, 2025 10:49 AM
> To: intel-xe@lists.freedesktop.org
> Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> Subject: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
>>
>> The PF's restart worker shouldn't attempt to resume the device on
>> its own, since its goal is to finish PF and VFs reprovisioning on
>> the recently reset GuC. Take extra RPM reference while scheduling
>> a work and release it from the worker or when we cancel a work.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 23 +++++++++++++++++++----
>>  1 file changed, 19 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> index 8bc7d7f9f47a..0c9012fb625d 100644
>> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
>> @@ -53,7 +53,11 @@ static void pf_init_workers(struct xe_gt *gt)
>>  
>>  static void pf_fini_workers(struct xe_gt *gt)
>>  {
>> -	disable_work_sync(&gt->sriov.pf.workers.restart);
>> +	if (disable_work_sync(&gt->sriov.pf.workers.restart)) {
>> +		xe_gt_sriov_dbg_verbose(gt, "pending restart disabled!\n");
>> +		/* release a rpm reference taken on the worker behalf */
>> +		xe_pm_runtime_put(gt_to_xe(gt));
>> +	}
>>  }
>>  
>>  /**
>> @@ -205,8 +209,11 @@ static void pf_cancel_restart(struct xe_gt *gt)
>>  {
>>  	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
>>  
>> -	if (cancel_work_sync(&gt->sriov.pf.workers.restart))
>> +	if (cancel_work_sync(&gt->sriov.pf.workers.restart)) {
>>  		xe_gt_sriov_dbg_verbose(gt, "pending restart canceled!\n");
>> +		/* release a rpm reference taken on the worker behalf */
>> +		xe_pm_runtime_put(gt_to_xe(gt));
>> +	}
>>  }
>>  
>>  /**
>> @@ -224,9 +231,12 @@ static void pf_restart(struct xe_gt *gt)
>>  {
>>  	struct xe_device *xe = gt_to_xe(gt);
>>  
>> -	xe_pm_runtime_get(xe);
>> +	xe_gt_assert(gt, !xe_pm_runtime_suspended(xe));
>> +
>>  	xe_gt_sriov_pf_config_restart(gt);
>>  	xe_gt_sriov_pf_control_restart(gt);
>> +
>> +	/* release a rpm reference taken on our behalf */
> 
> NIT:
> For consistency with the other two comments, maybe:
> s/our/the worker
> Or is the pm reference taken in this instance different from the pm reference
> taken in pf_cancel_restart and pf_fini_workers?

this is the worker context, hence 'our'

> 
> There're also some other minor grammar things ("s/a rpm/an rpm" and 
> "s/worker behalf/worker's behalf", for example) that can be applied more
> generally to the whole patch.
> 
> I'm not going to block on minor grammatical fixups, though, so:
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> -Jonathan Cavitt
> 
>>  	xe_pm_runtime_put(xe);
>>  
>>  	xe_gt_sriov_dbg(gt, "restart completed\n");
>> @@ -245,8 +255,13 @@ static void pf_queue_restart(struct xe_gt *gt)
>>  
>>  	xe_gt_assert(gt, IS_SRIOV_PF(xe));
>>  
>> -	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart))
>> +	/* take a rpm reference on behalf of the worker */
>> +	xe_pm_runtime_get_noresume(xe);
>> +
>> +	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart)) {
>>  		xe_gt_sriov_dbg(gt, "restart already in queue!\n");
>> +		xe_pm_runtime_put(xe);
>> +	}
>>  }
>>  
>>  /**
>> -- 
>> 2.47.1
>>
>>


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

* Re: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
  2025-07-30 17:49 ` [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal Michal Wajdeczko
  2025-07-30 21:08   ` Cavitt, Jonathan
@ 2025-08-01 10:23   ` Piotr Piórkowski
  1 sibling, 0 replies; 21+ messages in thread
From: Piotr Piórkowski @ 2025-08-01 10:23 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2025-lip-30 19:49:11 +0200]:
> We can't let restart worker run once device is removed, since other
> data that it might want to access could be already released.
> Explicitly disable worker as part of device cleanup action.
> 
> Fixes: a4d1c5d0b99b ("drm/xe/pf: Move VFs reprovisioning to worker")
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 30 ++++++++++++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> index 35489fa81825..2761319fdc26 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> @@ -50,6 +50,11 @@ static void pf_init_workers(struct xe_gt *gt)
>  	INIT_WORK(&gt->sriov.pf.workers.restart, pf_worker_restart_func);
>  }
>  
> +static void pf_fini_workers(struct xe_gt *gt)
> +{

NIT: I wonder if xe_gt_assert should also be here.
It's good that we're keeping an eye on this in pf_init_late, during register fini action,
but theoretically someone could call it directly at some point.

> +	disable_work_sync(&gt->sriov.pf.workers.restart);
> +}
> +
>  /**
>   * xe_gt_sriov_pf_init_early - Prepare SR-IOV PF data structures on PF.
>   * @gt: the &xe_gt to initialize
> @@ -79,6 +84,21 @@ int xe_gt_sriov_pf_init_early(struct xe_gt *gt)
>  	return 0;
>  }
>  
> +static void pf_fini_action(void *arg)
> +{
> +	struct xe_gt *gt = arg;
> +
> +	pf_fini_workers(gt);
> +}
> +
> +static int pf_init_late(struct xe_gt *gt)
> +{
> +	struct xe_device *xe = gt_to_xe(gt);
> +
> +	xe_gt_assert(gt, IS_SRIOV_PF(xe));
> +	return devm_add_action_or_reset(xe->drm.dev, pf_fini_action, gt);
> +}
> +
>  /**
>   * xe_gt_sriov_pf_init - Prepare SR-IOV PF data structures on PF.
>   * @gt: the &xe_gt to initialize
> @@ -95,7 +115,15 @@ int xe_gt_sriov_pf_init(struct xe_gt *gt)
>  	if (err)
>  		return err;
>  
> -	return xe_gt_sriov_pf_migration_init(gt);
> +	err = xe_gt_sriov_pf_migration_init(gt);
> +	if (err)
> +		return err;
> +
> +	err = pf_init_late(gt);
> +	if (err)
> +		return err;
> +
> +	return 0;
>  }
>  

LGTM:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>

>  static bool pf_needs_enable_ggtt_guest_update(struct xe_device *xe)
> -- 
> 2.47.1
> 

-- 

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

* Re: [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
  2025-07-30 17:49 ` [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs Michal Wajdeczko
  2025-07-30 21:09   ` Cavitt, Jonathan
@ 2025-08-01 11:25   ` Piotr Piórkowski
  1 sibling, 0 replies; 21+ messages in thread
From: Piotr Piórkowski @ 2025-08-01 11:25 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2025-lip-30 19:49:12 +0200]:
> The PF driver might be resumed just to configure VFs, but since
> it is doing some asynchronous GuC reconfigurations after fresh
> reset, we should wait until all pending works are completed.
> 
> This is especially important in case of LMEM provisioning, since
> we also need to update the LMTT and send invalidation requests
> to all GuCs, which are expected to be already in the VGT mode.
> 
> Fixes: 68ae022278a1 ("drm/xe/pf: Force GuC virtualization mode")
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c         | 28 +++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.h         |  1 +
>  drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c |  4 ++-
>  drivers/gpu/drm/xe/xe_pci_sriov.c           |  7 +++++-
>  drivers/gpu/drm/xe/xe_sriov_pf.c            | 27 ++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_sriov_pf.h            |  1 +
>  6 files changed, 66 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> index 2761319fdc26..8bc7d7f9f47a 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> @@ -16,6 +16,7 @@
>  #include "xe_gt_sriov_pf_migration.h"
>  #include "xe_gt_sriov_pf_service.h"
>  #include "xe_gt_sriov_printk.h"
> +#include "xe_guc_submit.h"
>  #include "xe_mmio.h"
>  #include "xe_pm.h"
>  
> @@ -258,3 +259,30 @@ void xe_gt_sriov_pf_restart(struct xe_gt *gt)
>  {
>  	pf_queue_restart(gt);
>  }
> +
> +static bool pf_flush_restart(struct xe_gt *gt)
> +{
> +	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
> +
> +	return flush_work(&gt->sriov.pf.workers.restart);
> +}
> +
> +/**
> + * xe_gt_sriov_pf_wait_ready() - Wait until per-GT PF SR-IOV support is ready.
> + * @gt: the &xe_gt
> + *
> + * This function can only be called on PF.
> + *
> + * Return: 0 on success or a negative error code on failure.
> + */
> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt)
> +{
> +	/* don't wait if there is another ongoing reset */
> +	if (xe_guc_read_stopped(&gt->uc.guc))
> +		return -EBUSY;
> +
> +	if (pf_flush_restart(gt))
> +		xe_gt_sriov_dbg_verbose(gt, "ready after restart\n");
> +
> +	return 0;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> index e2b2ff8132dc..e7fde3f9937a 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> @@ -11,6 +11,7 @@ struct xe_gt;
>  #ifdef CONFIG_PCI_IOV
>  int xe_gt_sriov_pf_init_early(struct xe_gt *gt);
>  int xe_gt_sriov_pf_init(struct xe_gt *gt);
> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt);
>  void xe_gt_sriov_pf_init_hw(struct xe_gt *gt);
>  void xe_gt_sriov_pf_sanitize_hw(struct xe_gt *gt, unsigned int vfid);
>  void xe_gt_sriov_pf_stop_prepare(struct xe_gt *gt);
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> index bf679b21f485..3ed245e04d0c 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> @@ -22,6 +22,7 @@
>  #include "xe_gt_sriov_pf_policy.h"
>  #include "xe_gt_sriov_pf_service.h"
>  #include "xe_pm.h"
> +#include "xe_sriov_pf.h"
>  
>  /*
>   *      /sys/kernel/debug/dri/0/
> @@ -205,7 +206,8 @@ static int CONFIG##_set(void *data, u64 val)					\
>  		return -EOVERFLOW;						\
>  										\
>  	xe_pm_runtime_get(xe);							\
> -	err = xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
> +	err = xe_sriov_pf_wait_ready(xe) ?:					\
> +	      xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
>  	xe_pm_runtime_put(xe);							\
>  										\
>  	return err;								\
> diff --git a/drivers/gpu/drm/xe/xe_pci_sriov.c b/drivers/gpu/drm/xe/xe_pci_sriov.c
> index 27b148eab49c..af05db07162e 100644
> --- a/drivers/gpu/drm/xe/xe_pci_sriov.c
> +++ b/drivers/gpu/drm/xe/xe_pci_sriov.c
> @@ -16,6 +16,7 @@
>  #include "xe_pci_sriov.h"
>  #include "xe_pm.h"
>  #include "xe_sriov.h"
> +#include "xe_sriov_pf.h"
>  #include "xe_sriov_pf_helpers.h"
>  #include "xe_sriov_printk.h"
>  
> @@ -154,6 +155,10 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
>  	xe_assert(xe, num_vfs <= total_vfs);
>  	xe_sriov_dbg(xe, "enabling %u VF%s\n", num_vfs, str_plural(num_vfs));
>  
> +	err = xe_sriov_pf_wait_ready(xe);
> +	if (err)
> +		goto out;
> +
>  	/*
>  	 * We must hold additional reference to the runtime PM to keep PF in D0
>  	 * during VFs lifetime, as our VFs do not implement the PM capability.
> @@ -191,7 +196,7 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
>  failed:
>  	pf_unprovision_vfs(xe, num_vfs);
>  	xe_pm_runtime_put(xe);
> -
> +out:
>  	xe_sriov_notice(xe, "Failed to enable %u VF%s (%pe)\n",
>  			num_vfs, str_plural(num_vfs), ERR_PTR(err));
>  	return err;
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
> index afbdd894bd6e..7e8f3d3ac656 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
> @@ -9,6 +9,7 @@
>  
>  #include "xe_assert.h"
>  #include "xe_device.h"
> +#include "xe_gt_sriov_pf.h"
>  #include "xe_module.h"
>  #include "xe_sriov.h"
>  #include "xe_sriov_pf.h"
> @@ -102,6 +103,32 @@ int xe_sriov_pf_init_early(struct xe_device *xe)
>  	return 0;
>  }
>  
> +/**
> + * xe_sriov_pf_wait_ready() - Wait until PF is ready to operate.
> + * @xe: the &xe_device to test
> + *
> + * This function can only be called on PF.
> + *
> + * Return: 0 on success or a negative error code on failure.
> + */
> +int xe_sriov_pf_wait_ready(struct xe_device *xe)
> +{
> +	struct xe_gt *gt;
> +	unsigned int id;
> +	int err = 0;
> +
> +	if (xe_device_wedged(xe))
> +		return -ECANCELED;
> +
> +	for_each_gt(gt, xe, id) {
> +		err = xe_gt_sriov_pf_wait_ready(gt);
> +		if (err)
> +			break;
> +	}
> +
> +	return err;
> +}
> +
>  /**
>   * xe_sriov_pf_print_vfs_summary - Print SR-IOV PF information.
>   * @xe: the &xe_device to print info from
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.h b/drivers/gpu/drm/xe/xe_sriov_pf.h
> index c392c3fcf085..e3b34f8f5e04 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf.h
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.h
> @@ -15,6 +15,7 @@ struct xe_device;
>  #ifdef CONFIG_PCI_IOV
>  bool xe_sriov_pf_readiness(struct xe_device *xe);
>  int xe_sriov_pf_init_early(struct xe_device *xe);
> +int xe_sriov_pf_wait_ready(struct xe_device *xe);
>  void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root);
>  void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p);
>  #else

LGTM:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>


> -- 
> 2.47.1
> 

-- 

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

* Re: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
  2025-07-30 17:49 ` [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker Michal Wajdeczko
  2025-07-30 21:10   ` Cavitt, Jonathan
@ 2025-08-01 14:04   ` Piotr Piórkowski
  1 sibling, 0 replies; 21+ messages in thread
From: Piotr Piórkowski @ 2025-08-01 14:04 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2025-lip-30 19:49:13 +0200]:
> The PF's restart worker shouldn't attempt to resume the device on
> its own, since its goal is to finish PF and VFs reprovisioning on
> the recently reset GuC. Take extra RPM reference while scheduling
> a work and release it from the worker or when we cancel a work.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 23 +++++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> index 8bc7d7f9f47a..0c9012fb625d 100644
> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> @@ -53,7 +53,11 @@ static void pf_init_workers(struct xe_gt *gt)
>  
>  static void pf_fini_workers(struct xe_gt *gt)
>  {
> -	disable_work_sync(&gt->sriov.pf.workers.restart);
> +	if (disable_work_sync(&gt->sriov.pf.workers.restart)) {
> +		xe_gt_sriov_dbg_verbose(gt, "pending restart disabled!\n");
> +		/* release a rpm reference taken on the worker behalf */
> +		xe_pm_runtime_put(gt_to_xe(gt));
> +	}
>  }
>  
>  /**
> @@ -205,8 +209,11 @@ static void pf_cancel_restart(struct xe_gt *gt)
>  {
>  	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
>  
> -	if (cancel_work_sync(&gt->sriov.pf.workers.restart))
> +	if (cancel_work_sync(&gt->sriov.pf.workers.restart)) {
>  		xe_gt_sriov_dbg_verbose(gt, "pending restart canceled!\n");
> +		/* release a rpm reference taken on the worker behalf */
> +		xe_pm_runtime_put(gt_to_xe(gt));
> +	}
>  }
>  
>  /**
> @@ -224,9 +231,12 @@ static void pf_restart(struct xe_gt *gt)
>  {
>  	struct xe_device *xe = gt_to_xe(gt);
>  
> -	xe_pm_runtime_get(xe);
> +	xe_gt_assert(gt, !xe_pm_runtime_suspended(xe));
> +
>  	xe_gt_sriov_pf_config_restart(gt);
>  	xe_gt_sriov_pf_control_restart(gt);
> +
> +	/* release a rpm reference taken on our behalf */
>  	xe_pm_runtime_put(xe);
>  
>  	xe_gt_sriov_dbg(gt, "restart completed\n");
> @@ -245,8 +255,13 @@ static void pf_queue_restart(struct xe_gt *gt)
>  
>  	xe_gt_assert(gt, IS_SRIOV_PF(xe));
>  
> -	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart))
> +	/* take a rpm reference on behalf of the worker */
> +	xe_pm_runtime_get_noresume(xe);
> +
> +	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart)) {
>  		xe_gt_sriov_dbg(gt, "restart already in queue!\n");
> +		xe_pm_runtime_put(xe);
> +	}
>  }

LGTM:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>

>  
>  /**
> -- 
> 2.47.1
> 

-- 

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

* Re: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
  2025-07-30 21:48     ` Michal Wajdeczko
@ 2025-08-01 20:45       ` Rodrigo Vivi
  2025-08-01 22:55         ` Cavitt, Jonathan
  0 siblings, 1 reply; 21+ messages in thread
From: Rodrigo Vivi @ 2025-08-01 20:45 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: Cavitt, Jonathan, intel-xe@lists.freedesktop.org

On Wed, Jul 30, 2025 at 11:48:01PM +0200, Michal Wajdeczko wrote:
> 
> 
> On 7/30/2025 11:10 PM, Cavitt, Jonathan wrote:
> > -----Original Message-----
> > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> > Sent: Wednesday, July 30, 2025 10:49 AM
> > To: intel-xe@lists.freedesktop.org
> > Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> > Subject: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
> >>
> >> The PF's restart worker shouldn't attempt to resume the device on
> >> its own, since its goal is to finish PF and VFs reprovisioning on
> >> the recently reset GuC. Take extra RPM reference while scheduling
> >> a work and release it from the worker or when we cancel a work.
> >>
> >> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> >> ---
> >>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 23 +++++++++++++++++++----
> >>  1 file changed, 19 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> index 8bc7d7f9f47a..0c9012fb625d 100644
> >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> @@ -53,7 +53,11 @@ static void pf_init_workers(struct xe_gt *gt)
> >>  
> >>  static void pf_fini_workers(struct xe_gt *gt)
> >>  {
> >> -	disable_work_sync(&gt->sriov.pf.workers.restart);
> >> +	if (disable_work_sync(&gt->sriov.pf.workers.restart)) {
> >> +		xe_gt_sriov_dbg_verbose(gt, "pending restart disabled!\n");
> >> +		/* release a rpm reference taken on the worker behalf */
> >> +		xe_pm_runtime_put(gt_to_xe(gt));
> >> +	}
> >>  }
> >>  
> >>  /**
> >> @@ -205,8 +209,11 @@ static void pf_cancel_restart(struct xe_gt *gt)
> >>  {
> >>  	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
> >>  
> >> -	if (cancel_work_sync(&gt->sriov.pf.workers.restart))
> >> +	if (cancel_work_sync(&gt->sriov.pf.workers.restart)) {
> >>  		xe_gt_sriov_dbg_verbose(gt, "pending restart canceled!\n");
> >> +		/* release a rpm reference taken on the worker behalf */
> >> +		xe_pm_runtime_put(gt_to_xe(gt));
> >> +	}
> >>  }
> >>  
> >>  /**
> >> @@ -224,9 +231,12 @@ static void pf_restart(struct xe_gt *gt)
> >>  {
> >>  	struct xe_device *xe = gt_to_xe(gt);
> >>  
> >> -	xe_pm_runtime_get(xe);
> >> +	xe_gt_assert(gt, !xe_pm_runtime_suspended(xe));
> >> +
> >>  	xe_gt_sriov_pf_config_restart(gt);
> >>  	xe_gt_sriov_pf_control_restart(gt);
> >> +
> >> +	/* release a rpm reference taken on our behalf */
> > 
> > NIT:
> > For consistency with the other two comments, maybe:
> > s/our/the worker
> > Or is the pm reference taken in this instance different from the pm reference
> > taken in pf_cancel_restart and pf_fini_workers?
> 
> this is the worker context, hence 'our'

I honestly prefer the non personal statements. But not an issue

> 
> > 
> > There're also some other minor grammar things ("s/a rpm/an rpm" and 
> > "s/worker behalf/worker's behalf", for example) that can be applied more
> > generally to the whole patch.
> > 
> > I'm not going to block on minor grammatical fixups, though, so:

My english is broken so I usually miss things like this. I even just learned
that the 'an rpm' is the right one...

But anyway, if you notice grammatical issues, please refrain on giving
your reviewed-by. Otherwise we will need to keep accepting small patches
later with small grammar fixes :/

Please ask the author a new revision and only put your rv-b when you are
comfortable that we are not leaving things behind.

> > Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> > -Jonathan Cavitt
> > 
> >>  	xe_pm_runtime_put(xe);
> >>  
> >>  	xe_gt_sriov_dbg(gt, "restart completed\n");
> >> @@ -245,8 +255,13 @@ static void pf_queue_restart(struct xe_gt *gt)
> >>  
> >>  	xe_gt_assert(gt, IS_SRIOV_PF(xe));
> >>  
> >> -	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart))
> >> +	/* take a rpm reference on behalf of the worker */
> >> +	xe_pm_runtime_get_noresume(xe);
> >> +
> >> +	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart)) {
> >>  		xe_gt_sriov_dbg(gt, "restart already in queue!\n");
> >> +		xe_pm_runtime_put(xe);

As for the patch itself from the power management perspective, the approach
looks good to me. It is the right thing to do if we don't want to let the
device to suspend and possibly losing power between the scheduling and
the work is done. However the hard part is to ensure that all the work
cancellation is taken care properly, what I believe you did right.

But it is important that the reviewers checked for other possible missed
spots here. I hope this is the case.

Thanks,
Rodrigo.

> >> +	}
> >>  }
> >>  
> >>  /**
> >> -- 
> >> 2.47.1
> >>
> >>
> 

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

* Re: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
  2025-07-30 21:40       ` Cavitt, Jonathan
@ 2025-08-01 20:48         ` Rodrigo Vivi
  0 siblings, 0 replies; 21+ messages in thread
From: Rodrigo Vivi @ 2025-08-01 20:48 UTC (permalink / raw)
  To: Cavitt, Jonathan; +Cc: Wajdeczko, Michal, intel-xe@lists.freedesktop.org

On Wed, Jul 30, 2025 at 09:40:14PM +0000, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: Wajdeczko, Michal <Michal.Wajdeczko@intel.com> 
> Sent: Wednesday, July 30, 2025 2:34 PM
> To: Cavitt, Jonathan <jonathan.cavitt@intel.com>; intel-xe@lists.freedesktop.org
> Subject: Re: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
> > 
> > On 7/30/2025 11:08 PM, Cavitt, Jonathan wrote:
> > > -----Original Message-----
> > > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> > > Sent: Wednesday, July 30, 2025 10:49 AM
> > > To: intel-xe@lists.freedesktop.org
> > > Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> > > Subject: [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal
> > >>
> > >> We can't let restart worker run once device is removed, since other
> > >> data that it might want to access could be already released.
> > >> Explicitly disable worker as part of device cleanup action.
> > >>
> > >> Fixes: a4d1c5d0b99b ("drm/xe/pf: Move VFs reprovisioning to worker")
> > >> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> > >> ---
> > >>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 30 ++++++++++++++++++++++++++++-
> > >>  1 file changed, 29 insertions(+), 1 deletion(-)
> > >>
> > >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> > >> index 35489fa81825..2761319fdc26 100644
> > >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> > >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> > >> @@ -50,6 +50,11 @@ static void pf_init_workers(struct xe_gt *gt)
> > >>  	INIT_WORK(&gt->sriov.pf.workers.restart, pf_worker_restart_func);
> > >>  }
> > >>  
> > >> +static void pf_fini_workers(struct xe_gt *gt)
> > >> +{
> > >> +	disable_work_sync(&gt->sriov.pf.workers.restart);
> > >> +}
> > >> +
> > >>  /**
> > >>   * xe_gt_sriov_pf_init_early - Prepare SR-IOV PF data structures on PF.
> > >>   * @gt: the &xe_gt to initialize
> > >> @@ -79,6 +84,21 @@ int xe_gt_sriov_pf_init_early(struct xe_gt *gt)
> > >>  	return 0;
> > >>  }
> > >>  
> > >> +static void pf_fini_action(void *arg)
> > >> +{
> > >> +	struct xe_gt *gt = arg;
> > >> +
> > >> +	pf_fini_workers(gt);
> > >> +}
> > >> +
> > >> +static int pf_init_late(struct xe_gt *gt)
> > >> +{
> > >> +	struct xe_device *xe = gt_to_xe(gt);
> > >> +
> > >> +	xe_gt_assert(gt, IS_SRIOV_PF(xe));
> > >> +	return devm_add_action_or_reset(xe->drm.dev, pf_fini_action, gt);
> > >> +}
> > >> +
> > >>  /**
> > >>   * xe_gt_sriov_pf_init - Prepare SR-IOV PF data structures on PF.
> > >>   * @gt: the &xe_gt to initialize
> > >> @@ -95,7 +115,15 @@ int xe_gt_sriov_pf_init(struct xe_gt *gt)
> > >>  	if (err)
> > >>  		return err;
> > >>  
> > 
> > [1]
> > 
> > >> -	return xe_gt_sriov_pf_migration_init(gt);
> > >> +	err = xe_gt_sriov_pf_migration_init(gt);
> > >> +	if (err)
> > >> +		return err;
> > 
> > [2]
> > 
> > >> +
> > >> +	err = pf_init_late(gt);
> > >> +	if (err)
> > >> +		return err;
> > > 
> > > Everything else looks okay, but I don't think this conditional branch is necessary.
> > > I think we can just return err here unconditionally, as if we fail this branch, err
> > > would equal zero anyway, which is what we'd want to return.
> > 
> > this was done on purpose
> > 
> > I'm pretty sure modern compilers can optimize that and
> > IMO it is clearer to leave success path fully visible
> > 
> > especially that in the future we might want to add more steps
> > to this init() function, so we could have smaller diff and
> > avoid diffs like [1-2] above
> 
> *shrugs*
> 
> I don't entirely agree, but I'm not going to cause a problem about it,
> so you can take the Reviewed-by without any changes.

Next time please wait for the answer before stating your reviewed-by
so it comes with more confidence or there are still room for discussions.

Thanks,
Rodrigo.

> 
> -Jonathan Cavitt
> > 
> > > 
> > > With that change:
> > > Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> > > -Jonathan Cavitt
> > > 
> > >> +
> > >> +	return 0;
> > >>  }
> > >>  
> > >>  static bool pf_needs_enable_ggtt_guest_update(struct xe_device *xe)
> > >> -- 
> > >> 2.47.1
> > >>
> > >>
> > 
> > 

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

* Re: [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
  2025-07-30 21:44     ` Michal Wajdeczko
@ 2025-08-01 20:51       ` Rodrigo Vivi
  0 siblings, 0 replies; 21+ messages in thread
From: Rodrigo Vivi @ 2025-08-01 20:51 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: Cavitt, Jonathan, intel-xe@lists.freedesktop.org

On Wed, Jul 30, 2025 at 11:44:34PM +0200, Michal Wajdeczko wrote:
> 
> 
> On 7/30/2025 11:09 PM, Cavitt, Jonathan wrote:
> > -----Original Message-----
> > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> > Sent: Wednesday, July 30, 2025 10:49 AM
> > To: intel-xe@lists.freedesktop.org
> > Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> > Subject: [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs
> >>
> >> The PF driver might be resumed just to configure VFs, but since
> >> it is doing some asynchronous GuC reconfigurations after fresh
> >> reset, we should wait until all pending works are completed.
> >>
> >> This is especially important in case of LMEM provisioning, since
> >> we also need to update the LMTT and send invalidation requests
> >> to all GuCs, which are expected to be already in the VGT mode.
> >>
> >> Fixes: 68ae022278a1 ("drm/xe/pf: Force GuC virtualization mode")
> >> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> >> ---
> >>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c         | 28 +++++++++++++++++++++
> >>  drivers/gpu/drm/xe/xe_gt_sriov_pf.h         |  1 +
> >>  drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c |  4 ++-
> >>  drivers/gpu/drm/xe/xe_pci_sriov.c           |  7 +++++-
> >>  drivers/gpu/drm/xe/xe_sriov_pf.c            | 27 ++++++++++++++++++++
> >>  drivers/gpu/drm/xe/xe_sriov_pf.h            |  1 +
> >>  6 files changed, 66 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> index 2761319fdc26..8bc7d7f9f47a 100644
> >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> >> @@ -16,6 +16,7 @@
> >>  #include "xe_gt_sriov_pf_migration.h"
> >>  #include "xe_gt_sriov_pf_service.h"
> >>  #include "xe_gt_sriov_printk.h"
> >> +#include "xe_guc_submit.h"
> >>  #include "xe_mmio.h"
> >>  #include "xe_pm.h"
> >>  
> >> @@ -258,3 +259,30 @@ void xe_gt_sriov_pf_restart(struct xe_gt *gt)
> >>  {
> >>  	pf_queue_restart(gt);
> >>  }
> >> +
> >> +static bool pf_flush_restart(struct xe_gt *gt)
> >> +{
> >> +	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt))); 
> > 
> > Asserting here seems unnecessary.  If we're certain that the pf functions
> > will never be called in a non-pf context, then we probably don't need to
> > assert the system is in sriov-pf mode here.  And if we aren't certain of this,
> > it probably makes more sense to put the assertion in
> > xe_gt_sriov_pf_wait_ready instead, or to have a separate return path instead
> > of breaking instantly.
> 
> the purpose of using our xe_assert() is exactly to be certain that we never call
> functions in an unexpected way, without having to analyze crash logs when someone
> actually make a mistake 
> 
> and while I'm certain that today I'm not calling that wrong, I don't know what
> others will do next day
> 
> and here in this function we are accessing a PF-only member of the union, so
> like in the rest of the SRIOV code, we have explicit assert to tag function
> 
> and all xe_asserts() are compiled away on production builds, so no worry
> 
> > 
> > Unless the system can exit sriov-pf mode in the middle of execution?  I don't
> > think that's a possibility, though.
> > 
> > The assertion by itself isn't harmful if we're assuming the system would never
> > hit the assertion in a non-sriov-pf context, though, so I won't block on it's
> > removal.  Though a justification would do well here, if only for my sake.
> 
> the goal of asserts is that we don't expect they will be hit

Although in general I also don't like the code full of asserts, I'm fine with
the answer given here. Specially because this PF/VF path is new and complicated.

> 
> > 
> > Everything else is
> > Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>

But again, next time, please wait for the response, so perhaps other folks
might jump in the discussion and state other different views. Stating the rv-b
too early will push back other folks to jump in the discussion.

Thanks,
Rodrigo.


> > -Jonathan Cavitt
> > 
> >> +
> >> +	return flush_work(&gt->sriov.pf.workers.restart);
> >> +}
> >> +
> >> +/**
> >> + * xe_gt_sriov_pf_wait_ready() - Wait until per-GT PF SR-IOV support is ready.
> >> + * @gt: the &xe_gt
> >> + *
> >> + * This function can only be called on PF.
> >> + *
> >> + * Return: 0 on success or a negative error code on failure.
> >> + */
> >> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt)
> >> +{
> >> +	/* don't wait if there is another ongoing reset */
> >> +	if (xe_guc_read_stopped(&gt->uc.guc))
> >> +		return -EBUSY;
> >> +
> >> +	if (pf_flush_restart(gt))
> >> +		xe_gt_sriov_dbg_verbose(gt, "ready after restart\n");
> >> +
> >> +	return 0;
> >> +}
> >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> >> index e2b2ff8132dc..e7fde3f9937a 100644
> >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.h
> >> @@ -11,6 +11,7 @@ struct xe_gt;
> >>  #ifdef CONFIG_PCI_IOV
> >>  int xe_gt_sriov_pf_init_early(struct xe_gt *gt);
> >>  int xe_gt_sriov_pf_init(struct xe_gt *gt);
> >> +int xe_gt_sriov_pf_wait_ready(struct xe_gt *gt);
> >>  void xe_gt_sriov_pf_init_hw(struct xe_gt *gt);
> >>  void xe_gt_sriov_pf_sanitize_hw(struct xe_gt *gt, unsigned int vfid);
> >>  void xe_gt_sriov_pf_stop_prepare(struct xe_gt *gt);
> >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> >> index bf679b21f485..3ed245e04d0c 100644
> >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> >> @@ -22,6 +22,7 @@
> >>  #include "xe_gt_sriov_pf_policy.h"
> >>  #include "xe_gt_sriov_pf_service.h"
> >>  #include "xe_pm.h"
> >> +#include "xe_sriov_pf.h"
> >>  
> >>  /*
> >>   *      /sys/kernel/debug/dri/0/
> >> @@ -205,7 +206,8 @@ static int CONFIG##_set(void *data, u64 val)					\
> >>  		return -EOVERFLOW;						\
> >>  										\
> >>  	xe_pm_runtime_get(xe);							\
> >> -	err = xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
> >> +	err = xe_sriov_pf_wait_ready(xe) ?:					\
> >> +	      xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
> >>  	xe_pm_runtime_put(xe);							\
> >>  										\
> >>  	return err;								\
> >> diff --git a/drivers/gpu/drm/xe/xe_pci_sriov.c b/drivers/gpu/drm/xe/xe_pci_sriov.c
> >> index 27b148eab49c..af05db07162e 100644
> >> --- a/drivers/gpu/drm/xe/xe_pci_sriov.c
> >> +++ b/drivers/gpu/drm/xe/xe_pci_sriov.c
> >> @@ -16,6 +16,7 @@
> >>  #include "xe_pci_sriov.h"
> >>  #include "xe_pm.h"
> >>  #include "xe_sriov.h"
> >> +#include "xe_sriov_pf.h"
> >>  #include "xe_sriov_pf_helpers.h"
> >>  #include "xe_sriov_printk.h"
> >>  
> >> @@ -154,6 +155,10 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
> >>  	xe_assert(xe, num_vfs <= total_vfs);
> >>  	xe_sriov_dbg(xe, "enabling %u VF%s\n", num_vfs, str_plural(num_vfs));
> >>  
> >> +	err = xe_sriov_pf_wait_ready(xe);
> >> +	if (err)
> >> +		goto out;
> >> +
> >>  	/*
> >>  	 * We must hold additional reference to the runtime PM to keep PF in D0
> >>  	 * during VFs lifetime, as our VFs do not implement the PM capability.
> >> @@ -191,7 +196,7 @@ static int pf_enable_vfs(struct xe_device *xe, int num_vfs)
> >>  failed:
> >>  	pf_unprovision_vfs(xe, num_vfs);
> >>  	xe_pm_runtime_put(xe);
> >> -
> >> +out:
> >>  	xe_sriov_notice(xe, "Failed to enable %u VF%s (%pe)\n",
> >>  			num_vfs, str_plural(num_vfs), ERR_PTR(err));
> >>  	return err;
> >> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
> >> index afbdd894bd6e..7e8f3d3ac656 100644
> >> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
> >> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
> >> @@ -9,6 +9,7 @@
> >>  
> >>  #include "xe_assert.h"
> >>  #include "xe_device.h"
> >> +#include "xe_gt_sriov_pf.h"
> >>  #include "xe_module.h"
> >>  #include "xe_sriov.h"
> >>  #include "xe_sriov_pf.h"
> >> @@ -102,6 +103,32 @@ int xe_sriov_pf_init_early(struct xe_device *xe)
> >>  	return 0;
> >>  }
> >>  
> >> +/**
> >> + * xe_sriov_pf_wait_ready() - Wait until PF is ready to operate.
> >> + * @xe: the &xe_device to test
> >> + *
> >> + * This function can only be called on PF.
> >> + *
> >> + * Return: 0 on success or a negative error code on failure.
> >> + */
> >> +int xe_sriov_pf_wait_ready(struct xe_device *xe)
> >> +{
> >> +	struct xe_gt *gt;
> >> +	unsigned int id;
> >> +	int err = 0;
> >> +
> >> +	if (xe_device_wedged(xe))
> >> +		return -ECANCELED;
> >> +
> >> +	for_each_gt(gt, xe, id) {
> >> +		err = xe_gt_sriov_pf_wait_ready(gt);
> >> +		if (err)
> >> +			break;
> >> +	}
> >> +
> >> +	return err;
> >> +}
> >> +
> >>  /**
> >>   * xe_sriov_pf_print_vfs_summary - Print SR-IOV PF information.
> >>   * @xe: the &xe_device to print info from
> >> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.h b/drivers/gpu/drm/xe/xe_sriov_pf.h
> >> index c392c3fcf085..e3b34f8f5e04 100644
> >> --- a/drivers/gpu/drm/xe/xe_sriov_pf.h
> >> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.h
> >> @@ -15,6 +15,7 @@ struct xe_device;
> >>  #ifdef CONFIG_PCI_IOV
> >>  bool xe_sriov_pf_readiness(struct xe_device *xe);
> >>  int xe_sriov_pf_init_early(struct xe_device *xe);
> >> +int xe_sriov_pf_wait_ready(struct xe_device *xe);
> >>  void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root);
> >>  void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p);
> >>  #else
> >> -- 
> >> 2.47.1
> >>
> >>
> 

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

* RE: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
  2025-08-01 20:45       ` Rodrigo Vivi
@ 2025-08-01 22:55         ` Cavitt, Jonathan
  0 siblings, 0 replies; 21+ messages in thread
From: Cavitt, Jonathan @ 2025-08-01 22:55 UTC (permalink / raw)
  To: Vivi, Rodrigo, Wajdeczko, Michal
  Cc: intel-xe@lists.freedesktop.org, Cavitt, Jonathan

-----Original Message-----
From: Vivi, Rodrigo <rodrigo.vivi@intel.com> 
Sent: Friday, August 1, 2025 1:46 PM
To: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
Cc: Cavitt, Jonathan <jonathan.cavitt@intel.com>; intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
> 
> On Wed, Jul 30, 2025 at 11:48:01PM +0200, Michal Wajdeczko wrote:
> > 
> > 
> > On 7/30/2025 11:10 PM, Cavitt, Jonathan wrote:
> > > -----Original Message-----
> > > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Michal Wajdeczko
> > > Sent: Wednesday, July 30, 2025 10:49 AM
> > > To: intel-xe@lists.freedesktop.org
> > > Cc: Wajdeczko, Michal <Michal.Wajdeczko@intel.com>
> > > Subject: [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker
> > >>
> > >> The PF's restart worker shouldn't attempt to resume the device on
> > >> its own, since its goal is to finish PF and VFs reprovisioning on
> > >> the recently reset GuC. Take extra RPM reference while scheduling
> > >> a work and release it from the worker or when we cancel a work.
> > >>
> > >> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> > >> ---
> > >>  drivers/gpu/drm/xe/xe_gt_sriov_pf.c | 23 +++++++++++++++++++----
> > >>  1 file changed, 19 insertions(+), 4 deletions(-)
> > >>
> > >> diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> > >> index 8bc7d7f9f47a..0c9012fb625d 100644
> > >> --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> > >> +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf.c
> > >> @@ -53,7 +53,11 @@ static void pf_init_workers(struct xe_gt *gt)
> > >>  
> > >>  static void pf_fini_workers(struct xe_gt *gt)
> > >>  {
> > >> -	disable_work_sync(&gt->sriov.pf.workers.restart);
> > >> +	if (disable_work_sync(&gt->sriov.pf.workers.restart)) {
> > >> +		xe_gt_sriov_dbg_verbose(gt, "pending restart disabled!\n");
> > >> +		/* release a rpm reference taken on the worker behalf */
> > >> +		xe_pm_runtime_put(gt_to_xe(gt));
> > >> +	}
> > >>  }
> > >>  
> > >>  /**
> > >> @@ -205,8 +209,11 @@ static void pf_cancel_restart(struct xe_gt *gt)
> > >>  {
> > >>  	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
> > >>  
> > >> -	if (cancel_work_sync(&gt->sriov.pf.workers.restart))
> > >> +	if (cancel_work_sync(&gt->sriov.pf.workers.restart)) {
> > >>  		xe_gt_sriov_dbg_verbose(gt, "pending restart canceled!\n");
> > >> +		/* release a rpm reference taken on the worker behalf */
> > >> +		xe_pm_runtime_put(gt_to_xe(gt));
> > >> +	}
> > >>  }
> > >>  
> > >>  /**
> > >> @@ -224,9 +231,12 @@ static void pf_restart(struct xe_gt *gt)
> > >>  {
> > >>  	struct xe_device *xe = gt_to_xe(gt);
> > >>  
> > >> -	xe_pm_runtime_get(xe);
> > >> +	xe_gt_assert(gt, !xe_pm_runtime_suspended(xe));
> > >> +
> > >>  	xe_gt_sriov_pf_config_restart(gt);
> > >>  	xe_gt_sriov_pf_control_restart(gt);
> > >> +
> > >> +	/* release a rpm reference taken on our behalf */
> > > 
> > > NIT:
> > > For consistency with the other two comments, maybe:
> > > s/our/the worker
> > > Or is the pm reference taken in this instance different from the pm reference
> > > taken in pf_cancel_restart and pf_fini_workers?
> > 
> > this is the worker context, hence 'our'
> 
> I honestly prefer the non personal statements. But not an issue
> 
> > 
> > > 
> > > There're also some other minor grammar things ("s/a rpm/an rpm" and 
> > > "s/worker behalf/worker's behalf", for example) that can be applied more
> > > generally to the whole patch.
> > > 
> > > I'm not going to block on minor grammatical fixups, though, so:
> 
> My english is broken so I usually miss things like this. I even just learned
> that the 'an rpm' is the right one...
> 
> But anyway, if you notice grammatical issues, please refrain on giving
> your reviewed-by. Otherwise we will need to keep accepting small patches
> later with small grammar fixes :/

This seems like unnecessary ruler-smacking to me, especially given the multi-lingual
nature of the mailing list, but if you're adamant that I should be blocking on grammar
fixes, then I guess I'll apply this recommendation in the future.

-Jonathan Cavitt

> 
> Please ask the author a new revision and only put your rv-b when you are
> comfortable that we are not leaving things behind.
> 
> > > Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
> > > -Jonathan Cavitt
> > > 
> > >>  	xe_pm_runtime_put(xe);
> > >>  
> > >>  	xe_gt_sriov_dbg(gt, "restart completed\n");
> > >> @@ -245,8 +255,13 @@ static void pf_queue_restart(struct xe_gt *gt)
> > >>  
> > >>  	xe_gt_assert(gt, IS_SRIOV_PF(xe));
> > >>  
> > >> -	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart))
> > >> +	/* take a rpm reference on behalf of the worker */
> > >> +	xe_pm_runtime_get_noresume(xe);
> > >> +
> > >> +	if (!queue_work(xe->sriov.wq, &gt->sriov.pf.workers.restart)) {
> > >>  		xe_gt_sriov_dbg(gt, "restart already in queue!\n");
> > >> +		xe_pm_runtime_put(xe);
> 
> As for the patch itself from the power management perspective, the approach
> looks good to me. It is the right thing to do if we don't want to let the
> device to suspend and possibly losing power between the scheduling and
> the work is done. However the hard part is to ensure that all the work
> cancellation is taken care properly, what I believe you did right.
> 
> But it is important that the reviewers checked for other possible missed
> spots here. I hope this is the case.
> 
> Thanks,
> Rodrigo.
> 
> > >> +	}
> > >>  }
> > >>  
> > >>  /**
> > >> -- 
> > >> 2.47.1
> > >>
> > >>
> > 
> 

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

end of thread, other threads:[~2025-08-01 22:55 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-30 17:49 [PATCH 0/3] Misc PF improvements Michal Wajdeczko
2025-07-30 17:49 ` [PATCH 1/3] drm/xe/pf: Disable PF restart worker on device removal Michal Wajdeczko
2025-07-30 21:08   ` Cavitt, Jonathan
2025-07-30 21:34     ` Michal Wajdeczko
2025-07-30 21:40       ` Cavitt, Jonathan
2025-08-01 20:48         ` Rodrigo Vivi
2025-08-01 10:23   ` Piotr Piórkowski
2025-07-30 17:49 ` [PATCH 2/3] drm/xe/pf: Make sure PF is ready to configure VFs Michal Wajdeczko
2025-07-30 21:09   ` Cavitt, Jonathan
2025-07-30 21:44     ` Michal Wajdeczko
2025-08-01 20:51       ` Rodrigo Vivi
2025-08-01 11:25   ` Piotr Piórkowski
2025-07-30 17:49 ` [PATCH 3/3] drm/xe/pf: Don't resume device from restart worker Michal Wajdeczko
2025-07-30 21:10   ` Cavitt, Jonathan
2025-07-30 21:48     ` Michal Wajdeczko
2025-08-01 20:45       ` Rodrigo Vivi
2025-08-01 22:55         ` Cavitt, Jonathan
2025-08-01 14:04   ` Piotr Piórkowski
2025-07-30 19:12 ` ✓ CI.KUnit: success for Misc PF improvements Patchwork
2025-07-30 20:14 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-30 21:29 ` ✓ Xe.CI.Full: " Patchwork

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