Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Refactor PF debugfs
@ 2025-09-28 14:00 Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 1/6] drm/xe/pf: Promote PF debugfs function to its own file Michal Wajdeczko
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-28 14:00 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

In new debugfs layout, all SR-IOV files are grouped under single
"sriov" directory, where each SR-IOV function is represented by
its own separate directory, with individual tile/GT structure.

This allows to place GGTT/VRAM attributes correctly under a tile,
without polluting 'native' entry with many function directories.

  /sys/kernel/debug/dri/0000:4d:00.0/
  ├── ...
  ├── gt0 -> tile0/gt0
  ├── sriov
  │   ├── pf
  │   │   ├── tile0
  │   │   │   ├── ggtt_available
  │   │   │   ├── ggtt_provisioned
  │   │   │   ├── ggtt_spare
  │   │   │   ├── gt0
  │   │   │   │   ├── adverse_events
  │   │   │   │   ├── contexts_provisioned
  │   │   │   │   ├── contexts_spare
  │   │   │   │   ├── doorbells_provisioned
  │   │   │   │   ├── doorbells_spare
  │   │   │   │   ├── exec_quantum_ms
  │   │   │   │   ├── ggtt_available -> ../ggtt_available
  │   │   │   │   ├── ggtt_provisioned -> ../ggtt_provisioned
  │   │   │   │   ├── ggtt_spare -> ../ggtt_spare
  │   │   │   │   ├── lmem_provisioned -> ../vram_provisioned
  │   │   │   │   ├── lmem_spare -> ../vram_spare
  │   │   │   │   ├── preempt_timeout_us
  │   │   │   │   ├── reset_engine
  │   │   │   │   ├── runtime_registers
  │   │   │   │   ├── sample_period_ms
  │   │   │   │   ├── sched_if_idle
  │   │   │   │   ├── sched_priority
  │   │   │   │   ├── threshold_cat_error_count
  │   │   │   │   ├── threshold_doorbell_time_us
  │   │   │   │   ├── threshold_engine_reset_count
  │   │   │   │   ├── threshold_guc_time_us
  │   │   │   │   ├── threshold_irq_time_us
  │   │   │   │   └── threshold_page_fault_count
  │   │   │   ├── vram_provisioned
  │   │   │   └── vram_spare
  │   │   ├── versions
  │   │   └── vfs
  │   ├── vf1
  │   │   └── tile0
  │   │       ├── ggtt_quota
  │   │       ├── gt0
  │   │       │   ├── config_blob
  │   │       │   ├── contexts_quota
  │   │       │   ├── control
  │   │       │   ├── doorbells_quota
  │   │       │   ├── exec_quantum_ms
  │   │       │   ├── ggtt_quota -> ../ggtt_quota
  │   │       │   ├── guc_state
  │   │       │   ├── lmem_quota -> ../vram_quota
  │   │       │   ├── preempt_timeout_us
  │   │       │   ├── sched_priority
  │   │       │   ├── threshold_cat_error_count
  │   │       │   ├── threshold_doorbell_time_us
  │   │       │   ├── threshold_engine_reset_count
  │   │       │   ├── threshold_guc_time_us
  │   │       │   ├── threshold_irq_time_us
  │   │       │   └── threshold_page_fault_count
  │   │       └── vram_quota
  │   ├── vf2
  │   :
  ├── tile0
  │   ├── ggtt
  │   ├── gt0
  │   │   ├── ...
  │   │   ├── pf -> ../../sriov/pf/tile0/gt0
  │   │   ├── vf1 -> ../../sriov/vf1/tile0/gt0
  │   │   ├── vf2 -> ../../sriov/vf2/tile0/gt0
  :   :   └── ...

v1: https://patchwork.freedesktop.org/series/155064/#rev1
v2: use VRAM instead of LMEM (Lucas, Rodrigo)

Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>

Michal Wajdeczko (6):
  drm/xe/pf: Promote PF debugfs function to its own file
  drm/xe/pf: Create separate debugfs tree for SR-IOV files
  drm/xe/pf: Populate SR-IOV debugfs tree with tiles
  drm/xe/pf: Move SR-IOV GT debugfs files to new tree
  drm/xe/debugfs: Promote xe_tile_debugfs_simple_show
  drm/xe/pf: Make GGTT/LMEM debugfs files per-tile

 drivers/gpu/drm/xe/Makefile                   |   4 +-
 drivers/gpu/drm/xe/xe_debugfs.c               |   2 +-
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c   | 389 ++++++++++--------
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h   |   1 +
 drivers/gpu/drm/xe/xe_sriov_pf.c              |  42 --
 drivers/gpu/drm/xe/xe_sriov_pf.h              |   5 -
 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c      | 108 +++++
 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h      |  18 +
 drivers/gpu/drm/xe/xe_tile_debugfs.c          |  14 +-
 drivers/gpu/drm/xe/xe_tile_debugfs.h          |   3 +
 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c | 247 +++++++++++
 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h |  15 +
 12 files changed, 621 insertions(+), 227 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h
 create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h

-- 
2.47.1


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

* [PATCH v2 1/6] drm/xe/pf: Promote PF debugfs function to its own file
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
@ 2025-09-28 14:00 ` Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 2/6] drm/xe/pf: Create separate debugfs tree for SR-IOV files Michal Wajdeczko
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-28 14:00 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

In upcoming patches, we will build on the PF separate debugfs
tree for all SR-IOV related files and this new code will need
dedicated file. To minimize large diffs later, move existing
function now as-is, so any future modifications will be done
directly in target file.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/Makefile              |  1 +
 drivers/gpu/drm/xe/xe_debugfs.c          |  2 +-
 drivers/gpu/drm/xe/xe_sriov_pf.c         | 42 ------------------
 drivers/gpu/drm/xe/xe_sriov_pf.h         |  5 ---
 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c | 54 ++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h | 18 ++++++++
 6 files changed, 74 insertions(+), 48 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index d9c6cf0f189e..534355c23e80 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -174,6 +174,7 @@ xe-$(CONFIG_PCI_IOV) += \
 	xe_lmtt_ml.o \
 	xe_pci_sriov.o \
 	xe_sriov_pf.o \
+	xe_sriov_pf_debugfs.o \
 	xe_sriov_pf_service.o
 
 # include helpers for tests even when XE is built-in
diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index cd977dbd1ef6..dba0a9c4a4d2 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -23,7 +23,7 @@
 #include "xe_psmi.h"
 #include "xe_pxp_debugfs.h"
 #include "xe_sriov.h"
-#include "xe_sriov_pf.h"
+#include "xe_sriov_pf_debugfs.h"
 #include "xe_sriov_vf.h"
 #include "xe_step.h"
 #include "xe_tile_debugfs.h"
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
index 27ddf3cc80e9..4698348c010a 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
@@ -146,45 +146,3 @@ void xe_sriov_pf_print_vfs_summary(struct xe_device *xe, struct drm_printer *p)
 	drm_printf(p, "supported: %u\n", xe->sriov.pf.driver_max_vfs);
 	drm_printf(p, "enabled: %u\n", pci_num_vf(pdev));
 }
-
-static int simple_show(struct seq_file *m, void *data)
-{
-	struct drm_printer p = drm_seq_file_printer(m);
-	struct drm_info_node *node = m->private;
-	struct dentry *parent = node->dent->d_parent;
-	struct xe_device *xe = parent->d_inode->i_private;
-	void (*print)(struct xe_device *, struct drm_printer *) = node->info_ent->data;
-
-	print(xe, &p);
-	return 0;
-}
-
-static const struct drm_info_list debugfs_list[] = {
-	{ .name = "vfs", .show = simple_show, .data = xe_sriov_pf_print_vfs_summary },
-	{ .name = "versions", .show = simple_show, .data = xe_sriov_pf_service_print_versions },
-};
-
-/**
- * xe_sriov_pf_debugfs_register - Register PF debugfs attributes.
- * @xe: the &xe_device
- * @root: the root &dentry
- *
- * Prepare debugfs attributes exposed by the PF.
- */
-void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
-{
-	struct drm_minor *minor = xe->drm.primary;
-	struct dentry *parent;
-
-	/*
-	 *      /sys/kernel/debug/dri/0/
-	 *      ├── pf
-	 *      │   ├── ...
-	 */
-	parent = debugfs_create_dir("pf", root);
-	if (IS_ERR(parent))
-		return;
-	parent->d_inode->i_private = xe;
-
-	drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), parent, minor);
-}
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.h b/drivers/gpu/drm/xe/xe_sriov_pf.h
index e3b34f8f5e04..e6cf930ecde4 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.h
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.h
@@ -16,7 +16,6 @@ struct xe_device;
 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
 static inline bool xe_sriov_pf_readiness(struct xe_device *xe)
@@ -28,10 +27,6 @@ static inline int xe_sriov_pf_init_early(struct xe_device *xe)
 {
 	return 0;
 }
-
-static inline void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
-{
-}
 #endif
 
 #endif
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
new file mode 100644
index 000000000000..2a1316048439
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include <linux/debugfs.h>
+#include <drm/drm_debugfs.h>
+
+#include "xe_device_types.h"
+#include "xe_sriov_pf.h"
+#include "xe_sriov_pf_debugfs.h"
+#include "xe_sriov_pf_service.h"
+
+static int simple_show(struct seq_file *m, void *data)
+{
+	struct drm_printer p = drm_seq_file_printer(m);
+	struct drm_info_node *node = m->private;
+	struct dentry *parent = node->dent->d_parent;
+	struct xe_device *xe = parent->d_inode->i_private;
+	void (*print)(struct xe_device *, struct drm_printer *) = node->info_ent->data;
+
+	print(xe, &p);
+	return 0;
+}
+
+static const struct drm_info_list debugfs_list[] = {
+	{ .name = "vfs", .show = simple_show, .data = xe_sriov_pf_print_vfs_summary },
+	{ .name = "versions", .show = simple_show, .data = xe_sriov_pf_service_print_versions },
+};
+
+/**
+ * xe_sriov_pf_debugfs_register - Register PF debugfs attributes.
+ * @xe: the &xe_device
+ * @root: the root &dentry
+ *
+ * Prepare debugfs attributes exposed by the PF.
+ */
+void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
+{
+	struct drm_minor *minor = xe->drm.primary;
+	struct dentry *parent;
+
+	/*
+	 *      /sys/kernel/debug/dri/0/
+	 *      ├── pf
+	 *      │   ├── ...
+	 */
+	parent = debugfs_create_dir("pf", root);
+	if (IS_ERR(parent))
+		return;
+	parent->d_inode->i_private = xe;
+
+	drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), parent, minor);
+}
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h
new file mode 100644
index 000000000000..93db13585b82
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_SRIOV_PF_DEBUGFS_H_
+#define _XE_SRIOV_PF_DEBUGFS_H_
+
+struct dentry;
+struct xe_device;
+
+#ifdef CONFIG_PCI_IOV
+void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root);
+#else
+static inline void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root) { }
+#endif
+
+#endif
-- 
2.47.1


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

* [PATCH v2 2/6] drm/xe/pf: Create separate debugfs tree for SR-IOV files
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 1/6] drm/xe/pf: Promote PF debugfs function to its own file Michal Wajdeczko
@ 2025-09-28 14:00 ` Michal Wajdeczko
  2025-09-29 21:19   ` Lucas De Marchi
  2025-09-28 14:00 ` [PATCH v2 3/6] drm/xe/pf: Populate SR-IOV debugfs tree with tiles Michal Wajdeczko
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-28 14:00 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

Currently we expose debugfs files related to SR-IOV functions
together with other native files, but that approach will not
scale well as we plan to add more attributes and also expose
some of them on the per-tile basis.

Start building separate tree for SR-IOV specific debugfs files
where we can replicate similar files per every SR-IOV function:

   /sys/kernel/debug/dri/BDF/
   ├── sriov
   │   ├── pf
   │   │   ├── tile0
   │   │   │   ├── gt0
   │   │   │   ├── gt1
   │   │   │   :
   │   │   ├── tile1
   │   │   :
   │   ├── vf1
   │   │   ├── tile0
   │   │   │   ├── gt0
   │   │   │   ├── gt1
   │   │   │   :
   │   │   :
   │   ├── vf2
   │   ├── ...

We will populate this new tree in upcoming patches.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
v2: drop VFNAME_MAX and don't print dentry location (Lucas)
---
 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c | 58 ++++++++++++++++++++----
 1 file changed, 49 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
index 2a1316048439..37cc3a297667 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
@@ -9,7 +9,9 @@
 #include "xe_device_types.h"
 #include "xe_sriov_pf.h"
 #include "xe_sriov_pf_debugfs.h"
+#include "xe_sriov_pf_helpers.h"
 #include "xe_sriov_pf_service.h"
+#include "xe_sriov_printk.h"
 
 static int simple_show(struct seq_file *m, void *data)
 {
@@ -28,27 +30,65 @@ static const struct drm_info_list debugfs_list[] = {
 	{ .name = "versions", .show = simple_show, .data = xe_sriov_pf_service_print_versions },
 };
 
+static void pf_populate_pf(struct xe_device *xe, struct dentry *pfdent)
+{
+	struct drm_minor *minor = xe->drm.primary;
+
+	drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), pfdent, minor);
+}
+
 /**
  * xe_sriov_pf_debugfs_register - Register PF debugfs attributes.
  * @xe: the &xe_device
  * @root: the root &dentry
  *
- * Prepare debugfs attributes exposed by the PF.
+ * Create separate directory that will contain all SR-IOV related files,
+ * organized per each SR-IOV function (PF, VF1, VF2, ..., VFn).
  */
 void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
 {
-	struct drm_minor *minor = xe->drm.primary;
-	struct dentry *parent;
+	int totalvfs = xe_sriov_pf_get_totalvfs(xe);
+	struct dentry *pfdent;
+	struct dentry *vfdent;
+	struct dentry *dent;
+	char vfname[16]; /* should be more than enough for "vf%u\0" and VFID(UINT_MAX) */
+	unsigned int n;
 
 	/*
-	 *      /sys/kernel/debug/dri/0/
-	 *      ├── pf
+	 *      /sys/kernel/debug/dri/BDF/
+	 *      ├── sriov		# d_inode->i_private = (xe_device*)
 	 *      │   ├── ...
 	 */
-	parent = debugfs_create_dir("pf", root);
-	if (IS_ERR(parent))
+	dent = debugfs_create_dir("sriov", root);
+	if (IS_ERR(dent))
 		return;
-	parent->d_inode->i_private = xe;
+	dent->d_inode->i_private = xe;
 
-	drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), parent, minor);
+	/*
+	 *      /sys/kernel/debug/dri/BDF/
+	 *      ├── sriov		# d_inode->i_private = (xe_device*)
+	 *      │   ├── pf		# d_inode->i_private = (xe_device*)
+	 *      │   │   ├── ...
+	 */
+	pfdent = debugfs_create_dir("pf", dent);
+	if (IS_ERR(pfdent))
+		return;
+	pfdent->d_inode->i_private = xe;
+
+	pf_populate_pf(xe, pfdent);
+
+	/*
+	 *      /sys/kernel/debug/dri/BDF/
+	 *      ├── sriov		# d_inode->i_private = (xe_device*)
+	 *      │   ├── vf1		# d_inode->i_private = VFID(1)
+	 *      │   ├── vf2		# d_inode->i_private = VFID(2)
+	 *      │   ├── ...
+	 */
+	for (n = 1; n <= totalvfs; n++) {
+		snprintf(vfname, sizeof(vfname), "vf%u", VFID(n));
+		vfdent = debugfs_create_dir(vfname, dent);
+		if (IS_ERR(vfdent))
+			return;
+		vfdent->d_inode->i_private = (void *)(uintptr_t)VFID(n);
+	}
 }
-- 
2.47.1


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

* [PATCH v2 3/6] drm/xe/pf: Populate SR-IOV debugfs tree with tiles
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 1/6] drm/xe/pf: Promote PF debugfs function to its own file Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 2/6] drm/xe/pf: Create separate debugfs tree for SR-IOV files Michal Wajdeczko
@ 2025-09-28 14:00 ` Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 4/6] drm/xe/pf: Move SR-IOV GT debugfs files to new tree Michal Wajdeczko
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-28 14:00 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

Populate new per SR-IOV function debugfs directories with next
level directories that represent tiles. There are no files yet,
but we will continue updating that tree in upcoming patches.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/Makefile                   |  3 +-
 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c      | 14 +++
 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c | 98 +++++++++++++++++++
 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h | 15 +++
 4 files changed, 129 insertions(+), 1 deletion(-)
 create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 534355c23e80..00f7ce8e926d 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -175,7 +175,8 @@ xe-$(CONFIG_PCI_IOV) += \
 	xe_pci_sriov.o \
 	xe_sriov_pf.o \
 	xe_sriov_pf_debugfs.o \
-	xe_sriov_pf_service.o
+	xe_sriov_pf_service.o \
+	xe_tile_sriov_pf_debugfs.o
 
 # include helpers for tests even when XE is built-in
 ifdef CONFIG_DRM_XE_KUNIT_TEST
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
index 37cc3a297667..2ab0b1f4818a 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
@@ -6,12 +6,14 @@
 #include <linux/debugfs.h>
 #include <drm/drm_debugfs.h>
 
+#include "xe_device.h"
 #include "xe_device_types.h"
 #include "xe_sriov_pf.h"
 #include "xe_sriov_pf_debugfs.h"
 #include "xe_sriov_pf_helpers.h"
 #include "xe_sriov_pf_service.h"
 #include "xe_sriov_printk.h"
+#include "xe_tile_sriov_pf_debugfs.h"
 
 static int simple_show(struct seq_file *m, void *data)
 {
@@ -37,6 +39,15 @@ static void pf_populate_pf(struct xe_device *xe, struct dentry *pfdent)
 	drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), pfdent, minor);
 }
 
+static void pf_populate_with_tiles(struct xe_device *xe, struct dentry *dent, unsigned int vfid)
+{
+	struct xe_tile *tile;
+	unsigned int id;
+
+	for_each_tile(tile, xe, id)
+		xe_tile_sriov_pf_debugfs_populate(tile, dent, vfid);
+}
+
 /**
  * xe_sriov_pf_debugfs_register - Register PF debugfs attributes.
  * @xe: the &xe_device
@@ -76,6 +87,7 @@ void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
 	pfdent->d_inode->i_private = xe;
 
 	pf_populate_pf(xe, pfdent);
+	pf_populate_with_tiles(xe, pfdent, PFID);
 
 	/*
 	 *      /sys/kernel/debug/dri/BDF/
@@ -90,5 +102,7 @@ void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
 		if (IS_ERR(vfdent))
 			return;
 		vfdent->d_inode->i_private = (void *)(uintptr_t)VFID(n);
+
+		pf_populate_with_tiles(xe, vfdent, VFID(n));
 	}
 }
diff --git a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
new file mode 100644
index 000000000000..91973ee9bb05
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include <linux/debugfs.h>
+#include <drm/drm_debugfs.h>
+
+#include "xe_device_types.h"
+#include "xe_tile_sriov_pf_debugfs.h"
+#include "xe_sriov.h"
+
+/*
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov		# d_inode->i_private = (xe_device*)
+ *      │   ├── pf		# d_inode->i_private = (xe_device*)
+ *      │   │   ├── tile0	# d_inode->i_private = (xe_tile*)
+ *      │   │   ├── tile1
+ *      │   │   :   :
+ *      │   ├── vf1		# d_inode->i_private = VFID(1)
+ *      │   │   ├── tile0	# d_inode->i_private = (xe_tile*)
+ *      │   │   ├── tile1
+ *      │   │   :   :
+ *      │   ├── vfN		# d_inode->i_private = VFID(N)
+ *      │   │   ├── tile0	# d_inode->i_private = (xe_tile*)
+ *      │   │   ├── tile1
+ *      :   :   :   :
+ */
+
+static void *extract_priv(struct dentry *d)
+{
+	return d->d_inode->i_private;
+}
+
+__maybe_unused
+static struct xe_tile *extract_tile(struct dentry *d)
+{
+	return extract_priv(d);
+}
+
+static struct xe_device *extract_xe(struct dentry *d)
+{
+	return extract_priv(d->d_parent->d_parent);
+}
+
+__maybe_unused
+static unsigned int extract_vfid(struct dentry *d)
+{
+	void *pp = extract_priv(d->d_parent);
+
+	return pp == extract_xe(d) ? PFID : (uintptr_t)pp;
+}
+
+/**
+ * xe_tile_sriov_pf_debugfs_populate() - Populate SR-IOV debugfs tree with tile files.
+ * @tile: the &xe_tile to register
+ * @parent: the parent &dentry that represents the SR-IOV @vfid function
+ * @vfid: the VF identifier
+ *
+ * Add to the @parent directory new debugfs directory that will represent a @tile and
+ * populate it with files that are related to the SR-IOV @vfid function.
+ *
+ * This function can only be called on PF.
+ */
+void xe_tile_sriov_pf_debugfs_populate(struct xe_tile *tile, struct dentry *parent,
+				       unsigned int vfid)
+{
+	struct xe_device *xe = tile->xe;
+	struct dentry *dent;
+	char name[10]; /* should be enough up to "tile%u\0" for 2^16 - 1 */
+
+	xe_tile_assert(tile, IS_SRIOV_PF(xe));
+	xe_tile_assert(tile, extract_priv(parent->d_parent) == xe);
+	xe_tile_assert(tile, extract_priv(parent) == tile->xe ||
+		       (uintptr_t)extract_priv(parent) == vfid);
+
+	/*
+	 *      /sys/kernel/debug/dri/BDF/
+	 *      ├── sriov
+	 *      │   ├── pf		# parent, d_inode->i_private = (xe_device*)
+	 *      │   │   ├── tile0	# d_inode->i_private = (xe_tile*)
+	 *      │   │   ├── tile1
+	 *      │   │   :   :
+	 *      │   ├── vf1		# parent, d_inode->i_private = VFID(1)
+	 *      │   │   ├── tile0	# d_inode->i_private = (xe_tile*)
+	 *      │   │   ├── tile1
+	 *      :   :   :   :
+	 */
+	snprintf(name, sizeof(name), "tile%u", tile->id);
+	dent = debugfs_create_dir(name, parent);
+	if (IS_ERR(dent))
+		return;
+	dent->d_inode->i_private = tile;
+
+	xe_tile_assert(tile, extract_tile(dent) == tile);
+	xe_tile_assert(tile, extract_vfid(dent) == vfid);
+	xe_tile_assert(tile, extract_xe(dent) == xe);
+}
diff --git a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h
new file mode 100644
index 000000000000..55d179c44634
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_TILE_SRIOV_PF_DEBUGFS_H_
+#define _XE_TILE_SRIOV_PF_DEBUGFS_H_
+
+struct dentry;
+struct xe_tile;
+
+void xe_tile_sriov_pf_debugfs_populate(struct xe_tile *tile, struct dentry *parent,
+				       unsigned int vfid);
+
+#endif
-- 
2.47.1


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

* [PATCH v2 4/6] drm/xe/pf: Move SR-IOV GT debugfs files to new tree
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (2 preceding siblings ...)
  2025-09-28 14:00 ` [PATCH v2 3/6] drm/xe/pf: Populate SR-IOV debugfs tree with tiles Michal Wajdeczko
@ 2025-09-28 14:00 ` Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 5/6] drm/xe/debugfs: Promote xe_tile_debugfs_simple_show Michal Wajdeczko
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-28 14:00 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

Instead of expanding GT debugfs directories with large number of
SR-IOV files, as those are replicated per each SR-IOV function,
move them to our new debugfs tree, organized by the function.

But to avoid breaking IGT tests that use current layout, provide
symlinks which could be removed once transition period is over,
or we can we can leave them for convenience.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
v2: don't use VFNAME_MAX (rebase)
---
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c   | 355 +++++++++++-------
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h   |   1 +
 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c |  13 +
 3 files changed, 234 insertions(+), 135 deletions(-)

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 3ed245e04d0c..fbb3cb3200fb 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
@@ -25,12 +25,22 @@
 #include "xe_sriov_pf.h"
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0		# d_inode->i_private = gt
- *      │   ├── pf	# d_inode->i_private = gt
- *      │   ├── vf1	# d_inode->i_private = VFID(1)
- *      :   :
- *      │   ├── vfN	# d_inode->i_private = VFID(N)
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov		# d_inode->i_private = (xe_device*)
+ *      │   ├── pf		# d_inode->i_private = (xe_device*)
+ *      │   │   ├── tile0	# d_inode->i_private = (xe_tile*)
+ *      │   │   │   ├── gt0	# d_inode->i_private = (xe_gt*)
+ *      │   │   │   ├── gt1	# d_inode->i_private = (xe_gt*)
+ *      │   │   ├── tile1
+ *      │   │   │   :
+ *      │   ├── vf1		# d_inode->i_private = VFID(1)
+ *      │   │   ├── tile0	# d_inode->i_private = (xe_tile*)
+ *      │   │   │   ├── gt0	# d_inode->i_private = (xe_gt*)
+ *      │   │   │   ├── gt1	# d_inode->i_private = (xe_gt*)
+ *      │   │   ├── tile1
+ *      │   │   │   :
+ *      :   :
+ *      │   ├── vfN		# d_inode->i_private = VFID(N)
  */
 
 static void *extract_priv(struct dentry *d)
@@ -40,26 +50,31 @@ static void *extract_priv(struct dentry *d)
 
 static struct xe_gt *extract_gt(struct dentry *d)
 {
-	return extract_priv(d->d_parent);
+	return extract_priv(d);
+}
+
+static struct xe_device *extract_xe(struct dentry *d)
+{
+	return extract_priv(d->d_parent->d_parent->d_parent);
 }
 
 static unsigned int extract_vfid(struct dentry *d)
 {
-	return extract_priv(d) == extract_gt(d) ? PFID : (uintptr_t)extract_priv(d);
+	void *priv = extract_priv(d->d_parent->d_parent);
+
+	return priv == extract_xe(d) ? PFID : (uintptr_t)priv;
 }
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── pf
- *      │   │   ├── contexts_provisioned
- *      │   │   ├── doorbells_provisioned
- *      │   │   ├── runtime_registers
- *      │   │   ├── negotiated_versions
- *      │   │   ├── adverse_events
- *      ├── gt1
- *      │   ├── pf
- *      │   │   ├── ...
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── contexts_provisioned
+ *                      ├── doorbells_provisioned
+ *                      ├── runtime_registers
+ *                      ├── adverse_events
  */
 
 static const struct drm_info_list pf_info[] = {
@@ -86,11 +101,13 @@ static const struct drm_info_list pf_info[] = {
 };
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── pf
- *      │   │   ├── ggtt_available
- *      │   │   ├── ggtt_provisioned
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── ggtt_available
+ *                      ├── ggtt_provisioned
  */
 
 static const struct drm_info_list pf_ggtt_info[] = {
@@ -107,10 +124,12 @@ static const struct drm_info_list pf_ggtt_info[] = {
 };
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── pf
- *      │   │   ├── lmem_provisioned
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── lmem_provisioned
  */
 
 static const struct drm_info_list pf_lmem_info[] = {
@@ -122,12 +141,14 @@ static const struct drm_info_list pf_lmem_info[] = {
 };
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── pf
- *      │   │   ├── reset_engine
- *      │   │   ├── sample_period
- *      │   │   ├── sched_if_idle
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── reset_engine
+ *                      ├── sample_period
+ *                      ├── sched_if_idle
  */
 
 #define DEFINE_SRIOV_GT_POLICY_DEBUGFS_ATTRIBUTE(POLICY, TYPE, FORMAT)		\
@@ -173,24 +194,28 @@ static void pf_add_policy_attrs(struct xe_gt *gt, struct dentry *parent)
 }
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── pf
- *      │   │   ├── ggtt_spare
- *      │   │   ├── lmem_spare
- *      │   │   ├── doorbells_spare
- *      │   │   ├── contexts_spare
- *      │   │   ├── exec_quantum_ms
- *      │   │   ├── preempt_timeout_us
- *      │   │   ├── sched_priority
- *      │   ├── vf1
- *      │   │   ├── ggtt_quota
- *      │   │   ├── lmem_quota
- *      │   │   ├── doorbells_quota
- *      │   │   ├── contexts_quota
- *      │   │   ├── exec_quantum_ms
- *      │   │   ├── preempt_timeout_us
- *      │   │   ├── sched_priority
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          │   ├── tile0
+ *          │   :   ├── gt0
+ *          │       :   ├── ggtt_spare
+ *          │           ├── lmem_spare
+ *          │           ├── doorbells_spare
+ *          │           ├── contexts_spare
+ *          │           ├── exec_quantum_ms
+ *          │           ├── preempt_timeout_us
+ *          │           ├── sched_priority
+ *          ├── vf1
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── ggtt_quota
+ *                      ├── lmem_quota
+ *                      ├── doorbells_quota
+ *                      ├── contexts_quota
+ *                      ├── exec_quantum_ms
+ *                      ├── preempt_timeout_us
+ *                      ├── sched_priority
  */
 
 #define DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(CONFIG, TYPE, FORMAT)		\
@@ -233,22 +258,26 @@ DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(preempt_timeout, u32, "%llu\n");
 DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(sched_priority, u32, "%llu\n");
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── pf
- *      │   │   ├── threshold_cat_error_count
- *      │   │   ├── threshold_doorbell_time_us
- *      │   │   ├── threshold_engine_reset_count
- *      │   │   ├── threshold_guc_time_us
- *      │   │   ├── threshold_irq_time_us
- *      │   │   ├── threshold_page_fault_count
- *      │   ├── vf1
- *      │   │   ├── threshold_cat_error_count
- *      │   │   ├── threshold_doorbell_time_us
- *      │   │   ├── threshold_engine_reset_count
- *      │   │   ├── threshold_guc_time_us
- *      │   │   ├── threshold_irq_time_us
- *      │   │   ├── threshold_page_fault_count
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          │   ├── tile0
+ *          │   :   ├── gt0
+ *          │       :   ├── threshold_cat_error_count
+ *          │           ├── threshold_doorbell_time_us
+ *          │           ├── threshold_engine_reset_count
+ *          │           ├── threshold_guc_time_us
+ *          │           ├── threshold_irq_time_us
+ *          │           ├── threshold_page_fault_count
+ *          ├── vf1
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── threshold_cat_error_count
+ *                      ├── threshold_doorbell_time_us
+ *                      ├── threshold_engine_reset_count
+ *                      ├── threshold_guc_time_us
+ *                      ├── threshold_irq_time_us
+ *                      ├── threshold_page_fault_count
  */
 
 static int set_threshold(void *data, u64 val, enum xe_guc_klv_threshold_index index)
@@ -329,10 +358,12 @@ static void pf_add_config_attrs(struct xe_gt *gt, struct dentry *parent, unsigne
 }
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── vf1
- *      │   │   ├── control { stop, pause, resume }
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── vf1
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── control { stop, pause, resume }
  */
 
 static const struct {
@@ -409,11 +440,14 @@ static const struct file_operations control_ops = {
 };
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── vf1
- *      │   │   ├── guc_state
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── vf1
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── guc_state
  */
+
 static ssize_t guc_state_read(struct file *file, char __user *buf,
 			      size_t count, loff_t *pos)
 {
@@ -447,11 +481,14 @@ static const struct file_operations guc_state_ops = {
 };
 
 /*
- *      /sys/kernel/debug/dri/0/
- *      ├── gt0
- *      │   ├── vf1
- *      │   │   ├── config_blob
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── vf1
+ *          :   ├── tile0
+ *              :   ├── gt0
+ *                  :   ├── config_blob
  */
+
 static ssize_t config_blob_read(struct file *file, char __user *buf,
 				size_t count, loff_t *pos)
 {
@@ -521,73 +558,121 @@ static const struct file_operations config_blob_ops = {
 	.llseek		= default_llseek,
 };
 
-/**
- * xe_gt_sriov_pf_debugfs_register - Register SR-IOV PF specific entries in GT debugfs.
- * @gt: the &xe_gt to register
- * @root: the &dentry that represents the GT directory
- *
- * Register SR-IOV PF entries that are GT related and must be shown under GT debugfs.
- */
-void xe_gt_sriov_pf_debugfs_register(struct xe_gt *gt, struct dentry *root)
+static void pf_populate_gt(struct xe_gt *gt, struct dentry *dent, unsigned int vfid)
 {
 	struct xe_device *xe = gt_to_xe(gt);
 	struct drm_minor *minor = xe->drm.primary;
-	int n, totalvfs = xe_sriov_pf_get_totalvfs(xe);
-	struct dentry *pfdentry;
-	struct dentry *vfdentry;
-	char buf[14]; /* should be enough up to "vf%u\0" for 2^32 - 1 */
 
-	xe_gt_assert(gt, IS_SRIOV_PF(xe));
-	xe_gt_assert(gt, root->d_inode->i_private == gt);
+	if (vfid) {
+		pf_add_config_attrs(gt, dent, vfid);
 
-	/*
-	 *      /sys/kernel/debug/dri/0/
-	 *      ├── gt0
-	 *      │   ├── pf
-	 */
-	pfdentry = debugfs_create_dir("pf", root);
-	if (IS_ERR(pfdentry))
-		return;
-	pfdentry->d_inode->i_private = gt;
-
-	drm_debugfs_create_files(pf_info, ARRAY_SIZE(pf_info), pfdentry, minor);
-	if (xe_gt_is_main_type(gt)) {
-		drm_debugfs_create_files(pf_ggtt_info,
-					 ARRAY_SIZE(pf_ggtt_info),
-					 pfdentry, minor);
-		if (xe_device_has_lmtt(gt_to_xe(gt)))
-			drm_debugfs_create_files(pf_lmem_info,
-						 ARRAY_SIZE(pf_lmem_info),
-						 pfdentry, minor);
-	}
-
-	pf_add_policy_attrs(gt, pfdentry);
-	pf_add_config_attrs(gt, pfdentry, PFID);
-
-	for (n = 1; n <= totalvfs; n++) {
-		/*
-		 *      /sys/kernel/debug/dri/0/
-		 *      ├── gt0
-		 *      │   ├── vf1
-		 *      │   ├── vf2
-		 */
-		snprintf(buf, sizeof(buf), "vf%u", n);
-		vfdentry = debugfs_create_dir(buf, root);
-		if (IS_ERR(vfdentry))
-			break;
-		vfdentry->d_inode->i_private = (void *)(uintptr_t)n;
-
-		pf_add_config_attrs(gt, vfdentry, VFID(n));
-		debugfs_create_file("control", 0600, vfdentry, NULL, &control_ops);
+		debugfs_create_file("control", 0600, dent, NULL, &control_ops);
 
 		/* for testing/debugging purposes only! */
 		if (IS_ENABLED(CONFIG_DRM_XE_DEBUG)) {
 			debugfs_create_file("guc_state",
 					    IS_ENABLED(CONFIG_DRM_XE_DEBUG_SRIOV) ? 0600 : 0400,
-					    vfdentry, NULL, &guc_state_ops);
+					    dent, NULL, &guc_state_ops);
 			debugfs_create_file("config_blob",
 					    IS_ENABLED(CONFIG_DRM_XE_DEBUG_SRIOV) ? 0600 : 0400,
-					    vfdentry, NULL, &config_blob_ops);
+					    dent, NULL, &config_blob_ops);
+		}
+
+	} else {
+		pf_add_config_attrs(gt, dent, PFID);
+		pf_add_policy_attrs(gt, dent);
+
+		drm_debugfs_create_files(pf_info, ARRAY_SIZE(pf_info), dent, minor);
+
+		if (xe_gt_is_main_type(gt)) {
+			drm_debugfs_create_files(pf_ggtt_info,
+						 ARRAY_SIZE(pf_ggtt_info),
+						 dent, minor);
+			if (xe_device_has_lmtt(xe))
+				drm_debugfs_create_files(pf_lmem_info,
+							 ARRAY_SIZE(pf_lmem_info),
+							 dent, minor);
 		}
 	}
 }
+
+/**
+ * xe_gt_sriov_pf_debugfs_populate() - Create SR-IOV GT-level debugfs directories and files.
+ * @gt: the &xe_gt to register
+ * @parent: the parent &dentry that represents a &xe_tile
+ * @vfid: the VF identifier
+ *
+ * Add to the @parent directory new debugfs directory that will represent a @gt and
+ * populate it with GT files that are related to the SR-IOV @vfid function.
+ *
+ * This function can only be called on PF.
+ */
+void xe_gt_sriov_pf_debugfs_populate(struct xe_gt *gt, struct dentry *parent, unsigned int vfid)
+{
+	struct dentry *dent;
+	char name[8]; /* should be enough up to "gt%u\0" for 2^8 - 1 */
+
+	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
+	xe_gt_assert(gt, extract_priv(parent) == gt->tile);
+	xe_gt_assert(gt, extract_priv(parent->d_parent) == gt_to_xe(gt) ||
+		     (uintptr_t)extract_priv(parent->d_parent) == vfid);
+
+	/*
+	 *      /sys/kernel/debug/dri/BDF/
+	 *      ├── sriov
+	 *      │   ├── pf
+	 *      │   │   ├── tile0		# parent
+	 *      │   │   │   ├── gt0		# d_inode->i_private = (xe_gt*)
+	 *      │   │   │   ├── gt1
+	 *      │   │   :   :
+	 *      │   ├── vf1
+	 *      │   │   ├── tile0		# parent
+	 *      │   │   │   ├── gt0		# d_inode->i_private = (xe_gt*)
+	 *      │   │   │   ├── gt1
+	 *      │   :   :   :
+	 */
+	snprintf(name, sizeof(name), "gt%u", gt->info.id);
+	dent = debugfs_create_dir(name, parent);
+	if (IS_ERR(dent))
+		return;
+	dent->d_inode->i_private = gt;
+
+	xe_gt_assert(gt, extract_gt(dent) == gt);
+	xe_gt_assert(gt, extract_vfid(dent) == vfid);
+
+	pf_populate_gt(gt, dent, vfid);
+}
+
+static void pf_add_links(struct xe_gt *gt, struct dentry *dent)
+{
+	unsigned int totalvfs = xe_gt_sriov_pf_get_totalvfs(gt);
+	unsigned int vfid;
+	char name[16];		/* should be more than enough for "vf%u\0" and VFID(UINT_MAX) */
+	char symlink[64];	/* should be more enough for "../../sriov/vf%u/tile%u/gt%u\0" */
+
+	for (vfid = 0; vfid <= totalvfs; vfid++) {
+		if (vfid)
+			snprintf(name, sizeof(name), "vf%u", vfid);
+		else
+			snprintf(name, sizeof(name), "pf");
+		snprintf(symlink, sizeof(symlink), "../../sriov/%s/tile%u/gt%u",
+			 name, gt->tile->id, gt->info.id);
+		debugfs_create_symlink(name, dent, symlink);
+	}
+}
+
+/**
+ * xe_gt_sriov_pf_debugfs_register - Register SR-IOV PF specific entries in GT debugfs.
+ * @gt: the &xe_gt to register
+ * @dent: the &dentry that represents the GT directory
+ *
+ * Instead of actual files, create symlinks for PF and each VF to their GT specific
+ * attributes that should be already exposed in the dedicated debugfs SR-IOV tree.
+ */
+void xe_gt_sriov_pf_debugfs_register(struct xe_gt *gt, struct dentry *dent)
+{
+	xe_gt_assert(gt, IS_SRIOV_PF(gt_to_xe(gt)));
+	xe_gt_assert(gt, dent->d_inode->i_private == gt);
+
+	pf_add_links(gt, dent);
+}
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h
index 038cc8ddc244..82ff3b7f0532 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h
@@ -11,6 +11,7 @@ struct dentry;
 
 #ifdef CONFIG_PCI_IOV
 void xe_gt_sriov_pf_debugfs_register(struct xe_gt *gt, struct dentry *root);
+void xe_gt_sriov_pf_debugfs_populate(struct xe_gt *gt, struct dentry *parent, unsigned int vfid);
 #else
 static inline void xe_gt_sriov_pf_debugfs_register(struct xe_gt *gt, struct dentry *root) { }
 #endif
diff --git a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
index 91973ee9bb05..335a79d09639 100644
--- a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
@@ -6,7 +6,9 @@
 #include <linux/debugfs.h>
 #include <drm/drm_debugfs.h>
 
+#include "xe_device.h"
 #include "xe_device_types.h"
+#include "xe_gt_sriov_pf_debugfs.h"
 #include "xe_tile_sriov_pf_debugfs.h"
 #include "xe_sriov.h"
 
@@ -51,6 +53,15 @@ static unsigned int extract_vfid(struct dentry *d)
 	return pp == extract_xe(d) ? PFID : (uintptr_t)pp;
 }
 
+static void pf_populate_tile(struct xe_tile *tile, struct dentry *dent, unsigned int vfid)
+{
+	struct xe_gt *gt;
+	unsigned int id;
+
+	for_each_gt_on_tile(gt, tile, id)
+		xe_gt_sriov_pf_debugfs_populate(gt, dent, vfid);
+}
+
 /**
  * xe_tile_sriov_pf_debugfs_populate() - Populate SR-IOV debugfs tree with tile files.
  * @tile: the &xe_tile to register
@@ -95,4 +106,6 @@ void xe_tile_sriov_pf_debugfs_populate(struct xe_tile *tile, struct dentry *pare
 	xe_tile_assert(tile, extract_tile(dent) == tile);
 	xe_tile_assert(tile, extract_vfid(dent) == vfid);
 	xe_tile_assert(tile, extract_xe(dent) == xe);
+
+	pf_populate_tile(tile, dent, vfid);
 }
-- 
2.47.1


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

* [PATCH v2 5/6] drm/xe/debugfs: Promote xe_tile_debugfs_simple_show
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (3 preceding siblings ...)
  2025-09-28 14:00 ` [PATCH v2 4/6] drm/xe/pf: Move SR-IOV GT debugfs files to new tree Michal Wajdeczko
@ 2025-09-28 14:00 ` Michal Wajdeczko
  2025-09-28 14:00 ` [PATCH v2 6/6] drm/xe/pf: Make GGTT/LMEM debugfs files per-tile Michal Wajdeczko
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-28 14:00 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Rodrigo Vivi, Lucas De Marchi

We will want to use this helper function in other files.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_tile_debugfs.c | 14 +++++++-------
 drivers/gpu/drm/xe/xe_tile_debugfs.h |  3 +++
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_tile_debugfs.c b/drivers/gpu/drm/xe/xe_tile_debugfs.c
index a3f437d38f86..fff242a5ae56 100644
--- a/drivers/gpu/drm/xe/xe_tile_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_tile_debugfs.c
@@ -17,7 +17,7 @@ static struct xe_tile *node_to_tile(struct drm_info_node *node)
 }
 
 /**
- * tile_debugfs_simple_show - A show callback for struct drm_info_list
+ * xe_tile_debugfs_simple_show() - A show callback for struct drm_info_list
  * @m: the &seq_file
  * @data: data used by the drm debugfs helpers
  *
@@ -58,7 +58,7 @@ static struct xe_tile *node_to_tile(struct drm_info_node *node)
  *
  * Return: 0 on success or a negative error code on failure.
  */
-static int tile_debugfs_simple_show(struct seq_file *m, void *data)
+int xe_tile_debugfs_simple_show(struct seq_file *m, void *data)
 {
 	struct drm_printer p = drm_seq_file_printer(m);
 	struct drm_info_node *node = m->private;
@@ -69,7 +69,7 @@ static int tile_debugfs_simple_show(struct seq_file *m, void *data)
 }
 
 /**
- * tile_debugfs_show_with_rpm - A show callback for struct drm_info_list
+ * xe_tile_debugfs_show_with_rpm() - A show callback for struct drm_info_list
  * @m: the &seq_file
  * @data: data used by the drm debugfs helpers
  *
@@ -77,7 +77,7 @@ static int tile_debugfs_simple_show(struct seq_file *m, void *data)
  *
  * Return: 0 on success or a negative error code on failure.
  */
-static int tile_debugfs_show_with_rpm(struct seq_file *m, void *data)
+int xe_tile_debugfs_show_with_rpm(struct seq_file *m, void *data)
 {
 	struct drm_info_node *node = m->private;
 	struct xe_tile *tile = node_to_tile(node);
@@ -85,7 +85,7 @@ static int tile_debugfs_show_with_rpm(struct seq_file *m, void *data)
 	int ret;
 
 	xe_pm_runtime_get(xe);
-	ret = tile_debugfs_simple_show(m, data);
+	ret = xe_tile_debugfs_simple_show(m, data);
 	xe_pm_runtime_put(xe);
 
 	return ret;
@@ -106,8 +106,8 @@ static int sa_info(struct xe_tile *tile, struct drm_printer *p)
 
 /* only for debugfs files which can be safely used on the VF */
 static const struct drm_info_list vf_safe_debugfs_list[] = {
-	{ "ggtt", .show = tile_debugfs_show_with_rpm, .data = ggtt },
-	{ "sa_info", .show = tile_debugfs_show_with_rpm, .data = sa_info },
+	{ "ggtt", .show = xe_tile_debugfs_show_with_rpm, .data = ggtt },
+	{ "sa_info", .show = xe_tile_debugfs_show_with_rpm, .data = sa_info },
 };
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_tile_debugfs.h b/drivers/gpu/drm/xe/xe_tile_debugfs.h
index 0e5f724de37f..4429c22542f4 100644
--- a/drivers/gpu/drm/xe/xe_tile_debugfs.h
+++ b/drivers/gpu/drm/xe/xe_tile_debugfs.h
@@ -6,8 +6,11 @@
 #ifndef _XE_TILE_DEBUGFS_H_
 #define _XE_TILE_DEBUGFS_H_
 
+struct seq_file;
 struct xe_tile;
 
 void xe_tile_debugfs_register(struct xe_tile *tile);
+int xe_tile_debugfs_simple_show(struct seq_file *m, void *data);
+int xe_tile_debugfs_show_with_rpm(struct seq_file *m, void *data);
 
 #endif
-- 
2.47.1


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

* [PATCH v2 6/6] drm/xe/pf: Make GGTT/LMEM debugfs files per-tile
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (4 preceding siblings ...)
  2025-09-28 14:00 ` [PATCH v2 5/6] drm/xe/debugfs: Promote xe_tile_debugfs_simple_show Michal Wajdeczko
@ 2025-09-28 14:00 ` Michal Wajdeczko
  2025-09-29 21:21   ` Lucas De Marchi
  2025-09-28 14:07 ` ✗ CI.checkpatch: warning for Refactor PF debugfs Patchwork
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-28 14:00 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

Due to initial design of the Xe debugfs, the GGTT and LMEM files
were defined on the primary GT, instead of being per-tile.

While PF provisioning code is now still maintaining GGTT and LMEM
also on the per primary-GT level, this will be refactored soon,
but we can fix debugfs layout now, as part of the new SR-IOV tree.

For backward compatibility we will provide some symlinks that can
be removed once our tools will be fully converted.

As we are making all those changes in the user facing interface,
take this as apportunity to also start replacing the "LMEM" term,
used by the SR-IOV code, with the "VRAM" term, used by Xe driver.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> #v1
---
v2: use VRAM where possible (Lucas, Rodrigo)
    s/deprecated/compat (Lucas)
---
 drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c   |  92 ++++--------
 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c | 136 ++++++++++++++++++
 2 files changed, 163 insertions(+), 65 deletions(-)

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 fbb3cb3200fb..44fec2aae536 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
@@ -100,46 +100,6 @@ static const struct drm_info_list pf_info[] = {
 	},
 };
 
-/*
- *      /sys/kernel/debug/dri/BDF/
- *      ├── sriov
- *      :   ├── pf
- *          :   ├── tile0
- *              :   ├── gt0
- *                  :   ├── ggtt_available
- *                      ├── ggtt_provisioned
- */
-
-static const struct drm_info_list pf_ggtt_info[] = {
-	{
-		"ggtt_available",
-		.show = xe_gt_debugfs_simple_show,
-		.data = xe_gt_sriov_pf_config_print_available_ggtt,
-	},
-	{
-		"ggtt_provisioned",
-		.show = xe_gt_debugfs_simple_show,
-		.data = xe_gt_sriov_pf_config_print_ggtt,
-	},
-};
-
-/*
- *      /sys/kernel/debug/dri/BDF/
- *      ├── sriov
- *      :   ├── pf
- *          :   ├── tile0
- *              :   ├── gt0
- *                  :   ├── lmem_provisioned
- */
-
-static const struct drm_info_list pf_lmem_info[] = {
-	{
-		"lmem_provisioned",
-		.show = xe_gt_debugfs_simple_show,
-		.data = xe_gt_sriov_pf_config_print_lmem,
-	},
-};
-
 /*
  *      /sys/kernel/debug/dri/BDF/
  *      ├── sriov
@@ -199,9 +159,7 @@ static void pf_add_policy_attrs(struct xe_gt *gt, struct dentry *parent)
  *      :   ├── pf
  *          │   ├── tile0
  *          │   :   ├── gt0
- *          │       :   ├── ggtt_spare
- *          │           ├── lmem_spare
- *          │           ├── doorbells_spare
+ *          │       :   ├── doorbells_spare
  *          │           ├── contexts_spare
  *          │           ├── exec_quantum_ms
  *          │           ├── preempt_timeout_us
@@ -209,9 +167,7 @@ static void pf_add_policy_attrs(struct xe_gt *gt, struct dentry *parent)
  *          ├── vf1
  *          :   ├── tile0
  *              :   ├── gt0
- *                  :   ├── ggtt_quota
- *                      ├── lmem_quota
- *                      ├── doorbells_quota
+ *                  :   ├── doorbells_quota
  *                      ├── contexts_quota
  *                      ├── exec_quantum_ms
  *                      ├── preempt_timeout_us
@@ -249,8 +205,6 @@ static int CONFIG##_get(void *data, u64 *val)					\
 										\
 DEFINE_DEBUGFS_ATTRIBUTE(CONFIG##_fops, CONFIG##_get, CONFIG##_set, FORMAT)
 
-DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(ggtt, u64, "%llu\n");
-DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(lmem, u64, "%llu\n");
 DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(ctxs, u32, "%llu\n");
 DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(dbs, u32, "%llu\n");
 DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(exec_quantum, u32, "%llu\n");
@@ -331,13 +285,6 @@ static void pf_add_config_attrs(struct xe_gt *gt, struct dentry *parent, unsigne
 	xe_gt_assert(gt, gt == extract_gt(parent));
 	xe_gt_assert(gt, vfid == extract_vfid(parent));
 
-	if (xe_gt_is_main_type(gt)) {
-		debugfs_create_file_unsafe(vfid ? "ggtt_quota" : "ggtt_spare",
-					   0644, parent, parent, &ggtt_fops);
-		if (xe_device_has_lmtt(gt_to_xe(gt)))
-			debugfs_create_file_unsafe(vfid ? "lmem_quota" : "lmem_spare",
-						   0644, parent, parent, &lmem_fops);
-	}
 	debugfs_create_file_unsafe(vfid ? "doorbells_quota" : "doorbells_spare",
 				   0644, parent, parent, &dbs_fops);
 	debugfs_create_file_unsafe(vfid ? "contexts_quota" : "contexts_spare",
@@ -558,6 +505,28 @@ static const struct file_operations config_blob_ops = {
 	.llseek		= default_llseek,
 };
 
+static void pf_add_compat_attrs(struct xe_gt *gt, struct dentry *dent, unsigned int vfid)
+{
+	struct xe_device *xe = gt_to_xe(gt);
+
+	if (!xe_gt_is_main_type(gt))
+		return;
+
+	if (vfid) {
+		debugfs_create_symlink("ggtt_quota", dent, "../ggtt_quota");
+		if (xe_device_has_lmtt(xe))
+			debugfs_create_symlink("lmem_quota", dent, "../vram_quota");
+	} else {
+		debugfs_create_symlink("ggtt_spare", dent, "../ggtt_spare");
+		debugfs_create_symlink("ggtt_available", dent, "../ggtt_available");
+		debugfs_create_symlink("ggtt_provisioned", dent, "../ggtt_provisioned");
+		if (xe_device_has_lmtt(xe)) {
+			debugfs_create_symlink("lmem_spare", dent, "../vram_spare");
+			debugfs_create_symlink("lmem_provisioned", dent, "../vram_provisioned");
+		}
+	}
+}
+
 static void pf_populate_gt(struct xe_gt *gt, struct dentry *dent, unsigned int vfid)
 {
 	struct xe_device *xe = gt_to_xe(gt);
@@ -583,17 +552,10 @@ static void pf_populate_gt(struct xe_gt *gt, struct dentry *dent, unsigned int v
 		pf_add_policy_attrs(gt, dent);
 
 		drm_debugfs_create_files(pf_info, ARRAY_SIZE(pf_info), dent, minor);
-
-		if (xe_gt_is_main_type(gt)) {
-			drm_debugfs_create_files(pf_ggtt_info,
-						 ARRAY_SIZE(pf_ggtt_info),
-						 dent, minor);
-			if (xe_device_has_lmtt(xe))
-				drm_debugfs_create_files(pf_lmem_info,
-							 ARRAY_SIZE(pf_lmem_info),
-							 dent, minor);
-		}
 	}
+
+	/* for backward compatibility only */
+	pf_add_compat_attrs(gt, dent, vfid);
 }
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
index 335a79d09639..c8df18af4d00 100644
--- a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
@@ -8,9 +8,13 @@
 
 #include "xe_device.h"
 #include "xe_device_types.h"
+#include "xe_gt_sriov_pf_config.h"
 #include "xe_gt_sriov_pf_debugfs.h"
+#include "xe_pm.h"
+#include "xe_tile_debugfs.h"
 #include "xe_tile_sriov_pf_debugfs.h"
 #include "xe_sriov.h"
+#include "xe_sriov_pf.h"
 
 /*
  *      /sys/kernel/debug/dri/BDF/
@@ -53,11 +57,143 @@ static unsigned int extract_vfid(struct dentry *d)
 	return pp == extract_xe(d) ? PFID : (uintptr_t)pp;
 }
 
+/*
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          :   ├── tile0
+ *              :   ├── ggtt_available
+ *                  ├── ggtt_provisioned
+ */
+
+static int pf_config_print_available_ggtt(struct xe_tile *tile, struct drm_printer *p)
+{
+	return xe_gt_sriov_pf_config_print_available_ggtt(tile->primary_gt, p);
+}
+
+static int pf_config_print_ggtt(struct xe_tile *tile, struct drm_printer *p)
+{
+	return xe_gt_sriov_pf_config_print_ggtt(tile->primary_gt, p);
+}
+
+static const struct drm_info_list pf_ggtt_info[] = {
+	{
+		"ggtt_available",
+		.show = xe_tile_debugfs_simple_show,
+		.data = pf_config_print_available_ggtt,
+	},
+	{
+		"ggtt_provisioned",
+		.show = xe_tile_debugfs_simple_show,
+		.data = pf_config_print_ggtt,
+	},
+};
+
+/*
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      :   ├── pf
+ *          :   ├── tile0
+ *              :   ├── vram_provisioned
+ */
+
+static int pf_config_print_vram(struct xe_tile *tile, struct drm_printer *p)
+{
+	return xe_gt_sriov_pf_config_print_lmem(tile->primary_gt, p);
+}
+
+static const struct drm_info_list pf_vram_info[] = {
+	{
+		"vram_provisioned",
+		.show = xe_tile_debugfs_simple_show,
+		.data = pf_config_print_vram,
+	},
+};
+
+/*
+ *      /sys/kernel/debug/dri/BDF/
+ *      ├── sriov
+ *      │   ├── pf
+ *      │   │   ├── tile0
+ *      │   │   │   ├── ggtt_spare
+ *      │   │   │   ├── vram_spare
+ *      │   │   ├── tile1
+ *      │   │   :   :
+ *      │   ├── vf1
+ *      │   :   ├── tile0
+ *      │       │   ├── ggtt_quota
+ *      │       │   ├── vram_quota
+ *      │       ├── tile1
+ *      │       :   :
+ */
+
+#define DEFINE_SRIOV_TILE_CONFIG_DEBUGFS_ATTRIBUTE(NAME, CONFIG, TYPE, FORMAT)	\
+										\
+static int NAME##_set(void *data, u64 val)					\
+{										\
+	struct xe_tile *tile = extract_tile(data);				\
+	unsigned int vfid = extract_vfid(data);					\
+	struct xe_gt *gt = tile->primary_gt;					\
+	struct xe_device *xe = tile->xe;					\
+	int err;								\
+										\
+	if (val > (TYPE)~0ull)							\
+		return -EOVERFLOW;						\
+										\
+	xe_pm_runtime_get(xe);							\
+	err = xe_sriov_pf_wait_ready(xe) ?:					\
+	      xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
+	xe_pm_runtime_put(xe);							\
+										\
+	return err;								\
+}										\
+										\
+static int NAME##_get(void *data, u64 *val)					\
+{										\
+	struct xe_tile *tile = extract_tile(data);				\
+	unsigned int vfid = extract_vfid(data);					\
+	struct xe_gt *gt = tile->primary_gt;					\
+										\
+	*val = xe_gt_sriov_pf_config_get_##CONFIG(gt, vfid);			\
+	return 0;								\
+}										\
+										\
+DEFINE_DEBUGFS_ATTRIBUTE(NAME##_fops, NAME##_get, NAME##_set, FORMAT)
+
+DEFINE_SRIOV_TILE_CONFIG_DEBUGFS_ATTRIBUTE(ggtt, ggtt, u64, "%llu\n");
+DEFINE_SRIOV_TILE_CONFIG_DEBUGFS_ATTRIBUTE(vram, lmem, u64, "%llu\n");
+
+static void pf_add_config_attrs(struct xe_tile *tile, struct dentry *dent, unsigned int vfid)
+{
+	xe_tile_assert(tile, tile == extract_tile(dent));
+	xe_tile_assert(tile, vfid == extract_vfid(dent));
+
+	debugfs_create_file_unsafe(vfid ? "ggtt_quota" : "ggtt_spare",
+				   0644, dent, dent, &ggtt_fops);
+	if (xe_device_has_lmtt(tile->xe))
+		debugfs_create_file_unsafe(vfid ? "vram_quota" : "vram_spare",
+					   0644, dent, dent, &vram_fops);
+}
+
 static void pf_populate_tile(struct xe_tile *tile, struct dentry *dent, unsigned int vfid)
 {
+	struct xe_device *xe = tile->xe;
+	struct drm_minor *minor = xe->drm.primary;
 	struct xe_gt *gt;
 	unsigned int id;
 
+	pf_add_config_attrs(tile, dent, vfid);
+
+	if (!vfid) {
+		drm_debugfs_create_files(pf_ggtt_info,
+					 ARRAY_SIZE(pf_ggtt_info),
+					 dent, minor);
+		if (xe_device_has_lmtt(xe))
+			drm_debugfs_create_files(pf_vram_info,
+						 ARRAY_SIZE(pf_vram_info),
+						 dent, minor);
+	}
+
 	for_each_gt_on_tile(gt, tile, id)
 		xe_gt_sriov_pf_debugfs_populate(gt, dent, vfid);
 }
-- 
2.47.1


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

* ✗ CI.checkpatch: warning for Refactor PF debugfs
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (5 preceding siblings ...)
  2025-09-28 14:00 ` [PATCH v2 6/6] drm/xe/pf: Make GGTT/LMEM debugfs files per-tile Michal Wajdeczko
@ 2025-09-28 14:07 ` Patchwork
  2025-09-28 14:08 ` ✓ CI.KUnit: success " Patchwork
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2025-09-28 14:07 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: Refactor PF debugfs
URL   : https://patchwork.freedesktop.org/series/155147/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
fbd08a78c3a3bb17964db2a326514c69c1dca660
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit e6a068a5113e607e6a3ff9ec1d56679ab25e0c65
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date:   Sun Sep 28 16:00:28 2025 +0200

    drm/xe/pf: Make GGTT/LMEM debugfs files per-tile
    
    Due to initial design of the Xe debugfs, the GGTT and LMEM files
    were defined on the primary GT, instead of being per-tile.
    
    While PF provisioning code is now still maintaining GGTT and LMEM
    also on the per primary-GT level, this will be refactored soon,
    but we can fix debugfs layout now, as part of the new SR-IOV tree.
    
    For backward compatibility we will provide some symlinks that can
    be removed once our tools will be fully converted.
    
    As we are making all those changes in the user facing interface,
    take this as apportunity to also start replacing the "LMEM" term,
    used by the SR-IOV code, with the "VRAM" term, used by Xe driver.
    
    Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Lucas De Marchi <lucas.demarchi@intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> #v1
+ /mt/dim checkpatch 3008c5c8e2fade05918e6d8c456572c91f30d412 drm-intel
77c4a5b70787 drm/xe/pf: Promote PF debugfs function to its own file
-:116: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#116: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 107 lines checked
886346e506a7 drm/xe/pf: Create separate debugfs tree for SR-IOV files
ee4087ff69d5 drm/xe/pf: Populate SR-IOV debugfs tree with tiles
-:81: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#81: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 165 lines checked
d21827542a8e drm/xe/pf: Move SR-IOV GT debugfs files to new tree
85ed53495f67 drm/xe/debugfs: Promote xe_tile_debugfs_simple_show
e6a068a5113e drm/xe/pf: Make GGTT/LMEM debugfs files per-tile



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

* ✓ CI.KUnit: success for Refactor PF debugfs
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (6 preceding siblings ...)
  2025-09-28 14:07 ` ✗ CI.checkpatch: warning for Refactor PF debugfs Patchwork
@ 2025-09-28 14:08 ` Patchwork
  2025-09-28 14:45 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2025-09-28 14:08 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: Refactor PF debugfs
URL   : https://patchwork.freedesktop.org/series/155147/
State : success

== Summary ==

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

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

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

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



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

* ✓ Xe.CI.BAT: success for Refactor PF debugfs
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (7 preceding siblings ...)
  2025-09-28 14:08 ` ✓ CI.KUnit: success " Patchwork
@ 2025-09-28 14:45 ` Patchwork
  2025-09-28 15:59 ` ✗ Xe.CI.Full: failure " Patchwork
  2025-09-29 23:21 ` [PATCH v2 0/6] " Rodrigo Vivi
  10 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2025-09-28 14:45 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: Refactor PF debugfs
URL   : https://patchwork.freedesktop.org/series/155147/
State : success

== Summary ==

CI Bug Log - changes from xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412_BAT -> xe-pw-155147v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts


Changes
-------

  No changes found


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

  * Linux: xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412 -> xe-pw-155147v1

  IGT_8555: 8555
  xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412: 3008c5c8e2fade05918e6d8c456572c91f30d412
  xe-pw-155147v1: 155147v1

== Logs ==

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

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

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

* ✗ Xe.CI.Full: failure for Refactor PF debugfs
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (8 preceding siblings ...)
  2025-09-28 14:45 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-09-28 15:59 ` Patchwork
  2025-09-29 21:56   ` Michal Wajdeczko
  2025-09-29 23:21 ` [PATCH v2 0/6] " Rodrigo Vivi
  10 siblings, 1 reply; 15+ messages in thread
From: Patchwork @ 2025-09-28 15:59 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: Refactor PF debugfs
URL   : https://patchwork.freedesktop.org/series/155147/
State : failure

== Summary ==

CI Bug Log - changes from xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412_FULL -> xe-pw-155147v1_FULL
====================================================

Summary
-------

  **FAILURE**

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

  

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-dp-4:
    - shard-dg2-set2:     [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-dp-4.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-dp-4.html

  
New tests
---------

  New tests have been introduced between xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412_FULL and xe-pw-155147v1_FULL:

### New IGT tests (287) ###

  * igt@kms_content_protection@content-type-change:
    - Statuses : 3 skip(s)
    - Exec time: [0.27, 2.30] s

  * igt@kms_content_protection@mei-interface:
    - Statuses : 3 skip(s)
    - Exec time: [0.00, 1.18] s

  * igt@kms_flip_event_leak@basic@pipe-a-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.29, 0.41] s

  * igt@kms_flip_event_leak@basic@pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.45] s

  * igt@kms_flip_event_leak@basic@pipe-b-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.24, 0.26] s

  * igt@kms_flip_event_leak@basic@pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.23] s

  * igt@kms_flip_event_leak@basic@pipe-c-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.24, 0.26] s

  * igt@kms_flip_event_leak@basic@pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.22] s

  * igt@kms_flip_event_leak@basic@pipe-d-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.22] s

  * igt@kms_lease@atomic-implicit-crtc:
    - Statuses : 4 pass(s)
    - Exec time: [0.01, 0.04] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-a-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-b-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-c-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-d-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@atomic-implicit-crtc@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@cursor-implicit-plane:
    - Statuses : 4 pass(s)
    - Exec time: [0.70, 2.92] s

  * igt@kms_lease@cursor-implicit-plane@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.43] s

  * igt@kms_lease@cursor-implicit-plane@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.28] s

  * igt@kms_lease@cursor-implicit-plane@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.52] s

  * igt@kms_lease@cursor-implicit-plane@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.24] s

  * igt@kms_lease@cursor-implicit-plane@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.28] s

  * igt@kms_lease@cursor-implicit-plane@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.23] s

  * igt@kms_lease@cursor-implicit-plane@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.22] s

  * igt@kms_lease@cursor-implicit-plane@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_lease@cursor-implicit-plane@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_lease@cursor-implicit-plane@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_lease@cursor-implicit-plane@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.17] s

  * igt@kms_lease@cursor-implicit-plane@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.16] s

  * igt@kms_lease@cursor-implicit-plane@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.28] s

  * igt@kms_lease@cursor-implicit-plane@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_lease@cursor-implicit-plane@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_lease@empty-lease:
    - Statuses : 4 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_lease@empty-lease@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@empty-lease@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again:
    - Statuses : 4 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@lease-again@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-again@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-again@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-again@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-again@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get:
    - Statuses : 4 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_lease@lease-get@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-get@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-get@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector:
    - Statuses : 4 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_lease@lease-invalid-connector@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-connector@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc:
    - Statuses : 3 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_lease@lease-invalid-crtc@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-crtc@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane:
    - Statuses : 4 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_lease@lease-invalid-plane@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-invalid-plane@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lease-revoke:
    - Statuses : 4 pass(s)
    - Exec time: [0.03, 0.39] s

  * igt@kms_lease@lease-revoke@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-revoke@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@lease-revoke@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-revoke@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-revoke@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@lease-revoke@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-revoke@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-revoke@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@lease-revoke@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-revoke@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-revoke@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-connector:
    - Statuses : 4 pass(s)
    - Exec time: [0.02, 0.23] s

  * igt@kms_lease@lease-unleased-connector@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@lease-unleased-connector@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-unleased-connector@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-unleased-connector@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@lease-unleased-connector@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-unleased-connector@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-unleased-connector@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-unleased-connector@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-unleased-connector@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-unleased-connector@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_lease@lease-unleased-connector@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_lease@lease-unleased-connector@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lease-unleased-crtc:
    - Statuses : 4 pass(s)
    - Exec time: [0.17, 1.06] s

  * igt@kms_lease@lease-unleased-crtc@pipe-a-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.06, 0.13] s

  * igt@kms_lease@lease-unleased-crtc@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.31] s

  * igt@kms_lease@lease-unleased-crtc@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.07] s

  * igt@kms_lease@lease-unleased-crtc@pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_lease@lease-unleased-crtc@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-crtc@pipe-b-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.06, 0.10] s

  * igt@kms_lease@lease-unleased-crtc@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.74] s

  * igt@kms_lease@lease-unleased-crtc@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-crtc@pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.09] s

  * igt@kms_lease@lease-unleased-crtc@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-crtc@pipe-c-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.05, 0.06] s

  * igt@kms_lease@lease-unleased-crtc@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.01] s

  * igt@kms_lease@lease-unleased-crtc@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-crtc@pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-crtc@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-crtc@pipe-d-dp-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.05, 0.06] s

  * igt@kms_lease@lease-unleased-crtc@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lease-unleased-crtc@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_lease@lessee-list:
    - Statuses : 3 pass(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_lease@lessee-list@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lessee-list@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lessee-list@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.00] s

  * igt@kms_lease@lessee-list@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lessee-list@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lessee-list@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lessee-list@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lessee-list@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lessee-list@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lessee-list@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@lessee-list@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_lease@page-flip-implicit-plane:
    - Statuses : 4 pass(s)
    - Exec time: [0.79, 2.95] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.49] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.32] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.53] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.28] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.31] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.30] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.25] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.28] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.31] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.29] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.16] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.17] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.29] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.31] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.26] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_lease@page-flip-implicit-plane@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_lease@setcrtc-implicit-plane:
    - Statuses : 2 pass(s)
    - Exec time: [0.77, 2.31] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-a-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.48] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.28] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.28] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.16] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.29] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.16] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_lease@setcrtc-implicit-plane@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.16] s

  * igt@kms_lease@simple-lease:
    - Statuses : 3 pass(s)
    - Exec time: [0.89, 3.41] s

  * igt@kms_lease@simple-lease@pipe-a-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.41] s

  * igt@kms_lease@simple-lease@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.54] s

  * igt@kms_lease@simple-lease@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.29] s

  * igt@kms_lease@simple-lease@pipe-b-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_lease@simple-lease@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.46] s

  * igt@kms_lease@simple-lease@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.19] s

  * igt@kms_lease@simple-lease@pipe-c-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.34] s

  * igt@kms_lease@simple-lease@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.40] s

  * igt@kms_lease@simple-lease@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.19] s

  * igt@kms_lease@simple-lease@pipe-d-dp-4:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_lease@simple-lease@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.20] s

  * igt@kms_plane_alpha_blend@alpha-7efc:
    - Statuses : 4 pass(s)
    - Exec time: [1.00, 2.36] s

  * igt@kms_plane_alpha_blend@alpha-7efc@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.73] s

  * igt@kms_plane_alpha_blend@alpha-basic:
    - Statuses : 4 pass(s)
    - Exec time: [5.08, 6.46] s

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.75] s

  * igt@kms_plane_alpha_blend@alpha-opaque-fb:
    - Statuses : 4 pass(s)
    - Exec time: [0.98, 2.71] s

  * igt@kms_plane_alpha_blend@alpha-transparent-fb:
    - Statuses : 1 dmesg-warn(s) 3 pass(s)
    - Exec time: [1.00, 2.42] s

  * igt@kms_plane_alpha_blend@constant-alpha-max:
    - Statuses : 2 pass(s)
    - Exec time: [1.83, 1.99] s

  * igt@kms_plane_alpha_blend@constant-alpha-mid:
    - Statuses : 3 pass(s)
    - Exec time: [1.43, 3.02] s

  * igt@kms_plane_alpha_blend@constant-alpha-mid@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.05] s

  * igt@kms_plane_alpha_blend@constant-alpha-min:
    - Statuses : 3 pass(s)
    - Exec time: [1.36, 2.81] s

  * igt@kms_plane_alpha_blend@constant-alpha-min@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.90] s

  * igt@kms_plane_alpha_blend@coverage-7efc:
    - Statuses : 4 pass(s)
    - Exec time: [0.94, 2.20] s

  * igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant:
    - Statuses : 4 pass(s)
    - Exec time: [0.86, 2.39] s

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-modifiers:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.04, 2.47] s

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.03, 3.99] s

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.03, 1.78] s

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers:
    - Statuses : 4 pass(s)
    - Exec time: [2.19, 3.90] s

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-pixel-format:
    - Statuses : 4 pass(s)
    - Exec time: [3.64, 6.69] s

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation:
    - Statuses : 3 pass(s)
    - Exec time: [1.49, 3.38] s

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-modifiers:
    - Statuses : 4 pass(s)
    - Exec time: [2.18, 3.87] s

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format:
    - Statuses : 4 pass(s)
    - Exec time: [3.67, 6.21] s

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation:
    - Statuses : 4 pass(s)
    - Exec time: [1.49, 3.38] s

  * igt@kms_plane_scaling@plane-upscale-20x20-with-modifiers:
    - Statuses : 3 pass(s)
    - Exec time: [2.19, 3.82] s

  * igt@kms_plane_scaling@plane-upscale-20x20-with-pixel-format:
    - Statuses : 4 pass(s)
    - Exec time: [3.64, 5.47] s

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation:
    - Statuses : 4 pass(s)
    - Exec time: [1.49, 3.34] s

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers:
    - Statuses : 4 pass(s)
    - Exec time: [2.19, 3.88] s

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-pixel-format:
    - Statuses : 4 pass(s)
    - Exec time: [3.65, 5.45] s

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation:
    - Statuses : 2 pass(s)
    - Exec time: [1.51, 1.81] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-dg2-set2:     NOTRUN -> [SKIP][3] ([Intel XE#316])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-adlp:         NOTRUN -> [DMESG-FAIL][4] ([Intel XE#4543])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-16bpp-rotate-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][5] ([Intel XE#1124])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-addfb-size-overflow:
    - shard-dg2-set2:     NOTRUN -> [SKIP][6] ([Intel XE#610])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-434/igt@kms_big_fb@y-tiled-addfb-size-overflow.html

  * igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
    - shard-bmg:          [PASS][7] -> [SKIP][8] ([Intel XE#2314] / [Intel XE#2894]) +2 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-1/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-1-displays-2560x1440p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][9] ([Intel XE#367])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-1-displays-3840x2160p:
    - shard-adlp:         NOTRUN -> [SKIP][10] ([Intel XE#367])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs@pipe-a-dp-2:
    - shard-dg2-set2:     NOTRUN -> [SKIP][11] ([Intel XE#787]) +153 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-432/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs@pipe-a-dp-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-dp-2:
    - shard-dg2-set2:     NOTRUN -> [SKIP][12] ([Intel XE#455] / [Intel XE#787]) +22 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/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@pipe-c-hdmi-a-6:
    - shard-dg2-set2:     [PASS][13] -> [DMESG-WARN][14] ([Intel XE#1727] / [Intel XE#3113])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-3/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2.html

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

  * igt@kms_chamelium_color@ctm-negative:
    - shard-adlp:         NOTRUN -> [SKIP][17] ([Intel XE#306])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@kms_chamelium_color@ctm-negative.html

  * igt@kms_chamelium_frames@hdmi-aspect-ratio:
    - shard-adlp:         NOTRUN -> [SKIP][18] ([Intel XE#373]) +1 other test skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@kms_chamelium_frames@hdmi-aspect-ratio.html

  * igt@kms_chamelium_frames@vga-frame-dump:
    - shard-dg2-set2:     NOTRUN -> [SKIP][19] ([Intel XE#373]) +3 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_chamelium_frames@vga-frame-dump.html

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

  * igt@kms_content_protection@legacy@pipe-a-dp-2:
    - shard-dg2-set2:     NOTRUN -> [FAIL][21] ([Intel XE#1178])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-432/igt@kms_content_protection@legacy@pipe-a-dp-2.html
    - shard-bmg:          NOTRUN -> [FAIL][22] ([Intel XE#1178])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_content_protection@legacy@pipe-a-dp-2.html

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
    - shard-adlp:         NOTRUN -> [SKIP][23] ([Intel XE#309])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
    - shard-bmg:          [PASS][24] -> [SKIP][25] ([Intel XE#2291]) +4 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-1/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-bmg:          [PASS][26] -> [FAIL][27] ([Intel XE#1475])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
    - shard-dg2-set2:     NOTRUN -> [SKIP][28] ([Intel XE#4422])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-434/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html

  * igt@kms_flip@2x-plain-flip-fb-recreate:
    - shard-bmg:          [PASS][29] -> [SKIP][30] ([Intel XE#2316]) +3 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-4/igt@kms_flip@2x-plain-flip-fb-recreate.html
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_flip@2x-plain-flip-fb-recreate.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-adlp:         [PASS][31] -> [DMESG-WARN][32] ([Intel XE#4543]) +8 other tests dmesg-warn
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-4/igt@kms_flip@flip-vs-suspend-interruptible.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_flip@flip-vs-suspend-interruptible.html
    - shard-bmg:          [PASS][33] -> [INCOMPLETE][34] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_flip@flip-vs-suspend-interruptible.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
    - shard-adlp:         [PASS][35] -> [DMESG-WARN][36] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4543])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-1/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-4/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html

  * igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-x-to-y:
    - shard-adlp:         [PASS][37] -> [DMESG-FAIL][38] ([Intel XE#4543])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-3/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-x-to-y.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-6/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-x-to-y.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-blt:
    - shard-adlp:         NOTRUN -> [SKIP][39] ([Intel XE#656]) +2 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-plflip-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][40] ([Intel XE#651]) +7 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-render:
    - shard-adlp:         NOTRUN -> [SKIP][41] ([Intel XE#651]) +2 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc:
    - shard-adlp:         NOTRUN -> [SKIP][42] ([Intel XE#653]) +4 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][43] ([Intel XE#653]) +8 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-434/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg2-set2:     NOTRUN -> [SKIP][44] ([Intel XE#455]) +3 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@invalid-hdr:
    - shard-dg2-set2:     [PASS][45] -> [SKIP][46] ([Intel XE#455])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-463/igt@kms_hdr@invalid-hdr.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-436/igt@kms_hdr@invalid-hdr.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-bmg:          [PASS][47] -> [SKIP][48] ([Intel XE#1503])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-4/igt@kms_hdr@static-toggle-suspend.html
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-adlp:         NOTRUN -> [SKIP][49] ([Intel XE#3012])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_plane_alpha_blend@alpha-transparent-fb (NEW):
    - shard-adlp:         [PASS][50] -> [DMESG-WARN][51] ([Intel XE#2953] / [Intel XE#4173]) +4 other tests dmesg-warn
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-3/igt@kms_plane_alpha_blend@alpha-transparent-fb.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-6/igt@kms_plane_alpha_blend@alpha-transparent-fb.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-dg2-set2:     NOTRUN -> [SKIP][52] ([Intel XE#1129])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_pm_dc@dc6-psr.html

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

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-adlp:         NOTRUN -> [SKIP][54] ([Intel XE#1406] / [Intel XE#1489]) +2 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr@fbc-psr-primary-blt:
    - shard-adlp:         NOTRUN -> [SKIP][55] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +1 other test skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@kms_psr@fbc-psr-primary-blt.html

  * igt@kms_psr@fbc-psr-sprite-plane-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][56] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +1 other test skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_psr@fbc-psr-sprite-plane-move.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-adlp:         NOTRUN -> [SKIP][57] ([Intel XE#1406] / [Intel XE#2939] / [Intel XE#5585])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][58] ([Intel XE#1406] / [Intel XE#2939])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-434/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-adlp:         NOTRUN -> [SKIP][59] ([Intel XE#455]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_setmode@invalid-clone-single-crtc:
    - shard-bmg:          [PASS][60] -> [SKIP][61] ([Intel XE#1435])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-4/igt@kms_setmode@invalid-clone-single-crtc.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-adlp:         NOTRUN -> [SKIP][62] ([Intel XE#362])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][63] ([Intel XE#1500])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-434/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@xe_compute_preempt@compute-preempt:
    - shard-adlp:         NOTRUN -> [SKIP][64] ([Intel XE#455] / [Intel XE#5632])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@xe_compute_preempt@compute-preempt.html

  * igt@xe_eudebug@basic-vm-access-parameters-userptr-faultable:
    - shard-dg2-set2:     NOTRUN -> [SKIP][65] ([Intel XE#4837])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@xe_eudebug@basic-vm-access-parameters-userptr-faultable.html

  * igt@xe_evict@evict-beng-large:
    - shard-adlp:         NOTRUN -> [SKIP][66] ([Intel XE#261] / [Intel XE#5564])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@xe_evict@evict-beng-large.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-rebind:
    - shard-adlp:         NOTRUN -> [SKIP][67] ([Intel XE#1392] / [Intel XE#5575])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-rebind.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race:
    - shard-dg2-set2:     [PASS][68] -> [SKIP][69] ([Intel XE#1392]) +6 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-434/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-432/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@many-execqueues-userptr-invalidate-race:
    - shard-adlp:         NOTRUN -> [SKIP][70] ([Intel XE#288] / [Intel XE#5561]) +2 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@xe_exec_fault_mode@many-execqueues-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@once-rebind-imm:
    - shard-dg2-set2:     NOTRUN -> [SKIP][71] ([Intel XE#288]) +8 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@xe_exec_fault_mode@once-rebind-imm.html

  * igt@xe_exec_system_allocator@many-new-bo-map:
    - shard-adlp:         NOTRUN -> [SKIP][72] ([Intel XE#4915]) +31 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@xe_exec_system_allocator@many-new-bo-map.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-stride-new-race-nomemset:
    - shard-dg2-set2:     NOTRUN -> [SKIP][73] ([Intel XE#4915]) +76 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-434/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-new-race-nomemset.html

  * igt@xe_mmap@pci-membarrier-bad-object:
    - shard-adlp:         NOTRUN -> [SKIP][74] ([Intel XE#5100])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@xe_mmap@pci-membarrier-bad-object.html

  * igt@xe_mmap@small-bar:
    - shard-dg2-set2:     NOTRUN -> [SKIP][75] ([Intel XE#512])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@xe_mmap@small-bar.html

  * igt@xe_oa@polling-small-buf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][76] ([Intel XE#3573]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@xe_oa@polling-small-buf.html

  * igt@xe_pm@s2idle-multiple-execs:
    - shard-adlp:         [PASS][77] -> [DMESG-WARN][78] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4504])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-3/igt@xe_pm@s2idle-multiple-execs.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-9/igt@xe_pm@s2idle-multiple-execs.html

  * igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy:
    - shard-adlp:         NOTRUN -> [SKIP][79] ([Intel XE#4733] / [Intel XE#5594])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-2/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][80] ([Intel XE#4733]) +1 other test skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-434/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html

  * igt@xe_query@multigpu-query-uc-fw-version-huc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][81] ([Intel XE#944])
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@xe_query@multigpu-query-uc-fw-version-huc.html

  * igt@xe_sriov_scheduling@equal-throughput:
    - shard-dg2-set2:     NOTRUN -> [SKIP][82] ([Intel XE#4351])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@xe_sriov_scheduling@equal-throughput.html

  
#### Possible fixes ####

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][83] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [INCOMPLETE][85] ([Intel XE#1727] / [Intel XE#3113]) -> [PASS][86]
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-bmg:          [SKIP][87] ([Intel XE#2291]) -> [PASS][88] +5 other tests pass
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-8/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-bmg:          [FAIL][89] ([Intel XE#1475]) -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_dp_aux_dev:
    - shard-bmg:          [SKIP][91] ([Intel XE#3009]) -> [PASS][92]
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_dp_aux_dev.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-8/igt@kms_dp_aux_dev.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-bmg:          [SKIP][93] ([Intel XE#2316]) -> [PASS][94] +3 other tests pass
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-3/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][95] ([Intel XE#4543]) -> [PASS][96] +7 other tests pass
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend@b-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][97] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][98] +2 other tests pass
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-1/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-4/igt@kms_flip@flip-vs-suspend@b-hdmi-a1.html

  * igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-y:
    - shard-adlp:         [FAIL][99] ([Intel XE#1874]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-3/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-y.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-6/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-y.html

  * igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x:
    - shard-adlp:         [DMESG-FAIL][101] ([Intel XE#4543]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-3/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-6/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-bmg:          [SKIP][103] ([Intel XE#4596]) -> [PASS][104]
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-x.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-8/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_setmode@basic@pipe-a-dp-4:
    - shard-dg2-set2:     [FAIL][105] ([Intel XE#2883]) -> [PASS][106]
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-466/igt@kms_setmode@basic@pipe-a-dp-4.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-463/igt@kms_setmode@basic@pipe-a-dp-4.html

  * igt@kms_setmode@basic@pipe-a-hdmi-a-3:
    - shard-bmg:          [FAIL][107] ([Intel XE#2883]) -> [PASS][108] +4 other tests pass
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-3/igt@kms_setmode@basic@pipe-a-hdmi-a-3.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-3/igt@kms_setmode@basic@pipe-a-hdmi-a-3.html

  * igt@kms_setmode@clone-exclusive-crtc:
    - shard-bmg:          [SKIP][109] ([Intel XE#1435]) -> [PASS][110]
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_setmode@clone-exclusive-crtc.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_setmode@clone-exclusive-crtc.html

  * igt@kms_vrr@max-min:
    - shard-lnl:          [FAIL][111] ([Intel XE#4227]) -> [PASS][112] +1 other test pass
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-lnl-1/igt@kms_vrr@max-min.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-lnl-2/igt@kms_vrr@max-min.html

  * igt@kms_vrr@negative-basic:
    - shard-bmg:          [SKIP][113] ([Intel XE#1499]) -> [PASS][114]
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_vrr@negative-basic.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_vrr@negative-basic.html

  * igt@xe_exec_basic@multigpu-once-null:
    - shard-dg2-set2:     [SKIP][115] ([Intel XE#1392]) -> [PASS][116] +4 other tests pass
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-432/igt@xe_exec_basic@multigpu-once-null.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-435/igt@xe_exec_basic@multigpu-once-null.html

  * igt@xe_exec_compute_mode@many-execqueues-basic:
    - shard-adlp:         [FAIL][117] -> [PASS][118] +1 other test pass
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-4/igt@xe_exec_compute_mode@many-execqueues-basic.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-8/igt@xe_exec_compute_mode@many-execqueues-basic.html
    - shard-bmg:          [FAIL][119] -> [PASS][120]
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-7/igt@xe_exec_compute_mode@many-execqueues-basic.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-1/igt@xe_exec_compute_mode@many-execqueues-basic.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-adlp:         [DMESG-WARN][121] ([Intel XE#3876]) -> [PASS][122]
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-4/igt@xe_exec_reset@parallel-gt-reset.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-8/igt@xe_exec_reset@parallel-gt-reset.html
    - shard-bmg:          [DMESG-WARN][123] ([Intel XE#3876]) -> [PASS][124]
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-7/igt@xe_exec_reset@parallel-gt-reset.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-1/igt@xe_exec_reset@parallel-gt-reset.html

  * igt@xe_exec_system_allocator@fault-benchmark:
    - shard-bmg:          [TIMEOUT][125] -> [PASS][126]
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-4/igt@xe_exec_system_allocator@fault-benchmark.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@xe_exec_system_allocator@fault-benchmark.html

  * {igt@xe_exec_system_allocator@twice-malloc-prefetch}:
    - shard-lnl:          [CRASH][127] ([Intel XE#6192]) -> [PASS][128] +11 other tests pass
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-lnl-3/igt@xe_exec_system_allocator@twice-malloc-prefetch.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-lnl-4/igt@xe_exec_system_allocator@twice-malloc-prefetch.html

  * {igt@xe_exec_system_allocator@twice-new-prefetch}:
    - shard-bmg:          [CRASH][129] ([Intel XE#6192]) -> [PASS][130] +8 other tests pass
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-3/igt@xe_exec_system_allocator@twice-new-prefetch.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-3/igt@xe_exec_system_allocator@twice-new-prefetch.html

  * igt@xe_exec_threads@threads-mixed-userptr-rebind:
    - shard-bmg:          [DMESG-FAIL][131] ([Intel XE#3876]) -> [PASS][132]
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-7/igt@xe_exec_threads@threads-mixed-userptr-rebind.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-1/igt@xe_exec_threads@threads-mixed-userptr-rebind.html

  
#### Warnings ####

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-adlp:         [DMESG-FAIL][133] ([Intel XE#4543]) -> [DMESG-FAIL][134] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4543])
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-4/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-1/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-rc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][135] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [INCOMPLETE][136] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345])
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_content_protection@legacy:
    - shard-bmg:          [SKIP][137] ([Intel XE#2341]) -> [FAIL][138] ([Intel XE#1178])
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_content_protection@legacy.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_content_protection@legacy.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-adlp:         [DMESG-WARN][139] ([Intel XE#2953] / [Intel XE#4173]) -> [DMESG-WARN][140] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4543])
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-1/igt@kms_flip@flip-vs-suspend.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-4/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render:
    - shard-bmg:          [SKIP][141] ([Intel XE#2311]) -> [SKIP][142] ([Intel XE#2312]) +11 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt:
    - shard-bmg:          [SKIP][143] ([Intel XE#2312]) -> [SKIP][144] ([Intel XE#2311]) +12 other tests skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][145] ([Intel XE#5390]) -> [SKIP][146] ([Intel XE#2312]) +5 other tests skip
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt:
    - shard-bmg:          [SKIP][147] ([Intel XE#2312]) -> [SKIP][148] ([Intel XE#5390]) +6 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw:
    - shard-bmg:          [SKIP][149] ([Intel XE#2313]) -> [SKIP][150] ([Intel XE#2312]) +11 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
    - shard-bmg:          [SKIP][151] ([Intel XE#2312]) -> [SKIP][152] ([Intel XE#2313]) +13 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-dg2-set2:     [SKIP][153] ([Intel XE#362]) -> [FAIL][154] ([Intel XE#1729])
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-436/igt@kms_tiled_display@basic-test-pattern.html

  * igt@xe_exec_fault_mode@many-rebind:
    - shard-adlp:         [INCOMPLETE][155] ([Intel XE#2594]) -> [SKIP][156] ([Intel XE#288] / [Intel XE#5561])
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-adlp-9/igt@xe_exec_fault_mode@many-rebind.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-adlp-3/igt@xe_exec_fault_mode@many-rebind.html

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

  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1475]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1475
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
  [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#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2883]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2883
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2939]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2939
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#3009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3009
  [Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [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#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
  [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#4416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4416
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [Intel XE#4504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4504
  [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#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#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
  [Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
  [Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
  [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#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5585]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5585
  [Intel XE#5594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5594
  [Intel XE#5632]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5632
  [Intel XE#5786]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5786
  [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
  [Intel XE#6192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6192
  [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#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * Linux: xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412 -> xe-pw-155147v1

  IGT_8555: 8555
  xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412: 3008c5c8e2fade05918e6d8c456572c91f30d412
  xe-pw-155147v1: 155147v1

== Logs ==

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

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

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

* Re: [PATCH v2 2/6] drm/xe/pf: Create separate debugfs tree for SR-IOV files
  2025-09-28 14:00 ` [PATCH v2 2/6] drm/xe/pf: Create separate debugfs tree for SR-IOV files Michal Wajdeczko
@ 2025-09-29 21:19   ` Lucas De Marchi
  0 siblings, 0 replies; 15+ messages in thread
From: Lucas De Marchi @ 2025-09-29 21:19 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, Rodrigo Vivi

On Sun, Sep 28, 2025 at 04:00:24PM +0200, Michal Wajdeczko wrote:
>Currently we expose debugfs files related to SR-IOV functions
>together with other native files, but that approach will not
>scale well as we plan to add more attributes and also expose
>some of them on the per-tile basis.
>
>Start building separate tree for SR-IOV specific debugfs files
>where we can replicate similar files per every SR-IOV function:
>
>   /sys/kernel/debug/dri/BDF/
>   ├── sriov
>   │   ├── pf
>   │   │   ├── tile0
>   │   │   │   ├── gt0
>   │   │   │   ├── gt1
>   │   │   │   :
>   │   │   ├── tile1
>   │   │   :
>   │   ├── vf1
>   │   │   ├── tile0
>   │   │   │   ├── gt0
>   │   │   │   ├── gt1
>   │   │   │   :
>   │   │   :
>   │   ├── vf2
>   │   ├── ...
>
>We will populate this new tree in upcoming patches.
>
>Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>


Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

thanks
Lucas De Marchi

>---
>v2: drop VFNAME_MAX and don't print dentry location (Lucas)
>---
> drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c | 58 ++++++++++++++++++++----
> 1 file changed, 49 insertions(+), 9 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
>index 2a1316048439..37cc3a297667 100644
>--- a/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
>+++ b/drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
>@@ -9,7 +9,9 @@
> #include "xe_device_types.h"
> #include "xe_sriov_pf.h"
> #include "xe_sriov_pf_debugfs.h"
>+#include "xe_sriov_pf_helpers.h"
> #include "xe_sriov_pf_service.h"
>+#include "xe_sriov_printk.h"
>
> static int simple_show(struct seq_file *m, void *data)
> {
>@@ -28,27 +30,65 @@ static const struct drm_info_list debugfs_list[] = {
> 	{ .name = "versions", .show = simple_show, .data = xe_sriov_pf_service_print_versions },
> };
>
>+static void pf_populate_pf(struct xe_device *xe, struct dentry *pfdent)
>+{
>+	struct drm_minor *minor = xe->drm.primary;
>+
>+	drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), pfdent, minor);
>+}
>+
> /**
>  * xe_sriov_pf_debugfs_register - Register PF debugfs attributes.
>  * @xe: the &xe_device
>  * @root: the root &dentry
>  *
>- * Prepare debugfs attributes exposed by the PF.
>+ * Create separate directory that will contain all SR-IOV related files,
>+ * organized per each SR-IOV function (PF, VF1, VF2, ..., VFn).
>  */
> void xe_sriov_pf_debugfs_register(struct xe_device *xe, struct dentry *root)
> {
>-	struct drm_minor *minor = xe->drm.primary;
>-	struct dentry *parent;
>+	int totalvfs = xe_sriov_pf_get_totalvfs(xe);
>+	struct dentry *pfdent;
>+	struct dentry *vfdent;
>+	struct dentry *dent;
>+	char vfname[16]; /* should be more than enough for "vf%u\0" and VFID(UINT_MAX) */
>+	unsigned int n;
>
> 	/*
>-	 *      /sys/kernel/debug/dri/0/
>-	 *      ├── pf
>+	 *      /sys/kernel/debug/dri/BDF/
>+	 *      ├── sriov		# d_inode->i_private = (xe_device*)
> 	 *      │   ├── ...
> 	 */
>-	parent = debugfs_create_dir("pf", root);
>-	if (IS_ERR(parent))
>+	dent = debugfs_create_dir("sriov", root);
>+	if (IS_ERR(dent))
> 		return;
>-	parent->d_inode->i_private = xe;
>+	dent->d_inode->i_private = xe;
>
>-	drm_debugfs_create_files(debugfs_list, ARRAY_SIZE(debugfs_list), parent, minor);
>+	/*
>+	 *      /sys/kernel/debug/dri/BDF/
>+	 *      ├── sriov		# d_inode->i_private = (xe_device*)
>+	 *      │   ├── pf		# d_inode->i_private = (xe_device*)
>+	 *      │   │   ├── ...
>+	 */
>+	pfdent = debugfs_create_dir("pf", dent);
>+	if (IS_ERR(pfdent))
>+		return;
>+	pfdent->d_inode->i_private = xe;
>+
>+	pf_populate_pf(xe, pfdent);
>+
>+	/*
>+	 *      /sys/kernel/debug/dri/BDF/
>+	 *      ├── sriov		# d_inode->i_private = (xe_device*)
>+	 *      │   ├── vf1		# d_inode->i_private = VFID(1)
>+	 *      │   ├── vf2		# d_inode->i_private = VFID(2)
>+	 *      │   ├── ...
>+	 */
>+	for (n = 1; n <= totalvfs; n++) {
>+		snprintf(vfname, sizeof(vfname), "vf%u", VFID(n));
>+		vfdent = debugfs_create_dir(vfname, dent);
>+		if (IS_ERR(vfdent))
>+			return;
>+		vfdent->d_inode->i_private = (void *)(uintptr_t)VFID(n);
>+	}
> }
>-- 
>2.47.1
>

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

* Re: [PATCH v2 6/6] drm/xe/pf: Make GGTT/LMEM debugfs files per-tile
  2025-09-28 14:00 ` [PATCH v2 6/6] drm/xe/pf: Make GGTT/LMEM debugfs files per-tile Michal Wajdeczko
@ 2025-09-29 21:21   ` Lucas De Marchi
  0 siblings, 0 replies; 15+ messages in thread
From: Lucas De Marchi @ 2025-09-29 21:21 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, Rodrigo Vivi

On Sun, Sep 28, 2025 at 04:00:28PM +0200, Michal Wajdeczko wrote:
>Due to initial design of the Xe debugfs, the GGTT and LMEM files
>were defined on the primary GT, instead of being per-tile.
>
>While PF provisioning code is now still maintaining GGTT and LMEM
>also on the per primary-GT level, this will be refactored soon,
>but we can fix debugfs layout now, as part of the new SR-IOV tree.
>
>For backward compatibility we will provide some symlinks that can
>be removed once our tools will be fully converted.
>
>As we are making all those changes in the user facing interface,
>take this as apportunity to also start replacing the "LMEM" term,
>used by the SR-IOV code, with the "VRAM" term, used by Xe driver.
>
>Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> #v1

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

thanks
Lucas De Marchi

>---
>v2: use VRAM where possible (Lucas, Rodrigo)
>    s/deprecated/compat (Lucas)
>---
> drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c   |  92 ++++--------
> drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c | 136 ++++++++++++++++++
> 2 files changed, 163 insertions(+), 65 deletions(-)
>
>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 fbb3cb3200fb..44fec2aae536 100644
>--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
>+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
>@@ -100,46 +100,6 @@ static const struct drm_info_list pf_info[] = {
> 	},
> };
>
>-/*
>- *      /sys/kernel/debug/dri/BDF/
>- *      ├── sriov
>- *      :   ├── pf
>- *          :   ├── tile0
>- *              :   ├── gt0
>- *                  :   ├── ggtt_available
>- *                      ├── ggtt_provisioned
>- */
>-
>-static const struct drm_info_list pf_ggtt_info[] = {
>-	{
>-		"ggtt_available",
>-		.show = xe_gt_debugfs_simple_show,
>-		.data = xe_gt_sriov_pf_config_print_available_ggtt,
>-	},
>-	{
>-		"ggtt_provisioned",
>-		.show = xe_gt_debugfs_simple_show,
>-		.data = xe_gt_sriov_pf_config_print_ggtt,
>-	},
>-};
>-
>-/*
>- *      /sys/kernel/debug/dri/BDF/
>- *      ├── sriov
>- *      :   ├── pf
>- *          :   ├── tile0
>- *              :   ├── gt0
>- *                  :   ├── lmem_provisioned
>- */
>-
>-static const struct drm_info_list pf_lmem_info[] = {
>-	{
>-		"lmem_provisioned",
>-		.show = xe_gt_debugfs_simple_show,
>-		.data = xe_gt_sriov_pf_config_print_lmem,
>-	},
>-};
>-
> /*
>  *      /sys/kernel/debug/dri/BDF/
>  *      ├── sriov
>@@ -199,9 +159,7 @@ static void pf_add_policy_attrs(struct xe_gt *gt, struct dentry *parent)
>  *      :   ├── pf
>  *          │   ├── tile0
>  *          │   :   ├── gt0
>- *          │       :   ├── ggtt_spare
>- *          │           ├── lmem_spare
>- *          │           ├── doorbells_spare
>+ *          │       :   ├── doorbells_spare
>  *          │           ├── contexts_spare
>  *          │           ├── exec_quantum_ms
>  *          │           ├── preempt_timeout_us
>@@ -209,9 +167,7 @@ static void pf_add_policy_attrs(struct xe_gt *gt, struct dentry *parent)
>  *          ├── vf1
>  *          :   ├── tile0
>  *              :   ├── gt0
>- *                  :   ├── ggtt_quota
>- *                      ├── lmem_quota
>- *                      ├── doorbells_quota
>+ *                  :   ├── doorbells_quota
>  *                      ├── contexts_quota
>  *                      ├── exec_quantum_ms
>  *                      ├── preempt_timeout_us
>@@ -249,8 +205,6 @@ static int CONFIG##_get(void *data, u64 *val)					\
> 										\
> DEFINE_DEBUGFS_ATTRIBUTE(CONFIG##_fops, CONFIG##_get, CONFIG##_set, FORMAT)
>
>-DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(ggtt, u64, "%llu\n");
>-DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(lmem, u64, "%llu\n");
> DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(ctxs, u32, "%llu\n");
> DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(dbs, u32, "%llu\n");
> DEFINE_SRIOV_GT_CONFIG_DEBUGFS_ATTRIBUTE(exec_quantum, u32, "%llu\n");
>@@ -331,13 +285,6 @@ static void pf_add_config_attrs(struct xe_gt *gt, struct dentry *parent, unsigne
> 	xe_gt_assert(gt, gt == extract_gt(parent));
> 	xe_gt_assert(gt, vfid == extract_vfid(parent));
>
>-	if (xe_gt_is_main_type(gt)) {
>-		debugfs_create_file_unsafe(vfid ? "ggtt_quota" : "ggtt_spare",
>-					   0644, parent, parent, &ggtt_fops);
>-		if (xe_device_has_lmtt(gt_to_xe(gt)))
>-			debugfs_create_file_unsafe(vfid ? "lmem_quota" : "lmem_spare",
>-						   0644, parent, parent, &lmem_fops);
>-	}
> 	debugfs_create_file_unsafe(vfid ? "doorbells_quota" : "doorbells_spare",
> 				   0644, parent, parent, &dbs_fops);
> 	debugfs_create_file_unsafe(vfid ? "contexts_quota" : "contexts_spare",
>@@ -558,6 +505,28 @@ static const struct file_operations config_blob_ops = {
> 	.llseek		= default_llseek,
> };
>
>+static void pf_add_compat_attrs(struct xe_gt *gt, struct dentry *dent, unsigned int vfid)
>+{
>+	struct xe_device *xe = gt_to_xe(gt);
>+
>+	if (!xe_gt_is_main_type(gt))
>+		return;
>+
>+	if (vfid) {
>+		debugfs_create_symlink("ggtt_quota", dent, "../ggtt_quota");
>+		if (xe_device_has_lmtt(xe))
>+			debugfs_create_symlink("lmem_quota", dent, "../vram_quota");
>+	} else {
>+		debugfs_create_symlink("ggtt_spare", dent, "../ggtt_spare");
>+		debugfs_create_symlink("ggtt_available", dent, "../ggtt_available");
>+		debugfs_create_symlink("ggtt_provisioned", dent, "../ggtt_provisioned");
>+		if (xe_device_has_lmtt(xe)) {
>+			debugfs_create_symlink("lmem_spare", dent, "../vram_spare");
>+			debugfs_create_symlink("lmem_provisioned", dent, "../vram_provisioned");
>+		}
>+	}
>+}
>+
> static void pf_populate_gt(struct xe_gt *gt, struct dentry *dent, unsigned int vfid)
> {
> 	struct xe_device *xe = gt_to_xe(gt);
>@@ -583,17 +552,10 @@ static void pf_populate_gt(struct xe_gt *gt, struct dentry *dent, unsigned int v
> 		pf_add_policy_attrs(gt, dent);
>
> 		drm_debugfs_create_files(pf_info, ARRAY_SIZE(pf_info), dent, minor);
>-
>-		if (xe_gt_is_main_type(gt)) {
>-			drm_debugfs_create_files(pf_ggtt_info,
>-						 ARRAY_SIZE(pf_ggtt_info),
>-						 dent, minor);
>-			if (xe_device_has_lmtt(xe))
>-				drm_debugfs_create_files(pf_lmem_info,
>-							 ARRAY_SIZE(pf_lmem_info),
>-							 dent, minor);
>-		}
> 	}
>+
>+	/* for backward compatibility only */
>+	pf_add_compat_attrs(gt, dent, vfid);
> }
>
> /**
>diff --git a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
>index 335a79d09639..c8df18af4d00 100644
>--- a/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
>+++ b/drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
>@@ -8,9 +8,13 @@
>
> #include "xe_device.h"
> #include "xe_device_types.h"
>+#include "xe_gt_sriov_pf_config.h"
> #include "xe_gt_sriov_pf_debugfs.h"
>+#include "xe_pm.h"
>+#include "xe_tile_debugfs.h"
> #include "xe_tile_sriov_pf_debugfs.h"
> #include "xe_sriov.h"
>+#include "xe_sriov_pf.h"
>
> /*
>  *      /sys/kernel/debug/dri/BDF/
>@@ -53,11 +57,143 @@ static unsigned int extract_vfid(struct dentry *d)
> 	return pp == extract_xe(d) ? PFID : (uintptr_t)pp;
> }
>
>+/*
>+ *      /sys/kernel/debug/dri/BDF/
>+ *      ├── sriov
>+ *      :   ├── pf
>+ *          :   ├── tile0
>+ *              :   ├── ggtt_available
>+ *                  ├── ggtt_provisioned
>+ */
>+
>+static int pf_config_print_available_ggtt(struct xe_tile *tile, struct drm_printer *p)
>+{
>+	return xe_gt_sriov_pf_config_print_available_ggtt(tile->primary_gt, p);
>+}
>+
>+static int pf_config_print_ggtt(struct xe_tile *tile, struct drm_printer *p)
>+{
>+	return xe_gt_sriov_pf_config_print_ggtt(tile->primary_gt, p);
>+}
>+
>+static const struct drm_info_list pf_ggtt_info[] = {
>+	{
>+		"ggtt_available",
>+		.show = xe_tile_debugfs_simple_show,
>+		.data = pf_config_print_available_ggtt,
>+	},
>+	{
>+		"ggtt_provisioned",
>+		.show = xe_tile_debugfs_simple_show,
>+		.data = pf_config_print_ggtt,
>+	},
>+};
>+
>+/*
>+ *      /sys/kernel/debug/dri/BDF/
>+ *      ├── sriov
>+ *      :   ├── pf
>+ *          :   ├── tile0
>+ *              :   ├── vram_provisioned
>+ */
>+
>+static int pf_config_print_vram(struct xe_tile *tile, struct drm_printer *p)
>+{
>+	return xe_gt_sriov_pf_config_print_lmem(tile->primary_gt, p);
>+}
>+
>+static const struct drm_info_list pf_vram_info[] = {
>+	{
>+		"vram_provisioned",
>+		.show = xe_tile_debugfs_simple_show,
>+		.data = pf_config_print_vram,
>+	},
>+};
>+
>+/*
>+ *      /sys/kernel/debug/dri/BDF/
>+ *      ├── sriov
>+ *      │   ├── pf
>+ *      │   │   ├── tile0
>+ *      │   │   │   ├── ggtt_spare
>+ *      │   │   │   ├── vram_spare
>+ *      │   │   ├── tile1
>+ *      │   │   :   :
>+ *      │   ├── vf1
>+ *      │   :   ├── tile0
>+ *      │       │   ├── ggtt_quota
>+ *      │       │   ├── vram_quota
>+ *      │       ├── tile1
>+ *      │       :   :
>+ */
>+
>+#define DEFINE_SRIOV_TILE_CONFIG_DEBUGFS_ATTRIBUTE(NAME, CONFIG, TYPE, FORMAT)	\
>+										\
>+static int NAME##_set(void *data, u64 val)					\
>+{										\
>+	struct xe_tile *tile = extract_tile(data);				\
>+	unsigned int vfid = extract_vfid(data);					\
>+	struct xe_gt *gt = tile->primary_gt;					\
>+	struct xe_device *xe = tile->xe;					\
>+	int err;								\
>+										\
>+	if (val > (TYPE)~0ull)							\
>+		return -EOVERFLOW;						\
>+										\
>+	xe_pm_runtime_get(xe);							\
>+	err = xe_sriov_pf_wait_ready(xe) ?:					\
>+	      xe_gt_sriov_pf_config_set_##CONFIG(gt, vfid, val);		\
>+	xe_pm_runtime_put(xe);							\
>+										\
>+	return err;								\
>+}										\
>+										\
>+static int NAME##_get(void *data, u64 *val)					\
>+{										\
>+	struct xe_tile *tile = extract_tile(data);				\
>+	unsigned int vfid = extract_vfid(data);					\
>+	struct xe_gt *gt = tile->primary_gt;					\
>+										\
>+	*val = xe_gt_sriov_pf_config_get_##CONFIG(gt, vfid);			\
>+	return 0;								\
>+}										\
>+										\
>+DEFINE_DEBUGFS_ATTRIBUTE(NAME##_fops, NAME##_get, NAME##_set, FORMAT)
>+
>+DEFINE_SRIOV_TILE_CONFIG_DEBUGFS_ATTRIBUTE(ggtt, ggtt, u64, "%llu\n");
>+DEFINE_SRIOV_TILE_CONFIG_DEBUGFS_ATTRIBUTE(vram, lmem, u64, "%llu\n");
>+
>+static void pf_add_config_attrs(struct xe_tile *tile, struct dentry *dent, unsigned int vfid)
>+{
>+	xe_tile_assert(tile, tile == extract_tile(dent));
>+	xe_tile_assert(tile, vfid == extract_vfid(dent));
>+
>+	debugfs_create_file_unsafe(vfid ? "ggtt_quota" : "ggtt_spare",
>+				   0644, dent, dent, &ggtt_fops);
>+	if (xe_device_has_lmtt(tile->xe))
>+		debugfs_create_file_unsafe(vfid ? "vram_quota" : "vram_spare",
>+					   0644, dent, dent, &vram_fops);
>+}
>+
> static void pf_populate_tile(struct xe_tile *tile, struct dentry *dent, unsigned int vfid)
> {
>+	struct xe_device *xe = tile->xe;
>+	struct drm_minor *minor = xe->drm.primary;
> 	struct xe_gt *gt;
> 	unsigned int id;
>
>+	pf_add_config_attrs(tile, dent, vfid);
>+
>+	if (!vfid) {
>+		drm_debugfs_create_files(pf_ggtt_info,
>+					 ARRAY_SIZE(pf_ggtt_info),
>+					 dent, minor);
>+		if (xe_device_has_lmtt(xe))
>+			drm_debugfs_create_files(pf_vram_info,
>+						 ARRAY_SIZE(pf_vram_info),
>+						 dent, minor);
>+	}
>+
> 	for_each_gt_on_tile(gt, tile, id)
> 		xe_gt_sriov_pf_debugfs_populate(gt, dent, vfid);
> }
>-- 
>2.47.1
>

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

* Re: ✗ Xe.CI.Full: failure for Refactor PF debugfs
  2025-09-28 15:59 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-09-29 21:56   ` Michal Wajdeczko
  0 siblings, 0 replies; 15+ messages in thread
From: Michal Wajdeczko @ 2025-09-29 21:56 UTC (permalink / raw)
  To: intel-xe



On 9/28/2025 5:59 PM, Patchwork wrote:
> *Patch Details*
> *Series:*	Refactor PF debugfs
> *URL:*	https://patchwork.freedesktop.org/series/155147/ <https://patchwork.freedesktop.org/series/155147/>
> *State:*	failure
> *Details:*	https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/index.html <https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/index.html>
> 
> 
>   CI Bug Log - changes from xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412_FULL -> xe-pw-155147v1_FULL
> 
> 
>     Summary
> 
> *FAILURE*
> 
> Serious unknown changes coming with xe-pw-155147v1_FULL absolutely need to be
> verified manually.
> 
> If you think the reported changes have nothing to do with the changes
> introduced in xe-pw-155147v1_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
> to document this new failure mode, which will reduce false positives in CI.
> 
> 
>     Participating hosts (4 -> 4)
> 
> No changes in participating hosts
> 
> 
>     Possible new issues
> 
> Here are the unknown changes that may have been introduced in xe-pw-155147v1_FULL:
> 
> 
>       IGT changes
> 
> 
>         Possible regressions
> 
>   * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-dp-4:
>       o shard-dg2-set2: PASS <https://intel-gfx-ci.01.org/tree/intel-xe/xe-3835-3008c5c8e2fade05918e6d8c456572c91f30d412/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-dp-4.html> -> INCOMPLETE <https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-155147v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-dp-4.html>
> 

unrelated

<7> [ 52.288483] xe 0000:03:00.0: [drm:xe_pci_probe [xe]] SR-IOV support: no (mode: none)

<3> [190.039490] xe 0000:03:00.0: [drm] *ERROR* Tile0: GT0: CT write: non-zero status: 4294967295




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

* Re: [PATCH v2 0/6] Refactor PF debugfs
  2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
                   ` (9 preceding siblings ...)
  2025-09-28 15:59 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-09-29 23:21 ` Rodrigo Vivi
  10 siblings, 0 replies; 15+ messages in thread
From: Rodrigo Vivi @ 2025-09-29 23:21 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi

On Sun, Sep 28, 2025 at 04:00:22PM +0200, Michal Wajdeczko wrote:
> In new debugfs layout, all SR-IOV files are grouped under single
> "sriov" directory, where each SR-IOV function is represented by
> its own separate directory, with individual tile/GT structure.
> 
> This allows to place GGTT/VRAM attributes correctly under a tile,
> without polluting 'native' entry with many function directories.
> 
>   /sys/kernel/debug/dri/0000:4d:00.0/
>   ├── ...
>   ├── gt0 -> tile0/gt0
>   ├── sriov
>   │   ├── pf
>   │   │   ├── tile0
>   │   │   │   ├── ggtt_available
>   │   │   │   ├── ggtt_provisioned
>   │   │   │   ├── ggtt_spare
>   │   │   │   ├── gt0
>   │   │   │   │   ├── adverse_events
>   │   │   │   │   ├── contexts_provisioned
>   │   │   │   │   ├── contexts_spare
>   │   │   │   │   ├── doorbells_provisioned
>   │   │   │   │   ├── doorbells_spare
>   │   │   │   │   ├── exec_quantum_ms
>   │   │   │   │   ├── ggtt_available -> ../ggtt_available
>   │   │   │   │   ├── ggtt_provisioned -> ../ggtt_provisioned
>   │   │   │   │   ├── ggtt_spare -> ../ggtt_spare
>   │   │   │   │   ├── lmem_provisioned -> ../vram_provisioned
>   │   │   │   │   ├── lmem_spare -> ../vram_spare
>   │   │   │   │   ├── preempt_timeout_us
>   │   │   │   │   ├── reset_engine
>   │   │   │   │   ├── runtime_registers
>   │   │   │   │   ├── sample_period_ms
>   │   │   │   │   ├── sched_if_idle
>   │   │   │   │   ├── sched_priority
>   │   │   │   │   ├── threshold_cat_error_count
>   │   │   │   │   ├── threshold_doorbell_time_us
>   │   │   │   │   ├── threshold_engine_reset_count
>   │   │   │   │   ├── threshold_guc_time_us
>   │   │   │   │   ├── threshold_irq_time_us
>   │   │   │   │   └── threshold_page_fault_count
>   │   │   │   ├── vram_provisioned
>   │   │   │   └── vram_spare
>   │   │   ├── versions
>   │   │   └── vfs
>   │   ├── vf1
>   │   │   └── tile0
>   │   │       ├── ggtt_quota
>   │   │       ├── gt0
>   │   │       │   ├── config_blob
>   │   │       │   ├── contexts_quota
>   │   │       │   ├── control
>   │   │       │   ├── doorbells_quota
>   │   │       │   ├── exec_quantum_ms
>   │   │       │   ├── ggtt_quota -> ../ggtt_quota
>   │   │       │   ├── guc_state
>   │   │       │   ├── lmem_quota -> ../vram_quota
>   │   │       │   ├── preempt_timeout_us
>   │   │       │   ├── sched_priority
>   │   │       │   ├── threshold_cat_error_count
>   │   │       │   ├── threshold_doorbell_time_us
>   │   │       │   ├── threshold_engine_reset_count
>   │   │       │   ├── threshold_guc_time_us
>   │   │       │   ├── threshold_irq_time_us
>   │   │       │   └── threshold_page_fault_count
>   │   │       └── vram_quota
>   │   ├── vf2
>   │   :
>   ├── tile0
>   │   ├── ggtt
>   │   ├── gt0
>   │   │   ├── ...
>   │   │   ├── pf -> ../../sriov/pf/tile0/gt0
>   │   │   ├── vf1 -> ../../sriov/vf1/tile0/gt0
>   │   │   ├── vf2 -> ../../sriov/vf2/tile0/gt0
>   :   :   └── ...

Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> 
> v1: https://patchwork.freedesktop.org/series/155064/#rev1
> v2: use VRAM instead of LMEM (Lucas, Rodrigo)
> 
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> 
> Michal Wajdeczko (6):
>   drm/xe/pf: Promote PF debugfs function to its own file
>   drm/xe/pf: Create separate debugfs tree for SR-IOV files
>   drm/xe/pf: Populate SR-IOV debugfs tree with tiles
>   drm/xe/pf: Move SR-IOV GT debugfs files to new tree
>   drm/xe/debugfs: Promote xe_tile_debugfs_simple_show
>   drm/xe/pf: Make GGTT/LMEM debugfs files per-tile
> 
>  drivers/gpu/drm/xe/Makefile                   |   4 +-
>  drivers/gpu/drm/xe/xe_debugfs.c               |   2 +-
>  drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c   | 389 ++++++++++--------
>  drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.h   |   1 +
>  drivers/gpu/drm/xe/xe_sriov_pf.c              |  42 --
>  drivers/gpu/drm/xe/xe_sriov_pf.h              |   5 -
>  drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c      | 108 +++++
>  drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h      |  18 +
>  drivers/gpu/drm/xe/xe_tile_debugfs.c          |  14 +-
>  drivers/gpu/drm/xe/xe_tile_debugfs.h          |   3 +
>  drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c | 247 +++++++++++
>  drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h |  15 +
>  12 files changed, 621 insertions(+), 227 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.c
>  create mode 100644 drivers/gpu/drm/xe/xe_sriov_pf_debugfs.h
>  create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.c
>  create mode 100644 drivers/gpu/drm/xe/xe_tile_sriov_pf_debugfs.h
> 
> -- 
> 2.47.1
> 

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

end of thread, other threads:[~2025-09-29 23:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-28 14:00 [PATCH v2 0/6] Refactor PF debugfs Michal Wajdeczko
2025-09-28 14:00 ` [PATCH v2 1/6] drm/xe/pf: Promote PF debugfs function to its own file Michal Wajdeczko
2025-09-28 14:00 ` [PATCH v2 2/6] drm/xe/pf: Create separate debugfs tree for SR-IOV files Michal Wajdeczko
2025-09-29 21:19   ` Lucas De Marchi
2025-09-28 14:00 ` [PATCH v2 3/6] drm/xe/pf: Populate SR-IOV debugfs tree with tiles Michal Wajdeczko
2025-09-28 14:00 ` [PATCH v2 4/6] drm/xe/pf: Move SR-IOV GT debugfs files to new tree Michal Wajdeczko
2025-09-28 14:00 ` [PATCH v2 5/6] drm/xe/debugfs: Promote xe_tile_debugfs_simple_show Michal Wajdeczko
2025-09-28 14:00 ` [PATCH v2 6/6] drm/xe/pf: Make GGTT/LMEM debugfs files per-tile Michal Wajdeczko
2025-09-29 21:21   ` Lucas De Marchi
2025-09-28 14:07 ` ✗ CI.checkpatch: warning for Refactor PF debugfs Patchwork
2025-09-28 14:08 ` ✓ CI.KUnit: success " Patchwork
2025-09-28 14:45 ` ✓ Xe.CI.BAT: " Patchwork
2025-09-28 15:59 ` ✗ Xe.CI.Full: failure " Patchwork
2025-09-29 21:56   ` Michal Wajdeczko
2025-09-29 23:21 ` [PATCH v2 0/6] " Rodrigo Vivi

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