Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute
@ 2026-01-21 21:42 Michal Wajdeczko
  2026-01-21 21:42 ` [PATCH 1/5] drm/xe: Keep all defaults in single header Michal Wajdeczko
                   ` (10 more replies)
  0 siblings, 11 replies; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-21 21:42 UTC (permalink / raw)
  To: intel-xe
  Cc: Michal Wajdeczko, Rodrigo Vivi, Matthew Brost,
	Piotr Piórkowski, Satyanarayana K V P

Currently we are relying on the info.probe_display flag to guess if maybe
we should provision single VF in more favorable way, without reserving
too much resources for the PF (mode known as 'admin-only-PF').

Start using configfs to allow flexible admin-only-PF configuration based
on the real need. But before that, do some cleanups and preparations.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>

Michal Wajdeczko (5):
  drm/xe: Keep all defaults in single header
  drm/xe/configfs: Use proper notation for local include
  drm/xe/configfs: Always return consistent max_vfs value
  drm/xe/pf: Define admin_only as real flag
  drm/xe/configfs: Add sriov.admin_only_pf attribute

 drivers/gpu/drm/xe/xe_configfs.c         | 64 +++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_configfs.h         | 16 +++++-
 drivers/gpu/drm/xe/xe_defaults.h         | 26 ++++++++++
 drivers/gpu/drm/xe/xe_device.c           |  3 +-
 drivers/gpu/drm/xe/xe_device_types.h     |  3 --
 drivers/gpu/drm/xe/xe_module.c           | 42 ++++++----------
 drivers/gpu/drm/xe/xe_sriov_pf.c         | 10 ++--
 drivers/gpu/drm/xe/xe_sriov_pf_helpers.h |  3 +-
 drivers/gpu/drm/xe/xe_sriov_pf_types.h   |  3 ++
 9 files changed, 131 insertions(+), 39 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_defaults.h

-- 
2.47.1


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

* [PATCH 1/5] drm/xe: Keep all defaults in single header
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
@ 2026-01-21 21:42 ` Michal Wajdeczko
  2026-01-23 10:29   ` Piotr Piórkowski
                     ` (2 more replies)
  2026-01-21 21:42 ` [PATCH 2/5] drm/xe/configfs: Use proper notation for local include Michal Wajdeczko
                   ` (9 subsequent siblings)
  10 siblings, 3 replies; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-21 21:42 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

We already have most of Xe defaults defined in xe_module.c,
where we use them for the modparam initializations, but some
were defined elsewhere, which breaks the consistency.

Introduce xe_defaults.h file, that will act as a placeholder
for all our default values, and can be used from other places.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_defaults.h     | 25 +++++++++++++++++
 drivers/gpu/drm/xe/xe_device.c       |  3 +-
 drivers/gpu/drm/xe/xe_device_types.h |  3 --
 drivers/gpu/drm/xe/xe_module.c       | 42 ++++++++++------------------
 4 files changed, 41 insertions(+), 32 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_defaults.h

diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
new file mode 100644
index 000000000000..9183d05b96e1
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_defaults.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+#ifndef _XE_DEFAULTS_H_
+#define _XE_DEFAULTS_H_
+
+#include "xe_device_types.h"
+
+#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
+#define XE_DEFAULT_GUC_LOG_LEVEL		3
+#else
+#define XE_DEFAULT_GUC_LOG_LEVEL		1
+#endif
+
+#define XE_DEFAULT_PROBE_DISPLAY		true
+#define XE_DEFAULT_VRAM_BAR_SIZE		0
+#define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
+#define XE_DEFAULT_MAX_VFS			~0
+#define XE_DEFAULT_MAX_VFS_STR			"unlimited"
+#define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
+#define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
+#define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
+
+#endif
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index aad4aa53a51f..17f4d048c8b9 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -26,6 +26,7 @@
 #include "xe_bo.h"
 #include "xe_bo_evict.h"
 #include "xe_debugfs.h"
+#include "xe_defaults.h"
 #include "xe_devcoredump.h"
 #include "xe_device_sysfs.h"
 #include "xe_dma_buf.h"
@@ -743,7 +744,7 @@ int xe_device_probe_early(struct xe_device *xe)
 	assert_lmem_ready(xe);
 
 	xe->wedged.mode = xe_device_validate_wedged_mode(xe, xe_modparam.wedged_mode) ?
-			  XE_WEDGED_MODE_DEFAULT : xe_modparam.wedged_mode;
+			  XE_DEFAULT_WEDGED_MODE : xe_modparam.wedged_mode;
 	drm_dbg(&xe->drm, "wedged_mode: setting mode (%u) %s\n",
 		xe->wedged.mode, xe_wedged_mode_to_string(xe->wedged.mode));
 
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 34feef79fa4e..b4600c5069a9 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -62,9 +62,6 @@ enum xe_wedged_mode {
 	XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET = 2,
 };
 
-#define XE_WEDGED_MODE_DEFAULT		XE_WEDGED_MODE_UPON_CRITICAL_ERROR
-#define XE_WEDGED_MODE_DEFAULT_STR	"upon-critical-error"
-
 #define XE_BO_INVALID_OFFSET	LONG_MAX
 
 #define GRAPHICS_VER(xe) ((xe)->info.graphics_verx100 / 100)
diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
index a0048f64ed12..903d3b433421 100644
--- a/drivers/gpu/drm/xe/xe_module.c
+++ b/drivers/gpu/drm/xe/xe_module.c
@@ -10,6 +10,7 @@
 
 #include <drm/drm_module.h>
 
+#include "xe_defaults.h"
 #include "xe_device_types.h"
 #include "xe_drv.h"
 #include "xe_configfs.h"
@@ -19,51 +20,36 @@
 #include "xe_observation.h"
 #include "xe_sched_job.h"
 
-#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
-#define DEFAULT_GUC_LOG_LEVEL		3
-#else
-#define DEFAULT_GUC_LOG_LEVEL		1
-#endif
-
-#define DEFAULT_PROBE_DISPLAY		true
-#define DEFAULT_VRAM_BAR_SIZE		0
-#define DEFAULT_FORCE_PROBE		CONFIG_DRM_XE_FORCE_PROBE
-#define DEFAULT_MAX_VFS			~0
-#define DEFAULT_MAX_VFS_STR		"unlimited"
-#define DEFAULT_WEDGED_MODE		XE_WEDGED_MODE_DEFAULT
-#define DEFAULT_WEDGED_MODE_STR		XE_WEDGED_MODE_DEFAULT_STR
-#define DEFAULT_SVM_NOTIFIER_SIZE	512
-
 struct xe_modparam xe_modparam = {
-	.probe_display =	DEFAULT_PROBE_DISPLAY,
-	.guc_log_level =	DEFAULT_GUC_LOG_LEVEL,
-	.force_probe =		DEFAULT_FORCE_PROBE,
+	.probe_display =	XE_DEFAULT_PROBE_DISPLAY,
+	.guc_log_level =	XE_DEFAULT_GUC_LOG_LEVEL,
+	.force_probe =		XE_DEFAULT_FORCE_PROBE,
 #ifdef CONFIG_PCI_IOV
-	.max_vfs =		DEFAULT_MAX_VFS,
+	.max_vfs =		XE_DEFAULT_MAX_VFS,
 #endif
-	.wedged_mode =		DEFAULT_WEDGED_MODE,
-	.svm_notifier_size =	DEFAULT_SVM_NOTIFIER_SIZE,
+	.wedged_mode =		XE_DEFAULT_WEDGED_MODE,
+	.svm_notifier_size =	XE_DEFAULT_SVM_NOTIFIER_SIZE,
 	/* the rest are 0 by default */
 };
 
 module_param_named(svm_notifier_size, xe_modparam.svm_notifier_size, uint, 0600);
 MODULE_PARM_DESC(svm_notifier_size, "Set the svm notifier size in MiB, must be power of 2 "
-		 "[default=" __stringify(DEFAULT_SVM_NOTIFIER_SIZE) "]");
+		 "[default=" __stringify(XE_DEFAULT_SVM_NOTIFIER_SIZE) "]");
 
 module_param_named_unsafe(force_execlist, xe_modparam.force_execlist, bool, 0444);
 MODULE_PARM_DESC(force_execlist, "Force Execlist submission");
 
 module_param_named(probe_display, xe_modparam.probe_display, bool, 0444);
 MODULE_PARM_DESC(probe_display, "Probe display HW, otherwise it's left untouched "
-		 "[default=" __stringify(DEFAULT_PROBE_DISPLAY) "])");
+		 "[default=" __stringify(XE_DEFAULT_PROBE_DISPLAY) "])");
 
 module_param_named(vram_bar_size, xe_modparam.force_vram_bar_size, int, 0600);
 MODULE_PARM_DESC(vram_bar_size, "Set the vram bar size in MiB (<0=disable-resize, 0=max-needed-size, >0=force-size "
-		 "[default=" __stringify(DEFAULT_VRAM_BAR_SIZE) "])");
+		 "[default=" __stringify(XE_DEFAULT_VRAM_BAR_SIZE) "])");
 
 module_param_named(guc_log_level, xe_modparam.guc_log_level, int, 0600);
 MODULE_PARM_DESC(guc_log_level, "GuC firmware logging level (0=disable, 1=normal, 2..5=verbose-levels "
-		 "[default=" __stringify(DEFAULT_GUC_LOG_LEVEL) "])");
+		 "[default=" __stringify(XE_DEFAULT_GUC_LOG_LEVEL) "])");
 
 module_param_named_unsafe(guc_firmware_path, xe_modparam.guc_firmware_path, charp, 0400);
 MODULE_PARM_DESC(guc_firmware_path,
@@ -80,20 +66,20 @@ MODULE_PARM_DESC(gsc_firmware_path,
 module_param_named_unsafe(force_probe, xe_modparam.force_probe, charp, 0400);
 MODULE_PARM_DESC(force_probe,
 		 "Force probe options for specified devices. See CONFIG_DRM_XE_FORCE_PROBE for details "
-		 "[default=" DEFAULT_FORCE_PROBE "])");
+		 "[default=" XE_DEFAULT_FORCE_PROBE "])");
 
 #ifdef CONFIG_PCI_IOV
 module_param_named(max_vfs, xe_modparam.max_vfs, uint, 0400);
 MODULE_PARM_DESC(max_vfs,
 		 "Limit number of Virtual Functions (VFs) that could be managed. "
 		 "(0=no VFs; N=allow up to N VFs "
-		 "[default=" DEFAULT_MAX_VFS_STR "])");
+		 "[default=" XE_DEFAULT_MAX_VFS_STR "])");
 #endif
 
 module_param_named_unsafe(wedged_mode, xe_modparam.wedged_mode, uint, 0600);
 MODULE_PARM_DESC(wedged_mode,
 		 "Module's default policy for the wedged mode (0=never, 1=upon-critical-error, 2=upon-any-hang-no-reset "
-		 "[default=" DEFAULT_WEDGED_MODE_STR "])");
+		 "[default=" XE_DEFAULT_WEDGED_MODE_STR "])");
 
 static int xe_check_nomodeset(void)
 {
-- 
2.47.1


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

* [PATCH 2/5] drm/xe/configfs: Use proper notation for local include
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
  2026-01-21 21:42 ` [PATCH 1/5] drm/xe: Keep all defaults in single header Michal Wajdeczko
@ 2026-01-21 21:42 ` Michal Wajdeczko
  2026-01-23 10:29   ` Piotr Piórkowski
  2026-01-21 21:42 ` [PATCH 3/5] drm/xe/configfs: Always return consistent max_vfs value Michal Wajdeczko
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-21 21:42 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

For local includes we should use "" notation, not <>.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_configfs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
index fed57be0b90e..510888354a7c 100644
--- a/drivers/gpu/drm/xe/xe_configfs.h
+++ b/drivers/gpu/drm/xe/xe_configfs.h
@@ -8,7 +8,7 @@
 #include <linux/limits.h>
 #include <linux/types.h>
 
-#include <xe_hw_engine_types.h>
+#include "xe_hw_engine_types.h"
 
 struct pci_dev;
 
-- 
2.47.1


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

* [PATCH 3/5] drm/xe/configfs: Always return consistent max_vfs value
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
  2026-01-21 21:42 ` [PATCH 1/5] drm/xe: Keep all defaults in single header Michal Wajdeczko
  2026-01-21 21:42 ` [PATCH 2/5] drm/xe/configfs: Use proper notation for local include Michal Wajdeczko
@ 2026-01-21 21:42 ` Michal Wajdeczko
  2026-01-28 15:51   ` Piotr Piórkowski
  2026-01-21 21:42 ` [PATCH 4/5] drm/xe/pf: Define admin_only as real flag Michal Wajdeczko
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-21 21:42 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

The max_vfs parameter used by the Xe driver has its default value
definition, but it could be altered by the module parameter or by
the device specific configfs attribute.

To avoid mistakes or code duplication, always rely on the configfs
helper (or stub), which will provide necessary fallback if needed.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_configfs.c | 3 ++-
 drivers/gpu/drm/xe/xe_configfs.h | 8 +++++++-
 drivers/gpu/drm/xe/xe_sriov_pf.c | 4 +---
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 9f6251b1008b..a823b0bd4ebb 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -15,6 +15,7 @@
 
 #include "instructions/xe_mi_commands.h"
 #include "xe_configfs.h"
+#include "xe_defaults.h"
 #include "xe_gt_types.h"
 #include "xe_hw_engine_types.h"
 #include "xe_module.h"
@@ -280,7 +281,7 @@ static const struct xe_config_device device_defaults = {
 	.survivability_mode = false,
 	.enable_psmi = false,
 	.sriov = {
-		.max_vfs = UINT_MAX,
+		.max_vfs = XE_DEFAULT_MAX_VFS,
 	},
 };
 
diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
index 510888354a7c..e0a555b871b3 100644
--- a/drivers/gpu/drm/xe/xe_configfs.h
+++ b/drivers/gpu/drm/xe/xe_configfs.h
@@ -9,6 +9,7 @@
 #include <linux/types.h>
 
 #include "xe_hw_engine_types.h"
+#include "xe_module.h"
 
 struct pci_dev;
 
@@ -41,7 +42,12 @@ static inline u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev, enum
 						     const u32 **cs) { return 0; }
 static inline u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev, enum xe_engine_class,
 						      const u32 **cs) { return 0; }
-static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev) { return UINT_MAX; }
+#ifdef CONFIG_PCI_IOV
+static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
+{
+	return xe_modparam.max_vfs;
+}
+#endif
 #endif
 
 #endif
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
index 6ce3c58e003c..33bd754d138f 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
@@ -22,9 +22,7 @@
 
 static unsigned int wanted_max_vfs(struct xe_device *xe)
 {
-	if (IS_ENABLED(CONFIG_CONFIGFS_FS))
-		return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
-	return xe_modparam.max_vfs;
+	return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
 }
 
 static int pf_reduce_totalvfs(struct xe_device *xe, int limit)
-- 
2.47.1


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

* [PATCH 4/5] drm/xe/pf: Define admin_only as real flag
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (2 preceding siblings ...)
  2026-01-21 21:42 ` [PATCH 3/5] drm/xe/configfs: Always return consistent max_vfs value Michal Wajdeczko
@ 2026-01-21 21:42 ` Michal Wajdeczko
  2026-01-27 21:05   ` [PATCH v2 " Michal Wajdeczko
  2026-01-21 21:42 ` [PATCH 5/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-21 21:42 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

Instead of doing guesses each time during the runtime, set flag
admin_only once during PF's initialization.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_sriov_pf.c         | 6 ++++++
 drivers/gpu/drm/xe/xe_sriov_pf_helpers.h | 3 ++-
 drivers/gpu/drm/xe/xe_sriov_pf_types.h   | 3 +++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
index 33bd754d138f..919f176a19eb 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
@@ -20,6 +20,11 @@
 #include "xe_sriov_pf_sysfs.h"
 #include "xe_sriov_printk.h"
 
+static bool wanted_admin_only(struct xe_device *xe)
+{
+	return !xe->info.probe_display;
+}
+
 static unsigned int wanted_max_vfs(struct xe_device *xe)
 {
 	return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
@@ -74,6 +79,7 @@ bool xe_sriov_pf_readiness(struct xe_device *xe)
 
 	pf_reduce_totalvfs(xe, newlimit);
 
+	xe->sriov.pf.admin_only = wanted_admin_only(xe);
 	xe->sriov.pf.device_total_vfs = totalvfs;
 	xe->sriov.pf.driver_max_vfs = newlimit;
 
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h b/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
index 9054fdc34597..0fcc6cec4afc 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
@@ -56,7 +56,8 @@ static inline unsigned int xe_sriov_pf_num_vfs(const struct xe_device *xe)
  */
 static inline bool xe_sriov_pf_admin_only(const struct xe_device *xe)
 {
-	return !xe->info.probe_display;
+	xe_assert(xe, IS_SRIOV_PF(xe));
+	return xe->sriov.pf.admin_only;
 }
 
 static inline struct mutex *xe_sriov_pf_master_mutex(struct xe_device *xe)
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_types.h b/drivers/gpu/drm/xe/xe_sriov_pf_types.h
index b0253e1ae5da..080cf10512f4 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf_types.h
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_types.h
@@ -36,6 +36,9 @@ struct xe_sriov_metadata {
  * @XE_SRIOV_MODE_PF mode.
  */
 struct xe_device_pf {
+	/** @admin_only: PF functionality focused on VFs management only. */
+	bool admin_only;
+
 	/** @device_total_vfs: Maximum number of VFs supported by the device. */
 	u16 device_total_vfs;
 
-- 
2.47.1


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

* [PATCH 5/5] drm/xe/configfs: Add sriov.admin_only_pf attribute
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (3 preceding siblings ...)
  2026-01-21 21:42 ` [PATCH 4/5] drm/xe/pf: Define admin_only as real flag Michal Wajdeczko
@ 2026-01-21 21:42 ` Michal Wajdeczko
  2026-01-28 16:35   ` Piotr Piórkowski
  2026-01-21 22:25 ` ✗ CI.checkpatch: warning for " Patchwork
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-21 21:42 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

Instead of relying on fixed relation to the display probe flag,
add configfs attribute to allow an administrator to configure
desired PF operation mode in a more flexible way.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
 drivers/gpu/drm/xe/xe_configfs.c | 61 ++++++++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_configfs.h |  6 ++++
 drivers/gpu/drm/xe/xe_defaults.h |  1 +
 drivers/gpu/drm/xe/xe_sriov_pf.c |  2 +-
 4 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index a823b0bd4ebb..2596810f4366 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -264,6 +264,7 @@ struct xe_config_group_device {
 		bool enable_psmi;
 		struct {
 			unsigned int max_vfs;
+			bool admin_only_pf;
 		} sriov;
 	} config;
 
@@ -282,6 +283,7 @@ static const struct xe_config_device device_defaults = {
 	.enable_psmi = false,
 	.sriov = {
 		.max_vfs = XE_DEFAULT_MAX_VFS,
+		.admin_only_pf = XE_DEFAULT_ADMIN_ONLY_PF,
 	},
 };
 
@@ -898,10 +900,40 @@ static ssize_t sriov_max_vfs_store(struct config_item *item, const char *page, s
 	return len;
 }
 
+static ssize_t sriov_admin_only_pf_show(struct config_item *item, char *page)
+{
+	struct xe_config_group_device *dev = to_xe_config_group_device(item->ci_parent);
+
+	guard(mutex)(&dev->lock);
+
+	return sprintf(page, "%s\n", str_yes_no(dev->config.sriov.admin_only_pf));
+}
+
+static ssize_t sriov_admin_only_pf_store(struct config_item *item, const char *page, size_t len)
+{
+	struct xe_config_group_device *dev = to_xe_config_group_device(item->ci_parent);
+	bool admin_only_pf;
+	int ret;
+
+	guard(mutex)(&dev->lock);
+
+	if (is_bound(dev))
+		return -EBUSY;
+
+	ret = kstrtobool(page, &admin_only_pf);
+	if (ret)
+		return ret;
+
+	dev->config.sriov.admin_only_pf = admin_only_pf;
+	return len;
+}
+
 CONFIGFS_ATTR(sriov_, max_vfs);
+CONFIGFS_ATTR(sriov_, admin_only_pf);
 
 static struct configfs_attribute *xe_config_sriov_attrs[] = {
 	&sriov_attr_max_vfs,
+	&sriov_attr_admin_only_pf,
 	NULL,
 };
 
@@ -912,6 +944,8 @@ static bool xe_config_sriov_is_visible(struct config_item *item,
 
 	if (attr == &sriov_attr_max_vfs && dev->mode != XE_SRIOV_MODE_PF)
 		return false;
+	if (attr == &sriov_attr_admin_only_pf && dev->mode != XE_SRIOV_MODE_PF)
+		return false;
 
 	return true;
 }
@@ -1065,6 +1099,7 @@ static void dump_custom_dev_config(struct pci_dev *pdev,
 	PRI_CUSTOM_ATTR("%llx", engines_allowed);
 	PRI_CUSTOM_ATTR("%d", enable_psmi);
 	PRI_CUSTOM_ATTR("%d", survivability_mode);
+	PRI_CUSTOM_ATTR("%u", sriov.admin_only_pf);
 
 #undef PRI_CUSTOM_ATTR
 }
@@ -1243,6 +1278,32 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
 }
 
 #ifdef CONFIG_PCI_IOV
+/**
+ * xe_configfs_admin_only_pf() - Get PF's operational mode.
+ * @pdev: the &pci_dev device
+ *
+ * Find the configfs group that belongs to the PCI device and return a flag
+ * whether the PF driver should be dedicated for VFs management only.
+ *
+ * If configfs group is not present, use driver's default value.
+ *
+ * Return: true if PF driver is dedicated for VFs administration only.
+ */
+bool xe_configfs_admin_only_pf(struct pci_dev *pdev)
+{
+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
+	bool admin_only_pf;
+
+	if (!dev)
+		return XE_DEFAULT_ADMIN_ONLY_PF;
+
+	scoped_guard(mutex, &dev->lock)
+		admin_only_pf = dev->config.sriov.admin_only_pf;
+
+	config_group_put(&dev->group);
+
+	return admin_only_pf;
+}
 /**
  * xe_configfs_get_max_vfs() - Get number of VFs that could be managed
  * @pdev: the &pci_dev device
diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
index e0a555b871b3..487531269511 100644
--- a/drivers/gpu/drm/xe/xe_configfs.h
+++ b/drivers/gpu/drm/xe/xe_configfs.h
@@ -8,6 +8,7 @@
 #include <linux/limits.h>
 #include <linux/types.h>
 
+#include "xe_defaults.h"
 #include "xe_hw_engine_types.h"
 #include "xe_module.h"
 
@@ -28,6 +29,7 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev, enum xe_engine_cla
 					const u32 **cs);
 #ifdef CONFIG_PCI_IOV
 unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev);
+bool xe_configfs_admin_only_pf(struct pci_dev *pdev);
 #endif
 #else
 static inline int xe_configfs_init(void) { return 0; }
@@ -47,6 +49,10 @@ static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
 {
 	return xe_modparam.max_vfs;
 }
+static inline bool xe_configfs_admin_only_pf(struct pci_dev *pdev)
+{
+	return XE_DEFAULT_ADMIN_ONLY_PF;
+}
 #endif
 #endif
 
diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
index 9183d05b96e1..5d5d41d067c5 100644
--- a/drivers/gpu/drm/xe/xe_defaults.h
+++ b/drivers/gpu/drm/xe/xe_defaults.h
@@ -18,6 +18,7 @@
 #define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
 #define XE_DEFAULT_MAX_VFS			~0
 #define XE_DEFAULT_MAX_VFS_STR			"unlimited"
+#define XE_DEFAULT_ADMIN_ONLY_PF		false
 #define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
 #define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
 #define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
index 919f176a19eb..47a6e0fd66e0 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
@@ -22,7 +22,7 @@
 
 static bool wanted_admin_only(struct xe_device *xe)
 {
-	return !xe->info.probe_display;
+	return xe_configfs_admin_only_pf(to_pci_dev(xe->drm.dev));
 }
 
 static unsigned int wanted_max_vfs(struct xe_device *xe)
-- 
2.47.1


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

* ✗ CI.checkpatch: warning for drm/xe/configfs: Add sriov.admin_only_pf attribute
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (4 preceding siblings ...)
  2026-01-21 21:42 ` [PATCH 5/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
@ 2026-01-21 22:25 ` Patchwork
  2026-01-21 22:26 ` ✗ CI.KUnit: failure " Patchwork
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2026-01-21 22:25 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: drm/xe/configfs: Add sriov.admin_only_pf attribute
URL   : https://patchwork.freedesktop.org/series/160448/
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
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 2e8765600edf7c3f0526c54b2285ccb903ff5ea9
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date:   Wed Jan 21 22:42:16 2026 +0100

    drm/xe/configfs: Add sriov.admin_only_pf attribute
    
    Instead of relying on fixed relation to the display probe flag,
    add configfs attribute to allow an administrator to configure
    desired PF operation mode in a more flexible way.
    
    Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
+ /mt/dim checkpatch ad2a046603cba140214aed34015ed5027441e85a drm-intel
ee84fcf9ad2b drm/xe: Keep all defaults in single header
-:16: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#16: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 140 lines checked
29e9a322836f drm/xe/configfs: Use proper notation for local include
7f6b229df44f drm/xe/configfs: Always return consistent max_vfs value
38d6f0f29145 drm/xe/pf: Define admin_only as real flag
2e8765600edf drm/xe/configfs: Add sriov.admin_only_pf attribute
-:147: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations
#147: FILE: drivers/gpu/drm/xe/xe_configfs.h:52:
 }
+static inline bool xe_configfs_admin_only_pf(struct pci_dev *pdev)

total: 0 errors, 0 warnings, 1 checks, 140 lines checked



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

* ✗ CI.KUnit: failure for drm/xe/configfs: Add sriov.admin_only_pf attribute
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (5 preceding siblings ...)
  2026-01-21 22:25 ` ✗ CI.checkpatch: warning for " Patchwork
@ 2026-01-21 22:26 ` Patchwork
  2026-01-27 21:34 ` ✗ CI.checkpatch: warning for drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2) Patchwork
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2026-01-21 22:26 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: drm/xe/configfs: Add sriov.admin_only_pf attribute
URL   : https://patchwork.freedesktop.org/series/160448/
State : failure

== Summary ==

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

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



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

* Re: [PATCH 1/5] drm/xe: Keep all defaults in single header
  2026-01-21 21:42 ` [PATCH 1/5] drm/xe: Keep all defaults in single header Michal Wajdeczko
@ 2026-01-23 10:29   ` Piotr Piórkowski
  2026-02-03  0:11   ` Rodrigo Vivi
  2026-02-03 11:13   ` Jani Nikula
  2 siblings, 0 replies; 22+ messages in thread
From: Piotr Piórkowski @ 2026-01-23 10:29 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2026-sty-21 22:42:12 +0100]:
> We already have most of Xe defaults defined in xe_module.c,
> where we use them for the modparam initializations, but some
> were defined elsewhere, which breaks the consistency.
> 
> Introduce xe_defaults.h file, that will act as a placeholder
> for all our default values, and can be used from other places.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_defaults.h     | 25 +++++++++++++++++
>  drivers/gpu/drm/xe/xe_device.c       |  3 +-
>  drivers/gpu/drm/xe/xe_device_types.h |  3 --
>  drivers/gpu/drm/xe/xe_module.c       | 42 ++++++++++------------------
>  4 files changed, 41 insertions(+), 32 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/xe_defaults.h
> 
> diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
> new file mode 100644
> index 000000000000..9183d05b96e1
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_defaults.h
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +#ifndef _XE_DEFAULTS_H_
> +#define _XE_DEFAULTS_H_
> +
> +#include "xe_device_types.h"
> +
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> +#define XE_DEFAULT_GUC_LOG_LEVEL		3
> +#else
> +#define XE_DEFAULT_GUC_LOG_LEVEL		1
> +#endif
> +
> +#define XE_DEFAULT_PROBE_DISPLAY		true
> +#define XE_DEFAULT_VRAM_BAR_SIZE		0
> +#define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
> +#define XE_DEFAULT_MAX_VFS			~0
> +#define XE_DEFAULT_MAX_VFS_STR			"unlimited"
> +#define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
> +#define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
> +#define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
> +
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index aad4aa53a51f..17f4d048c8b9 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -26,6 +26,7 @@
>  #include "xe_bo.h"
>  #include "xe_bo_evict.h"
>  #include "xe_debugfs.h"
> +#include "xe_defaults.h"
>  #include "xe_devcoredump.h"
>  #include "xe_device_sysfs.h"
>  #include "xe_dma_buf.h"
> @@ -743,7 +744,7 @@ int xe_device_probe_early(struct xe_device *xe)
>  	assert_lmem_ready(xe);
>  
>  	xe->wedged.mode = xe_device_validate_wedged_mode(xe, xe_modparam.wedged_mode) ?
> -			  XE_WEDGED_MODE_DEFAULT : xe_modparam.wedged_mode;
> +			  XE_DEFAULT_WEDGED_MODE : xe_modparam.wedged_mode;
>  	drm_dbg(&xe->drm, "wedged_mode: setting mode (%u) %s\n",
>  		xe->wedged.mode, xe_wedged_mode_to_string(xe->wedged.mode));
>  
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 34feef79fa4e..b4600c5069a9 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -62,9 +62,6 @@ enum xe_wedged_mode {
>  	XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET = 2,
>  };
>  
> -#define XE_WEDGED_MODE_DEFAULT		XE_WEDGED_MODE_UPON_CRITICAL_ERROR
> -#define XE_WEDGED_MODE_DEFAULT_STR	"upon-critical-error"
> -
>  #define XE_BO_INVALID_OFFSET	LONG_MAX
>  
>  #define GRAPHICS_VER(xe) ((xe)->info.graphics_verx100 / 100)
> diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
> index a0048f64ed12..903d3b433421 100644
> --- a/drivers/gpu/drm/xe/xe_module.c
> +++ b/drivers/gpu/drm/xe/xe_module.c
> @@ -10,6 +10,7 @@
>  
>  #include <drm/drm_module.h>
>  
> +#include "xe_defaults.h"
>  #include "xe_device_types.h"
>  #include "xe_drv.h"
>  #include "xe_configfs.h"
> @@ -19,51 +20,36 @@
>  #include "xe_observation.h"
>  #include "xe_sched_job.h"
>  
> -#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> -#define DEFAULT_GUC_LOG_LEVEL		3
> -#else
> -#define DEFAULT_GUC_LOG_LEVEL		1
> -#endif
> -
> -#define DEFAULT_PROBE_DISPLAY		true
> -#define DEFAULT_VRAM_BAR_SIZE		0
> -#define DEFAULT_FORCE_PROBE		CONFIG_DRM_XE_FORCE_PROBE
> -#define DEFAULT_MAX_VFS			~0
> -#define DEFAULT_MAX_VFS_STR		"unlimited"
> -#define DEFAULT_WEDGED_MODE		XE_WEDGED_MODE_DEFAULT
> -#define DEFAULT_WEDGED_MODE_STR		XE_WEDGED_MODE_DEFAULT_STR
> -#define DEFAULT_SVM_NOTIFIER_SIZE	512
> -
>  struct xe_modparam xe_modparam = {
> -	.probe_display =	DEFAULT_PROBE_DISPLAY,
> -	.guc_log_level =	DEFAULT_GUC_LOG_LEVEL,
> -	.force_probe =		DEFAULT_FORCE_PROBE,
> +	.probe_display =	XE_DEFAULT_PROBE_DISPLAY,
> +	.guc_log_level =	XE_DEFAULT_GUC_LOG_LEVEL,
> +	.force_probe =		XE_DEFAULT_FORCE_PROBE,
>  #ifdef CONFIG_PCI_IOV
> -	.max_vfs =		DEFAULT_MAX_VFS,
> +	.max_vfs =		XE_DEFAULT_MAX_VFS,
>  #endif
> -	.wedged_mode =		DEFAULT_WEDGED_MODE,
> -	.svm_notifier_size =	DEFAULT_SVM_NOTIFIER_SIZE,
> +	.wedged_mode =		XE_DEFAULT_WEDGED_MODE,
> +	.svm_notifier_size =	XE_DEFAULT_SVM_NOTIFIER_SIZE,
>  	/* the rest are 0 by default */
>  };
>  
>  module_param_named(svm_notifier_size, xe_modparam.svm_notifier_size, uint, 0600);
>  MODULE_PARM_DESC(svm_notifier_size, "Set the svm notifier size in MiB, must be power of 2 "
> -		 "[default=" __stringify(DEFAULT_SVM_NOTIFIER_SIZE) "]");
> +		 "[default=" __stringify(XE_DEFAULT_SVM_NOTIFIER_SIZE) "]");
>  
>  module_param_named_unsafe(force_execlist, xe_modparam.force_execlist, bool, 0444);
>  MODULE_PARM_DESC(force_execlist, "Force Execlist submission");
>  
>  module_param_named(probe_display, xe_modparam.probe_display, bool, 0444);
>  MODULE_PARM_DESC(probe_display, "Probe display HW, otherwise it's left untouched "
> -		 "[default=" __stringify(DEFAULT_PROBE_DISPLAY) "])");
> +		 "[default=" __stringify(XE_DEFAULT_PROBE_DISPLAY) "])");
>  
>  module_param_named(vram_bar_size, xe_modparam.force_vram_bar_size, int, 0600);
>  MODULE_PARM_DESC(vram_bar_size, "Set the vram bar size in MiB (<0=disable-resize, 0=max-needed-size, >0=force-size "
> -		 "[default=" __stringify(DEFAULT_VRAM_BAR_SIZE) "])");
> +		 "[default=" __stringify(XE_DEFAULT_VRAM_BAR_SIZE) "])");
>  
>  module_param_named(guc_log_level, xe_modparam.guc_log_level, int, 0600);
>  MODULE_PARM_DESC(guc_log_level, "GuC firmware logging level (0=disable, 1=normal, 2..5=verbose-levels "
> -		 "[default=" __stringify(DEFAULT_GUC_LOG_LEVEL) "])");
> +		 "[default=" __stringify(XE_DEFAULT_GUC_LOG_LEVEL) "])");
>  
>  module_param_named_unsafe(guc_firmware_path, xe_modparam.guc_firmware_path, charp, 0400);
>  MODULE_PARM_DESC(guc_firmware_path,
> @@ -80,20 +66,20 @@ MODULE_PARM_DESC(gsc_firmware_path,
>  module_param_named_unsafe(force_probe, xe_modparam.force_probe, charp, 0400);
>  MODULE_PARM_DESC(force_probe,
>  		 "Force probe options for specified devices. See CONFIG_DRM_XE_FORCE_PROBE for details "
> -		 "[default=" DEFAULT_FORCE_PROBE "])");
> +		 "[default=" XE_DEFAULT_FORCE_PROBE "])");
>  
>  #ifdef CONFIG_PCI_IOV
>  module_param_named(max_vfs, xe_modparam.max_vfs, uint, 0400);
>  MODULE_PARM_DESC(max_vfs,
>  		 "Limit number of Virtual Functions (VFs) that could be managed. "
>  		 "(0=no VFs; N=allow up to N VFs "
> -		 "[default=" DEFAULT_MAX_VFS_STR "])");
> +		 "[default=" XE_DEFAULT_MAX_VFS_STR "])");
>  #endif
>  
>  module_param_named_unsafe(wedged_mode, xe_modparam.wedged_mode, uint, 0600);
>  MODULE_PARM_DESC(wedged_mode,
>  		 "Module's default policy for the wedged mode (0=never, 1=upon-critical-error, 2=upon-any-hang-no-reset "
> -		 "[default=" DEFAULT_WEDGED_MODE_STR "])");
> +		 "[default=" XE_DEFAULT_WEDGED_MODE_STR "])");
>  
>  static int xe_check_nomodeset(void)
>  {

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

> -- 
> 2.47.1
> 

-- 

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

* Re: [PATCH 2/5] drm/xe/configfs: Use proper notation for local include
  2026-01-21 21:42 ` [PATCH 2/5] drm/xe/configfs: Use proper notation for local include Michal Wajdeczko
@ 2026-01-23 10:29   ` Piotr Piórkowski
  0 siblings, 0 replies; 22+ messages in thread
From: Piotr Piórkowski @ 2026-01-23 10:29 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2026-sty-21 22:42:13 +0100]:
> For local includes we should use "" notation, not <>.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_configfs.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
> index fed57be0b90e..510888354a7c 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.h
> +++ b/drivers/gpu/drm/xe/xe_configfs.h
> @@ -8,7 +8,7 @@
>  #include <linux/limits.h>
>  #include <linux/types.h>
>  
> -#include <xe_hw_engine_types.h>
> +#include "xe_hw_engine_types.h"
>  
>  struct pci_dev;
>  
> -- 
> 2.47.1
> 

-- 

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

* [PATCH v2 4/5] drm/xe/pf: Define admin_only as real flag
  2026-01-21 21:42 ` [PATCH 4/5] drm/xe/pf: Define admin_only as real flag Michal Wajdeczko
@ 2026-01-27 21:05   ` Michal Wajdeczko
  2026-01-28 15:56     ` Piotr Piórkowski
  0 siblings, 1 reply; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-27 21:05 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

Instead of doing guesses each time during the runtime, set flag
admin_only once during PF's initialization.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
---
v2: update flag in kunit test (CI)
---
 drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c | 2 +-
 drivers/gpu/drm/xe/xe_sriov_pf.c                       | 6 ++++++
 drivers/gpu/drm/xe/xe_sriov_pf_helpers.h               | 3 ++-
 drivers/gpu/drm/xe/xe_sriov_pf_types.h                 | 3 +++
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c b/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c
index 42bfc4bcfbcf..3889dc3e49ca 100644
--- a/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c
+++ b/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c
@@ -15,7 +15,7 @@
 static void pf_set_admin_mode(struct xe_device *xe, bool enable)
 {
 	/* should match logic of xe_sriov_pf_admin_only() */
-	xe->info.probe_display = !enable;
+	xe->sriov.pf.admin_only = enable;
 	KUNIT_EXPECT_EQ(kunit_get_current_test(), enable, xe_sriov_pf_admin_only(xe));
 }
 
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
index 33bd754d138f..919f176a19eb 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf.c
+++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
@@ -20,6 +20,11 @@
 #include "xe_sriov_pf_sysfs.h"
 #include "xe_sriov_printk.h"
 
+static bool wanted_admin_only(struct xe_device *xe)
+{
+	return !xe->info.probe_display;
+}
+
 static unsigned int wanted_max_vfs(struct xe_device *xe)
 {
 	return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
@@ -74,6 +79,7 @@ bool xe_sriov_pf_readiness(struct xe_device *xe)
 
 	pf_reduce_totalvfs(xe, newlimit);
 
+	xe->sriov.pf.admin_only = wanted_admin_only(xe);
 	xe->sriov.pf.device_total_vfs = totalvfs;
 	xe->sriov.pf.driver_max_vfs = newlimit;
 
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h b/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
index 9054fdc34597..0fcc6cec4afc 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
@@ -56,7 +56,8 @@ static inline unsigned int xe_sriov_pf_num_vfs(const struct xe_device *xe)
  */
 static inline bool xe_sriov_pf_admin_only(const struct xe_device *xe)
 {
-	return !xe->info.probe_display;
+	xe_assert(xe, IS_SRIOV_PF(xe));
+	return xe->sriov.pf.admin_only;
 }
 
 static inline struct mutex *xe_sriov_pf_master_mutex(struct xe_device *xe)
diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_types.h b/drivers/gpu/drm/xe/xe_sriov_pf_types.h
index b0253e1ae5da..080cf10512f4 100644
--- a/drivers/gpu/drm/xe/xe_sriov_pf_types.h
+++ b/drivers/gpu/drm/xe/xe_sriov_pf_types.h
@@ -36,6 +36,9 @@ struct xe_sriov_metadata {
  * @XE_SRIOV_MODE_PF mode.
  */
 struct xe_device_pf {
+	/** @admin_only: PF functionality focused on VFs management only. */
+	bool admin_only;
+
 	/** @device_total_vfs: Maximum number of VFs supported by the device. */
 	u16 device_total_vfs;
 
-- 
2.47.1


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

* ✗ CI.checkpatch: warning for drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (6 preceding siblings ...)
  2026-01-21 22:26 ` ✗ CI.KUnit: failure " Patchwork
@ 2026-01-27 21:34 ` Patchwork
  2026-01-27 21:35 ` ✓ CI.KUnit: success " Patchwork
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2026-01-27 21:34 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
URL   : https://patchwork.freedesktop.org/series/160448/
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
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 6117c374ad991b33a65aa291cb58c4b9acd888c6
Author: Michal Wajdeczko <michal.wajdeczko@intel.com>
Date:   Wed Jan 21 22:42:16 2026 +0100

    drm/xe/configfs: Add sriov.admin_only_pf attribute
    
    Instead of relying on fixed relation to the display probe flag,
    add configfs attribute to allow an administrator to configure
    desired PF operation mode in a more flexible way.
    
    Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
+ /mt/dim checkpatch c2610e92a8b5cbcc71735e4900d6ab86db4f9252 drm-intel
198c689f347f drm/xe: Keep all defaults in single header
-:20: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#20: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 140 lines checked
ac050c32d8fa drm/xe/configfs: Use proper notation for local include
3316bda5a022 drm/xe/configfs: Always return consistent max_vfs value
d242e52cd105 drm/xe/pf: Define admin_only as real flag
6117c374ad99 drm/xe/configfs: Add sriov.admin_only_pf attribute
-:147: CHECK:LINE_SPACING: Please use a blank line after function/struct/union/enum declarations
#147: FILE: drivers/gpu/drm/xe/xe_configfs.h:52:
 }
+static inline bool xe_configfs_admin_only_pf(struct pci_dev *pdev)

total: 0 errors, 0 warnings, 1 checks, 140 lines checked



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

* ✓ CI.KUnit: success for drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (7 preceding siblings ...)
  2026-01-27 21:34 ` ✗ CI.checkpatch: warning for drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2) Patchwork
@ 2026-01-27 21:35 ` Patchwork
  2026-01-27 22:33 ` ✓ Xe.CI.BAT: " Patchwork
  2026-01-28  6:46 ` ✓ Xe.CI.Full: " Patchwork
  10 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2026-01-27 21:35 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
URL   : https://patchwork.freedesktop.org/series/160448/
State : success

== Summary ==

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

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

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

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



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

* ✓ Xe.CI.BAT: success for drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (8 preceding siblings ...)
  2026-01-27 21:35 ` ✓ CI.KUnit: success " Patchwork
@ 2026-01-27 22:33 ` Patchwork
  2026-01-28  6:46 ` ✓ Xe.CI.Full: " Patchwork
  10 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2026-01-27 22:33 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
URL   : https://patchwork.freedesktop.org/series/160448/
State : success

== Summary ==

CI Bug Log - changes from xe-4458-786060d864f2e568a6ff216c63b927f80da2c043_BAT -> xe-pw-160448v2_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  Missing    (1): bat-bmg-3 


Changes
-------

  No changes found


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

  * Linux: xe-4458-786060d864f2e568a6ff216c63b927f80da2c043 -> xe-pw-160448v2

  IGT_8720: b37a4d70080afd7426cb249787545df75f762dc0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4458-786060d864f2e568a6ff216c63b927f80da2c043: 786060d864f2e568a6ff216c63b927f80da2c043
  xe-pw-160448v2: 160448v2

== Logs ==

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

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

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

* ✓ Xe.CI.Full: success for drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
  2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
                   ` (9 preceding siblings ...)
  2026-01-27 22:33 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-01-28  6:46 ` Patchwork
  10 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2026-01-28  6:46 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2)
URL   : https://patchwork.freedesktop.org/series/160448/
State : success

== Summary ==

CI Bug Log - changes from xe-4458-786060d864f2e568a6ff216c63b927f80da2c043_FULL -> xe-pw-160448v2_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

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

  * igt@kms_big_fb@y-tiled-8bpp-rotate-0:
    - shard-bmg:          NOTRUN -> [SKIP][2] ([Intel XE#1124]) +1 other test skip
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_big_fb@y-tiled-8bpp-rotate-0.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][3] ([Intel XE#2314] / [Intel XE#2894])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html

  * igt@kms_ccs@bad-pixel-format-y-tiled-gen12-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][4] ([Intel XE#2887]) +2 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#3432])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs.html

  * igt@kms_content_protection@type1:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#2341])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_content_protection@type1.html

  * igt@kms_cursor_crc@cursor-sliding-256x85:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#2320]) +1 other test skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_cursor_crc@cursor-sliding-256x85.html

  * igt@kms_cursor_legacy@flip-vs-cursor-legacy:
    - shard-bmg:          [PASS][8] -> [FAIL][9] ([Intel XE#5299])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4458-786060d864f2e568a6ff216c63b927f80da2c043/shard-bmg-10/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2286])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#776])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][12] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-7/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#7064] / [Intel XE#7081])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x@pipe-a-valid-mode:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#7064])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-32bpp-linear-reflect-x@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#2293] / [Intel XE#2380])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2293])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2311]) +4 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#4141]) +2 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2313]) +5 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-argb161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#7061])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_frontbuffer_tracking@psr-argb161616f-draw-render.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#7130]) +13 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-a-plane-5.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#870])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#1406] / [Intel XE#1489])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr@fbc-pr-primary-blt:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_psr@fbc-pr-primary-blt.html

  * igt@kms_psr@psr2-primary-render:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#1406] / [Intel XE#2234])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_psr@psr2-primary-render.html

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

  * igt@kms_vrr@lobf:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#2168])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@kms_vrr@lobf.html

  * igt@xe_eudebug@discovery-empty:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#4837]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_eudebug@discovery-empty.html

  * igt@xe_eudebug_online@set-breakpoint-faultable:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#4837] / [Intel XE#6665])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_eudebug_online@set-breakpoint-faultable.html

  * igt@xe_evict@evict-small-multi-queue-priority:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#7140])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_evict@evict-small-multi-queue-priority.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#2322])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind.html

  * igt@xe_exec_fault_mode@once-multi-queue-rebind-imm:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#7136]) +2 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_exec_fault_mode@once-multi-queue-rebind-imm.html

  * igt@xe_exec_multi_queue@one-queue-preempt-mode-basic-smem:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#6874]) +5 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_exec_multi_queue@one-queue-preempt-mode-basic-smem.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-mmap-new-huge:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#4943]) +6 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-mmap-new-huge.html

  * igt@xe_exec_threads@threads-multi-queue-cm-fd-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#7138]) +1 other test skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_exec_threads@threads-multi-queue-cm-fd-rebind.html

  * igt@xe_live_ktest@xe_eudebug:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#2833])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_live_ktest@xe_eudebug.html

  * igt@xe_pxp@pxp-termination-key-update-post-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#4733])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-8/igt@xe_pxp@pxp-termination-key-update-post-suspend.html

  
#### Possible fixes ####

  * igt@kms_setmode@basic@pipe-b-edp-1:
    - shard-lnl:          [FAIL][38] ([Intel XE#6361]) -> [PASS][39] +2 other tests pass
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4458-786060d864f2e568a6ff216c63b927f80da2c043/shard-lnl-2/igt@kms_setmode@basic@pipe-b-edp-1.html
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-lnl-2/igt@kms_setmode@basic@pipe-b-edp-1.html

  * igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
    - shard-lnl:          [FAIL][40] ([Intel XE#2142]) -> [PASS][41] +1 other test pass
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4458-786060d864f2e568a6ff216c63b927f80da2c043/shard-lnl-3/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-lnl-3/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html

  * igt@xe_ccs@suspend-resume:
    - shard-bmg:          [INCOMPLETE][42] ([Intel XE#4504]) -> [PASS][43] +1 other test pass
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4458-786060d864f2e568a6ff216c63b927f80da2c043/shard-bmg-3/igt@xe_ccs@suspend-resume.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-7/igt@xe_ccs@suspend-resume.html

  
#### Warnings ####

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [SKIP][44] ([Intel XE#2426]) -> [FAIL][45] ([Intel XE#1729])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4458-786060d864f2e568a6ff216c63b927f80da2c043/shard-bmg-9/igt@kms_tiled_display@basic-test-pattern.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern.html

  * igt@xe_exec_balancer@no-exec-parallel-userptr-rebind:
    - shard-lnl:          [DMESG-WARN][46] ([Intel XE#4537] / [Intel XE#7063]) -> [DMESG-WARN][47] ([Intel XE#7063])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4458-786060d864f2e568a6ff216c63b927f80da2c043/shard-lnl-3/igt@xe_exec_balancer@no-exec-parallel-userptr-rebind.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-lnl-8/igt@xe_exec_balancer@no-exec-parallel-userptr-rebind.html

  * igt@xe_exec_system_allocator@once-malloc-bo-unmap:
    - shard-lnl:          [DMESG-WARN][48] ([Intel XE#7063]) -> [DMESG-WARN][49] ([Intel XE#4537] / [Intel XE#7063])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4458-786060d864f2e568a6ff216c63b927f80da2c043/shard-lnl-3/igt@xe_exec_system_allocator@once-malloc-bo-unmap.html
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160448v2/shard-lnl-8/igt@xe_exec_system_allocator@once-malloc-bo-unmap.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2833]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2833
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4504
  [Intel XE#4537]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4537
  [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#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#5299]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5299
  [Intel XE#6361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6361
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7063]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7063
  [Intel XE#7064]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7064
  [Intel XE#7081]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7081
  [Intel XE#7130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7130
  [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
  [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870


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

  * Linux: xe-4458-786060d864f2e568a6ff216c63b927f80da2c043 -> xe-pw-160448v2

  IGT_8720: b37a4d70080afd7426cb249787545df75f762dc0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4458-786060d864f2e568a6ff216c63b927f80da2c043: 786060d864f2e568a6ff216c63b927f80da2c043
  xe-pw-160448v2: 160448v2

== Logs ==

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

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

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

* Re: [PATCH 3/5] drm/xe/configfs: Always return consistent max_vfs value
  2026-01-21 21:42 ` [PATCH 3/5] drm/xe/configfs: Always return consistent max_vfs value Michal Wajdeczko
@ 2026-01-28 15:51   ` Piotr Piórkowski
  0 siblings, 0 replies; 22+ messages in thread
From: Piotr Piórkowski @ 2026-01-28 15:51 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2026-sty-21 22:42:14 +0100]:
> The max_vfs parameter used by the Xe driver has its default value
> definition, but it could be altered by the module parameter or by
> the device specific configfs attribute.
> 
> To avoid mistakes or code duplication, always rely on the configfs
> helper (or stub), which will provide necessary fallback if needed.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_configfs.c | 3 ++-
>  drivers/gpu/drm/xe/xe_configfs.h | 8 +++++++-
>  drivers/gpu/drm/xe/xe_sriov_pf.c | 4 +---
>  3 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 9f6251b1008b..a823b0bd4ebb 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -15,6 +15,7 @@
>  
>  #include "instructions/xe_mi_commands.h"
>  #include "xe_configfs.h"
> +#include "xe_defaults.h"
>  #include "xe_gt_types.h"
>  #include "xe_hw_engine_types.h"
>  #include "xe_module.h"
> @@ -280,7 +281,7 @@ static const struct xe_config_device device_defaults = {
>  	.survivability_mode = false,
>  	.enable_psmi = false,
>  	.sriov = {
> -		.max_vfs = UINT_MAX,
> +		.max_vfs = XE_DEFAULT_MAX_VFS,
>  	},
>  };
>  
> diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
> index 510888354a7c..e0a555b871b3 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.h
> +++ b/drivers/gpu/drm/xe/xe_configfs.h
> @@ -9,6 +9,7 @@
>  #include <linux/types.h>
>  
>  #include "xe_hw_engine_types.h"
> +#include "xe_module.h"
>  
>  struct pci_dev;
>  
> @@ -41,7 +42,12 @@ static inline u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev, enum
>  						     const u32 **cs) { return 0; }
>  static inline u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev, enum xe_engine_class,
>  						      const u32 **cs) { return 0; }
> -static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev) { return UINT_MAX; }
> +#ifdef CONFIG_PCI_IOV
> +static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
> +{
> +	return xe_modparam.max_vfs;
> +}
> +#endif
>  #endif
>  
>  #endif
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
> index 6ce3c58e003c..33bd754d138f 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
> @@ -22,9 +22,7 @@
>  
>  static unsigned int wanted_max_vfs(struct xe_device *xe)
>  {
> -	if (IS_ENABLED(CONFIG_CONFIGFS_FS))
> -		return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
> -	return xe_modparam.max_vfs;
> +	return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
>  }
>  
>  static int pf_reduce_totalvfs(struct xe_device *xe, int limit)

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

> -- 
> 2.47.1
> 

-- 

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

* Re: [PATCH v2 4/5] drm/xe/pf: Define admin_only as real flag
  2026-01-27 21:05   ` [PATCH v2 " Michal Wajdeczko
@ 2026-01-28 15:56     ` Piotr Piórkowski
  0 siblings, 0 replies; 22+ messages in thread
From: Piotr Piórkowski @ 2026-01-28 15:56 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on wto [2026-sty-27 22:05:01 +0100]:
> Instead of doing guesses each time during the runtime, set flag
> admin_only once during PF's initialization.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
> v2: update flag in kunit test (CI)
> ---
>  drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c | 2 +-
>  drivers/gpu/drm/xe/xe_sriov_pf.c                       | 6 ++++++
>  drivers/gpu/drm/xe/xe_sriov_pf_helpers.h               | 3 ++-
>  drivers/gpu/drm/xe/xe_sriov_pf_types.h                 | 3 +++
>  4 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c b/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c
> index 42bfc4bcfbcf..3889dc3e49ca 100644
> --- a/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c
> +++ b/drivers/gpu/drm/xe/tests/xe_gt_sriov_pf_config_kunit.c
> @@ -15,7 +15,7 @@
>  static void pf_set_admin_mode(struct xe_device *xe, bool enable)
>  {
>  	/* should match logic of xe_sriov_pf_admin_only() */
> -	xe->info.probe_display = !enable;
> +	xe->sriov.pf.admin_only = enable;
>  	KUNIT_EXPECT_EQ(kunit_get_current_test(), enable, xe_sriov_pf_admin_only(xe));
>  }
>  
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
> index 33bd754d138f..919f176a19eb 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
> @@ -20,6 +20,11 @@
>  #include "xe_sriov_pf_sysfs.h"
>  #include "xe_sriov_printk.h"
>  
> +static bool wanted_admin_only(struct xe_device *xe)
> +{
> +	return !xe->info.probe_display;
> +}
> +
>  static unsigned int wanted_max_vfs(struct xe_device *xe)
>  {
>  	return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
> @@ -74,6 +79,7 @@ bool xe_sriov_pf_readiness(struct xe_device *xe)
>  
>  	pf_reduce_totalvfs(xe, newlimit);
>  
> +	xe->sriov.pf.admin_only = wanted_admin_only(xe);
>  	xe->sriov.pf.device_total_vfs = totalvfs;
>  	xe->sriov.pf.driver_max_vfs = newlimit;
>  
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h b/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
> index 9054fdc34597..0fcc6cec4afc 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf_helpers.h
> @@ -56,7 +56,8 @@ static inline unsigned int xe_sriov_pf_num_vfs(const struct xe_device *xe)
>   */
>  static inline bool xe_sriov_pf_admin_only(const struct xe_device *xe)
>  {
> -	return !xe->info.probe_display;
> +	xe_assert(xe, IS_SRIOV_PF(xe));
> +	return xe->sriov.pf.admin_only;
>  }
>  
>  static inline struct mutex *xe_sriov_pf_master_mutex(struct xe_device *xe)
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf_types.h b/drivers/gpu/drm/xe/xe_sriov_pf_types.h
> index b0253e1ae5da..080cf10512f4 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf_types.h
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf_types.h
> @@ -36,6 +36,9 @@ struct xe_sriov_metadata {
>   * @XE_SRIOV_MODE_PF mode.
>   */
>  struct xe_device_pf {
> +	/** @admin_only: PF functionality focused on VFs management only. */
> +	bool admin_only;
> +
>  	/** @device_total_vfs: Maximum number of VFs supported by the device. */
>  	u16 device_total_vfs;


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

-- 

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

* Re: [PATCH 5/5] drm/xe/configfs: Add sriov.admin_only_pf attribute
  2026-01-21 21:42 ` [PATCH 5/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
@ 2026-01-28 16:35   ` Piotr Piórkowski
  2026-01-28 23:42     ` Michal Wajdeczko
  0 siblings, 1 reply; 22+ messages in thread
From: Piotr Piórkowski @ 2026-01-28 16:35 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2026-sty-21 22:42:16 +0100]:
> Instead of relying on fixed relation to the display probe flag,
> add configfs attribute to allow an administrator to configure
> desired PF operation mode in a more flexible way.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_configfs.c | 61 ++++++++++++++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_configfs.h |  6 ++++
>  drivers/gpu/drm/xe/xe_defaults.h |  1 +
>  drivers/gpu/drm/xe/xe_sriov_pf.c |  2 +-
>  4 files changed, 69 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index a823b0bd4ebb..2596810f4366 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -264,6 +264,7 @@ struct xe_config_group_device {
>  		bool enable_psmi;
>  		struct {
>  			unsigned int max_vfs;
> +			bool admin_only_pf;
>  		} sriov;
>  	} config;
>  
> @@ -282,6 +283,7 @@ static const struct xe_config_device device_defaults = {
>  	.enable_psmi = false,
>  	.sriov = {
>  		.max_vfs = XE_DEFAULT_MAX_VFS,
> +		.admin_only_pf = XE_DEFAULT_ADMIN_ONLY_PF,
>  	},
>  };
>  
> @@ -898,10 +900,40 @@ static ssize_t sriov_max_vfs_store(struct config_item *item, const char *page, s
>  	return len;
>  }
>  
> +static ssize_t sriov_admin_only_pf_show(struct config_item *item, char *page)
> +{
> +	struct xe_config_group_device *dev = to_xe_config_group_device(item->ci_parent);
> +
> +	guard(mutex)(&dev->lock);
> +
> +	return sprintf(page, "%s\n", str_yes_no(dev->config.sriov.admin_only_pf));
> +}
> +
> +static ssize_t sriov_admin_only_pf_store(struct config_item *item, const char *page, size_t len)
> +{
> +	struct xe_config_group_device *dev = to_xe_config_group_device(item->ci_parent);
> +	bool admin_only_pf;
> +	int ret;
> +
> +	guard(mutex)(&dev->lock);
> +
> +	if (is_bound(dev))
> +		return -EBUSY;
> +
> +	ret = kstrtobool(page, &admin_only_pf);
> +	if (ret)
> +		return ret;
> +
> +	dev->config.sriov.admin_only_pf = admin_only_pf;
> +	return len;
> +}
> +
>  CONFIGFS_ATTR(sriov_, max_vfs);
> +CONFIGFS_ATTR(sriov_, admin_only_pf);
>  
>  static struct configfs_attribute *xe_config_sriov_attrs[] = {
>  	&sriov_attr_max_vfs,
> +	&sriov_attr_admin_only_pf,
>  	NULL,
>  };
>  
> @@ -912,6 +944,8 @@ static bool xe_config_sriov_is_visible(struct config_item *item,
>  
>  	if (attr == &sriov_attr_max_vfs && dev->mode != XE_SRIOV_MODE_PF)
>  		return false;
> +	if (attr == &sriov_attr_admin_only_pf && dev->mode != XE_SRIOV_MODE_PF)
> +		return false;

I assume you have a reason for this, but without an explanation, I don't understand this approach.
I assume that sriov config should only be available to PF by definition, so I don't understand
why you are checking for individual attr. 

>  
>  	return true;
>  }
> @@ -1065,6 +1099,7 @@ static void dump_custom_dev_config(struct pci_dev *pdev,
>  	PRI_CUSTOM_ATTR("%llx", engines_allowed);
>  	PRI_CUSTOM_ATTR("%d", enable_psmi);
>  	PRI_CUSTOM_ATTR("%d", survivability_mode);
> +	PRI_CUSTOM_ATTR("%u", sriov.admin_only_pf);
>  
>  #undef PRI_CUSTOM_ATTR
>  }
> @@ -1243,6 +1278,32 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
>  }
>  
>  #ifdef CONFIG_PCI_IOV
> +/**
> + * xe_configfs_admin_only_pf() - Get PF's operational mode.
> + * @pdev: the &pci_dev device
> + *
> + * Find the configfs group that belongs to the PCI device and return a flag
> + * whether the PF driver should be dedicated for VFs management only.
> + *
> + * If configfs group is not present, use driver's default value.
> + *
> + * Return: true if PF driver is dedicated for VFs administration only.
> + */
> +bool xe_configfs_admin_only_pf(struct pci_dev *pdev)
> +{
> +	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
> +	bool admin_only_pf;
> +
> +	if (!dev)
> +		return XE_DEFAULT_ADMIN_ONLY_PF;
> +
> +	scoped_guard(mutex, &dev->lock)
> +		admin_only_pf = dev->config.sriov.admin_only_pf;
> +
> +	config_group_put(&dev->group);
> +
> +	return admin_only_pf;
> +}
>  /**
>   * xe_configfs_get_max_vfs() - Get number of VFs that could be managed
>   * @pdev: the &pci_dev device
> diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
> index e0a555b871b3..487531269511 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.h
> +++ b/drivers/gpu/drm/xe/xe_configfs.h
> @@ -8,6 +8,7 @@
>  #include <linux/limits.h>
>  #include <linux/types.h>
>  
> +#include "xe_defaults.h"
>  #include "xe_hw_engine_types.h"
>  #include "xe_module.h"
>  
> @@ -28,6 +29,7 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev, enum xe_engine_cla
>  					const u32 **cs);
>  #ifdef CONFIG_PCI_IOV
>  unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev);
> +bool xe_configfs_admin_only_pf(struct pci_dev *pdev);
>  #endif
>  #else
>  static inline int xe_configfs_init(void) { return 0; }
> @@ -47,6 +49,10 @@ static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
>  {
>  	return xe_modparam.max_vfs;
>  }
> +static inline bool xe_configfs_admin_only_pf(struct pci_dev *pdev)
> +{
> +	return XE_DEFAULT_ADMIN_ONLY_PF;
> +}
>  #endif
>  #endif
>  
> diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
> index 9183d05b96e1..5d5d41d067c5 100644
> --- a/drivers/gpu/drm/xe/xe_defaults.h
> +++ b/drivers/gpu/drm/xe/xe_defaults.h
> @@ -18,6 +18,7 @@
>  #define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
>  #define XE_DEFAULT_MAX_VFS			~0
>  #define XE_DEFAULT_MAX_VFS_STR			"unlimited"
> +#define XE_DEFAULT_ADMIN_ONLY_PF		false
>  #define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
>  #define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
>  #define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
> index 919f176a19eb..47a6e0fd66e0 100644
> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
> @@ -22,7 +22,7 @@
>  
>  static bool wanted_admin_only(struct xe_device *xe)
>  {
> -	return !xe->info.probe_display;
> +	return xe_configfs_admin_only_pf(to_pci_dev(xe->drm.dev));
>  }
Overall, it looks good. I'd really like to know what's going on with this approach
in xe_config_sriov_is_visible.
But still:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
>  
>  static unsigned int wanted_max_vfs(struct xe_device *xe)
> -- 
> 2.47.1
> 

-- 

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

* Re: [PATCH 5/5] drm/xe/configfs: Add sriov.admin_only_pf attribute
  2026-01-28 16:35   ` Piotr Piórkowski
@ 2026-01-28 23:42     ` Michal Wajdeczko
  0 siblings, 0 replies; 22+ messages in thread
From: Michal Wajdeczko @ 2026-01-28 23:42 UTC (permalink / raw)
  To: Piotr Piórkowski; +Cc: intel-xe



On 1/28/2026 5:35 PM, Piotr Piórkowski wrote:
> Michal Wajdeczko <michal.wajdeczko@intel.com> wrote on śro [2026-sty-21 22:42:16 +0100]:
>> Instead of relying on fixed relation to the display probe flag,
>> add configfs attribute to allow an administrator to configure
>> desired PF operation mode in a more flexible way.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>>  drivers/gpu/drm/xe/xe_configfs.c | 61 ++++++++++++++++++++++++++++++++
>>  drivers/gpu/drm/xe/xe_configfs.h |  6 ++++
>>  drivers/gpu/drm/xe/xe_defaults.h |  1 +
>>  drivers/gpu/drm/xe/xe_sriov_pf.c |  2 +-
>>  4 files changed, 69 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>> index a823b0bd4ebb..2596810f4366 100644
>> --- a/drivers/gpu/drm/xe/xe_configfs.c
>> +++ b/drivers/gpu/drm/xe/xe_configfs.c
>> @@ -264,6 +264,7 @@ struct xe_config_group_device {
>>  		bool enable_psmi;
>>  		struct {
>>  			unsigned int max_vfs;
>> +			bool admin_only_pf;
>>  		} sriov;
>>  	} config;
>>  
>> @@ -282,6 +283,7 @@ static const struct xe_config_device device_defaults = {
>>  	.enable_psmi = false,
>>  	.sriov = {
>>  		.max_vfs = XE_DEFAULT_MAX_VFS,
>> +		.admin_only_pf = XE_DEFAULT_ADMIN_ONLY_PF,
>>  	},
>>  };
>>  
>> @@ -898,10 +900,40 @@ static ssize_t sriov_max_vfs_store(struct config_item *item, const char *page, s
>>  	return len;
>>  }
>>  
>> +static ssize_t sriov_admin_only_pf_show(struct config_item *item, char *page)
>> +{
>> +	struct xe_config_group_device *dev = to_xe_config_group_device(item->ci_parent);
>> +
>> +	guard(mutex)(&dev->lock);
>> +
>> +	return sprintf(page, "%s\n", str_yes_no(dev->config.sriov.admin_only_pf));
>> +}
>> +
>> +static ssize_t sriov_admin_only_pf_store(struct config_item *item, const char *page, size_t len)
>> +{
>> +	struct xe_config_group_device *dev = to_xe_config_group_device(item->ci_parent);
>> +	bool admin_only_pf;
>> +	int ret;
>> +
>> +	guard(mutex)(&dev->lock);
>> +
>> +	if (is_bound(dev))
>> +		return -EBUSY;
>> +
>> +	ret = kstrtobool(page, &admin_only_pf);
>> +	if (ret)
>> +		return ret;
>> +
>> +	dev->config.sriov.admin_only_pf = admin_only_pf;
>> +	return len;
>> +}
>> +
>>  CONFIGFS_ATTR(sriov_, max_vfs);
>> +CONFIGFS_ATTR(sriov_, admin_only_pf);
>>  
>>  static struct configfs_attribute *xe_config_sriov_attrs[] = {
>>  	&sriov_attr_max_vfs,
>> +	&sriov_attr_admin_only_pf,
>>  	NULL,
>>  };
>>  
>> @@ -912,6 +944,8 @@ static bool xe_config_sriov_is_visible(struct config_item *item,
>>  
>>  	if (attr == &sriov_attr_max_vfs && dev->mode != XE_SRIOV_MODE_PF)
>>  		return false;
>> +	if (attr == &sriov_attr_admin_only_pf && dev->mode != XE_SRIOV_MODE_PF)
>> +		return false;
> 
> I assume you have a reason for this, but without an explanation, I don't understand this approach.
> I assume that sriov config should only be available to PF by definition, so I don't understand
> why you are checking for individual attr. 

sriov group should be always added unless there is no .has_sriov flag

and while today in this group we only have attributes for the PF, soon we might add more attributes that will be for both PF and VFs, or just for VFs
hence the check per-attribute, to show what to do

> 
>>  
>>  	return true;
>>  }
>> @@ -1065,6 +1099,7 @@ static void dump_custom_dev_config(struct pci_dev *pdev,
>>  	PRI_CUSTOM_ATTR("%llx", engines_allowed);
>>  	PRI_CUSTOM_ATTR("%d", enable_psmi);
>>  	PRI_CUSTOM_ATTR("%d", survivability_mode);
>> +	PRI_CUSTOM_ATTR("%u", sriov.admin_only_pf);
>>  
>>  #undef PRI_CUSTOM_ATTR
>>  }
>> @@ -1243,6 +1278,32 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
>>  }
>>  
>>  #ifdef CONFIG_PCI_IOV
>> +/**
>> + * xe_configfs_admin_only_pf() - Get PF's operational mode.
>> + * @pdev: the &pci_dev device
>> + *
>> + * Find the configfs group that belongs to the PCI device and return a flag
>> + * whether the PF driver should be dedicated for VFs management only.
>> + *
>> + * If configfs group is not present, use driver's default value.
>> + *
>> + * Return: true if PF driver is dedicated for VFs administration only.
>> + */
>> +bool xe_configfs_admin_only_pf(struct pci_dev *pdev)
>> +{
>> +	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
>> +	bool admin_only_pf;
>> +
>> +	if (!dev)
>> +		return XE_DEFAULT_ADMIN_ONLY_PF;
>> +
>> +	scoped_guard(mutex, &dev->lock)
>> +		admin_only_pf = dev->config.sriov.admin_only_pf;
>> +
>> +	config_group_put(&dev->group);
>> +
>> +	return admin_only_pf;
>> +}
>>  /**
>>   * xe_configfs_get_max_vfs() - Get number of VFs that could be managed
>>   * @pdev: the &pci_dev device
>> diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
>> index e0a555b871b3..487531269511 100644
>> --- a/drivers/gpu/drm/xe/xe_configfs.h
>> +++ b/drivers/gpu/drm/xe/xe_configfs.h
>> @@ -8,6 +8,7 @@
>>  #include <linux/limits.h>
>>  #include <linux/types.h>
>>  
>> +#include "xe_defaults.h"
>>  #include "xe_hw_engine_types.h"
>>  #include "xe_module.h"
>>  
>> @@ -28,6 +29,7 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev, enum xe_engine_cla
>>  					const u32 **cs);
>>  #ifdef CONFIG_PCI_IOV
>>  unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev);
>> +bool xe_configfs_admin_only_pf(struct pci_dev *pdev);
>>  #endif
>>  #else
>>  static inline int xe_configfs_init(void) { return 0; }
>> @@ -47,6 +49,10 @@ static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
>>  {
>>  	return xe_modparam.max_vfs;
>>  }
>> +static inline bool xe_configfs_admin_only_pf(struct pci_dev *pdev)
>> +{
>> +	return XE_DEFAULT_ADMIN_ONLY_PF;
>> +}
>>  #endif
>>  #endif
>>  
>> diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
>> index 9183d05b96e1..5d5d41d067c5 100644
>> --- a/drivers/gpu/drm/xe/xe_defaults.h
>> +++ b/drivers/gpu/drm/xe/xe_defaults.h
>> @@ -18,6 +18,7 @@
>>  #define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
>>  #define XE_DEFAULT_MAX_VFS			~0
>>  #define XE_DEFAULT_MAX_VFS_STR			"unlimited"
>> +#define XE_DEFAULT_ADMIN_ONLY_PF		false
>>  #define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
>>  #define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
>>  #define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
>> diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c
>> index 919f176a19eb..47a6e0fd66e0 100644
>> --- a/drivers/gpu/drm/xe/xe_sriov_pf.c
>> +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c
>> @@ -22,7 +22,7 @@
>>  
>>  static bool wanted_admin_only(struct xe_device *xe)
>>  {
>> -	return !xe->info.probe_display;
>> +	return xe_configfs_admin_only_pf(to_pci_dev(xe->drm.dev));
>>  }
> Overall, it looks good. I'd really like to know what's going on with this approach
> in xe_config_sriov_is_visible.
> But still:
> Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>

thanks!

>>  
>>  static unsigned int wanted_max_vfs(struct xe_device *xe)
>> -- 
>> 2.47.1
>>
> 


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

* Re: [PATCH 1/5] drm/xe: Keep all defaults in single header
  2026-01-21 21:42 ` [PATCH 1/5] drm/xe: Keep all defaults in single header Michal Wajdeczko
  2026-01-23 10:29   ` Piotr Piórkowski
@ 2026-02-03  0:11   ` Rodrigo Vivi
  2026-02-03 11:13   ` Jani Nikula
  2 siblings, 0 replies; 22+ messages in thread
From: Rodrigo Vivi @ 2026-02-03  0:11 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

On Wed, Jan 21, 2026 at 10:42:12PM +0100, Michal Wajdeczko wrote:
> We already have most of Xe defaults defined in xe_module.c,
> where we use them for the modparam initializations, but some
> were defined elsewhere, which breaks the consistency.
> 
> Introduce xe_defaults.h file, that will act as a placeholder
> for all our default values, and can be used from other places.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>

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

on this and the whole series

Thanks for that.

> ---
>  drivers/gpu/drm/xe/xe_defaults.h     | 25 +++++++++++++++++
>  drivers/gpu/drm/xe/xe_device.c       |  3 +-
>  drivers/gpu/drm/xe/xe_device_types.h |  3 --
>  drivers/gpu/drm/xe/xe_module.c       | 42 ++++++++++------------------
>  4 files changed, 41 insertions(+), 32 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/xe_defaults.h
> 
> diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
> new file mode 100644
> index 000000000000..9183d05b96e1
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_defaults.h
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +#ifndef _XE_DEFAULTS_H_
> +#define _XE_DEFAULTS_H_
> +
> +#include "xe_device_types.h"
> +
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> +#define XE_DEFAULT_GUC_LOG_LEVEL		3
> +#else
> +#define XE_DEFAULT_GUC_LOG_LEVEL		1
> +#endif
> +
> +#define XE_DEFAULT_PROBE_DISPLAY		true
> +#define XE_DEFAULT_VRAM_BAR_SIZE		0
> +#define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
> +#define XE_DEFAULT_MAX_VFS			~0
> +#define XE_DEFAULT_MAX_VFS_STR			"unlimited"
> +#define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
> +#define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
> +#define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
> +
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index aad4aa53a51f..17f4d048c8b9 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -26,6 +26,7 @@
>  #include "xe_bo.h"
>  #include "xe_bo_evict.h"
>  #include "xe_debugfs.h"
> +#include "xe_defaults.h"
>  #include "xe_devcoredump.h"
>  #include "xe_device_sysfs.h"
>  #include "xe_dma_buf.h"
> @@ -743,7 +744,7 @@ int xe_device_probe_early(struct xe_device *xe)
>  	assert_lmem_ready(xe);
>  
>  	xe->wedged.mode = xe_device_validate_wedged_mode(xe, xe_modparam.wedged_mode) ?
> -			  XE_WEDGED_MODE_DEFAULT : xe_modparam.wedged_mode;
> +			  XE_DEFAULT_WEDGED_MODE : xe_modparam.wedged_mode;
>  	drm_dbg(&xe->drm, "wedged_mode: setting mode (%u) %s\n",
>  		xe->wedged.mode, xe_wedged_mode_to_string(xe->wedged.mode));
>  
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 34feef79fa4e..b4600c5069a9 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -62,9 +62,6 @@ enum xe_wedged_mode {
>  	XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET = 2,
>  };
>  
> -#define XE_WEDGED_MODE_DEFAULT		XE_WEDGED_MODE_UPON_CRITICAL_ERROR
> -#define XE_WEDGED_MODE_DEFAULT_STR	"upon-critical-error"
> -
>  #define XE_BO_INVALID_OFFSET	LONG_MAX
>  
>  #define GRAPHICS_VER(xe) ((xe)->info.graphics_verx100 / 100)
> diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
> index a0048f64ed12..903d3b433421 100644
> --- a/drivers/gpu/drm/xe/xe_module.c
> +++ b/drivers/gpu/drm/xe/xe_module.c
> @@ -10,6 +10,7 @@
>  
>  #include <drm/drm_module.h>
>  
> +#include "xe_defaults.h"
>  #include "xe_device_types.h"
>  #include "xe_drv.h"
>  #include "xe_configfs.h"
> @@ -19,51 +20,36 @@
>  #include "xe_observation.h"
>  #include "xe_sched_job.h"
>  
> -#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> -#define DEFAULT_GUC_LOG_LEVEL		3
> -#else
> -#define DEFAULT_GUC_LOG_LEVEL		1
> -#endif
> -
> -#define DEFAULT_PROBE_DISPLAY		true
> -#define DEFAULT_VRAM_BAR_SIZE		0
> -#define DEFAULT_FORCE_PROBE		CONFIG_DRM_XE_FORCE_PROBE
> -#define DEFAULT_MAX_VFS			~0
> -#define DEFAULT_MAX_VFS_STR		"unlimited"
> -#define DEFAULT_WEDGED_MODE		XE_WEDGED_MODE_DEFAULT
> -#define DEFAULT_WEDGED_MODE_STR		XE_WEDGED_MODE_DEFAULT_STR
> -#define DEFAULT_SVM_NOTIFIER_SIZE	512
> -
>  struct xe_modparam xe_modparam = {
> -	.probe_display =	DEFAULT_PROBE_DISPLAY,
> -	.guc_log_level =	DEFAULT_GUC_LOG_LEVEL,
> -	.force_probe =		DEFAULT_FORCE_PROBE,
> +	.probe_display =	XE_DEFAULT_PROBE_DISPLAY,
> +	.guc_log_level =	XE_DEFAULT_GUC_LOG_LEVEL,
> +	.force_probe =		XE_DEFAULT_FORCE_PROBE,
>  #ifdef CONFIG_PCI_IOV
> -	.max_vfs =		DEFAULT_MAX_VFS,
> +	.max_vfs =		XE_DEFAULT_MAX_VFS,
>  #endif
> -	.wedged_mode =		DEFAULT_WEDGED_MODE,
> -	.svm_notifier_size =	DEFAULT_SVM_NOTIFIER_SIZE,
> +	.wedged_mode =		XE_DEFAULT_WEDGED_MODE,
> +	.svm_notifier_size =	XE_DEFAULT_SVM_NOTIFIER_SIZE,
>  	/* the rest are 0 by default */
>  };
>  
>  module_param_named(svm_notifier_size, xe_modparam.svm_notifier_size, uint, 0600);
>  MODULE_PARM_DESC(svm_notifier_size, "Set the svm notifier size in MiB, must be power of 2 "
> -		 "[default=" __stringify(DEFAULT_SVM_NOTIFIER_SIZE) "]");
> +		 "[default=" __stringify(XE_DEFAULT_SVM_NOTIFIER_SIZE) "]");
>  
>  module_param_named_unsafe(force_execlist, xe_modparam.force_execlist, bool, 0444);
>  MODULE_PARM_DESC(force_execlist, "Force Execlist submission");
>  
>  module_param_named(probe_display, xe_modparam.probe_display, bool, 0444);
>  MODULE_PARM_DESC(probe_display, "Probe display HW, otherwise it's left untouched "
> -		 "[default=" __stringify(DEFAULT_PROBE_DISPLAY) "])");
> +		 "[default=" __stringify(XE_DEFAULT_PROBE_DISPLAY) "])");
>  
>  module_param_named(vram_bar_size, xe_modparam.force_vram_bar_size, int, 0600);
>  MODULE_PARM_DESC(vram_bar_size, "Set the vram bar size in MiB (<0=disable-resize, 0=max-needed-size, >0=force-size "
> -		 "[default=" __stringify(DEFAULT_VRAM_BAR_SIZE) "])");
> +		 "[default=" __stringify(XE_DEFAULT_VRAM_BAR_SIZE) "])");
>  
>  module_param_named(guc_log_level, xe_modparam.guc_log_level, int, 0600);
>  MODULE_PARM_DESC(guc_log_level, "GuC firmware logging level (0=disable, 1=normal, 2..5=verbose-levels "
> -		 "[default=" __stringify(DEFAULT_GUC_LOG_LEVEL) "])");
> +		 "[default=" __stringify(XE_DEFAULT_GUC_LOG_LEVEL) "])");
>  
>  module_param_named_unsafe(guc_firmware_path, xe_modparam.guc_firmware_path, charp, 0400);
>  MODULE_PARM_DESC(guc_firmware_path,
> @@ -80,20 +66,20 @@ MODULE_PARM_DESC(gsc_firmware_path,
>  module_param_named_unsafe(force_probe, xe_modparam.force_probe, charp, 0400);
>  MODULE_PARM_DESC(force_probe,
>  		 "Force probe options for specified devices. See CONFIG_DRM_XE_FORCE_PROBE for details "
> -		 "[default=" DEFAULT_FORCE_PROBE "])");
> +		 "[default=" XE_DEFAULT_FORCE_PROBE "])");
>  
>  #ifdef CONFIG_PCI_IOV
>  module_param_named(max_vfs, xe_modparam.max_vfs, uint, 0400);
>  MODULE_PARM_DESC(max_vfs,
>  		 "Limit number of Virtual Functions (VFs) that could be managed. "
>  		 "(0=no VFs; N=allow up to N VFs "
> -		 "[default=" DEFAULT_MAX_VFS_STR "])");
> +		 "[default=" XE_DEFAULT_MAX_VFS_STR "])");
>  #endif
>  
>  module_param_named_unsafe(wedged_mode, xe_modparam.wedged_mode, uint, 0600);
>  MODULE_PARM_DESC(wedged_mode,
>  		 "Module's default policy for the wedged mode (0=never, 1=upon-critical-error, 2=upon-any-hang-no-reset "
> -		 "[default=" DEFAULT_WEDGED_MODE_STR "])");
> +		 "[default=" XE_DEFAULT_WEDGED_MODE_STR "])");
>  
>  static int xe_check_nomodeset(void)
>  {
> -- 
> 2.47.1
> 

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

* Re: [PATCH 1/5] drm/xe: Keep all defaults in single header
  2026-01-21 21:42 ` [PATCH 1/5] drm/xe: Keep all defaults in single header Michal Wajdeczko
  2026-01-23 10:29   ` Piotr Piórkowski
  2026-02-03  0:11   ` Rodrigo Vivi
@ 2026-02-03 11:13   ` Jani Nikula
  2026-02-03 14:58     ` Michal Wajdeczko
  2 siblings, 1 reply; 22+ messages in thread
From: Jani Nikula @ 2026-02-03 11:13 UTC (permalink / raw)
  To: Michal Wajdeczko, intel-xe; +Cc: Michal Wajdeczko

On Wed, 21 Jan 2026, Michal Wajdeczko <michal.wajdeczko@intel.com> wrote:
> We already have most of Xe defaults defined in xe_module.c,
> where we use them for the modparam initializations, but some
> were defined elsewhere, which breaks the consistency.
>
> Introduce xe_defaults.h file, that will act as a placeholder
> for all our default values, and can be used from other places.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_defaults.h     | 25 +++++++++++++++++
>  drivers/gpu/drm/xe/xe_device.c       |  3 +-
>  drivers/gpu/drm/xe/xe_device_types.h |  3 --
>  drivers/gpu/drm/xe/xe_module.c       | 42 ++++++++++------------------
>  4 files changed, 41 insertions(+), 32 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/xe_defaults.h
>
> diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
> new file mode 100644
> index 000000000000..9183d05b96e1
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_defaults.h
> @@ -0,0 +1,25 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +#ifndef _XE_DEFAULTS_H_
> +#define _XE_DEFAULTS_H_
> +
> +#include "xe_device_types.h"

What part of this header depends on xe_device_types.h?

> +
> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> +#define XE_DEFAULT_GUC_LOG_LEVEL		3
> +#else
> +#define XE_DEFAULT_GUC_LOG_LEVEL		1
> +#endif
> +
> +#define XE_DEFAULT_PROBE_DISPLAY		true
> +#define XE_DEFAULT_VRAM_BAR_SIZE		0
> +#define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
> +#define XE_DEFAULT_MAX_VFS			~0
> +#define XE_DEFAULT_MAX_VFS_STR			"unlimited"
> +#define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
> +#define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
> +#define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
> +
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index aad4aa53a51f..17f4d048c8b9 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -26,6 +26,7 @@
>  #include "xe_bo.h"
>  #include "xe_bo_evict.h"
>  #include "xe_debugfs.h"
> +#include "xe_defaults.h"
>  #include "xe_devcoredump.h"
>  #include "xe_device_sysfs.h"
>  #include "xe_dma_buf.h"
> @@ -743,7 +744,7 @@ int xe_device_probe_early(struct xe_device *xe)
>  	assert_lmem_ready(xe);
>  
>  	xe->wedged.mode = xe_device_validate_wedged_mode(xe, xe_modparam.wedged_mode) ?
> -			  XE_WEDGED_MODE_DEFAULT : xe_modparam.wedged_mode;
> +			  XE_DEFAULT_WEDGED_MODE : xe_modparam.wedged_mode;
>  	drm_dbg(&xe->drm, "wedged_mode: setting mode (%u) %s\n",
>  		xe->wedged.mode, xe_wedged_mode_to_string(xe->wedged.mode));
>  
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 34feef79fa4e..b4600c5069a9 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -62,9 +62,6 @@ enum xe_wedged_mode {
>  	XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET = 2,
>  };
>  
> -#define XE_WEDGED_MODE_DEFAULT		XE_WEDGED_MODE_UPON_CRITICAL_ERROR
> -#define XE_WEDGED_MODE_DEFAULT_STR	"upon-critical-error"
> -
>  #define XE_BO_INVALID_OFFSET	LONG_MAX
>  
>  #define GRAPHICS_VER(xe) ((xe)->info.graphics_verx100 / 100)
> diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
> index a0048f64ed12..903d3b433421 100644
> --- a/drivers/gpu/drm/xe/xe_module.c
> +++ b/drivers/gpu/drm/xe/xe_module.c
> @@ -10,6 +10,7 @@
>  
>  #include <drm/drm_module.h>
>  
> +#include "xe_defaults.h"
>  #include "xe_device_types.h"
>  #include "xe_drv.h"
>  #include "xe_configfs.h"
> @@ -19,51 +20,36 @@
>  #include "xe_observation.h"
>  #include "xe_sched_job.h"
>  
> -#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
> -#define DEFAULT_GUC_LOG_LEVEL		3
> -#else
> -#define DEFAULT_GUC_LOG_LEVEL		1
> -#endif
> -
> -#define DEFAULT_PROBE_DISPLAY		true
> -#define DEFAULT_VRAM_BAR_SIZE		0
> -#define DEFAULT_FORCE_PROBE		CONFIG_DRM_XE_FORCE_PROBE
> -#define DEFAULT_MAX_VFS			~0
> -#define DEFAULT_MAX_VFS_STR		"unlimited"
> -#define DEFAULT_WEDGED_MODE		XE_WEDGED_MODE_DEFAULT
> -#define DEFAULT_WEDGED_MODE_STR		XE_WEDGED_MODE_DEFAULT_STR
> -#define DEFAULT_SVM_NOTIFIER_SIZE	512
> -
>  struct xe_modparam xe_modparam = {
> -	.probe_display =	DEFAULT_PROBE_DISPLAY,
> -	.guc_log_level =	DEFAULT_GUC_LOG_LEVEL,
> -	.force_probe =		DEFAULT_FORCE_PROBE,
> +	.probe_display =	XE_DEFAULT_PROBE_DISPLAY,
> +	.guc_log_level =	XE_DEFAULT_GUC_LOG_LEVEL,
> +	.force_probe =		XE_DEFAULT_FORCE_PROBE,
>  #ifdef CONFIG_PCI_IOV
> -	.max_vfs =		DEFAULT_MAX_VFS,
> +	.max_vfs =		XE_DEFAULT_MAX_VFS,
>  #endif
> -	.wedged_mode =		DEFAULT_WEDGED_MODE,
> -	.svm_notifier_size =	DEFAULT_SVM_NOTIFIER_SIZE,
> +	.wedged_mode =		XE_DEFAULT_WEDGED_MODE,
> +	.svm_notifier_size =	XE_DEFAULT_SVM_NOTIFIER_SIZE,
>  	/* the rest are 0 by default */
>  };
>  
>  module_param_named(svm_notifier_size, xe_modparam.svm_notifier_size, uint, 0600);
>  MODULE_PARM_DESC(svm_notifier_size, "Set the svm notifier size in MiB, must be power of 2 "
> -		 "[default=" __stringify(DEFAULT_SVM_NOTIFIER_SIZE) "]");
> +		 "[default=" __stringify(XE_DEFAULT_SVM_NOTIFIER_SIZE) "]");
>  
>  module_param_named_unsafe(force_execlist, xe_modparam.force_execlist, bool, 0444);
>  MODULE_PARM_DESC(force_execlist, "Force Execlist submission");
>  
>  module_param_named(probe_display, xe_modparam.probe_display, bool, 0444);
>  MODULE_PARM_DESC(probe_display, "Probe display HW, otherwise it's left untouched "
> -		 "[default=" __stringify(DEFAULT_PROBE_DISPLAY) "])");
> +		 "[default=" __stringify(XE_DEFAULT_PROBE_DISPLAY) "])");
>  
>  module_param_named(vram_bar_size, xe_modparam.force_vram_bar_size, int, 0600);
>  MODULE_PARM_DESC(vram_bar_size, "Set the vram bar size in MiB (<0=disable-resize, 0=max-needed-size, >0=force-size "
> -		 "[default=" __stringify(DEFAULT_VRAM_BAR_SIZE) "])");
> +		 "[default=" __stringify(XE_DEFAULT_VRAM_BAR_SIZE) "])");
>  
>  module_param_named(guc_log_level, xe_modparam.guc_log_level, int, 0600);
>  MODULE_PARM_DESC(guc_log_level, "GuC firmware logging level (0=disable, 1=normal, 2..5=verbose-levels "
> -		 "[default=" __stringify(DEFAULT_GUC_LOG_LEVEL) "])");
> +		 "[default=" __stringify(XE_DEFAULT_GUC_LOG_LEVEL) "])");
>  
>  module_param_named_unsafe(guc_firmware_path, xe_modparam.guc_firmware_path, charp, 0400);
>  MODULE_PARM_DESC(guc_firmware_path,
> @@ -80,20 +66,20 @@ MODULE_PARM_DESC(gsc_firmware_path,
>  module_param_named_unsafe(force_probe, xe_modparam.force_probe, charp, 0400);
>  MODULE_PARM_DESC(force_probe,
>  		 "Force probe options for specified devices. See CONFIG_DRM_XE_FORCE_PROBE for details "
> -		 "[default=" DEFAULT_FORCE_PROBE "])");
> +		 "[default=" XE_DEFAULT_FORCE_PROBE "])");
>  
>  #ifdef CONFIG_PCI_IOV
>  module_param_named(max_vfs, xe_modparam.max_vfs, uint, 0400);
>  MODULE_PARM_DESC(max_vfs,
>  		 "Limit number of Virtual Functions (VFs) that could be managed. "
>  		 "(0=no VFs; N=allow up to N VFs "
> -		 "[default=" DEFAULT_MAX_VFS_STR "])");
> +		 "[default=" XE_DEFAULT_MAX_VFS_STR "])");
>  #endif
>  
>  module_param_named_unsafe(wedged_mode, xe_modparam.wedged_mode, uint, 0600);
>  MODULE_PARM_DESC(wedged_mode,
>  		 "Module's default policy for the wedged mode (0=never, 1=upon-critical-error, 2=upon-any-hang-no-reset "
> -		 "[default=" DEFAULT_WEDGED_MODE_STR "])");
> +		 "[default=" XE_DEFAULT_WEDGED_MODE_STR "])");
>  
>  static int xe_check_nomodeset(void)
>  {

-- 
Jani Nikula, Intel

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

* Re: [PATCH 1/5] drm/xe: Keep all defaults in single header
  2026-02-03 11:13   ` Jani Nikula
@ 2026-02-03 14:58     ` Michal Wajdeczko
  0 siblings, 0 replies; 22+ messages in thread
From: Michal Wajdeczko @ 2026-02-03 14:58 UTC (permalink / raw)
  To: Jani Nikula, intel-xe



On 2/3/2026 12:13 PM, Jani Nikula wrote:
> On Wed, 21 Jan 2026, Michal Wajdeczko <michal.wajdeczko@intel.com> wrote:
>> We already have most of Xe defaults defined in xe_module.c,
>> where we use them for the modparam initializations, but some
>> were defined elsewhere, which breaks the consistency.
>>
>> Introduce xe_defaults.h file, that will act as a placeholder
>> for all our default values, and can be used from other places.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> ---
>>  drivers/gpu/drm/xe/xe_defaults.h     | 25 +++++++++++++++++
>>  drivers/gpu/drm/xe/xe_device.c       |  3 +-
>>  drivers/gpu/drm/xe/xe_device_types.h |  3 --
>>  drivers/gpu/drm/xe/xe_module.c       | 42 ++++++++++------------------
>>  4 files changed, 41 insertions(+), 32 deletions(-)
>>  create mode 100644 drivers/gpu/drm/xe/xe_defaults.h
>>
>> diff --git a/drivers/gpu/drm/xe/xe_defaults.h b/drivers/gpu/drm/xe/xe_defaults.h
>> new file mode 100644
>> index 000000000000..9183d05b96e1
>> --- /dev/null
>> +++ b/drivers/gpu/drm/xe/xe_defaults.h
>> @@ -0,0 +1,25 @@
>> +/* SPDX-License-Identifier: MIT */
>> +/*
>> + * Copyright © 2026 Intel Corporation
>> + */
>> +#ifndef _XE_DEFAULTS_H_
>> +#define _XE_DEFAULTS_H_
>> +
>> +#include "xe_device_types.h"
> 
> What part of this header depends on xe_device_types.h?

enumerator XE_WEDGED_MODE_UPON_CRITICAL_ERROR

and yes, since it is used inside define, in theory we can skip this include

but then it will be a responsibility of XE_DEFAULT_WEDGED_MODE user to include separately
to avoid that I decided to have explicit include here

note that I plan to do some refactoring of the wedge related code, see [1]
so this might go away, or be replaced, in the near future

[1] https://patchwork.freedesktop.org/patch/694454/?series=148214&rev=11#comment_1278190

> 
>> +
>> +#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
>> +#define XE_DEFAULT_GUC_LOG_LEVEL		3
>> +#else
>> +#define XE_DEFAULT_GUC_LOG_LEVEL		1
>> +#endif
>> +
>> +#define XE_DEFAULT_PROBE_DISPLAY		true
>> +#define XE_DEFAULT_VRAM_BAR_SIZE		0
>> +#define XE_DEFAULT_FORCE_PROBE			CONFIG_DRM_XE_FORCE_PROBE
>> +#define XE_DEFAULT_MAX_VFS			~0
>> +#define XE_DEFAULT_MAX_VFS_STR			"unlimited"
>> +#define XE_DEFAULT_WEDGED_MODE			XE_WEDGED_MODE_UPON_CRITICAL_ERROR
>> +#define XE_DEFAULT_WEDGED_MODE_STR		"upon-critical-error"
>> +#define XE_DEFAULT_SVM_NOTIFIER_SIZE		512
>> +
>> +#endif

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

end of thread, other threads:[~2026-02-03 14:58 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-21 21:42 [PATCH 0/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
2026-01-21 21:42 ` [PATCH 1/5] drm/xe: Keep all defaults in single header Michal Wajdeczko
2026-01-23 10:29   ` Piotr Piórkowski
2026-02-03  0:11   ` Rodrigo Vivi
2026-02-03 11:13   ` Jani Nikula
2026-02-03 14:58     ` Michal Wajdeczko
2026-01-21 21:42 ` [PATCH 2/5] drm/xe/configfs: Use proper notation for local include Michal Wajdeczko
2026-01-23 10:29   ` Piotr Piórkowski
2026-01-21 21:42 ` [PATCH 3/5] drm/xe/configfs: Always return consistent max_vfs value Michal Wajdeczko
2026-01-28 15:51   ` Piotr Piórkowski
2026-01-21 21:42 ` [PATCH 4/5] drm/xe/pf: Define admin_only as real flag Michal Wajdeczko
2026-01-27 21:05   ` [PATCH v2 " Michal Wajdeczko
2026-01-28 15:56     ` Piotr Piórkowski
2026-01-21 21:42 ` [PATCH 5/5] drm/xe/configfs: Add sriov.admin_only_pf attribute Michal Wajdeczko
2026-01-28 16:35   ` Piotr Piórkowski
2026-01-28 23:42     ` Michal Wajdeczko
2026-01-21 22:25 ` ✗ CI.checkpatch: warning for " Patchwork
2026-01-21 22:26 ` ✗ CI.KUnit: failure " Patchwork
2026-01-27 21:34 ` ✗ CI.checkpatch: warning for drm/xe/configfs: Add sriov.admin_only_pf attribute (rev2) Patchwork
2026-01-27 21:35 ` ✓ CI.KUnit: success " Patchwork
2026-01-27 22:33 ` ✓ Xe.CI.BAT: " Patchwork
2026-01-28  6:46 ` ✓ Xe.CI.Full: " Patchwork

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