All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 00/11] Updates for drm/xe/configfs
@ 2025-07-31 19:33 Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
                   ` (14 more replies)
  0 siblings, 15 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko

v5: https://patchwork.freedesktop.org/series/151773/#rev6
v6: don't use -ECANCELED, print message instead (Rodrigo, John)

Michal Wajdeczko (11):
  drm/xe: Simplify module initialization code
  drm/xe: Print module init abort code
  drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error
  drm/xe/configfs: Drop redundant init() error message
  drm/xe/configfs: Rename struct xe_config_device
  drm/xe/configfs: Rename configfs_find_group() helper
  drm/xe/configfs: Reintroduce struct xe_config_device
  drm/xe/configfs: Keep default device config settings together
  drm/xe/configfs: Check if device was preconfigured
  drm/xe/configfs: Only allow configurations for supported devices
  drm/xe/configfs: Allow adding configurations for future VFs

 drivers/gpu/drm/xe/xe_configfs.c | 151 ++++++++++++++++++++++++-------
 drivers/gpu/drm/xe/xe_configfs.h |   2 +
 drivers/gpu/drm/xe/xe_module.c   |  29 +++---
 drivers/gpu/drm/xe/xe_pci.c      |   3 +
 4 files changed, 136 insertions(+), 49 deletions(-)

-- 
2.47.1


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

* [PATCH v6 01/11] drm/xe: Simplify module initialization code
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 02/11] drm/xe: Print module init abort code Michal Wajdeczko
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi, John Harrison

There is no need to have extra checks and WARN() in the helpers
as instead of an index of the entry with function pointers, we
can pass pointer to the entry which we prepare directly in the
main loop, that is guaranteed to be valid.

  add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-180 (-180)
  Function                                     old     new   delta
  xe_exit                                      109      79     -30
  cleanup_module                               109      79     -30
  xe_init                                      248     188     -60
  init_module                                  248     188     -60
  Total: Before=2774145, After=2773965, chg -0.01%

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
---
v2: use clearer pointer logic (John)
---
 drivers/gpu/drm/xe/xe_module.c | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
index d9391bd08194..cfed36361613 100644
--- a/drivers/gpu/drm/xe/xe_module.c
+++ b/drivers/gpu/drm/xe/xe_module.c
@@ -135,24 +135,17 @@ static const struct init_funcs init_funcs[] = {
 	},
 };
 
-static int __init xe_call_init_func(unsigned int i)
+static int __init xe_call_init_func(const struct init_funcs *func)
 {
-	if (WARN_ON(i >= ARRAY_SIZE(init_funcs)))
-		return 0;
-	if (!init_funcs[i].init)
-		return 0;
-
-	return init_funcs[i].init();
+	if (func->init)
+		return func->init();
+	return 0;
 }
 
-static void xe_call_exit_func(unsigned int i)
+static void xe_call_exit_func(const struct init_funcs *func)
 {
-	if (WARN_ON(i >= ARRAY_SIZE(init_funcs)))
-		return;
-	if (!init_funcs[i].exit)
-		return;
-
-	init_funcs[i].exit();
+	if (func->exit)
+		func->exit();
 }
 
 static int __init xe_init(void)
@@ -160,10 +153,10 @@ static int __init xe_init(void)
 	int err, i;
 
 	for (i = 0; i < ARRAY_SIZE(init_funcs); i++) {
-		err = xe_call_init_func(i);
+		err = xe_call_init_func(init_funcs + i);
 		if (err) {
 			while (i--)
-				xe_call_exit_func(i);
+				xe_call_exit_func(init_funcs + i);
 			return err;
 		}
 	}
@@ -176,7 +169,7 @@ static void __exit xe_exit(void)
 	int i;
 
 	for (i = ARRAY_SIZE(init_funcs) - 1; i >= 0; i--)
-		xe_call_exit_func(i);
+		xe_call_exit_func(init_funcs + i);
 }
 
 module_init(xe_init);
-- 
2.47.1


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

* [PATCH v6 02/11] drm/xe: Print module init abort code
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error Michal Wajdeczko
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

We should provide a hint to the user why the module refused to
load. This will also allow us to drop individual error messages
from init steps.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/xe/xe_module.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c
index cfed36361613..d08338fc3bc1 100644
--- a/drivers/gpu/drm/xe/xe_module.c
+++ b/drivers/gpu/drm/xe/xe_module.c
@@ -155,6 +155,8 @@ static int __init xe_init(void)
 	for (i = 0; i < ARRAY_SIZE(init_funcs); i++) {
 		err = xe_call_init_func(init_funcs + i);
 		if (err) {
+			pr_info("%s: module_init aborted at %ps %pe\n",
+				DRIVER_NAME, init_funcs[i].init, ERR_PTR(err));
 			while (i--)
 				xe_call_exit_func(init_funcs + i);
 			return err;
-- 
2.47.1


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

* [PATCH v6 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 02/11] drm/xe: Print module init abort code Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 04/11] drm/xe/configfs: Drop redundant init() error message Michal Wajdeczko
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

While mutex_destroy() is NOP when CONFIG_DEBUG_MUTEXES is not
enabled, we should still call it.

While around, drop a traling line.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
v2: remove pr_err in separate patch (Rodrigo)
---
 drivers/gpu/drm/xe/xe_configfs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 36e2b45b305f..56fbf4c1c37f 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -401,6 +401,7 @@ int __init xe_configfs_init(void)
 	if (ret) {
 		pr_err("Error %d while registering %s subsystem\n",
 		       ret, root->cg_item.ci_namebuf);
+		mutex_destroy(&xe_configfs.su_mutex);
 		return ret;
 	}
 
@@ -410,5 +411,5 @@ int __init xe_configfs_init(void)
 void __exit xe_configfs_exit(void)
 {
 	configfs_unregister_subsystem(&xe_configfs);
+	mutex_destroy(&xe_configfs.su_mutex);
 }
-
-- 
2.47.1


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

* [PATCH v6 04/11] drm/xe/configfs: Drop redundant init() error message
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (2 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 05/11] drm/xe/configfs: Rename struct xe_config_device Michal Wajdeczko
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi, John Harrison

There is no need to print separate error message since we will
also print one in xe_init(). Also drop temporary variable, which
was likely just taken from the example code.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
---
 drivers/gpu/drm/xe/xe_configfs.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 56fbf4c1c37f..6aa0531bcf76 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -392,15 +392,12 @@ u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
 
 int __init xe_configfs_init(void)
 {
-	struct config_group *root = &xe_configfs.su_group;
 	int ret;
 
-	config_group_init(root);
+	config_group_init(&xe_configfs.su_group);
 	mutex_init(&xe_configfs.su_mutex);
 	ret = configfs_register_subsystem(&xe_configfs);
 	if (ret) {
-		pr_err("Error %d while registering %s subsystem\n",
-		       ret, root->cg_item.ci_namebuf);
 		mutex_destroy(&xe_configfs.su_mutex);
 		return ret;
 	}
-- 
2.47.1


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

* [PATCH v6 05/11] drm/xe/configfs: Rename struct xe_config_device
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (3 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 04/11] drm/xe/configfs: Drop redundant init() error message Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

Rename it to struct xe_config_group_device to better match its
purpose. It will also help us to reintroduce in the upcoming patch
the same struct name but this time to hold only configuration data.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
v2: rebased
---
 drivers/gpu/drm/xe/xe_configfs.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 6aa0531bcf76..d69b5f248e59 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -85,7 +85,7 @@
  *	rmdir /sys/kernel/config/xe/0000:03:00.0/
  */
 
-struct xe_config_device {
+struct xe_config_group_device {
 	struct config_group group;
 
 	bool survivability_mode;
@@ -113,21 +113,21 @@ static const struct engine_info engine_info[] = {
 	{ .cls = "gsccs", .mask = XE_HW_ENGINE_GSCCS_MASK },
 };
 
-static struct xe_config_device *to_xe_config_device(struct config_item *item)
+static struct xe_config_group_device *to_xe_config_group_device(struct config_item *item)
 {
-	return container_of(to_config_group(item), struct xe_config_device, group);
+	return container_of(to_config_group(item), struct xe_config_group_device, group);
 }
 
 static ssize_t survivability_mode_show(struct config_item *item, char *page)
 {
-	struct xe_config_device *dev = to_xe_config_device(item);
+	struct xe_config_group_device *dev = to_xe_config_group_device(item);
 
 	return sprintf(page, "%d\n", dev->survivability_mode);
 }
 
 static ssize_t survivability_mode_store(struct config_item *item, const char *page, size_t len)
 {
-	struct xe_config_device *dev = to_xe_config_device(item);
+	struct xe_config_group_device *dev = to_xe_config_group_device(item);
 	bool survivability_mode;
 	int ret;
 
@@ -144,7 +144,7 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
 
 static ssize_t engines_allowed_show(struct config_item *item, char *page)
 {
-	struct xe_config_device *dev = to_xe_config_device(item);
+	struct xe_config_group_device *dev = to_xe_config_group_device(item);
 	char *p = page;
 
 	for (size_t i = 0; i < ARRAY_SIZE(engine_info); i++) {
@@ -199,7 +199,7 @@ static bool lookup_engine_mask(const char *pattern, u64 *mask)
 static ssize_t engines_allowed_store(struct config_item *item, const char *page,
 				     size_t len)
 {
-	struct xe_config_device *dev = to_xe_config_device(item);
+	struct xe_config_group_device *dev = to_xe_config_group_device(item);
 	size_t patternlen, p;
 	u64 mask, val = 0;
 
@@ -237,7 +237,7 @@ static struct configfs_attribute *xe_config_device_attrs[] = {
 
 static void xe_config_device_release(struct config_item *item)
 {
-	struct xe_config_device *dev = to_xe_config_device(item);
+	struct xe_config_group_device *dev = to_xe_config_group_device(item);
 
 	mutex_destroy(&dev->lock);
 	kfree(dev);
@@ -257,7 +257,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 							const char *name)
 {
 	unsigned int domain, bus, slot, function;
-	struct xe_config_device *dev;
+	struct xe_config_group_device *dev;
 	struct pci_dev *pdev;
 	char canonical[16];
 	int ret;
@@ -309,7 +309,7 @@ static struct configfs_subsystem xe_configfs = {
 	},
 };
 
-static struct xe_config_device *configfs_find_group(struct pci_dev *pdev)
+static struct xe_config_group_device *configfs_find_group(struct pci_dev *pdev)
 {
 	struct config_item *item;
 
@@ -320,7 +320,7 @@ static struct xe_config_device *configfs_find_group(struct pci_dev *pdev)
 	if (!item)
 		return NULL;
 
-	return to_xe_config_device(item);
+	return to_xe_config_group_device(item);
 }
 
 /**
@@ -334,7 +334,7 @@ static struct xe_config_device *configfs_find_group(struct pci_dev *pdev)
  */
 bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
 {
-	struct xe_config_device *dev = configfs_find_group(pdev);
+	struct xe_config_group_device *dev = configfs_find_group(pdev);
 	bool mode;
 
 	if (!dev)
@@ -355,7 +355,7 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
  */
 void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
 {
-	struct xe_config_device *dev = configfs_find_group(pdev);
+	struct xe_config_group_device *dev = configfs_find_group(pdev);
 
 	if (!dev)
 		return;
@@ -378,7 +378,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
  */
 u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
 {
-	struct xe_config_device *dev = configfs_find_group(pdev);
+	struct xe_config_group_device *dev = configfs_find_group(pdev);
 	u64 engines_allowed;
 
 	if (!dev)
-- 
2.47.1


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

* [PATCH v6 06/11] drm/xe/configfs: Rename configfs_find_group() helper
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (4 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 05/11] drm/xe/configfs: Rename struct xe_config_device Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-08-05 13:14   ` Lucas De Marchi
  2025-07-31 19:33 ` [PATCH v6 07/11] drm/xe/configfs: Reintroduce struct xe_config_device Michal Wajdeczko
                   ` (8 subsequent siblings)
  14 siblings, 1 reply; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi

This helper name shouldn't suggest that it iss a part of the core
configfs API family. While around switch to use different helper
to release a reference.

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

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index d69b5f248e59..acdee616d118 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -309,7 +309,7 @@ static struct configfs_subsystem xe_configfs = {
 	},
 };
 
-static struct xe_config_group_device *configfs_find_group(struct pci_dev *pdev)
+static struct xe_config_group_device *find_xe_config_group_device(struct pci_dev *pdev)
 {
 	struct config_item *item;
 
@@ -334,14 +334,14 @@ static struct xe_config_group_device *configfs_find_group(struct pci_dev *pdev)
  */
 bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
 {
-	struct xe_config_group_device *dev = configfs_find_group(pdev);
+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
 	bool mode;
 
 	if (!dev)
 		return false;
 
 	mode = dev->survivability_mode;
-	config_item_put(&dev->group.cg_item);
+	config_group_put(&dev->group);
 
 	return mode;
 }
@@ -355,7 +355,7 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
  */
 void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
 {
-	struct xe_config_group_device *dev = configfs_find_group(pdev);
+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
 
 	if (!dev)
 		return;
@@ -364,7 +364,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
 	dev->survivability_mode = 0;
 	mutex_unlock(&dev->lock);
 
-	config_item_put(&dev->group.cg_item);
+	config_group_put(&dev->group);
 }
 
 /**
@@ -378,14 +378,14 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
  */
 u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
 {
-	struct xe_config_group_device *dev = configfs_find_group(pdev);
+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
 	u64 engines_allowed;
 
 	if (!dev)
 		return U64_MAX;
 
 	engines_allowed = dev->engines_allowed;
-	config_item_put(&dev->group.cg_item);
+	config_group_put(&dev->group);
 
 	return engines_allowed;
 }
-- 
2.47.1


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

* [PATCH v6 07/11] drm/xe/configfs: Reintroduce struct xe_config_device
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (5 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 19:33 ` [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, John Harrison

This time it will hold just pure configuration parameters, without
any configfs related stuff. This will help us define defaults data
without wasting space for unneeded data.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
---
v2: rebased
---
 drivers/gpu/drm/xe/xe_configfs.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index acdee616d118..7ad9fc65e21d 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -88,8 +88,10 @@
 struct xe_config_group_device {
 	struct config_group group;
 
-	bool survivability_mode;
-	u64 engines_allowed;
+	struct xe_config_device {
+		bool survivability_mode;
+		u64 engines_allowed;
+	} config;
 
 	/* protects attributes */
 	struct mutex lock;
@@ -118,9 +120,14 @@ static struct xe_config_group_device *to_xe_config_group_device(struct config_it
 	return container_of(to_config_group(item), struct xe_config_group_device, group);
 }
 
+static struct xe_config_device *to_xe_config_device(struct config_item *item)
+{
+	return &to_xe_config_group_device(item)->config;
+}
+
 static ssize_t survivability_mode_show(struct config_item *item, char *page)
 {
-	struct xe_config_group_device *dev = to_xe_config_group_device(item);
+	struct xe_config_device *dev = to_xe_config_device(item);
 
 	return sprintf(page, "%d\n", dev->survivability_mode);
 }
@@ -136,7 +143,7 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
 		return ret;
 
 	mutex_lock(&dev->lock);
-	dev->survivability_mode = survivability_mode;
+	dev->config.survivability_mode = survivability_mode;
 	mutex_unlock(&dev->lock);
 
 	return len;
@@ -144,7 +151,7 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
 
 static ssize_t engines_allowed_show(struct config_item *item, char *page)
 {
-	struct xe_config_group_device *dev = to_xe_config_group_device(item);
+	struct xe_config_device *dev = to_xe_config_device(item);
 	char *p = page;
 
 	for (size_t i = 0; i < ARRAY_SIZE(engine_info); i++) {
@@ -220,7 +227,7 @@ static ssize_t engines_allowed_store(struct config_item *item, const char *page,
 	}
 
 	mutex_lock(&dev->lock);
-	dev->engines_allowed = val;
+	dev->config.engines_allowed = val;
 	mutex_unlock(&dev->lock);
 
 	return len;
@@ -282,7 +289,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 		return ERR_PTR(-ENOMEM);
 
 	/* Default values */
-	dev->engines_allowed = U64_MAX;
+	dev->config.engines_allowed = U64_MAX;
 
 	config_group_init_type_name(&dev->group, name, &xe_config_device_type);
 
@@ -340,7 +347,7 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
 	if (!dev)
 		return false;
 
-	mode = dev->survivability_mode;
+	mode = dev->config.survivability_mode;
 	config_group_put(&dev->group);
 
 	return mode;
@@ -361,7 +368,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
 		return;
 
 	mutex_lock(&dev->lock);
-	dev->survivability_mode = 0;
+	dev->config.survivability_mode = 0;
 	mutex_unlock(&dev->lock);
 
 	config_group_put(&dev->group);
@@ -384,7 +391,7 @@ u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
 	if (!dev)
 		return U64_MAX;
 
-	engines_allowed = dev->engines_allowed;
+	engines_allowed = dev->config.engines_allowed;
 	config_group_put(&dev->group);
 
 	return engines_allowed;
-- 
2.47.1


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

* [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (6 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 07/11] drm/xe/configfs: Reintroduce struct xe_config_device Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-08-05 13:28   ` Lucas De Marchi
  2025-07-31 19:33 ` [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
                   ` (6 subsequent siblings)
  14 siblings, 1 reply; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, John Harrison

For easier maintenance add a placeholder where we can keep all
default device configuration settings in one place.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
---
 drivers/gpu/drm/xe/xe_configfs.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 7ad9fc65e21d..150e7f2becc8 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -97,6 +97,16 @@ struct xe_config_group_device {
 	struct mutex lock;
 };
 
+static struct xe_config_device device_defaults = {
+	.survivability_mode = false,
+	.engines_allowed = U64_MAX,
+};
+
+static void set_device_defaults(struct xe_config_device *config)
+{
+	*config = device_defaults;
+}
+
 struct engine_info {
 	const char *cls;
 	u64 mask;
@@ -288,8 +298,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 	if (!dev)
 		return ERR_PTR(-ENOMEM);
 
-	/* Default values */
-	dev->config.engines_allowed = U64_MAX;
+	set_device_defaults(&dev->config);
 
 	config_group_init_type_name(&dev->group, name, &xe_config_device_type);
 
@@ -345,7 +354,7 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
 	bool mode;
 
 	if (!dev)
-		return false;
+		return device_defaults.survivability_mode;
 
 	mode = dev->config.survivability_mode;
 	config_group_put(&dev->group);
@@ -389,7 +398,7 @@ u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
 	u64 engines_allowed;
 
 	if (!dev)
-		return U64_MAX;
+		return device_defaults.engines_allowed;
 
 	engines_allowed = dev->config.engines_allowed;
 	config_group_put(&dev->group);
-- 
2.47.1


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

* [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (7 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-08-05 19:30   ` Lucas De Marchi
  2025-07-31 19:33 ` [PATCH v6 10/11] drm/xe/configfs: Only allow configurations for supported devices Michal Wajdeczko
                   ` (5 subsequent siblings)
  14 siblings, 1 reply; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, John Harrison

Since device configuration using configfs could be prepared long
time prior the driver load, add a debug log whether the current
device driver probe is using custom or default settings.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
---
v2: make function void, rename helpers (Lucas) and rebased
---
 drivers/gpu/drm/xe/xe_configfs.c | 25 +++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_configfs.h |  2 ++
 drivers/gpu/drm/xe/xe_pci.c      |  3 +++
 3 files changed, 30 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 150e7f2becc8..5f145ccdf535 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -107,6 +107,11 @@ static void set_device_defaults(struct xe_config_device *config)
 	*config = device_defaults;
 }
 
+static bool config_device_is_default(const struct xe_config_device *config)
+{
+	return !memcmp(config, &device_defaults, sizeof(*config));
+}
+
 struct engine_info {
 	const char *cls;
 	u64 mask;
@@ -339,6 +344,26 @@ static struct xe_config_group_device *find_xe_config_group_device(struct pci_dev
 	return to_xe_config_group_device(item);
 }
 
+/**
+ * xe_configfs_check_device() - Test if device was configured by configfs
+ * @pdev: the &pci_dev device to test
+ *
+ * Try to find the configfs group that belongs to the specified pci device
+ * and print a diagnostic message if found.
+ */
+void xe_configfs_check_device(struct pci_dev *pdev)
+{
+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
+
+	if (!dev)
+		return;
+
+	pci_dbg(pdev, "found %s settings in configfs\n",
+		config_device_is_default(&dev->config) ? "default" : "custom");
+
+	config_group_put(&dev->group);
+}
+
 /**
  * xe_configfs_get_survivability_mode - get configfs survivability mode attribute
  * @pdev: pci device
diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
index fb8764008089..fa4ea7f0c375 100644
--- a/drivers/gpu/drm/xe/xe_configfs.h
+++ b/drivers/gpu/drm/xe/xe_configfs.h
@@ -13,12 +13,14 @@ struct pci_dev;
 #if IS_ENABLED(CONFIG_CONFIGFS_FS)
 int xe_configfs_init(void);
 void xe_configfs_exit(void);
+void xe_configfs_check_device(struct pci_dev *pdev);
 bool xe_configfs_get_survivability_mode(struct pci_dev *pdev);
 void xe_configfs_clear_survivability_mode(struct pci_dev *pdev);
 u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev);
 #else
 static inline int xe_configfs_init(void) { return 0; }
 static inline void xe_configfs_exit(void) { }
+static inline void xe_configfs_check_device(struct pci_dev *pdev) { }
 static inline bool xe_configfs_get_survivability_mode(struct pci_dev *pdev) { return false; }
 static inline void xe_configfs_clear_survivability_mode(struct pci_dev *pdev) { }
 static inline u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev) { return U64_MAX; }
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 52d46c66ae1e..9ce6e6dca5bc 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -17,6 +17,7 @@
 
 #include "display/xe_display.h"
 #include "regs/xe_gt_regs.h"
+#include "xe_configfs.h"
 #include "xe_device.h"
 #include "xe_drv.h"
 #include "xe_gt.h"
@@ -771,6 +772,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	struct xe_device *xe;
 	int err;
 
+	xe_configfs_check_device(pdev);
+
 	if (desc->require_force_probe && !id_forced(pdev->device)) {
 		dev_info(&pdev->dev,
 			 "Your graphics device %04x is not officially supported\n"
-- 
2.47.1


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

* [PATCH v6 10/11] drm/xe/configfs: Only allow configurations for supported devices
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (8 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 20:35   ` Rodrigo Vivi
  2025-07-31 19:33 ` [PATCH v6 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
                   ` (4 subsequent siblings)
  14 siblings, 1 reply; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, John Harrison, Rodrigo Vivi

Since we already lookup for the real PCI device before we allow
to create its directory config, we might also check if the found
device matches our driver PCI ID list. This will prevent creation
of the directory configs for the unsupported devices.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: John Harrison <John.C.Harrison@Intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
v2: rebased
v3: don't use -ECANCELED, print message instead (Rodrigo, John)
---
 drivers/gpu/drm/xe/xe_configfs.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 5f145ccdf535..0e2da7907afc 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -275,11 +275,22 @@ static const struct config_item_type xe_config_device_type = {
 	.ct_owner	= THIS_MODULE,
 };
 
+static const struct xe_device_desc *xe_match_desc(struct pci_dev *pdev)
+{
+	struct device_driver *driver = driver_find("xe", &pci_bus_type);
+	struct pci_driver *drv = to_pci_driver(driver);
+	const struct pci_device_id *ids = drv ? drv->id_table : NULL;
+	const struct pci_device_id *found = pci_match_id(ids, pdev);
+
+	return found ? (const void *)found->driver_data : NULL;
+}
+
 static struct config_group *xe_config_make_device_group(struct config_group *group,
 							const char *name)
 {
 	unsigned int domain, bus, slot, function;
 	struct xe_config_group_device *dev;
+	const struct xe_device_desc *match;
 	struct pci_dev *pdev;
 	char canonical[16];
 	int ret;
@@ -297,8 +308,16 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 	pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
 	if (!pdev)
 		return ERR_PTR(-ENODEV);
+
+	match = xe_match_desc(pdev);
+	if (!match)
+		pci_info(pdev, "xe driver does not support configuration of this device\n");
+
 	pci_dev_put(pdev);
 
+	if (!match)
+		return ERR_PTR(-ENOENT);
+
 	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
 	if (!dev)
 		return ERR_PTR(-ENOMEM);
-- 
2.47.1


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

* [PATCH v6 11/11] drm/xe/configfs: Allow adding configurations for future VFs
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (9 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 10/11] drm/xe/configfs: Only allow configurations for supported devices Michal Wajdeczko
@ 2025-07-31 19:33 ` Michal Wajdeczko
  2025-07-31 20:37   ` Rodrigo Vivi
  2025-07-31 21:21   ` [PATCH v7 " Michal Wajdeczko
  2025-08-01  0:05 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev8) Patchwork
                   ` (3 subsequent siblings)
  14 siblings, 2 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 19:33 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi, John Harrison

Since we are expecting that all configuration directory names
will match some of the existing devices, we can't provide any
configuration for the VFs until they are actually enabled.

But we can relax that restriction by just checking if there
is a PF device that could create given VF. This is easy since
all our PF devices are always present at function 0 and we can
query PF device for number of VFs it could support.

Then for some system with PF device at 0000:00:02.0 we can add
configs for all VFs:

  /sys/kernel/config/xe/
  ├── 0000:00:02.0
  │   └── ...
  ├── 0000:00:02.1
  │   └── ...
  ├── 0000:00:02.2
  │   └── ...
  :
  └── 0000:00:02.7
      └── ...

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> #v3
---
v2: rebase and improve checks, fix include order
v3: put correct device (Lucas)
v4: rebase and change reporting
---
 drivers/gpu/drm/xe/xe_configfs.c | 35 +++++++++++++++++++++++++++++---
 1 file changed, 32 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 0e2da7907afc..c2da2c60e321 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -12,9 +12,9 @@
 #include <linux/string.h>
 
 #include "xe_configfs.h"
-#include "xe_module.h"
-
 #include "xe_hw_engine_types.h"
+#include "xe_module.h"
+#include "xe_pci_types.h"
 
 /**
  * DOC: Xe Configfs
@@ -285,6 +285,15 @@ static const struct xe_device_desc *xe_match_desc(struct pci_dev *pdev)
 	return found ? (const void *)found->driver_data : NULL;
 }
 
+static struct pci_dev *get_physfn_instead(struct pci_dev *virtfn)
+{
+	struct pci_dev *physfn = pci_physfn(virtfn);
+
+	pci_dev_get(physfn);
+	pci_dev_put(virtfn);
+	return physfn;
+}
+
 static struct config_group *xe_config_make_device_group(struct config_group *group,
 							const char *name)
 {
@@ -293,6 +302,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 	const struct xe_device_desc *match;
 	struct pci_dev *pdev;
 	char canonical[16];
+	int vfnumber = 0;
 	int ret;
 
 	ret = sscanf(name, "%x:%x:%x.%x", &domain, &bus, &slot, &function);
@@ -306,12 +316,31 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 		return ERR_PTR(-EINVAL);
 
 	pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
+	if (!pdev && function)
+		pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, 0));
+	if (!pdev && slot)
+		pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(0, 0));
 	if (!pdev)
 		return ERR_PTR(-ENODEV);
 
 	match = xe_match_desc(pdev);
-	if (!match)
+
+	if (PCI_DEVFN(slot, function) != pdev->devfn) {
+		pdev = get_physfn_instead(pdev);
+		vfnumber = PCI_DEVFN(slot, function) - pdev->devfn;
+		if (!dev_is_pf(&pdev->dev) || vfnumber > pci_sriov_get_totalvfs(pdev)) {
+			pci_dev_put(pdev);
+			return ERR_PTR(-ENODEV);
+		}
+	}
+
+	match = xe_match_desc(pdev);
+	if (match && vfnumber && !match->has_sriov) {
+		pci_info(pdev, "xe driver does not support VFs on this device\n");
+		match = NULL;
+	} else if (!match) {
 		pci_info(pdev, "xe driver does not support configuration of this device\n");
+	}
 
 	pci_dev_put(pdev);
 
-- 
2.47.1


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

* Re: [PATCH v6 10/11] drm/xe/configfs: Only allow configurations for supported devices
  2025-07-31 19:33 ` [PATCH v6 10/11] drm/xe/configfs: Only allow configurations for supported devices Michal Wajdeczko
@ 2025-07-31 20:35   ` Rodrigo Vivi
  0 siblings, 0 replies; 27+ messages in thread
From: Rodrigo Vivi @ 2025-07-31 20:35 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi, John Harrison

On Thu, Jul 31, 2025 at 09:33:38PM +0200, Michal Wajdeczko wrote:
> Since we already lookup for the real PCI device before we allow
> to create its directory config, we might also check if the found
> device matches our driver PCI ID list. This will prevent creation
> of the directory configs for the unsupported devices.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: John Harrison <John.C.Harrison@Intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>

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

> ---
> v2: rebased
> v3: don't use -ECANCELED, print message instead (Rodrigo, John)
> ---
>  drivers/gpu/drm/xe/xe_configfs.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 5f145ccdf535..0e2da7907afc 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -275,11 +275,22 @@ static const struct config_item_type xe_config_device_type = {
>  	.ct_owner	= THIS_MODULE,
>  };
>  
> +static const struct xe_device_desc *xe_match_desc(struct pci_dev *pdev)
> +{
> +	struct device_driver *driver = driver_find("xe", &pci_bus_type);
> +	struct pci_driver *drv = to_pci_driver(driver);
> +	const struct pci_device_id *ids = drv ? drv->id_table : NULL;
> +	const struct pci_device_id *found = pci_match_id(ids, pdev);
> +
> +	return found ? (const void *)found->driver_data : NULL;
> +}
> +
>  static struct config_group *xe_config_make_device_group(struct config_group *group,
>  							const char *name)
>  {
>  	unsigned int domain, bus, slot, function;
>  	struct xe_config_group_device *dev;
> +	const struct xe_device_desc *match;
>  	struct pci_dev *pdev;
>  	char canonical[16];
>  	int ret;
> @@ -297,8 +308,16 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>  	pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
>  	if (!pdev)
>  		return ERR_PTR(-ENODEV);
> +
> +	match = xe_match_desc(pdev);
> +	if (!match)
> +		pci_info(pdev, "xe driver does not support configuration of this device\n");
> +
>  	pci_dev_put(pdev);
>  
> +	if (!match)
> +		return ERR_PTR(-ENOENT);
> +
>  	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
>  	if (!dev)
>  		return ERR_PTR(-ENOMEM);
> -- 
> 2.47.1
> 

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

* Re: [PATCH v6 11/11] drm/xe/configfs: Allow adding configurations for future VFs
  2025-07-31 19:33 ` [PATCH v6 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
@ 2025-07-31 20:37   ` Rodrigo Vivi
  2025-07-31 21:21   ` [PATCH v7 " Michal Wajdeczko
  1 sibling, 0 replies; 27+ messages in thread
From: Rodrigo Vivi @ 2025-07-31 20:37 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi, John Harrison

On Thu, Jul 31, 2025 at 09:33:39PM +0200, Michal Wajdeczko wrote:
> Since we are expecting that all configuration directory names
> will match some of the existing devices, we can't provide any
> configuration for the VFs until they are actually enabled.
> 
> But we can relax that restriction by just checking if there
> is a PF device that could create given VF. This is easy since
> all our PF devices are always present at function 0 and we can
> query PF device for number of VFs it could support.
> 
> Then for some system with PF device at 0000:00:02.0 we can add
> configs for all VFs:
> 
>   /sys/kernel/config/xe/
>   ├── 0000:00:02.0
>   │   └── ...
>   ├── 0000:00:02.1
>   │   └── ...
>   ├── 0000:00:02.2
>   │   └── ...
>   :
>   └── 0000:00:02.7
>       └── ...
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: John Harrison <John.C.Harrison@Intel.com>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> #v3


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

> ---
> v2: rebase and improve checks, fix include order
> v3: put correct device (Lucas)
> v4: rebase and change reporting
> ---
>  drivers/gpu/drm/xe/xe_configfs.c | 35 +++++++++++++++++++++++++++++---
>  1 file changed, 32 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 0e2da7907afc..c2da2c60e321 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -12,9 +12,9 @@
>  #include <linux/string.h>
>  
>  #include "xe_configfs.h"
> -#include "xe_module.h"
> -
>  #include "xe_hw_engine_types.h"
> +#include "xe_module.h"
> +#include "xe_pci_types.h"
>  
>  /**
>   * DOC: Xe Configfs
> @@ -285,6 +285,15 @@ static const struct xe_device_desc *xe_match_desc(struct pci_dev *pdev)
>  	return found ? (const void *)found->driver_data : NULL;
>  }
>  
> +static struct pci_dev *get_physfn_instead(struct pci_dev *virtfn)
> +{
> +	struct pci_dev *physfn = pci_physfn(virtfn);
> +
> +	pci_dev_get(physfn);
> +	pci_dev_put(virtfn);
> +	return physfn;
> +}
> +
>  static struct config_group *xe_config_make_device_group(struct config_group *group,
>  							const char *name)
>  {
> @@ -293,6 +302,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>  	const struct xe_device_desc *match;
>  	struct pci_dev *pdev;
>  	char canonical[16];
> +	int vfnumber = 0;
>  	int ret;
>  
>  	ret = sscanf(name, "%x:%x:%x.%x", &domain, &bus, &slot, &function);
> @@ -306,12 +316,31 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>  		return ERR_PTR(-EINVAL);
>  
>  	pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
> +	if (!pdev && function)
> +		pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, 0));
> +	if (!pdev && slot)
> +		pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(0, 0));
>  	if (!pdev)
>  		return ERR_PTR(-ENODEV);
>  
>  	match = xe_match_desc(pdev);
> -	if (!match)
> +
> +	if (PCI_DEVFN(slot, function) != pdev->devfn) {
> +		pdev = get_physfn_instead(pdev);
> +		vfnumber = PCI_DEVFN(slot, function) - pdev->devfn;
> +		if (!dev_is_pf(&pdev->dev) || vfnumber > pci_sriov_get_totalvfs(pdev)) {
> +			pci_dev_put(pdev);
> +			return ERR_PTR(-ENODEV);
> +		}
> +	}
> +
> +	match = xe_match_desc(pdev);
> +	if (match && vfnumber && !match->has_sriov) {
> +		pci_info(pdev, "xe driver does not support VFs on this device\n");
> +		match = NULL;
> +	} else if (!match) {
>  		pci_info(pdev, "xe driver does not support configuration of this device\n");
> +	}
>  
>  	pci_dev_put(pdev);
>  
> -- 
> 2.47.1
> 

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

* [PATCH v7 11/11] drm/xe/configfs: Allow adding configurations for future VFs
  2025-07-31 19:33 ` [PATCH v6 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
  2025-07-31 20:37   ` Rodrigo Vivi
@ 2025-07-31 21:21   ` Michal Wajdeczko
  1 sibling, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-07-31 21:21 UTC (permalink / raw)
  To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi, Rodrigo Vivi, John Harrison

Since we are expecting that all configuration directory names
will match some of the existing devices, we can't provide any
configuration for the VFs until they are actually enabled.

But we can relax that restriction by just checking if there
is a PF device that could create given VF. This is easy since
all our PF devices are always present at function 0 and we can
query PF device for number of VFs it could support.

Then for some system with PF device at 0000:00:02.0 we can add
configs for all VFs:

  /sys/kernel/config/xe/
  ├── 0000:00:02.0
  │   └── ...
  ├── 0000:00:02.1
  │   └── ...
  ├── 0000:00:02.2
  │   └── ...
  :
  └── 0000:00:02.7
      └── ...

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
v2: rebase and improve checks, fix include order
v3: put correct device (Lucas)
v4: rebase and change reporting
v5: drop duplicated xe_match_desc() call
---
 drivers/gpu/drm/xe/xe_configfs.c | 33 +++++++++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 0e2da7907afc..4d1fbf33627f 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -12,9 +12,9 @@
 #include <linux/string.h>
 
 #include "xe_configfs.h"
-#include "xe_module.h"
-
 #include "xe_hw_engine_types.h"
+#include "xe_module.h"
+#include "xe_pci_types.h"
 
 /**
  * DOC: Xe Configfs
@@ -285,6 +285,15 @@ static const struct xe_device_desc *xe_match_desc(struct pci_dev *pdev)
 	return found ? (const void *)found->driver_data : NULL;
 }
 
+static struct pci_dev *get_physfn_instead(struct pci_dev *virtfn)
+{
+	struct pci_dev *physfn = pci_physfn(virtfn);
+
+	pci_dev_get(physfn);
+	pci_dev_put(virtfn);
+	return physfn;
+}
+
 static struct config_group *xe_config_make_device_group(struct config_group *group,
 							const char *name)
 {
@@ -293,6 +302,7 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 	const struct xe_device_desc *match;
 	struct pci_dev *pdev;
 	char canonical[16];
+	int vfnumber = 0;
 	int ret;
 
 	ret = sscanf(name, "%x:%x:%x.%x", &domain, &bus, &slot, &function);
@@ -306,12 +316,29 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 		return ERR_PTR(-EINVAL);
 
 	pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
+	if (!pdev && function)
+		pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, 0));
+	if (!pdev && slot)
+		pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(0, 0));
 	if (!pdev)
 		return ERR_PTR(-ENODEV);
 
+	if (PCI_DEVFN(slot, function) != pdev->devfn) {
+		pdev = get_physfn_instead(pdev);
+		vfnumber = PCI_DEVFN(slot, function) - pdev->devfn;
+		if (!dev_is_pf(&pdev->dev) || vfnumber > pci_sriov_get_totalvfs(pdev)) {
+			pci_dev_put(pdev);
+			return ERR_PTR(-ENODEV);
+		}
+	}
+
 	match = xe_match_desc(pdev);
-	if (!match)
+	if (match && vfnumber && !match->has_sriov) {
+		pci_info(pdev, "xe driver does not support VFs on this device\n");
+		match = NULL;
+	} else if (!match) {
 		pci_info(pdev, "xe driver does not support configuration of this device\n");
+	}
 
 	pci_dev_put(pdev);
 
-- 
2.47.1


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

* ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev8)
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (10 preceding siblings ...)
  2025-07-31 19:33 ` [PATCH v6 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
@ 2025-08-01  0:05 ` Patchwork
  2025-08-01  1:08 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2025-08-01  0:05 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

== Series Details ==

Series: Updates for drm/xe/configfs (rev8)
URL   : https://patchwork.freedesktop.org/series/151773/
State : success

== Summary ==

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

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

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

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



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

* ✓ Xe.CI.BAT: success for Updates for drm/xe/configfs (rev8)
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (11 preceding siblings ...)
  2025-08-01  0:05 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev8) Patchwork
@ 2025-08-01  1:08 ` Patchwork
  2025-08-01  2:31 ` ✓ Xe.CI.Full: " Patchwork
  2025-08-05 19:44 ` [PATCH v6 00/11] Updates for drm/xe/configfs Lucas De Marchi
  14 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2025-08-01  1:08 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: Updates for drm/xe/configfs (rev8)
URL   : https://patchwork.freedesktop.org/series/151773/
State : success

== Summary ==

CI Bug Log - changes from xe-3495-3113cfc0640b0fd319990d011901fe4174734162_BAT -> xe-pw-151773v8_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  Missing    (1): bat-adlp-vm 

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

  Here are the changes found in xe-pw-151773v8_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_flip@basic-plain-flip@b-edp1:
    - bat-adlp-7:         [PASS][1] -> [DMESG-WARN][2] ([Intel XE#4543]) +1 other test dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/bat-adlp-7/igt@kms_flip@basic-plain-flip@b-edp1.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/bat-adlp-7/igt@kms_flip@basic-plain-flip@b-edp1.html

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


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

  * Linux: xe-3495-3113cfc0640b0fd319990d011901fe4174734162 -> xe-pw-151773v8

  IGT_8482: 8482
  xe-3495-3113cfc0640b0fd319990d011901fe4174734162: 3113cfc0640b0fd319990d011901fe4174734162
  xe-pw-151773v8: 151773v8

== Logs ==

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

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

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

* ✓ Xe.CI.Full: success for Updates for drm/xe/configfs (rev8)
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (12 preceding siblings ...)
  2025-08-01  1:08 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-08-01  2:31 ` Patchwork
  2025-08-05 19:44 ` [PATCH v6 00/11] Updates for drm/xe/configfs Lucas De Marchi
  14 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2025-08-01  2:31 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe

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

== Series Details ==

Series: Updates for drm/xe/configfs (rev8)
URL   : https://patchwork.freedesktop.org/series/151773/
State : success

== Summary ==

CI Bug Log - changes from xe-3495-3113cfc0640b0fd319990d011901fe4174734162_FULL -> xe-pw-151773v8_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

  Here are the changes found in xe-pw-151773v8_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@hotrebind:
    - shard-bmg:          [PASS][1] -> [SKIP][2] ([Intel XE#4963]) +1 other test skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@core_hotunplug@hotrebind.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@core_hotunplug@hotrebind.html

  * igt@core_hotunplug@hotunbind-rebind:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][3] ([Intel XE#2953] / [Intel XE#4173]) +2 other tests dmesg-warn
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@core_hotunplug@hotunbind-rebind.html

  * igt@core_setmaster@master-drop-set-root:
    - shard-bmg:          [PASS][4] -> [FAIL][5] ([Intel XE#4672])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@core_setmaster@master-drop-set-root.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@core_setmaster@master-drop-set-root.html

  * igt@core_setmaster@master-drop-set-user:
    - shard-bmg:          [PASS][6] -> [FAIL][7] ([Intel XE#4674])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@core_setmaster@master-drop-set-user.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@core_setmaster@master-drop-set-user.html

  * igt@fbdev@nullptr:
    - shard-bmg:          [PASS][8] -> [SKIP][9] ([Intel XE#2134]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@fbdev@nullptr.html
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@fbdev@nullptr.html

  * igt@intel_hwmon@hwmon-read:
    - shard-adlp:         NOTRUN -> [SKIP][10] ([Intel XE#1125] / [Intel XE#5574])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@intel_hwmon@hwmon-read.html

  * igt@kms_big_fb@linear-16bpp-rotate-270:
    - shard-adlp:         NOTRUN -> [SKIP][11] ([Intel XE#316]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_big_fb@linear-16bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-addfb:
    - shard-bmg:          [PASS][12] -> [SKIP][13] ([Intel XE#4947]) +17 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_big_fb@x-tiled-addfb.html
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_big_fb@x-tiled-addfb.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-adlp:         [PASS][14] -> [DMESG-FAIL][15] ([Intel XE#4543]) +1 other test dmesg-fail
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-dg2-set2:     NOTRUN -> [SKIP][16] ([Intel XE#607])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-432/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-adlp:         NOTRUN -> [SKIP][17] ([Intel XE#1124]) +2 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p:
    - shard-adlp:         NOTRUN -> [SKIP][18] ([Intel XE#2191])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2652] / [Intel XE#787]) +11 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-d-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][20] ([Intel XE#455] / [Intel XE#787]) +7 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][21] ([Intel XE#455] / [Intel XE#787]) +7 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-433/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     [PASS][22] -> [INCOMPLETE][23] ([Intel XE#3862]) +1 other test incomplete
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-433/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-436/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][24] ([Intel XE#787]) +11 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2:
    - shard-dg2-set2:     NOTRUN -> [SKIP][25] ([Intel XE#787]) +55 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
    - shard-dg2-set2:     [PASS][26] -> [INCOMPLETE][27] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [INCOMPLETE][28] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4:
    - shard-dg2-set2:     [PASS][29] -> [INCOMPLETE][30] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4.html
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [PASS][31] -> [INCOMPLETE][32] ([Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-6.html

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

  * igt@kms_chamelium_frames@dp-crc-single:
    - shard-adlp:         NOTRUN -> [SKIP][34] ([Intel XE#373]) +1 other test skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_chamelium_frames@dp-crc-single.html

  * igt@kms_content_protection@atomic:
    - shard-adlp:         NOTRUN -> [SKIP][35] ([Intel XE#455]) +5 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@atomic@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][36] ([Intel XE#1178]) +2 other tests fail
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_content_protection@atomic@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-offscreen-128x42:
    - shard-adlp:         [PASS][37] -> [DMESG-WARN][38] ([Intel XE#2953] / [Intel XE#4173]) +4 other tests dmesg-warn
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-2/igt@kms_cursor_crc@cursor-offscreen-128x42.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-8/igt@kms_cursor_crc@cursor-offscreen-128x42.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-adlp:         NOTRUN -> [SKIP][39] ([Intel XE#308])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
    - shard-bmg:          [PASS][40] -> [SKIP][41] ([Intel XE#2291]) +2 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
    - shard-adlp:         NOTRUN -> [SKIP][42] ([Intel XE#4422])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-adlp:         NOTRUN -> [SKIP][43] ([Intel XE#310]) +2 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-nonexisting-fb:
    - shard-bmg:          [PASS][44] -> [SKIP][45] ([Intel XE#2316]) +3 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_flip@2x-nonexisting-fb.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-6/igt@kms_flip@2x-nonexisting-fb.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a1:
    - shard-adlp:         [PASS][46] -> [DMESG-WARN][47] ([Intel XE#4543]) +4 other tests dmesg-warn
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-9/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a1.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-4/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a3:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][48] ([Intel XE#2049] / [Intel XE#2597])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a3.html

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

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-dg2-set2:     [PASS][50] -> [SKIP][51] ([Intel XE#4208])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-434/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-render:
    - shard-adlp:         NOTRUN -> [SKIP][52] ([Intel XE#651]) +1 other test skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscren-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt:
    - shard-adlp:         NOTRUN -> [SKIP][53] ([Intel XE#653])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][54] ([Intel XE#653]) +1 other test skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff:
    - shard-adlp:         NOTRUN -> [SKIP][55] ([Intel XE#656]) +12 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-adlp:         NOTRUN -> [SKIP][56] ([Intel XE#4596])
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-adlp:         NOTRUN -> [SKIP][57] ([Intel XE#309]) +3 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#2763]) +3 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-adlp:         NOTRUN -> [SKIP][59] ([Intel XE#836])
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-bmg:          [PASS][60] -> [SKIP][61] ([Intel XE#4962]) +2 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_pm_rpm@system-suspend-modeset.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-adlp:         NOTRUN -> [SKIP][62] ([Intel XE#1489]) +1 other test skip
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr@fbc-psr2-cursor-blt:
    - shard-adlp:         NOTRUN -> [SKIP][63] ([Intel XE#2850] / [Intel XE#929]) +3 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_psr@fbc-psr2-cursor-blt.html

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

  * igt@kms_rotation_crc@sprite-rotation-270:
    - shard-adlp:         NOTRUN -> [SKIP][65] ([Intel XE#3414])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@kms_rotation_crc@sprite-rotation-270.html

  * igt@kms_sequence@get-idle:
    - shard-bmg:          [PASS][66] -> [SKIP][67] ([Intel XE#4950]) +75 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_sequence@get-idle.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_sequence@get-idle.html

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

  * igt@xe_eudebug@attach-debug-metadata:
    - shard-adlp:         NOTRUN -> [SKIP][69] ([Intel XE#4837] / [Intel XE#5565]) +3 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_eudebug@attach-debug-metadata.html

  * igt@xe_eudebug_online@interrupt-all-set-breakpoint:
    - shard-dg2-set2:     NOTRUN -> [SKIP][70] ([Intel XE#4837])
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-432/igt@xe_eudebug_online@interrupt-all-set-breakpoint.html

  * igt@xe_evict_ccs@evict-overcommit-simple:
    - shard-adlp:         NOTRUN -> [SKIP][71] ([Intel XE#5563] / [Intel XE#688])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_evict_ccs@evict-overcommit-simple.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic:
    - shard-adlp:         NOTRUN -> [SKIP][72] ([Intel XE#1392] / [Intel XE#5575]) +1 other test skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind:
    - shard-dg2-set2:     [PASS][73] -> [SKIP][74] ([Intel XE#1392]) +2 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-434/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-432/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_fault_mode@invalid-va:
    - shard-adlp:         NOTRUN -> [SKIP][75] ([Intel XE#288] / [Intel XE#5561]) +5 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_exec_fault_mode@invalid-va.html

  * igt@xe_exec_fault_mode@once-rebind-prefetch:
    - shard-dg2-set2:     NOTRUN -> [SKIP][76] ([Intel XE#288])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-432/igt@xe_exec_fault_mode@once-rebind-prefetch.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-adlp:         NOTRUN -> [DMESG-WARN][77] ([Intel XE#3876])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_exec_reset@parallel-gt-reset.html

  * igt@xe_exec_system_allocator@many-large-execqueues-new-race-nomemset:
    - shard-bmg:          [PASS][78] -> [SKIP][79] ([Intel XE#4945]) +400 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@xe_exec_system_allocator@many-large-execqueues-new-race-nomemset.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_exec_system_allocator@many-large-execqueues-new-race-nomemset.html

  * igt@xe_exec_system_allocator@processes-evict-malloc:
    - shard-adlp:         NOTRUN -> [SKIP][80] ([Intel XE#4915] / [Intel XE#5560]) +60 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_exec_system_allocator@processes-evict-malloc.html

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

  * igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
    - shard-bmg:          [PASS][82] -> [SKIP][83] ([Intel XE#2229])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html

  * igt@xe_oa@privileged-forked-access-vaddr:
    - shard-adlp:         NOTRUN -> [SKIP][84] ([Intel XE#3573]) +1 other test skip
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_oa@privileged-forked-access-vaddr.html

  * igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p:
    - shard-dg2-set2:     NOTRUN -> [FAIL][85] ([Intel XE#1173])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-435/igt@xe_peer2peer@read@read-gpua-vram01-gpub-system-p2p.html

  * igt@xe_pm@d3cold-basic:
    - shard-adlp:         NOTRUN -> [SKIP][86] ([Intel XE#2284] / [Intel XE#366])
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_pm@d3cold-basic.html

  * igt@xe_pmu@gt-frequency:
    - shard-dg2-set2:     [PASS][87] -> [FAIL][88] ([Intel XE#4835]) +1 other test fail
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-436/igt@xe_pmu@gt-frequency.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-435/igt@xe_pmu@gt-frequency.html

  * igt@xe_query@multigpu-query-invalid-extension:
    - shard-adlp:         NOTRUN -> [SKIP][89] ([Intel XE#944])
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_query@multigpu-query-invalid-extension.html

  
#### Possible fixes ####

  * igt@core_getversion@basic:
    - shard-bmg:          [FAIL][90] ([Intel XE#4672]) -> [PASS][91]
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@core_getversion@basic.html
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@core_getversion@basic.html

  * igt@core_hotunplug@hotunbind-rebind:
    - shard-bmg:          [SKIP][92] ([Intel XE#4963]) -> [PASS][93] +2 other tests pass
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@core_hotunplug@hotunbind-rebind.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@core_hotunplug@hotunbind-rebind.html

  * igt@intel_hwmon@hwmon-read:
    - shard-bmg:          [SKIP][94] ([Intel XE#5177]) -> [PASS][95]
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@intel_hwmon@hwmon-read.html
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@intel_hwmon@hwmon-read.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-0:
    - shard-bmg:          [SKIP][96] ([Intel XE#4947]) -> [PASS][97] +9 other tests pass
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-adlp:         [DMESG-FAIL][98] ([Intel XE#4543]) -> [PASS][99]
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
    - shard-bmg:          [SKIP][100] ([Intel XE#2291]) -> [PASS][101] +2 other tests pass
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-bmg:          [SKIP][102] ([Intel XE#4302]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_display_modes@extended-mode-basic.html
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-8/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_flip@2x-flip-vs-rmfb-interruptible:
    - shard-bmg:          [SKIP][104] ([Intel XE#2316]) -> [PASS][105] +1 other test pass
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-7/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][106] ([Intel XE#4543]) -> [PASS][107] +1 other test pass
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-9/igt@kms_flip@basic-flip-vs-wf_vblank@b-hdmi-a1.html
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-4/igt@kms_flip@basic-flip-vs-wf_vblank@b-hdmi-a1.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-lnl:          [FAIL][108] ([Intel XE#301]) -> [PASS][109] +1 other test pass
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-adlp:         [DMESG-WARN][110] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][111] +13 other tests pass
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-9/igt@kms_flip@flip-vs-suspend-interruptible.html
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-2/igt@kms_flip@flip-vs-suspend-interruptible.html
    - shard-dg2-set2:     [INCOMPLETE][112] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][113]
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-434/igt@kms_flip@flip-vs-suspend-interruptible.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-432/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible@d-dp2:
    - shard-bmg:          [INCOMPLETE][114] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_flip@flip-vs-suspend-interruptible@d-dp2.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@kms_flip@flip-vs-suspend-interruptible@d-dp2.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-bmg:          [SKIP][116] ([Intel XE#4596]) -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-none.html
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-7/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-adlp:         [FAIL][118] ([Intel XE#718]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-2/igt@kms_pm_dc@dc6-dpms.html
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-8/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-bmg:          [SKIP][120] ([Intel XE#4962]) -> [PASS][121] +1 other test pass
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_properties@connector-properties-legacy:
    - shard-bmg:          [SKIP][122] ([Intel XE#4950]) -> [PASS][123] +65 other tests pass
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_properties@connector-properties-legacy.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@kms_properties@connector-properties-legacy.html

  * igt@kms_setmode@invalid-clone-single-crtc-stealing:
    - shard-bmg:          [SKIP][124] ([Intel XE#1435]) -> [PASS][125] +1 other test pass
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-8/igt@kms_setmode@invalid-clone-single-crtc-stealing.html

  * igt@xe_exec_basic@multigpu-no-exec-null-defer-bind:
    - shard-dg2-set2:     [SKIP][126] ([Intel XE#1392]) -> [PASS][127] +2 other tests pass
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-null-defer-bind.html
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-435/igt@xe_exec_basic@multigpu-no-exec-null-defer-bind.html

  * igt@xe_exec_system_allocator@process-many-new-nomemset:
    - shard-bmg:          [SKIP][128] ([Intel XE#4945]) -> [PASS][129] +303 other tests pass
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_exec_system_allocator@process-many-new-nomemset.html
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@xe_exec_system_allocator@process-many-new-nomemset.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset:
    - shard-lnl:          [FAIL][130] ([Intel XE#4937] / [Intel XE#5018]) -> [PASS][131]
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-lnl-8/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-lnl-1/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html

  * igt@xe_live_ktest@xe_bo:
    - shard-bmg:          [SKIP][132] ([Intel XE#2229]) -> [PASS][133] +1 other test pass
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_live_ktest@xe_bo.html
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@xe_live_ktest@xe_bo.html

  
#### Warnings ####

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-bmg:          [SKIP][134] ([Intel XE#2327]) -> [SKIP][135] ([Intel XE#4947]) +2 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-bmg:          [SKIP][136] ([Intel XE#4947]) -> [SKIP][137] ([Intel XE#2327]) +1 other test skip
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-bmg:          [SKIP][138] ([Intel XE#607]) -> [SKIP][139] ([Intel XE#4947])
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-bmg:          [SKIP][140] ([Intel XE#4947]) -> [SKIP][141] ([Intel XE#1124]) +10 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
    - shard-bmg:          [SKIP][142] ([Intel XE#1124]) -> [SKIP][143] ([Intel XE#4947]) +9 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p:
    - shard-bmg:          [SKIP][144] ([Intel XE#4950]) -> [SKIP][145] ([Intel XE#2314] / [Intel XE#2894])
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p:
    - shard-bmg:          [SKIP][146] ([Intel XE#2314] / [Intel XE#2894]) -> [SKIP][147] ([Intel XE#4950])
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-2160x1440p:
    - shard-bmg:          [SKIP][148] ([Intel XE#367]) -> [SKIP][149] ([Intel XE#4950]) +1 other test skip
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_bw@linear-tiling-4-displays-2160x1440p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-bmg:          [SKIP][150] ([Intel XE#4947]) -> [SKIP][151] ([Intel XE#2652] / [Intel XE#787])
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc:
    - shard-bmg:          [SKIP][152] ([Intel XE#4947]) -> [SKIP][153] ([Intel XE#2887]) +7 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc.html
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          [SKIP][154] ([Intel XE#3432]) -> [SKIP][155] ([Intel XE#4947]) +1 other test skip
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
    - shard-bmg:          [SKIP][156] ([Intel XE#4947]) -> [SKIP][157] ([Intel XE#3432]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
    - shard-dg2-set2:     [INCOMPLETE][158] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [INCOMPLETE][159] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#4212] / [Intel XE#4345])
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          [SKIP][160] ([Intel XE#2887]) -> [SKIP][161] ([Intel XE#4947]) +12 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
    - shard-dg2-set2:     [INCOMPLETE][162] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124]) -> [INCOMPLETE][163] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
    - shard-bmg:          [SKIP][164] ([Intel XE#2652] / [Intel XE#787]) -> [SKIP][165] ([Intel XE#4947])
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_chamelium_color@ctm-0-50:
    - shard-bmg:          [SKIP][166] ([Intel XE#2325]) -> [SKIP][167] ([Intel XE#4950]) +1 other test skip
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_chamelium_color@ctm-0-50.html
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_chamelium_color@ctm-0-50.html

  * igt@kms_chamelium_color@ctm-red-to-blue:
    - shard-bmg:          [SKIP][168] ([Intel XE#4950]) -> [SKIP][169] ([Intel XE#2325]) +2 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_chamelium_color@ctm-red-to-blue.html
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_chamelium_color@ctm-red-to-blue.html

  * igt@kms_chamelium_frames@dp-crc-single:
    - shard-bmg:          [SKIP][170] ([Intel XE#4950]) -> [SKIP][171] ([Intel XE#2252]) +5 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_chamelium_frames@dp-crc-single.html
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_chamelium_frames@dp-crc-single.html

  * igt@kms_chamelium_frames@hdmi-aspect-ratio:
    - shard-bmg:          [SKIP][172] ([Intel XE#2252]) -> [SKIP][173] ([Intel XE#4950]) +9 other tests skip
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_chamelium_frames@hdmi-aspect-ratio.html
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_chamelium_frames@hdmi-aspect-ratio.html

  * igt@kms_content_protection@atomic:
    - shard-bmg:          [SKIP][174] ([Intel XE#4950]) -> [FAIL][175] ([Intel XE#1178]) +2 other tests fail
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_content_protection@atomic.html
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-bmg:          [SKIP][176] ([Intel XE#2390]) -> [SKIP][177] ([Intel XE#4950])
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_content_protection@dp-mst-type-0.html
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@mei-interface:
    - shard-bmg:          [SKIP][178] ([Intel XE#2341]) -> [SKIP][179] ([Intel XE#4950])
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_content_protection@mei-interface.html
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_content_protection@mei-interface.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85:
    - shard-bmg:          [SKIP][180] ([Intel XE#2320]) -> [SKIP][181] ([Intel XE#4950]) +4 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_cursor_crc@cursor-onscreen-256x85.html
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_cursor_crc@cursor-onscreen-256x85.html

  * igt@kms_cursor_crc@cursor-random-512x170:
    - shard-bmg:          [SKIP][182] ([Intel XE#2321]) -> [SKIP][183] ([Intel XE#4950]) +2 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_cursor_crc@cursor-random-512x170.html
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_cursor_crc@cursor-random-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-bmg:          [SKIP][184] ([Intel XE#4950]) -> [SKIP][185] ([Intel XE#2321]) +2 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_cursor_crc@cursor-sliding-512x512.html
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-64x21:
    - shard-bmg:          [SKIP][186] ([Intel XE#4950]) -> [SKIP][187] ([Intel XE#2320]) +1 other test skip
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_cursor_crc@cursor-sliding-64x21.html
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_cursor_crc@cursor-sliding-64x21.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-bmg:          [SKIP][188] ([Intel XE#2291]) -> [SKIP][189] ([Intel XE#4950]) +1 other test skip
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-legacy:
    - shard-bmg:          [SKIP][190] ([Intel XE#4950]) -> [FAIL][191] ([Intel XE#4633])
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-bmg:          [SKIP][192] ([Intel XE#2286]) -> [SKIP][193] ([Intel XE#4950])
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-bmg:          [SKIP][194] ([Intel XE#4354]) -> [SKIP][195] ([Intel XE#4947]) +1 other test skip
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_dp_link_training@uhbr-mst.html
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-bmg:          [SKIP][196] ([Intel XE#2244]) -> [SKIP][197] ([Intel XE#4947])
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_dsc@dsc-with-bpc.html
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-bmg:          [SKIP][198] ([Intel XE#4947]) -> [SKIP][199] ([Intel XE#2244]) +1 other test skip
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_dsc@dsc-with-output-formats.html
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
    - shard-bmg:          [SKIP][200] ([Intel XE#4945]) -> [SKIP][201] ([Intel XE#4422])
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
    - shard-bmg:          [SKIP][202] ([Intel XE#4422]) -> [SKIP][203] ([Intel XE#4945])
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-bmg:          [SKIP][204] ([Intel XE#5425]) -> [SKIP][205] ([Intel XE#4947])
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_fbcon_fbt@fbc-suspend.html
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-bmg:          [SKIP][206] ([Intel XE#2372]) -> [SKIP][207] ([Intel XE#4950])
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_feature_discovery@chamelium.html
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-4x:
    - shard-bmg:          [SKIP][208] ([Intel XE#4950]) -> [SKIP][209] ([Intel XE#1138])
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_feature_discovery@display-4x.html
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-bmg:          [SKIP][210] ([Intel XE#2375]) -> [SKIP][211] ([Intel XE#4950])
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_feature_discovery@dp-mst.html
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr2:
    - shard-bmg:          [SKIP][212] ([Intel XE#2374]) -> [SKIP][213] ([Intel XE#4950])
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_feature_discovery@psr2.html
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-bmg:          [SKIP][214] ([Intel XE#2316]) -> [SKIP][215] ([Intel XE#4950]) +1 other test skip
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-bmg:          [SKIP][216] ([Intel XE#4947]) -> [SKIP][217] ([Intel XE#2293] / [Intel XE#2380]) +2 other tests skip
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-bmg:          [SKIP][218] ([Intel XE#2293] / [Intel XE#2380]) -> [SKIP][219] ([Intel XE#4947]) +4 other tests skip
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt:
    - shard-bmg:          [SKIP][220] ([Intel XE#2311]) -> [SKIP][221] ([Intel XE#4947]) +26 other tests skip
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt.html
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt:
    - shard-bmg:          [SKIP][222] ([Intel XE#2312]) -> [SKIP][223] ([Intel XE#2311]) +6 other tests skip
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt.html
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][224] ([Intel XE#2311]) -> [SKIP][225] ([Intel XE#2312]) +10 other tests skip
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt:
    - shard-bmg:          [SKIP][226] ([Intel XE#5390]) -> [SKIP][227] ([Intel XE#4947]) +8 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt:
    - shard-bmg:          [SKIP][228] ([Intel XE#2312]) -> [SKIP][229] ([Intel XE#5390]) +1 other test skip
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt.html
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-bmg:          [SKIP][230] ([Intel XE#5390]) -> [SKIP][231] ([Intel XE#2312]) +6 other tests skip
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-linear:
    - shard-bmg:          [SKIP][232] ([Intel XE#4947]) -> [SKIP][233] ([Intel XE#5390]) +11 other tests skip
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-plflip-blt:
    - shard-bmg:          [SKIP][234] ([Intel XE#4947]) -> [SKIP][235] ([Intel XE#2311]) +19 other tests skip
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-plflip-blt.html
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
    - shard-bmg:          [SKIP][236] ([Intel XE#2312]) -> [SKIP][237] ([Intel XE#4947]) +9 other tests skip
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt:
    - shard-bmg:          [SKIP][238] ([Intel XE#2312]) -> [SKIP][239] ([Intel XE#2313]) +7 other tests skip
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt.html
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen:
    - shard-bmg:          [SKIP][240] ([Intel XE#2313]) -> [SKIP][241] ([Intel XE#2312]) +11 other tests skip
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen.html
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][242] ([Intel XE#2313]) -> [SKIP][243] ([Intel XE#4947]) +27 other tests skip
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-bmg:          [SKIP][244] ([Intel XE#4947]) -> [SKIP][245] ([Intel XE#5672])
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-bmg:          [SKIP][246] ([Intel XE#2350]) -> [SKIP][247] ([Intel XE#4947])
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff:
    - shard-bmg:          [SKIP][248] ([Intel XE#4947]) -> [SKIP][249] ([Intel XE#2313]) +18 other tests skip
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff.html
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-onoff.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-bmg:          [SKIP][250] ([Intel XE#1503]) -> [SKIP][251] ([Intel XE#4950])
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_hdr@invalid-metadata-sizes.html
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-bmg:          [SKIP][252] ([Intel XE#4947]) -> [SKIP][253] ([Intel XE#2934])
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-bmg:          [SKIP][254] ([Intel XE#4950]) -> [SKIP][255] ([Intel XE#2393])
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_plane_lowres@tiling-y.html
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-bmg:          [SKIP][256] ([Intel XE#4596]) -> [SKIP][257] ([Intel XE#5021])
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-yf.html
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-8/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-bmg:          [SKIP][258] ([Intel XE#5020]) -> [SKIP][259] ([Intel XE#4950])
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_plane_multiple@tiling-y.html
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5:
    - shard-bmg:          [SKIP][260] ([Intel XE#4950]) -> [SKIP][261] ([Intel XE#2763])
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_plane_scaling@planes-downscale-factor-0-5.html
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_plane_scaling@planes-downscale-factor-0-5.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-bmg:          [SKIP][262] ([Intel XE#870]) -> [SKIP][263] ([Intel XE#4947])
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_pm_backlight@bad-brightness.html
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-bmg:          [SKIP][264] ([Intel XE#4947]) -> [SKIP][265] ([Intel XE#870])
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_pm_backlight@basic-brightness.html
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-bmg:          [SKIP][266] ([Intel XE#2391]) -> [SKIP][267] ([Intel XE#4947])
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_pm_dc@dc3co-vpb-simulation.html
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-bmg:          [SKIP][268] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836]) -> [SKIP][269] ([Intel XE#4962])
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_pm_rpm@dpms-lpsp.html
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-bmg:          [SKIP][270] ([Intel XE#4947]) -> [SKIP][271] ([Intel XE#1489]) +4 other tests skip
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf:
    - shard-bmg:          [SKIP][272] ([Intel XE#1489]) -> [SKIP][273] ([Intel XE#4947]) +8 other tests skip
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-bmg:          [SKIP][274] ([Intel XE#2387]) -> [SKIP][275] ([Intel XE#4947])
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_psr2_su@page_flip-p010.html
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-psr2-cursor-blt:
    - shard-bmg:          [SKIP][276] ([Intel XE#4947]) -> [SKIP][277] ([Intel XE#2234] / [Intel XE#2850]) +11 other tests skip
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_psr@fbc-psr2-cursor-blt.html
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@kms_psr@fbc-psr2-cursor-blt.html

  * igt@kms_psr@psr-basic:
    - shard-bmg:          [SKIP][278] ([Intel XE#2234] / [Intel XE#2850]) -> [SKIP][279] ([Intel XE#4947]) +12 other tests skip
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_psr@psr-basic.html
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_psr@psr-basic.html

  * igt@kms_rotation_crc@bad-pixel-format:
    - shard-bmg:          [SKIP][280] ([Intel XE#3414] / [Intel XE#3904]) -> [SKIP][281] ([Intel XE#4950])
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@kms_rotation_crc@bad-pixel-format.html
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_rotation_crc@bad-pixel-format.html

  * igt@kms_rotation_crc@bad-tiling:
    - shard-bmg:          [SKIP][282] ([Intel XE#4950]) -> [SKIP][283] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_rotation_crc@bad-tiling.html
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_rotation_crc@bad-tiling.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-bmg:          [SKIP][284] ([Intel XE#2330]) -> [SKIP][285] ([Intel XE#4950])
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_scaling_modes@scaling-mode-full:
    - shard-bmg:          [SKIP][286] ([Intel XE#2413]) -> [SKIP][287] ([Intel XE#4950])
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@kms_scaling_modes@scaling-mode-full.html
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_scaling_modes@scaling-mode-full.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-bmg:          [SKIP][288] ([Intel XE#1435]) -> [SKIP][289] ([Intel XE#4950])
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_setmode@invalid-clone-exclusive-crtc.html
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [SKIP][290] ([Intel XE#4950]) -> [FAIL][291] ([Intel XE#1729])
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][292] ([Intel XE#2509]) -> [SKIP][293] ([Intel XE#2426])
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
    - shard-dg2-set2:     [SKIP][294] ([Intel XE#1500]) -> [SKIP][295] ([Intel XE#362])
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-466/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@flip-suspend:
    - shard-bmg:          [SKIP][296] ([Intel XE#1499]) -> [SKIP][297] ([Intel XE#4950])
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@kms_vrr@flip-suspend.html
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@max-min:
    - shard-bmg:          [SKIP][298] ([Intel XE#4950]) -> [SKIP][299] ([Intel XE#1499])
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@kms_vrr@max-min.html
   [299]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@kms_vrr@max-min.html

  * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
    - shard-bmg:          [SKIP][300] ([Intel XE#4950]) -> [SKIP][301] ([Intel XE#1091] / [Intel XE#2849])
   [300]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
   [301]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html

  * igt@xe_eudebug@basic-vm-bind-ufence:
    - shard-bmg:          [SKIP][302] ([Intel XE#4945]) -> [SKIP][303] ([Intel XE#4837]) +11 other tests skip
   [302]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_eudebug@basic-vm-bind-ufence.html
   [303]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@xe_eudebug@basic-vm-bind-ufence.html

  * igt@xe_eudebug_online@single-step:
    - shard-bmg:          [SKIP][304] ([Intel XE#4837]) -> [SKIP][305] ([Intel XE#4945]) +13 other tests skip
   [304]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@xe_eudebug_online@single-step.html
   [305]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_eudebug_online@single-step.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr:
    - shard-bmg:          [SKIP][306] ([Intel XE#2322]) -> [SKIP][307] ([Intel XE#4945]) +7 other tests skip
   [306]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html
   [307]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate:
    - shard-bmg:          [SKIP][308] ([Intel XE#4945]) -> [SKIP][309] ([Intel XE#2322]) +5 other tests skip
   [308]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate.html
   [309]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-bmg:          [SKIP][310] ([Intel XE#4945]) -> [DMESG-WARN][311] ([Intel XE#3876])
   [310]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_exec_reset@parallel-gt-reset.html
   [311]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@xe_exec_reset@parallel-gt-reset.html

  * igt@xe_exec_system_allocator@process-many-execqueues-mmap-free-huge:
    - shard-bmg:          [SKIP][312] ([Intel XE#4945]) -> [SKIP][313] ([Intel XE#4943]) +22 other tests skip
   [312]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_exec_system_allocator@process-many-execqueues-mmap-free-huge.html
   [313]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@xe_exec_system_allocator@process-many-execqueues-mmap-free-huge.html

  * igt@xe_exec_system_allocator@threads-many-execqueues-mmap-new-huge:
    - shard-bmg:          [SKIP][314] ([Intel XE#4943]) -> [SKIP][315] ([Intel XE#4945]) +23 other tests skip
   [314]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@xe_exec_system_allocator@threads-many-execqueues-mmap-new-huge.html
   [315]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_exec_system_allocator@threads-many-execqueues-mmap-new-huge.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-bmg:          [SKIP][316] ([Intel XE#4945]) -> [ABORT][317] ([Intel XE#4917] / [Intel XE#5466] / [Intel XE#5530])
   [316]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [317]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

  * igt@xe_media_fill@media-fill:
    - shard-bmg:          [SKIP][318] ([Intel XE#4945]) -> [SKIP][319] ([Intel XE#2459] / [Intel XE#2596])
   [318]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_media_fill@media-fill.html
   [319]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@xe_media_fill@media-fill.html

  * igt@xe_module_load@load:
    - shard-adlp:         ([PASS][320], [PASS][321], [DMESG-WARN][322], [PASS][323], [PASS][324], [PASS][325], [PASS][326], [PASS][327], [PASS][328], [PASS][329], [PASS][330], [PASS][331], [PASS][332], [PASS][333], [PASS][334], [PASS][335], [PASS][336], [PASS][337], [PASS][338], [PASS][339], [PASS][340], [PASS][341], [SKIP][342], [PASS][343], [PASS][344], [PASS][345]) ([Intel XE#2953] / [Intel XE#378] / [Intel XE#4173] / [Intel XE#5612]) -> ([PASS][346], [PASS][347], [SKIP][348], [PASS][349], [PASS][350], [PASS][351], [PASS][352], [PASS][353], [PASS][354], [PASS][355], [PASS][356], [PASS][357], [PASS][358], [PASS][359], [PASS][360], [PASS][361], [PASS][362], [PASS][363], [PASS][364], [PASS][365], [PASS][366], [PASS][367], [PASS][368], [PASS][369], [PASS][370], [PASS][371]) ([Intel XE#378] / [Intel XE#5612])
   [320]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-2/igt@xe_module_load@load.html
   [321]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-2/igt@xe_module_load@load.html
   [322]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-6/igt@xe_module_load@load.html
   [323]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-8/igt@xe_module_load@load.html
   [324]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-2/igt@xe_module_load@load.html
   [325]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-4/igt@xe_module_load@load.html
   [326]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-1/igt@xe_module_load@load.html
   [327]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-1/igt@xe_module_load@load.html
   [328]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-4/igt@xe_module_load@load.html
   [329]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-1/igt@xe_module_load@load.html
   [330]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-3/igt@xe_module_load@load.html
   [331]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-8/igt@xe_module_load@load.html
   [332]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-8/igt@xe_module_load@load.html
   [333]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-3/igt@xe_module_load@load.html
   [334]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-3/igt@xe_module_load@load.html
   [335]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-4/igt@xe_module_load@load.html
   [336]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-4/igt@xe_module_load@load.html
   [337]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-3/igt@xe_module_load@load.html
   [338]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-1/igt@xe_module_load@load.html
   [339]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-9/igt@xe_module_load@load.html
   [340]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-9/igt@xe_module_load@load.html
   [341]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-9/igt@xe_module_load@load.html
   [342]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-9/igt@xe_module_load@load.html
   [343]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-6/igt@xe_module_load@load.html
   [344]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-6/igt@xe_module_load@load.html
   [345]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-adlp-6/igt@xe_module_load@load.html
   [346]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-4/igt@xe_module_load@load.html
   [347]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-1/igt@xe_module_load@load.html
   [348]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-2/igt@xe_module_load@load.html
   [349]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-1/igt@xe_module_load@load.html
   [350]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-3/igt@xe_module_load@load.html
   [351]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-3/igt@xe_module_load@load.html
   [352]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-1/igt@xe_module_load@load.html
   [353]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-6/igt@xe_module_load@load.html
   [354]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_module_load@load.html
   [355]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-8/igt@xe_module_load@load.html
   [356]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-8/igt@xe_module_load@load.html
   [357]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-2/igt@xe_module_load@load.html
   [358]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-8/igt@xe_module_load@load.html
   [359]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-2/igt@xe_module_load@load.html
   [360]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-6/igt@xe_module_load@load.html
   [361]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-4/igt@xe_module_load@load.html
   [362]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-1/igt@xe_module_load@load.html
   [363]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_module_load@load.html
   [364]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-4/igt@xe_module_load@load.html
   [365]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_module_load@load.html
   [366]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-9/igt@xe_module_load@load.html
   [367]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-2/igt@xe_module_load@load.html
   [368]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-3/igt@xe_module_load@load.html
   [369]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-4/igt@xe_module_load@load.html
   [370]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-3/igt@xe_module_load@load.html
   [371]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-adlp-6/igt@xe_module_load@load.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-bmg:          [SKIP][372] ([Intel XE#4945]) -> [SKIP][373] ([Intel XE#1420])
   [372]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_pat@pat-index-xehpc.html
   [373]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pat@pat-index-xelp:
    - shard-bmg:          [SKIP][374] ([Intel XE#4945]) -> [SKIP][375] ([Intel XE#2245])
   [374]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_pat@pat-index-xelp.html
   [375]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@xe_pat@pat-index-xelp.html

  * igt@xe_peer2peer@read:
    - shard-dg2-set2:     [SKIP][376] ([Intel XE#1061]) -> [FAIL][377] ([Intel XE#1173])
   [376]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-dg2-432/igt@xe_peer2peer@read.html
   [377]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-dg2-435/igt@xe_peer2peer@read.html

  * igt@xe_pm@d3cold-basic:
    - shard-bmg:          [SKIP][378] ([Intel XE#4945]) -> [SKIP][379] ([Intel XE#2284])
   [378]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_pm@d3cold-basic.html
   [379]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@xe_pm@d3cold-basic.html

  * igt@xe_pm@d3cold-i2c:
    - shard-bmg:          [SKIP][380] ([Intel XE#5694]) -> [SKIP][381] ([Intel XE#4945])
   [380]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@xe_pm@d3cold-i2c.html
   [381]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_pm@d3cold-i2c.html

  * igt@xe_pm@d3hot-i2c:
    - shard-bmg:          [SKIP][382] ([Intel XE#4945]) -> [SKIP][383] ([Intel XE#5695])
   [382]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_pm@d3hot-i2c.html
   [383]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@xe_pm@d3hot-i2c.html

  * igt@xe_pm@s2idle-d3cold-basic-exec:
    - shard-bmg:          [SKIP][384] ([Intel XE#2284]) -> [SKIP][385] ([Intel XE#4945]) +4 other tests skip
   [384]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@xe_pm@s2idle-d3cold-basic-exec.html
   [385]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_pm@s2idle-d3cold-basic-exec.html

  * igt@xe_pmu@fn-engine-activity-load:
    - shard-bmg:          [SKIP][386] ([Intel XE#4650]) -> [SKIP][387] ([Intel XE#4945])
   [386]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@xe_pmu@fn-engine-activity-load.html
   [387]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_pmu@fn-engine-activity-load.html

  * igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy:
    - shard-bmg:          [SKIP][388] ([Intel XE#4945]) -> [SKIP][389] ([Intel XE#4733]) +1 other test skip
   [388]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html
   [389]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-2/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html

  * igt@xe_pxp@pxp-stale-queue-post-suspend:
    - shard-bmg:          [SKIP][390] ([Intel XE#4733]) -> [SKIP][391] ([Intel XE#4945])
   [390]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-3/igt@xe_pxp@pxp-stale-queue-post-suspend.html
   [391]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_pxp@pxp-stale-queue-post-suspend.html

  * igt@xe_query@multigpu-query-invalid-cs-cycles:
    - shard-bmg:          [SKIP][392] ([Intel XE#4945]) -> [SKIP][393] ([Intel XE#944]) +2 other tests skip
   [392]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_query@multigpu-query-invalid-cs-cycles.html
   [393]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-1/igt@xe_query@multigpu-query-invalid-cs-cycles.html

  * igt@xe_query@multigpu-query-mem-usage:
    - shard-bmg:          [SKIP][394] ([Intel XE#944]) -> [SKIP][395] ([Intel XE#4945]) +2 other tests skip
   [394]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@xe_query@multigpu-query-mem-usage.html
   [395]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_query@multigpu-query-mem-usage.html

  * igt@xe_sriov_auto_provisioning@fair-allocation:
    - shard-bmg:          [SKIP][396] ([Intel XE#4130]) -> [SKIP][397] ([Intel XE#4945])
   [396]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-4/igt@xe_sriov_auto_provisioning@fair-allocation.html
   [397]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_sriov_auto_provisioning@fair-allocation.html

  * igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs:
    - shard-bmg:          [SKIP][398] ([Intel XE#4945]) -> [SKIP][399] ([Intel XE#4130]) +1 other test skip
   [398]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-5/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html
   [399]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-3/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html

  * igt@xe_sriov_flr@flr-each-isolation:
    - shard-bmg:          [SKIP][400] ([Intel XE#3342]) -> [SKIP][401] ([Intel XE#4945])
   [400]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-7/igt@xe_sriov_flr@flr-each-isolation.html
   [401]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_sriov_flr@flr-each-isolation.html

  * igt@xe_sriov_scheduling@equal-throughput:
    - shard-bmg:          [SKIP][402] ([Intel XE#4351]) -> [SKIP][403] ([Intel XE#4945])
   [402]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3495-3113cfc0640b0fd319990d011901fe4174734162/shard-bmg-6/igt@xe_sriov_scheduling@equal-throughput.html
   [403]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v8/shard-bmg-5/igt@xe_sriov_scheduling@equal-throughput.html

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

  [Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
  [Intel XE#2372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2372
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2375
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2391
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2459
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2596
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
  [Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
  [Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4208
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4351
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633
  [Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
  [Intel XE#4672]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4672
  [Intel XE#4674]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4674
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4835]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4835
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#4917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4917
  [Intel XE#4937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4937
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#4945]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4945
  [Intel XE#4947]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4947
  [Intel XE#4950]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4950
  [Intel XE#4962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4962
  [Intel XE#4963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4963
  [Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5177]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5177
  [Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
  [Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
  [Intel XE#5425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5425
  [Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
  [Intel XE#5530]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5530
  [Intel XE#5560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5560
  [Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561
  [Intel XE#5563]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5563
  [Intel XE#5565]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5565
  [Intel XE#5574]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5574
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5596
  [Intel XE#5612]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5612
  [Intel XE#5672]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5672
  [Intel XE#5694]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5694
  [Intel XE#5695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5695
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * Linux: xe-3495-3113cfc0640b0fd319990d011901fe4174734162 -> xe-pw-151773v8

  IGT_8482: 8482
  xe-3495-3113cfc0640b0fd319990d011901fe4174734162: 3113cfc0640b0fd319990d011901fe4174734162
  xe-pw-151773v8: 151773v8

== Logs ==

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

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

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

* Re: [PATCH v6 06/11] drm/xe/configfs: Rename configfs_find_group() helper
  2025-07-31 19:33 ` [PATCH v6 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
@ 2025-08-05 13:14   ` Lucas De Marchi
  2025-08-05 14:30     ` Michal Wajdeczko
  0 siblings, 1 reply; 27+ messages in thread
From: Lucas De Marchi @ 2025-08-05 13:14 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, Rodrigo Vivi

On Thu, Jul 31, 2025 at 09:33:34PM +0200, Michal Wajdeczko wrote:
>This helper name shouldn't suggest that it iss a part of the core
>configfs API family. While around switch to use different helper
>to release a reference.
>
>Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>---
> drivers/gpu/drm/xe/xe_configfs.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>index d69b5f248e59..acdee616d118 100644
>--- a/drivers/gpu/drm/xe/xe_configfs.c
>+++ b/drivers/gpu/drm/xe/xe_configfs.c
>@@ -309,7 +309,7 @@ static struct configfs_subsystem xe_configfs = {
> 	},
> };
>
>-static struct xe_config_group_device *configfs_find_group(struct pci_dev *pdev)
>+static struct xe_config_group_device *find_xe_config_group_device(struct pci_dev *pdev)
> {
> 	struct config_item *item;
>
>@@ -334,14 +334,14 @@ static struct xe_config_group_device *configfs_find_group(struct pci_dev *pdev)
>  */
> bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
> {
>-	struct xe_config_group_device *dev = configfs_find_group(pdev);
>+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);

looking at this now, I think it would make more sense to call them,
differently, which would affect the previous patches too:

	struct xe_config_group *grp = find_xe_config_group(pdev);

and:

	struct xe_config_group {
		struct config_group base;
		...
	};

but I'm ok with what you did here.

Lucas De Marchi

> 	bool mode;
>
> 	if (!dev)
> 		return false;
>
> 	mode = dev->survivability_mode;
>-	config_item_put(&dev->group.cg_item);
>+	config_group_put(&dev->group);
>
> 	return mode;
> }
>@@ -355,7 +355,7 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
>  */
> void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
> {
>-	struct xe_config_group_device *dev = configfs_find_group(pdev);
>+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
>
> 	if (!dev)
> 		return;
>@@ -364,7 +364,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
> 	dev->survivability_mode = 0;
> 	mutex_unlock(&dev->lock);
>
>-	config_item_put(&dev->group.cg_item);
>+	config_group_put(&dev->group);
> }
>
> /**
>@@ -378,14 +378,14 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
>  */
> u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
> {
>-	struct xe_config_group_device *dev = configfs_find_group(pdev);
>+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
> 	u64 engines_allowed;
>
> 	if (!dev)
> 		return U64_MAX;
>
> 	engines_allowed = dev->engines_allowed;
>-	config_item_put(&dev->group.cg_item);
>+	config_group_put(&dev->group);
>
> 	return engines_allowed;
> }
>-- 
>2.47.1
>

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

* Re: [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together
  2025-07-31 19:33 ` [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
@ 2025-08-05 13:28   ` Lucas De Marchi
  2025-08-05 15:09     ` Michal Wajdeczko
  0 siblings, 1 reply; 27+ messages in thread
From: Lucas De Marchi @ 2025-08-05 13:28 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, John Harrison

On Thu, Jul 31, 2025 at 09:33:36PM +0200, Michal Wajdeczko wrote:
>For easier maintenance add a placeholder where we can keep all
>default device configuration settings in one place.
>
>Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
>---
> drivers/gpu/drm/xe/xe_configfs.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>index 7ad9fc65e21d..150e7f2becc8 100644
>--- a/drivers/gpu/drm/xe/xe_configfs.c
>+++ b/drivers/gpu/drm/xe/xe_configfs.c
>@@ -97,6 +97,16 @@ struct xe_config_group_device {
> 	struct mutex lock;
> };
>
>+static struct xe_config_device device_defaults = {

any reason why this would not be const?

Lucas De Marchi

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

* Re: [PATCH v6 06/11] drm/xe/configfs: Rename configfs_find_group() helper
  2025-08-05 13:14   ` Lucas De Marchi
@ 2025-08-05 14:30     ` Michal Wajdeczko
  0 siblings, 0 replies; 27+ messages in thread
From: Michal Wajdeczko @ 2025-08-05 14:30 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi



On 8/5/2025 3:14 PM, Lucas De Marchi wrote:
> On Thu, Jul 31, 2025 at 09:33:34PM +0200, Michal Wajdeczko wrote:
>> This helper name shouldn't suggest that it iss a part of the core
>> configfs API family. While around switch to use different helper
>> to release a reference.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_configfs.c | 14 +++++++-------
>> 1 file changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>> index d69b5f248e59..acdee616d118 100644
>> --- a/drivers/gpu/drm/xe/xe_configfs.c
>> +++ b/drivers/gpu/drm/xe/xe_configfs.c
>> @@ -309,7 +309,7 @@ static struct configfs_subsystem xe_configfs = {
>>     },
>> };
>>
>> -static struct xe_config_group_device *configfs_find_group(struct pci_dev *pdev)
>> +static struct xe_config_group_device *find_xe_config_group_device(struct pci_dev *pdev)
>> {
>>     struct config_item *item;
>>
>> @@ -334,14 +334,14 @@ static struct xe_config_group_device *configfs_find_group(struct pci_dev *pdev)
>>  */
>> bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
>> {
>> -    struct xe_config_group_device *dev = configfs_find_group(pdev);
>> +    struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
> 
> looking at this now, I think it would make more sense to call them,
> differently, which would affect the previous patches too:
> 
>     struct xe_config_group *grp = find_xe_config_group(pdev);
> 
> and:
> 
>     struct xe_config_group {
>         struct config_group base;
>         ...
>     };

I was assuming that one day we would like to add some config
groups that will target "tile" or "GT", unlike simple "device"
as it was introduced today, so we would have 

* xe_device <-> xe_device_config <-> xe_device_config_group
* xe_tile   <-> xe_tile_config   <-> xe_tile_config_group
* xe_gt     <-> xe_gt_config     <-> xe_gt_config_group

but I guess simplified name works too

* xe_device <-> xe_config        <-> xe_config_group

(I can rename, but no earlier than 2w from now)

> 
> but I'm ok with what you did here.
> 
> Lucas De Marchi
> 
>>     bool mode;
>>
>>     if (!dev)
>>         return false;
>>
>>     mode = dev->survivability_mode;
>> -    config_item_put(&dev->group.cg_item);
>> +    config_group_put(&dev->group);
>>
>>     return mode;
>> }
>> @@ -355,7 +355,7 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
>>  */
>> void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
>> {
>> -    struct xe_config_group_device *dev = configfs_find_group(pdev);
>> +    struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
>>
>>     if (!dev)
>>         return;
>> @@ -364,7 +364,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
>>     dev->survivability_mode = 0;
>>     mutex_unlock(&dev->lock);
>>
>> -    config_item_put(&dev->group.cg_item);
>> +    config_group_put(&dev->group);
>> }
>>
>> /**
>> @@ -378,14 +378,14 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
>>  */
>> u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev)
>> {
>> -    struct xe_config_group_device *dev = configfs_find_group(pdev);
>> +    struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
>>     u64 engines_allowed;
>>
>>     if (!dev)
>>         return U64_MAX;
>>
>>     engines_allowed = dev->engines_allowed;
>> -    config_item_put(&dev->group.cg_item);
>> +    config_group_put(&dev->group);
>>
>>     return engines_allowed;
>> }
>> -- 
>> 2.47.1
>>


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

* Re: [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together
  2025-08-05 13:28   ` Lucas De Marchi
@ 2025-08-05 15:09     ` Michal Wajdeczko
  2025-08-06 14:29       ` Lucas De Marchi
  0 siblings, 1 reply; 27+ messages in thread
From: Michal Wajdeczko @ 2025-08-05 15:09 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, John Harrison



On 8/5/2025 3:28 PM, Lucas De Marchi wrote:
> On Thu, Jul 31, 2025 at 09:33:36PM +0200, Michal Wajdeczko wrote:
>> For easier maintenance add a placeholder where we can keep all
>> default device configuration settings in one place.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_configfs.c | 17 +++++++++++++----
>> 1 file changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>> index 7ad9fc65e21d..150e7f2becc8 100644
>> --- a/drivers/gpu/drm/xe/xe_configfs.c
>> +++ b/drivers/gpu/drm/xe/xe_configfs.c
>> @@ -97,6 +97,16 @@ struct xe_config_group_device {
>>     struct mutex lock;
>> };
>>
>> +static struct xe_config_device device_defaults = {
> 
> any reason why this would not be const?
> 

while today we are extending our configfs support only
with completely new attributes (like survivability mode
or allowed engines) I was assuming that shortly we will
also move to configfs some of our existing modparams,
which are device specific, rather than module specific,
like:
 - GuC/HuC firmwares
 - max VFs
 - ...

so to keep the idea of 'device_defaults' as the only
place where default values are stored, I assumed, maybe
wrong, that we will need this to be non-const (either as
new location of some modparams or cached values of the
modparam attributes)

in [1] I was trying to make first step with max_vfs,
but patch was dropped for a while until this series will
be completed and we will have some better understanding
how to proceed

Michal

[1] https://patchwork.freedesktop.org/patch/664176/?series=151660&rev=1


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

* Re: [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured
  2025-07-31 19:33 ` [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
@ 2025-08-05 19:30   ` Lucas De Marchi
  2025-08-05 23:14     ` John Harrison
  0 siblings, 1 reply; 27+ messages in thread
From: Lucas De Marchi @ 2025-08-05 19:30 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, John Harrison

On Thu, Jul 31, 2025 at 09:33:37PM +0200, Michal Wajdeczko wrote:
>Since device configuration using configfs could be prepared long
>time prior the driver load, add a debug log whether the current
>device driver probe is using custom or default settings.
>
>Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
>---
>v2: make function void, rename helpers (Lucas) and rebased
>---
> drivers/gpu/drm/xe/xe_configfs.c | 25 +++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_configfs.h |  2 ++
> drivers/gpu/drm/xe/xe_pci.c      |  3 +++
> 3 files changed, 30 insertions(+)
>
>diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>index 150e7f2becc8..5f145ccdf535 100644
>--- a/drivers/gpu/drm/xe/xe_configfs.c
>+++ b/drivers/gpu/drm/xe/xe_configfs.c
>@@ -107,6 +107,11 @@ static void set_device_defaults(struct xe_config_device *config)
> 	*config = device_defaults;
> }
>
>+static bool config_device_is_default(const struct xe_config_device *config)

this isn't exactly safe and as such shouldn't be a helper that can be
misused.

$ pahole -C xe_config_device /p2/build-drm-xe-next/drivers/gpu/drm/xe/xe.o
struct xe_config_device {
         bool                       survivability_mode;   /*     0     1 */

         /* XXX 7 bytes hole, try to pack */

         u64                        engines_allowed;      /*     8     8 */

         /* size: 16, cachelines: 1, members: 2 */
         /* sum members: 9, holes: 1, sum holes: 7 */
         /* last cacheline: 16 bytes */
};

>+{
>+	return !memcmp(config, &device_defaults, sizeof(*config));
>+}
>+
> struct engine_info {
> 	const char *cls;
> 	u64 mask;
>@@ -339,6 +344,26 @@ static struct xe_config_group_device *find_xe_config_group_device(struct pci_dev
> 	return to_xe_config_group_device(item);
> }
>
>+/**
>+ * xe_configfs_check_device() - Test if device was configured by configfs
>+ * @pdev: the &pci_dev device to test
>+ *
>+ * Try to find the configfs group that belongs to the specified pci device
>+ * and print a diagnostic message if found.
>+ */
>+void xe_configfs_check_device(struct pci_dev *pdev)
>+{
>+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
>+
>+	if (!dev)
>+		return;
>+
>+	pci_dbg(pdev, "found %s settings in configfs\n",
>+		config_device_is_default(&dev->config) ? "default" : "custom");

I guess comparing dev->config and device_defaults is safe because both
will zero-initialize the hole (or padding if we had one): the former is
allocated via kzalloc() and the latter has static storage.

I'd just remove the helper and do the memcmp explicitly in this
function.

Lucas De Marchi

>+
>+	config_group_put(&dev->group);
>+}
>+
> /**
>  * xe_configfs_get_survivability_mode - get configfs survivability mode attribute
>  * @pdev: pci device
>diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
>index fb8764008089..fa4ea7f0c375 100644
>--- a/drivers/gpu/drm/xe/xe_configfs.h
>+++ b/drivers/gpu/drm/xe/xe_configfs.h
>@@ -13,12 +13,14 @@ struct pci_dev;
> #if IS_ENABLED(CONFIG_CONFIGFS_FS)
> int xe_configfs_init(void);
> void xe_configfs_exit(void);
>+void xe_configfs_check_device(struct pci_dev *pdev);
> bool xe_configfs_get_survivability_mode(struct pci_dev *pdev);
> void xe_configfs_clear_survivability_mode(struct pci_dev *pdev);
> u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev);
> #else
> static inline int xe_configfs_init(void) { return 0; }
> static inline void xe_configfs_exit(void) { }
>+static inline void xe_configfs_check_device(struct pci_dev *pdev) { }
> static inline bool xe_configfs_get_survivability_mode(struct pci_dev *pdev) { return false; }
> static inline void xe_configfs_clear_survivability_mode(struct pci_dev *pdev) { }
> static inline u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev) { return U64_MAX; }
>diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>index 52d46c66ae1e..9ce6e6dca5bc 100644
>--- a/drivers/gpu/drm/xe/xe_pci.c
>+++ b/drivers/gpu/drm/xe/xe_pci.c
>@@ -17,6 +17,7 @@
>
> #include "display/xe_display.h"
> #include "regs/xe_gt_regs.h"
>+#include "xe_configfs.h"
> #include "xe_device.h"
> #include "xe_drv.h"
> #include "xe_gt.h"
>@@ -771,6 +772,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> 	struct xe_device *xe;
> 	int err;
>
>+	xe_configfs_check_device(pdev);
>+
> 	if (desc->require_force_probe && !id_forced(pdev->device)) {
> 		dev_info(&pdev->dev,
> 			 "Your graphics device %04x is not officially supported\n"
>-- 
>2.47.1
>

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

* Re: [PATCH v6 00/11] Updates for drm/xe/configfs
  2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
                   ` (13 preceding siblings ...)
  2025-08-01  2:31 ` ✓ Xe.CI.Full: " Patchwork
@ 2025-08-05 19:44 ` Lucas De Marchi
  14 siblings, 0 replies; 27+ messages in thread
From: Lucas De Marchi @ 2025-08-05 19:44 UTC (permalink / raw)
  To: intel-xe, Michal Wajdeczko; +Cc: Lucas De Marchi


On Thu, 31 Jul 2025 21:33:28 +0200, Michal Wajdeczko wrote:
> v5: https://patchwork.freedesktop.org/series/151773/#rev6
> v6: don't use -ECANCELED, print message instead (Rodrigo, John)
> 
> Michal Wajdeczko (11):
>   drm/xe: Simplify module initialization code
>   drm/xe: Print module init abort code
>   drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error
>   drm/xe/configfs: Drop redundant init() error message
>   drm/xe/configfs: Rename struct xe_config_device
>   drm/xe/configfs: Rename configfs_find_group() helper
>   drm/xe/configfs: Reintroduce struct xe_config_device
>   drm/xe/configfs: Keep default device config settings together
>   drm/xe/configfs: Check if device was preconfigured
>   drm/xe/configfs: Only allow configurations for supported devices
>   drm/xe/configfs: Allow adding configurations for future VFs
> 
> [...]

I dropped patch 9, "drm/xe/configfs: Check if device was preconfigured",
and applied the rest with the typo fix + const addition I mentioned in
patch 8: we can drop the const later if we decide we need it non-const, but I
don't foresee us doing that.


[01/11] drm/xe: Simplify module initialization code
        commit: 90759cddaceab1a7cfd0128d9421abf2d9288d09
[02/11] drm/xe: Print module init abort code
        commit: 823301c847bd9c57dd8f7c684046778281744c77
[03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error
        commit: b90613fb02179a01c6042d8a952e2c68e81d3cf7
[04/11] drm/xe/configfs: Drop redundant init() error message
        commit: c4b1dde0630e40fa773b1613495d4df4955f44b4
[05/11] drm/xe/configfs: Rename struct xe_config_device
        commit: 88df7939d728a90ddb722c8113a4529948b3d2ef
[06/11] drm/xe/configfs: Rename configfs_find_group() helper
        commit: ae3184d5f980d92377545ba58030e47ce48dd09f
[07/11] drm/xe/configfs: Reintroduce struct xe_config_device
        commit: 3c643f6216215c7e4e30f7a647024a20847b27af
[08/11] drm/xe/configfs: Keep default device config settings together
        commit: 737a72d7e0231123ae3f1578845d9a23b6d02a60
[09/11] drm/xe/configfs: Check if device was preconfigured
        (no commit info)
[10/11] drm/xe/configfs: Only allow configurations for supported devices
        commit: b4687422c322e5afc0f5d9425b29080c06dc17b9
[11/11] drm/xe/configfs: Allow adding configurations for future VFs
        commit: ca0ed3b10f5dba790808107896c568cc037a74f4

thanks
Lucas De Marchi


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

* Re: [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured
  2025-08-05 19:30   ` Lucas De Marchi
@ 2025-08-05 23:14     ` John Harrison
  2025-08-06 14:49       ` Lucas De Marchi
  0 siblings, 1 reply; 27+ messages in thread
From: John Harrison @ 2025-08-05 23:14 UTC (permalink / raw)
  To: Lucas De Marchi, Michal Wajdeczko; +Cc: intel-xe

On 8/5/2025 12:30 PM, Lucas De Marchi wrote:
> On Thu, Jul 31, 2025 at 09:33:37PM +0200, Michal Wajdeczko wrote:
>> Since device configuration using configfs could be prepared long
>> time prior the driver load, add a debug log whether the current
>> device driver probe is using custom or default settings.
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
>> ---
>> v2: make function void, rename helpers (Lucas) and rebased
>> ---
>> drivers/gpu/drm/xe/xe_configfs.c | 25 +++++++++++++++++++++++++
>> drivers/gpu/drm/xe/xe_configfs.h |  2 ++
>> drivers/gpu/drm/xe/xe_pci.c      |  3 +++
>> 3 files changed, 30 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_configfs.c 
>> b/drivers/gpu/drm/xe/xe_configfs.c
>> index 150e7f2becc8..5f145ccdf535 100644
>> --- a/drivers/gpu/drm/xe/xe_configfs.c
>> +++ b/drivers/gpu/drm/xe/xe_configfs.c
>> @@ -107,6 +107,11 @@ static void set_device_defaults(struct 
>> xe_config_device *config)
>>     *config = device_defaults;
>> }
>>
>> +static bool config_device_is_default(const struct xe_config_device 
>> *config)
>
> this isn't exactly safe and as such shouldn't be a helper that can be
> misused.
>
> $ pahole -C xe_config_device 
> /p2/build-drm-xe-next/drivers/gpu/drm/xe/xe.o
> struct xe_config_device {
>         bool                       survivability_mode;   /* 0     1 */
>
>         /* XXX 7 bytes hole, try to pack */
>
>         u64                        engines_allowed;      /* 8     8 */
>
>         /* size: 16, cachelines: 1, members: 2 */
>         /* sum members: 9, holes: 1, sum holes: 7 */
>         /* last cacheline: 16 bytes */
> };
>
On i915 at least, the rule for the module parameter structure was to 
keep all bools at the end. Would that fix the issue here? If the 
structure is full size integers first, then bool/char values at the end 
then there would be no holes and no issues with uninitialised data?

John.

>> +{
>> +    return !memcmp(config, &device_defaults, sizeof(*config));
>> +}
>> +
>> struct engine_info {
>>     const char *cls;
>>     u64 mask;
>> @@ -339,6 +344,26 @@ static struct xe_config_group_device 
>> *find_xe_config_group_device(struct pci_dev
>>     return to_xe_config_group_device(item);
>> }
>>
>> +/**
>> + * xe_configfs_check_device() - Test if device was configured by 
>> configfs
>> + * @pdev: the &pci_dev device to test
>> + *
>> + * Try to find the configfs group that belongs to the specified pci 
>> device
>> + * and print a diagnostic message if found.
>> + */
>> +void xe_configfs_check_device(struct pci_dev *pdev)
>> +{
>> +    struct xe_config_group_device *dev = 
>> find_xe_config_group_device(pdev);
>> +
>> +    if (!dev)
>> +        return;
>> +
>> +    pci_dbg(pdev, "found %s settings in configfs\n",
>> +        config_device_is_default(&dev->config) ? "default" : "custom");
>
> I guess comparing dev->config and device_defaults is safe because both
> will zero-initialize the hole (or padding if we had one): the former is
> allocated via kzalloc() and the latter has static storage.
>
> I'd just remove the helper and do the memcmp explicitly in this
> function.
>
> Lucas De Marchi
>
>> +
>> +    config_group_put(&dev->group);
>> +}
>> +
>> /**
>>  * xe_configfs_get_survivability_mode - get configfs survivability 
>> mode attribute
>>  * @pdev: pci device
>> diff --git a/drivers/gpu/drm/xe/xe_configfs.h 
>> b/drivers/gpu/drm/xe/xe_configfs.h
>> index fb8764008089..fa4ea7f0c375 100644
>> --- a/drivers/gpu/drm/xe/xe_configfs.h
>> +++ b/drivers/gpu/drm/xe/xe_configfs.h
>> @@ -13,12 +13,14 @@ struct pci_dev;
>> #if IS_ENABLED(CONFIG_CONFIGFS_FS)
>> int xe_configfs_init(void);
>> void xe_configfs_exit(void);
>> +void xe_configfs_check_device(struct pci_dev *pdev);
>> bool xe_configfs_get_survivability_mode(struct pci_dev *pdev);
>> void xe_configfs_clear_survivability_mode(struct pci_dev *pdev);
>> u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev);
>> #else
>> static inline int xe_configfs_init(void) { return 0; }
>> static inline void xe_configfs_exit(void) { }
>> +static inline void xe_configfs_check_device(struct pci_dev *pdev) { }
>> static inline bool xe_configfs_get_survivability_mode(struct pci_dev 
>> *pdev) { return false; }
>> static inline void xe_configfs_clear_survivability_mode(struct 
>> pci_dev *pdev) { }
>> static inline u64 xe_configfs_get_engines_allowed(struct pci_dev 
>> *pdev) { return U64_MAX; }
>> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>> index 52d46c66ae1e..9ce6e6dca5bc 100644
>> --- a/drivers/gpu/drm/xe/xe_pci.c
>> +++ b/drivers/gpu/drm/xe/xe_pci.c
>> @@ -17,6 +17,7 @@
>>
>> #include "display/xe_display.h"
>> #include "regs/xe_gt_regs.h"
>> +#include "xe_configfs.h"
>> #include "xe_device.h"
>> #include "xe_drv.h"
>> #include "xe_gt.h"
>> @@ -771,6 +772,8 @@ static int xe_pci_probe(struct pci_dev *pdev, 
>> const struct pci_device_id *ent)
>>     struct xe_device *xe;
>>     int err;
>>
>> +    xe_configfs_check_device(pdev);
>> +
>>     if (desc->require_force_probe && !id_forced(pdev->device)) {
>>         dev_info(&pdev->dev,
>>              "Your graphics device %04x is not officially supported\n"
>> -- 
>> 2.47.1
>>


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

* Re: [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together
  2025-08-05 15:09     ` Michal Wajdeczko
@ 2025-08-06 14:29       ` Lucas De Marchi
  0 siblings, 0 replies; 27+ messages in thread
From: Lucas De Marchi @ 2025-08-06 14:29 UTC (permalink / raw)
  To: Michal Wajdeczko; +Cc: intel-xe, John Harrison

On Tue, Aug 05, 2025 at 05:09:52PM +0200, Michal Wajdeczko wrote:
>
>
>On 8/5/2025 3:28 PM, Lucas De Marchi wrote:
>> On Thu, Jul 31, 2025 at 09:33:36PM +0200, Michal Wajdeczko wrote:
>>> For easier maintenance add a placeholder where we can keep all
>>> default device configuration settings in one place.
>>>
>>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>>> Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
>>> ---
>>> drivers/gpu/drm/xe/xe_configfs.c | 17 +++++++++++++----
>>> 1 file changed, 13 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>>> index 7ad9fc65e21d..150e7f2becc8 100644
>>> --- a/drivers/gpu/drm/xe/xe_configfs.c
>>> +++ b/drivers/gpu/drm/xe/xe_configfs.c
>>> @@ -97,6 +97,16 @@ struct xe_config_group_device {
>>>     struct mutex lock;
>>> };
>>>
>>> +static struct xe_config_device device_defaults = {
>>
>> any reason why this would not be const?
>>
>
>while today we are extending our configfs support only
>with completely new attributes (like survivability mode
>or allowed engines) I was assuming that shortly we will
>also move to configfs some of our existing modparams,
>which are device specific, rather than module specific,
>like:
> - GuC/HuC firmwares
> - max VFs
> - ...
>
>so to keep the idea of 'device_defaults' as the only
>place where default values are stored, I assumed, maybe
>wrong, that we will need this to be non-const (either as
>new location of some modparams or cached values of the
>modparam attributes)

I don't think we will have non-const defaults. If it needs to be
different per platform, then we'd rather copy the "module defaults"
(since it's a static) to the device struct and work from there.

Anyway, as I said in my other reply, I added the const and pushed. If we
need in future we can remove it.

thanks
Lucas De Marchi

>
>in [1] I was trying to make first step with max_vfs,
>but patch was dropped for a while until this series will
>be completed and we will have some better understanding
>how to proceed
>
>Michal
>
>[1] https://patchwork.freedesktop.org/patch/664176/?series=151660&rev=1
>

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

* Re: [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured
  2025-08-05 23:14     ` John Harrison
@ 2025-08-06 14:49       ` Lucas De Marchi
  0 siblings, 0 replies; 27+ messages in thread
From: Lucas De Marchi @ 2025-08-06 14:49 UTC (permalink / raw)
  To: John Harrison; +Cc: Michal Wajdeczko, intel-xe

On Tue, Aug 05, 2025 at 04:14:26PM -0700, John Harrison wrote:
>On 8/5/2025 12:30 PM, Lucas De Marchi wrote:
>>On Thu, Jul 31, 2025 at 09:33:37PM +0200, Michal Wajdeczko wrote:
>>>Since device configuration using configfs could be prepared long
>>>time prior the driver load, add a debug log whether the current
>>>device driver probe is using custom or default settings.
>>>
>>>Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>>>Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>>>Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
>>>---
>>>v2: make function void, rename helpers (Lucas) and rebased
>>>---
>>>drivers/gpu/drm/xe/xe_configfs.c | 25 +++++++++++++++++++++++++
>>>drivers/gpu/drm/xe/xe_configfs.h |  2 ++
>>>drivers/gpu/drm/xe/xe_pci.c      |  3 +++
>>>3 files changed, 30 insertions(+)
>>>
>>>diff --git a/drivers/gpu/drm/xe/xe_configfs.c 
>>>b/drivers/gpu/drm/xe/xe_configfs.c
>>>index 150e7f2becc8..5f145ccdf535 100644
>>>--- a/drivers/gpu/drm/xe/xe_configfs.c
>>>+++ b/drivers/gpu/drm/xe/xe_configfs.c
>>>@@ -107,6 +107,11 @@ static void set_device_defaults(struct 
>>>xe_config_device *config)
>>>    *config = device_defaults;
>>>}
>>>
>>>+static bool config_device_is_default(const struct 
>>>xe_config_device *config)
>>
>>this isn't exactly safe and as such shouldn't be a helper that can be
>>misused.
>>
>>$ pahole -C xe_config_device 
>>/p2/build-drm-xe-next/drivers/gpu/drm/xe/xe.o
>>struct xe_config_device {
>>        bool                       survivability_mode;   /* 0     1 */
>>
>>        /* XXX 7 bytes hole, try to pack */
>>
>>        u64                        engines_allowed;      /* 8     8 */
>>
>>        /* size: 16, cachelines: 1, members: 2 */
>>        /* sum members: 9, holes: 1, sum holes: 7 */
>>        /* last cacheline: 16 bytes */
>>};
>>
>On i915 at least, the rule for the module parameter structure was to 
>keep all bools at the end. Would that fix the issue here? If the 
>structure is full size integers first, then bool/char values at the 
>end then there would be no holes and no issues with uninitialised 
>data?

it's a good rule to avoid multiple holes and keep the flags together,
but it doesn't fix the issue here. You'd trade a hole for a padding.
sizeof() will include the padding and for locally scoped object it's
undefined behavior what the padding contains (and it does change
depending on compiler and optimization levels)...

I'd simply avoid the issue by not adding such a helper and simply inline
it here where we know the scope of each variable.

Lucas De Marchi

>
>John.
>
>>>+{
>>>+    return !memcmp(config, &device_defaults, sizeof(*config));
>>>+}
>>>+
>>>struct engine_info {
>>>    const char *cls;
>>>    u64 mask;
>>>@@ -339,6 +344,26 @@ static struct xe_config_group_device 
>>>*find_xe_config_group_device(struct pci_dev
>>>    return to_xe_config_group_device(item);
>>>}
>>>
>>>+/**
>>>+ * xe_configfs_check_device() - Test if device was configured by 
>>>configfs
>>>+ * @pdev: the &pci_dev device to test
>>>+ *
>>>+ * Try to find the configfs group that belongs to the specified 
>>>pci device
>>>+ * and print a diagnostic message if found.
>>>+ */
>>>+void xe_configfs_check_device(struct pci_dev *pdev)
>>>+{
>>>+    struct xe_config_group_device *dev = 
>>>find_xe_config_group_device(pdev);
>>>+
>>>+    if (!dev)
>>>+        return;
>>>+
>>>+    pci_dbg(pdev, "found %s settings in configfs\n",
>>>+        config_device_is_default(&dev->config) ? "default" : "custom");
>>
>>I guess comparing dev->config and device_defaults is safe because both
>>will zero-initialize the hole (or padding if we had one): the former is
>>allocated via kzalloc() and the latter has static storage.
>>
>>I'd just remove the helper and do the memcmp explicitly in this
>>function.
>>
>>Lucas De Marchi
>>
>>>+
>>>+    config_group_put(&dev->group);
>>>+}
>>>+
>>>/**
>>> * xe_configfs_get_survivability_mode - get configfs survivability 
>>>mode attribute
>>> * @pdev: pci device
>>>diff --git a/drivers/gpu/drm/xe/xe_configfs.h 
>>>b/drivers/gpu/drm/xe/xe_configfs.h
>>>index fb8764008089..fa4ea7f0c375 100644
>>>--- a/drivers/gpu/drm/xe/xe_configfs.h
>>>+++ b/drivers/gpu/drm/xe/xe_configfs.h
>>>@@ -13,12 +13,14 @@ struct pci_dev;
>>>#if IS_ENABLED(CONFIG_CONFIGFS_FS)
>>>int xe_configfs_init(void);
>>>void xe_configfs_exit(void);
>>>+void xe_configfs_check_device(struct pci_dev *pdev);
>>>bool xe_configfs_get_survivability_mode(struct pci_dev *pdev);
>>>void xe_configfs_clear_survivability_mode(struct pci_dev *pdev);
>>>u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev);
>>>#else
>>>static inline int xe_configfs_init(void) { return 0; }
>>>static inline void xe_configfs_exit(void) { }
>>>+static inline void xe_configfs_check_device(struct pci_dev *pdev) { }
>>>static inline bool xe_configfs_get_survivability_mode(struct 
>>>pci_dev *pdev) { return false; }
>>>static inline void xe_configfs_clear_survivability_mode(struct 
>>>pci_dev *pdev) { }
>>>static inline u64 xe_configfs_get_engines_allowed(struct pci_dev 
>>>*pdev) { return U64_MAX; }
>>>diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>>>index 52d46c66ae1e..9ce6e6dca5bc 100644
>>>--- a/drivers/gpu/drm/xe/xe_pci.c
>>>+++ b/drivers/gpu/drm/xe/xe_pci.c
>>>@@ -17,6 +17,7 @@
>>>
>>>#include "display/xe_display.h"
>>>#include "regs/xe_gt_regs.h"
>>>+#include "xe_configfs.h"
>>>#include "xe_device.h"
>>>#include "xe_drv.h"
>>>#include "xe_gt.h"
>>>@@ -771,6 +772,8 @@ static int xe_pci_probe(struct pci_dev *pdev, 
>>>const struct pci_device_id *ent)
>>>    struct xe_device *xe;
>>>    int err;
>>>
>>>+    xe_configfs_check_device(pdev);
>>>+
>>>    if (desc->require_force_probe && !id_forced(pdev->device)) {
>>>        dev_info(&pdev->dev,
>>>             "Your graphics device %04x is not officially supported\n"
>>>-- 
>>>2.47.1
>>>
>

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

end of thread, other threads:[~2025-08-06 14:50 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-31 19:33 [PATCH v6 00/11] Updates for drm/xe/configfs Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 02/11] drm/xe: Print module init abort code Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 04/11] drm/xe/configfs: Drop redundant init() error message Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 05/11] drm/xe/configfs: Rename struct xe_config_device Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
2025-08-05 13:14   ` Lucas De Marchi
2025-08-05 14:30     ` Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 07/11] drm/xe/configfs: Reintroduce struct xe_config_device Michal Wajdeczko
2025-07-31 19:33 ` [PATCH v6 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
2025-08-05 13:28   ` Lucas De Marchi
2025-08-05 15:09     ` Michal Wajdeczko
2025-08-06 14:29       ` Lucas De Marchi
2025-07-31 19:33 ` [PATCH v6 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
2025-08-05 19:30   ` Lucas De Marchi
2025-08-05 23:14     ` John Harrison
2025-08-06 14:49       ` Lucas De Marchi
2025-07-31 19:33 ` [PATCH v6 10/11] drm/xe/configfs: Only allow configurations for supported devices Michal Wajdeczko
2025-07-31 20:35   ` Rodrigo Vivi
2025-07-31 19:33 ` [PATCH v6 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
2025-07-31 20:37   ` Rodrigo Vivi
2025-07-31 21:21   ` [PATCH v7 " Michal Wajdeczko
2025-08-01  0:05 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev8) Patchwork
2025-08-01  1:08 ` ✓ Xe.CI.BAT: " Patchwork
2025-08-01  2:31 ` ✓ Xe.CI.Full: " Patchwork
2025-08-05 19:44 ` [PATCH v6 00/11] Updates for drm/xe/configfs Lucas De Marchi

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