* [PATCH v4 00/11] Updates for drm/xe/configfs
@ 2025-07-27 17:19 Michal Wajdeczko
2025-07-27 17:19 ` [PATCH v4 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
` (13 more replies)
0 siblings, 14 replies; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:19 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko
v3: https://patchwork.freedesktop.org/series/151773/#rev4
v4: rebased (as patches 1-3 from v3 were already merged)
cleanup su_mutex and use it everywhere
add placeholder for default settings
simplify code in xe_init
fix checks for existing config
fix wrong pdev put/get
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: Use mutex from xe_configfs subsystem
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 | 157 ++++++++++++++++++++++---------
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, 130 insertions(+), 61 deletions(-)
--
2.47.1
^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH v4 01/11] drm/xe: Simplify module initialization code
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
@ 2025-07-27 17:19 ` Michal Wajdeczko
2025-07-28 19:35 ` Rodrigo Vivi
2025-07-28 23:52 ` John Harrison
2025-07-27 17:19 ` [PATCH v4 02/11] drm/xe: Print module init abort code Michal Wajdeczko
` (12 subsequent siblings)
13 siblings, 2 replies; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:19 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
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..593bc9e5851a 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] 31+ messages in thread
* [PATCH v4 02/11] drm/xe: Print module init abort code
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
2025-07-27 17:19 ` [PATCH v4 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
@ 2025-07-27 17:19 ` Michal Wajdeczko
2025-07-28 19:39 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error Michal Wajdeczko
` (11 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:19 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
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 593bc9e5851a..23be7c4cfde1 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] 31+ messages in thread
* [PATCH v4 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
2025-07-27 17:19 ` [PATCH v4 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
2025-07-27 17:19 ` [PATCH v4 02/11] drm/xe: Print module init abort code Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-28 19:42 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 04/11] drm/xe/configfs: Use mutex from xe_configfs subsystem Michal Wajdeczko
` (10 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
While mutex_destroy() is NOP when CONFIG_DEBUG_MUTEXES is not
enabled, we should still call it.
While around, simplify init() code as there is no need to print
separate error message, nor have a temporary variable, which was
likely just taken from the example code. And drop a traling line.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/xe_configfs.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 36e2b45b305f..6aa0531bcf76 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -392,15 +392,13 @@ 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;
}
@@ -410,5 +408,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] 31+ messages in thread
* [PATCH v4 04/11] drm/xe/configfs: Use mutex from xe_configfs subsystem
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (2 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-28 19:50 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 05/11] drm/xe/configfs: Rename struct xe_config_device Michal Wajdeczko
` (9 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
It should be sufficient to protect all configuration parameters
using single mutex already defined inside xe_configfs subsystem.
While around, also convert code to use guard/scoped_guard classes.
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/xe_configfs.c | 29 +++++++++++------------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 6aa0531bcf76..e32517afae58 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -85,14 +85,15 @@
* rmdir /sys/kernel/config/xe/0000:03:00.0/
*/
+/*
+ * Use xe_configfs.su_mutex (also accessible from group.cg_subsys->su_mutex)
+ * to protect configuration data.
+ */
struct xe_config_device {
struct config_group group;
bool survivability_mode;
u64 engines_allowed;
-
- /* protects attributes */
- struct mutex lock;
};
struct engine_info {
@@ -135,9 +136,8 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
if (ret)
return ret;
- mutex_lock(&dev->lock);
- dev->survivability_mode = survivability_mode;
- mutex_unlock(&dev->lock);
+ scoped_guard(mutex, &item->ci_group->cg_subsys->su_mutex)
+ dev->survivability_mode = survivability_mode;
return len;
}
@@ -219,9 +219,8 @@ static ssize_t engines_allowed_store(struct config_item *item, const char *page,
val |= mask;
}
- mutex_lock(&dev->lock);
- dev->engines_allowed = val;
- mutex_unlock(&dev->lock);
+ scoped_guard(mutex, &item->ci_group->cg_subsys->su_mutex)
+ dev->engines_allowed = val;
return len;
}
@@ -239,7 +238,6 @@ static void xe_config_device_release(struct config_item *item)
{
struct xe_config_device *dev = to_xe_config_device(item);
- mutex_destroy(&dev->lock);
kfree(dev);
}
@@ -286,8 +284,6 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
config_group_init_type_name(&dev->group, name, &xe_config_device_type);
- mutex_init(&dev->lock);
-
return &dev->group;
}
@@ -311,12 +307,10 @@ static struct configfs_subsystem xe_configfs = {
static struct xe_config_device *configfs_find_group(struct pci_dev *pdev)
{
+ guard(mutex)(&xe_configfs.su_mutex);
struct config_item *item;
- mutex_lock(&xe_configfs.su_mutex);
item = config_group_find_item(&xe_configfs.su_group, pci_name(pdev));
- mutex_unlock(&xe_configfs.su_mutex);
-
if (!item)
return NULL;
@@ -360,9 +354,8 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
if (!dev)
return;
- mutex_lock(&dev->lock);
- dev->survivability_mode = 0;
- mutex_unlock(&dev->lock);
+ scoped_guard(mutex, &xe_configfs.su_mutex)
+ dev->survivability_mode = 0;
config_item_put(&dev->group.cg_item);
}
--
2.47.1
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v4 05/11] drm/xe/configfs: Rename struct xe_config_device
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (3 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 04/11] drm/xe/configfs: Use mutex from xe_configfs subsystem Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-28 19:54 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
` (8 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
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 e32517afae58..edd52b8f0543 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -89,7 +89,7 @@
* Use xe_configfs.su_mutex (also accessible from group.cg_subsys->su_mutex)
* to protect configuration data.
*/
-struct xe_config_device {
+struct xe_config_group_device {
struct config_group group;
bool survivability_mode;
@@ -114,21 +114,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;
@@ -236,7 +236,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);
kfree(dev);
}
@@ -255,7 +255,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;
@@ -305,7 +305,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)
{
guard(mutex)(&xe_configfs.su_mutex);
struct config_item *item;
@@ -314,7 +314,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);
}
/**
@@ -328,7 +328,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)
@@ -349,7 +349,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;
@@ -371,7 +371,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] 31+ messages in thread
* [PATCH v4 06/11] drm/xe/configfs: Rename configfs_find_group() helper
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (4 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 05/11] drm/xe/configfs: Rename struct xe_config_device Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-28 19:57 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 07/11] drm/xe/configfs: Reintroduce struct xe_config_device Michal Wajdeczko
` (7 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
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 edd52b8f0543..f5a780b8bb80 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -305,7 +305,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)
{
guard(mutex)(&xe_configfs.su_mutex);
struct config_item *item;
@@ -328,14 +328,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;
}
@@ -349,7 +349,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;
@@ -357,7 +357,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
scoped_guard(mutex, &xe_configfs.su_mutex)
dev->survivability_mode = 0;
- config_item_put(&dev->group.cg_item);
+ config_group_put(&dev->group);
}
/**
@@ -371,14 +371,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] 31+ messages in thread
* [PATCH v4 07/11] drm/xe/configfs: Reintroduce struct xe_config_device
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (5 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-29 0:06 ` John Harrison
2025-07-27 17:20 ` [PATCH v4 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
` (6 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
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 f5a780b8bb80..a5f13dd779c7 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -92,8 +92,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;
};
struct engine_info {
@@ -119,16 +121,21 @@ 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);
}
static ssize_t survivability_mode_store(struct config_item *item, const char *page, size_t len)
{
- struct xe_config_group_device *dev = to_xe_config_group_device(item);
+ struct xe_config_device *dev = to_xe_config_device(item);
bool survivability_mode;
int ret;
@@ -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++) {
@@ -199,7 +206,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_group_device *dev = to_xe_config_group_device(item);
+ struct xe_config_device *dev = to_xe_config_device(item);
size_t patternlen, p;
u64 mask, val = 0;
@@ -280,7 +287,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);
@@ -334,7 +341,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;
@@ -355,7 +362,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
return;
scoped_guard(mutex, &xe_configfs.su_mutex)
- dev->survivability_mode = 0;
+ dev->config.survivability_mode = 0;
config_group_put(&dev->group);
}
@@ -377,7 +384,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] 31+ messages in thread
* [PATCH v4 08/11] drm/xe/configfs: Keep default device config settings together
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (6 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 07/11] drm/xe/configfs: Reintroduce struct xe_config_device Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-29 0:07 ` John Harrison
2025-07-27 17:20 ` [PATCH v4 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
` (5 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
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 a5f13dd779c7..60d89d3ef656 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -98,6 +98,16 @@ struct xe_config_group_device {
} config;
};
+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;
@@ -286,8 +296,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);
@@ -339,7 +348,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);
@@ -382,7 +391,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] 31+ messages in thread
* [PATCH v4 09/11] drm/xe/configfs: Check if device was preconfigured
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (7 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-29 0:11 ` John Harrison
2025-07-27 17:20 ` [PATCH v4 10/11] drm/xe/configfs: Only allow configurations for supported devices Michal Wajdeczko
` (4 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
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 60d89d3ef656..73fb6812efe0 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -108,6 +108,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;
@@ -333,6 +338,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] 31+ messages in thread
* [PATCH v4 10/11] drm/xe/configfs: Only allow configurations for supported devices
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (8 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-27 17:20 ` [PATCH v4 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
` (3 subsequent siblings)
13 siblings, 0 replies; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
v2: rebased
---
drivers/gpu/drm/xe/xe_configfs.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 73fb6812efe0..928d62750d55 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -273,11 +273,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;
@@ -295,8 +306,14 @@ 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);
+
pci_dev_put(pdev);
+ if (!match)
+ return ERR_PTR(-ECANCELED);
+
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
if (!dev)
return ERR_PTR(-ENOMEM);
--
2.47.1
^ permalink raw reply related [flat|nested] 31+ messages in thread
* [PATCH v4 11/11] drm/xe/configfs: Allow adding configurations for future VFs
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (9 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 10/11] drm/xe/configfs: Only allow configurations for supported devices Michal Wajdeczko
@ 2025-07-27 17:20 ` Michal Wajdeczko
2025-07-27 17:28 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev5) Patchwork
` (2 subsequent siblings)
13 siblings, 0 replies; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-27 17:20 UTC (permalink / raw)
To: intel-xe; +Cc: Michal Wajdeczko, Lucas De Marchi
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>
---
v2: rebase and improve checks, fix include order
v3: put correct device (Lucas)
---
drivers/gpu/drm/xe/xe_configfs.c | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 928d62750d55..b3252bc9d76c 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
@@ -283,6 +283,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)
{
@@ -304,11 +313,22 @@ 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);
+ pdev = get_physfn_instead(pdev);
match = xe_match_desc(pdev);
+ if (match) {
+ int vfnumber = PCI_DEVFN(slot, function) - pdev->devfn;
+ if (vfnumber && (!dev_is_pf(&pdev->dev) || !match->has_sriov ||
+ vfnumber > pci_sriov_get_totalvfs(pdev)))
+ match = NULL;
+ }
pci_dev_put(pdev);
if (!match)
--
2.47.1
^ permalink raw reply related [flat|nested] 31+ messages in thread
* ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev5)
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (10 preceding siblings ...)
2025-07-27 17:20 ` [PATCH v4 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
@ 2025-07-27 17:28 ` Patchwork
2025-07-27 18:07 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-27 19:09 ` ✓ Xe.CI.Full: " Patchwork
13 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2025-07-27 17:28 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
== Series Details ==
Series: Updates for drm/xe/configfs (rev5)
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
[17:27:34] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:27:38] 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
[17:28:05] Starting KUnit Kernel (1/1)...
[17:28:05] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:28:05] ================== guc_buf (11 subtests) ===================
[17:28:05] [PASSED] test_smallest
[17:28:05] [PASSED] test_largest
[17:28:05] [PASSED] test_granular
[17:28:05] [PASSED] test_unique
[17:28:05] [PASSED] test_overlap
[17:28:05] [PASSED] test_reusable
[17:28:05] [PASSED] test_too_big
[17:28:05] [PASSED] test_flush
[17:28:05] [PASSED] test_lookup
[17:28:05] [PASSED] test_data
[17:28:05] [PASSED] test_class
[17:28:05] ===================== [PASSED] guc_buf =====================
[17:28:05] =================== guc_dbm (7 subtests) ===================
[17:28:05] [PASSED] test_empty
[17:28:05] [PASSED] test_default
[17:28:05] ======================== test_size ========================
[17:28:05] [PASSED] 4
[17:28:05] [PASSED] 8
[17:28:05] [PASSED] 32
[17:28:05] [PASSED] 256
[17:28:05] ==================== [PASSED] test_size ====================
[17:28:05] ======================= test_reuse ========================
[17:28:05] [PASSED] 4
[17:28:05] [PASSED] 8
[17:28:05] [PASSED] 32
[17:28:05] [PASSED] 256
[17:28:05] =================== [PASSED] test_reuse ====================
[17:28:05] =================== test_range_overlap ====================
[17:28:05] [PASSED] 4
[17:28:05] [PASSED] 8
[17:28:05] [PASSED] 32
[17:28:05] [PASSED] 256
[17:28:05] =============== [PASSED] test_range_overlap ================
[17:28:05] =================== test_range_compact ====================
[17:28:05] [PASSED] 4
[17:28:05] [PASSED] 8
[17:28:05] [PASSED] 32
[17:28:05] [PASSED] 256
[17:28:05] =============== [PASSED] test_range_compact ================
[17:28:05] ==================== test_range_spare =====================
[17:28:05] [PASSED] 4
[17:28:05] [PASSED] 8
[17:28:05] [PASSED] 32
[17:28:05] [PASSED] 256
[17:28:05] ================ [PASSED] test_range_spare =================
[17:28:05] ===================== [PASSED] guc_dbm =====================
[17:28:05] =================== guc_idm (6 subtests) ===================
[17:28:05] [PASSED] bad_init
[17:28:05] [PASSED] no_init
[17:28:05] [PASSED] init_fini
[17:28:05] [PASSED] check_used
[17:28:05] [PASSED] check_quota
[17:28:05] [PASSED] check_all
[17:28:05] ===================== [PASSED] guc_idm =====================
[17:28:05] ================== no_relay (3 subtests) ===================
[17:28:05] [PASSED] xe_drops_guc2pf_if_not_ready
[17:28:05] [PASSED] xe_drops_guc2vf_if_not_ready
[17:28:05] [PASSED] xe_rejects_send_if_not_ready
[17:28:05] ==================== [PASSED] no_relay =====================
[17:28:05] ================== pf_relay (14 subtests) ==================
[17:28:05] [PASSED] pf_rejects_guc2pf_too_short
[17:28:05] [PASSED] pf_rejects_guc2pf_too_long
[17:28:05] [PASSED] pf_rejects_guc2pf_no_payload
[17:28:05] [PASSED] pf_fails_no_payload
[17:28:05] [PASSED] pf_fails_bad_origin
[17:28:05] [PASSED] pf_fails_bad_type
[17:28:05] [PASSED] pf_txn_reports_error
[17:28:05] [PASSED] pf_txn_sends_pf2guc
[17:28:05] [PASSED] pf_sends_pf2guc
[17:28:05] [SKIPPED] pf_loopback_nop
[17:28:05] [SKIPPED] pf_loopback_echo
[17:28:05] [SKIPPED] pf_loopback_fail
[17:28:05] [SKIPPED] pf_loopback_busy
[17:28:05] [SKIPPED] pf_loopback_retry
[17:28:05] ==================== [PASSED] pf_relay =====================
[17:28:05] ================== vf_relay (3 subtests) ===================
[17:28:05] [PASSED] vf_rejects_guc2vf_too_short
[17:28:05] [PASSED] vf_rejects_guc2vf_too_long
[17:28:05] [PASSED] vf_rejects_guc2vf_no_payload
[17:28:05] ==================== [PASSED] vf_relay =====================
[17:28:05] ===================== lmtt (1 subtest) =====================
[17:28:05] ======================== test_ops =========================
[17:28:05] [PASSED] 2-level
[17:28:05] [PASSED] multi-level
[17:28:05] ==================== [PASSED] test_ops =====================
[17:28:05] ====================== [PASSED] lmtt =======================
[17:28:05] ================= pf_service (11 subtests) =================
[17:28:05] [PASSED] pf_negotiate_any
[17:28:05] [PASSED] pf_negotiate_base_match
[17:28:05] [PASSED] pf_negotiate_base_newer
[17:28:05] [PASSED] pf_negotiate_base_next
[17:28:05] [SKIPPED] pf_negotiate_base_older
[17:28:05] [PASSED] pf_negotiate_base_prev
[17:28:05] [PASSED] pf_negotiate_latest_match
[17:28:05] [PASSED] pf_negotiate_latest_newer
[17:28:05] [PASSED] pf_negotiate_latest_next
[17:28:05] [SKIPPED] pf_negotiate_latest_older
[17:28:05] [SKIPPED] pf_negotiate_latest_prev
[17:28:05] =================== [PASSED] pf_service ====================
[17:28:05] =================== xe_mocs (2 subtests) ===================
[17:28:05] ================ xe_live_mocs_kernel_kunit ================
[17:28:05] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[17:28:05] ================ xe_live_mocs_reset_kunit =================
[17:28:05] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[17:28:05] ==================== [SKIPPED] xe_mocs =====================
[17:28:05] ================= xe_migrate (2 subtests) ==================
[17:28:05] ================= xe_migrate_sanity_kunit =================
[17:28:05] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[17:28:05] ================== xe_validate_ccs_kunit ==================
[17:28:05] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[17:28:05] =================== [SKIPPED] xe_migrate ===================
[17:28:05] ================== xe_dma_buf (1 subtest) ==================
[17:28:05] ==================== xe_dma_buf_kunit =====================
[17:28:05] ================ [SKIPPED] xe_dma_buf_kunit ================
[17:28:05] =================== [SKIPPED] xe_dma_buf ===================
[17:28:05] ================= xe_bo_shrink (1 subtest) =================
[17:28:05] =================== xe_bo_shrink_kunit ====================
[17:28:05] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[17:28:05] ================== [SKIPPED] xe_bo_shrink ==================
[17:28:05] ==================== xe_bo (2 subtests) ====================
[17:28:05] ================== xe_ccs_migrate_kunit ===================
[17:28:05] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[17:28:05] ==================== xe_bo_evict_kunit ====================
[17:28:05] =============== [SKIPPED] xe_bo_evict_kunit ================
[17:28:05] ===================== [SKIPPED] xe_bo ======================
[17:28:05] ==================== args (11 subtests) ====================
[17:28:05] [PASSED] count_args_test
[17:28:05] [PASSED] call_args_example
[17:28:05] [PASSED] call_args_test
[17:28:05] [PASSED] drop_first_arg_example
[17:28:05] [PASSED] drop_first_arg_test
[17:28:05] [PASSED] first_arg_example
[17:28:05] [PASSED] first_arg_test
[17:28:05] [PASSED] last_arg_example
[17:28:05] [PASSED] last_arg_test
[17:28:05] [PASSED] pick_arg_example
[17:28:05] [PASSED] sep_comma_example
[17:28:05] ====================== [PASSED] args =======================
[17:28:05] =================== xe_pci (3 subtests) ====================
[17:28:05] ==================== check_graphics_ip ====================
[17:28:05] [PASSED] 12.70 Xe_LPG
[17:28:05] [PASSED] 12.71 Xe_LPG
[17:28:05] [PASSED] 12.74 Xe_LPG+
[17:28:05] [PASSED] 20.01 Xe2_HPG
[17:28:05] [PASSED] 20.02 Xe2_HPG
[17:28:05] [PASSED] 20.04 Xe2_LPG
[17:28:05] [PASSED] 30.00 Xe3_LPG
[17:28:05] [PASSED] 30.01 Xe3_LPG
[17:28:05] [PASSED] 30.03 Xe3_LPG
[17:28:05] ================ [PASSED] check_graphics_ip ================
[17:28:05] ===================== check_media_ip ======================
[17:28:05] [PASSED] 13.00 Xe_LPM+
[17:28:05] [PASSED] 13.01 Xe2_HPM
[17:28:05] [PASSED] 20.00 Xe2_LPM
[17:28:05] [PASSED] 30.00 Xe3_LPM
[17:28:05] [PASSED] 30.02 Xe3_LPM
[17:28:05] ================= [PASSED] check_media_ip ==================
[17:28:05] ================= check_platform_gt_count =================
[17:28:05] [PASSED] 0x9A60 (TIGERLAKE)
[17:28:05] [PASSED] 0x9A68 (TIGERLAKE)
[17:28:05] [PASSED] 0x9A70 (TIGERLAKE)
[17:28:05] [PASSED] 0x9A40 (TIGERLAKE)
[17:28:05] [PASSED] 0x9A49 (TIGERLAKE)
[17:28:05] [PASSED] 0x9A59 (TIGERLAKE)
[17:28:05] [PASSED] 0x9A78 (TIGERLAKE)
[17:28:05] [PASSED] 0x9AC0 (TIGERLAKE)
[17:28:05] [PASSED] 0x9AC9 (TIGERLAKE)
[17:28:05] [PASSED] 0x9AD9 (TIGERLAKE)
[17:28:05] [PASSED] 0x9AF8 (TIGERLAKE)
[17:28:05] [PASSED] 0x4C80 (ROCKETLAKE)
[17:28:05] [PASSED] 0x4C8A (ROCKETLAKE)
[17:28:05] [PASSED] 0x4C8B (ROCKETLAKE)
[17:28:05] [PASSED] 0x4C8C (ROCKETLAKE)
[17:28:05] [PASSED] 0x4C90 (ROCKETLAKE)
[17:28:05] [PASSED] 0x4C9A (ROCKETLAKE)
[17:28:05] [PASSED] 0x4680 (ALDERLAKE_S)
[17:28:05] [PASSED] 0x4682 (ALDERLAKE_S)
[17:28:05] [PASSED] 0x4688 (ALDERLAKE_S)
[17:28:05] [PASSED] 0x468A (ALDERLAKE_S)
[17:28:05] [PASSED] 0x468B (ALDERLAKE_S)
[17:28:05] [PASSED] 0x4690 (ALDERLAKE_S)
[17:28:05] [PASSED] 0x4692 (ALDERLAKE_S)
[17:28:05] [PASSED] 0x4693 (ALDERLAKE_S)
[17:28:05] [PASSED] 0x46A0 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46A1 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46A2 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46A3 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46A6 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46A8 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46AA (ALDERLAKE_P)
[17:28:05] [PASSED] 0x462A (ALDERLAKE_P)
[17:28:05] [PASSED] 0x4626 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x4628 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46B0 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46B1 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46B2 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46B3 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46C0 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46C1 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46C2 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46C3 (ALDERLAKE_P)
[17:28:05] [PASSED] 0x46D0 (ALDERLAKE_N)
[17:28:05] [PASSED] 0x46D1 (ALDERLAKE_N)
[17:28:05] [PASSED] 0x46D2 (ALDERLAKE_N)
[17:28:05] [PASSED] 0x46D3 (ALDERLAKE_N)
[17:28:05] [PASSED] 0x46D4 (ALDERLAKE_N)
[17:28:05] [PASSED] 0xA721 (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7A1 (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7A9 (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7AC (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7AD (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA720 (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7A0 (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7A8 (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7AA (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA7AB (ALDERLAKE_P)
[17:28:05] [PASSED] 0xA780 (ALDERLAKE_S)
[17:28:05] [PASSED] 0xA781 (ALDERLAKE_S)
[17:28:05] [PASSED] 0xA782 (ALDERLAKE_S)
[17:28:05] [PASSED] 0xA783 (ALDERLAKE_S)
[17:28:05] [PASSED] 0xA788 (ALDERLAKE_S)
[17:28:05] [PASSED] 0xA789 (ALDERLAKE_S)
[17:28:05] [PASSED] 0xA78A (ALDERLAKE_S)
[17:28:05] [PASSED] 0xA78B (ALDERLAKE_S)
[17:28:05] [PASSED] 0x4905 (DG1)
[17:28:05] [PASSED] 0x4906 (DG1)
[17:28:05] [PASSED] 0x4907 (DG1)
[17:28:05] [PASSED] 0x4908 (DG1)
[17:28:05] [PASSED] 0x4909 (DG1)
[17:28:05] [PASSED] 0x56C0 (DG2)
[17:28:05] [PASSED] 0x56C2 (DG2)
[17:28:05] [PASSED] 0x56C1 (DG2)
[17:28:05] [PASSED] 0x7D51 (METEORLAKE)
[17:28:05] [PASSED] 0x7DD1 (METEORLAKE)
[17:28:05] [PASSED] 0x7D41 (METEORLAKE)
[17:28:05] [PASSED] 0x7D67 (METEORLAKE)
[17:28:05] [PASSED] 0xB640 (METEORLAKE)
[17:28:05] [PASSED] 0x56A0 (DG2)
[17:28:05] [PASSED] 0x56A1 (DG2)
[17:28:05] [PASSED] 0x56A2 (DG2)
[17:28:05] [PASSED] 0x56BE (DG2)
[17:28:05] [PASSED] 0x56BF (DG2)
[17:28:05] [PASSED] 0x5690 (DG2)
[17:28:05] [PASSED] 0x5691 (DG2)
[17:28:05] [PASSED] 0x5692 (DG2)
[17:28:05] [PASSED] 0x56A5 (DG2)
[17:28:05] [PASSED] 0x56A6 (DG2)
[17:28:05] [PASSED] 0x56B0 (DG2)
[17:28:05] [PASSED] 0x56B1 (DG2)
[17:28:05] [PASSED] 0x56BA (DG2)
[17:28:05] [PASSED] 0x56BB (DG2)
[17:28:05] [PASSED] 0x56BC (DG2)
[17:28:05] [PASSED] 0x56BD (DG2)
[17:28:05] [PASSED] 0x5693 (DG2)
[17:28:05] [PASSED] 0x5694 (DG2)
[17:28:05] [PASSED] 0x5695 (DG2)
[17:28:05] [PASSED] 0x56A3 (DG2)
[17:28:05] [PASSED] 0x56A4 (DG2)
[17:28:05] [PASSED] 0x56B2 (DG2)
[17:28:05] [PASSED] 0x56B3 (DG2)
[17:28:05] [PASSED] 0x5696 (DG2)
[17:28:05] [PASSED] 0x5697 (DG2)
[17:28:05] [PASSED] 0xB69 (PVC)
[17:28:05] [PASSED] 0xB6E (PVC)
[17:28:05] [PASSED] 0xBD4 (PVC)
[17:28:05] [PASSED] 0xBD5 (PVC)
[17:28:05] [PASSED] 0xBD6 (PVC)
[17:28:05] [PASSED] 0xBD7 (PVC)
[17:28:05] [PASSED] 0xBD8 (PVC)
[17:28:05] [PASSED] 0xBD9 (PVC)
[17:28:05] [PASSED] 0xBDA (PVC)
[17:28:05] [PASSED] 0xBDB (PVC)
[17:28:05] [PASSED] 0xBE0 (PVC)
[17:28:05] [PASSED] 0xBE1 (PVC)
[17:28:05] [PASSED] 0xBE5 (PVC)
[17:28:05] [PASSED] 0x7D40 (METEORLAKE)
[17:28:05] [PASSED] 0x7D45 (METEORLAKE)
[17:28:05] [PASSED] 0x7D55 (METEORLAKE)
[17:28:05] [PASSED] 0x7D60 (METEORLAKE)
[17:28:05] [PASSED] 0x7DD5 (METEORLAKE)
[17:28:05] [PASSED] 0x6420 (LUNARLAKE)
[17:28:05] [PASSED] 0x64A0 (LUNARLAKE)
[17:28:05] [PASSED] 0x64B0 (LUNARLAKE)
[17:28:05] [PASSED] 0xE202 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE209 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE20B (BATTLEMAGE)
[17:28:05] [PASSED] 0xE20C (BATTLEMAGE)
[17:28:05] [PASSED] 0xE20D (BATTLEMAGE)
[17:28:05] [PASSED] 0xE210 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE211 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE212 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE216 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE220 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE221 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE222 (BATTLEMAGE)
[17:28:05] [PASSED] 0xE223 (BATTLEMAGE)
[17:28:05] [PASSED] 0xB080 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB081 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB082 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB083 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB084 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB085 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB086 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB087 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB08F (PANTHERLAKE)
[17:28:05] [PASSED] 0xB090 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB0A0 (PANTHERLAKE)
[17:28:05] [PASSED] 0xB0B0 (PANTHERLAKE)
[17:28:05] [PASSED] 0xFD80 (PANTHERLAKE)
[17:28:05] [PASSED] 0xFD81 (PANTHERLAKE)
[17:28:05] ============= [PASSED] check_platform_gt_count =============
[17:28:05] ===================== [PASSED] xe_pci ======================
[17:28:05] =================== xe_rtp (2 subtests) ====================
[17:28:05] =============== xe_rtp_process_to_sr_tests ================
[17:28:05] [PASSED] coalesce-same-reg
[17:28:05] [PASSED] no-match-no-add
[17:28:05] [PASSED] match-or
[17:28:05] [PASSED] match-or-xfail
[17:28:05] [PASSED] no-match-no-add-multiple-rules
[17:28:05] [PASSED] two-regs-two-entries
[17:28:05] [PASSED] clr-one-set-other
[17:28:05] [PASSED] set-field
[17:28:05] [PASSED] conflict-duplicate
[17:28:05] [PASSED] conflict-not-disjoint
[17:28:05] [PASSED] conflict-reg-type
[17:28:05] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[17:28:05] ================== xe_rtp_process_tests ===================
[17:28:05] [PASSED] active1
[17:28:05] [PASSED] active2
[17:28:05] [PASSED] active-inactive
[17:28:05] [PASSED] inactive-active
[17:28:05] [PASSED] inactive-1st_or_active-inactive
[17:28:05] [PASSED] inactive-2nd_or_active-inactive
[17:28:05] [PASSED] inactive-last_or_active-inactive
[17:28:05] [PASSED] inactive-no_or_active-inactive
[17:28:05] ============== [PASSED] xe_rtp_process_tests ===============
[17:28:05] ===================== [PASSED] xe_rtp ======================
[17:28:05] ==================== xe_wa (1 subtest) =====================
[17:28:05] ======================== xe_wa_gt =========================
[17:28:05] [PASSED] TIGERLAKE (B0)
[17:28:05] [PASSED] DG1 (A0)
[17:28:05] [PASSED] DG1 (B0)
[17:28:05] [PASSED] ALDERLAKE_S (A0)
[17:28:05] [PASSED] ALDERLAKE_S (B0)
[17:28:05] [PASSED] ALDERLAKE_S (C0)
[17:28:05] [PASSED] ALDERLAKE_S (D0)
[17:28:05] [PASSED] ALDERLAKE_P (A0)
[17:28:05] [PASSED] ALDERLAKE_P (B0)
[17:28:05] [PASSED] ALDERLAKE_P (C0)
[17:28:05] [PASSED] ALDERLAKE_S_RPLS (D0)
[17:28:05] [PASSED] ALDERLAKE_P_RPLU (E0)
[17:28:05] [PASSED] DG2_G10 (C0)
[17:28:05] [PASSED] DG2_G11 (B1)
[17:28:05] [PASSED] DG2_G12 (A1)
[17:28:05] [PASSED] METEORLAKE (g:A0, m:A0)
[17:28:05] [PASSED] METEORLAKE (g:A0, m:A0)
[17:28:05] [PASSED] METEORLAKE (g:A0, m:A0)
[17:28:05] [PASSED] LUNARLAKE (g:A0, m:A0)
[17:28:05] [PASSED] LUNARLAKE (g:B0, m:A0)
stty: 'standard input': Inappropriate ioctl for device
[17:28:05] [PASSED] BATTLEMAGE (g:A0, m:A1)
[17:28:05] ==================== [PASSED] xe_wa_gt =====================
[17:28:05] ====================== [PASSED] xe_wa ======================
[17:28:05] ============================================================
[17:28:05] Testing complete. Ran 297 tests: passed: 281, skipped: 16
[17:28:05] Elapsed time: 31.630s total, 4.165s configuring, 27.148s building, 0.308s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[17:28:05] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:28:07] 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
[17:28:28] Starting KUnit Kernel (1/1)...
[17:28:28] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:28:29] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[17:28:29] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[17:28:29] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[17:28:29] =========== drm_validate_clone_mode (2 subtests) ===========
[17:28:29] ============== drm_test_check_in_clone_mode ===============
[17:28:29] [PASSED] in_clone_mode
[17:28:29] [PASSED] not_in_clone_mode
[17:28:29] ========== [PASSED] drm_test_check_in_clone_mode ===========
[17:28:29] =============== drm_test_check_valid_clones ===============
[17:28:29] [PASSED] not_in_clone_mode
[17:28:29] [PASSED] valid_clone
[17:28:29] [PASSED] invalid_clone
[17:28:29] =========== [PASSED] drm_test_check_valid_clones ===========
[17:28:29] ============= [PASSED] drm_validate_clone_mode =============
[17:28:29] ============= drm_validate_modeset (1 subtest) =============
[17:28:29] [PASSED] drm_test_check_connector_changed_modeset
[17:28:29] ============== [PASSED] drm_validate_modeset ===============
[17:28:29] ====== drm_test_bridge_get_current_state (2 subtests) ======
[17:28:29] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[17:28:29] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[17:28:29] ======== [PASSED] drm_test_bridge_get_current_state ========
[17:28:29] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[17:28:29] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[17:28:29] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[17:28:29] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[17:28:29] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[17:28:29] ============== drm_bridge_alloc (2 subtests) ===============
[17:28:29] [PASSED] drm_test_drm_bridge_alloc_basic
[17:28:29] [PASSED] drm_test_drm_bridge_alloc_get_put
[17:28:29] ================ [PASSED] drm_bridge_alloc =================
[17:28:29] ================== drm_buddy (7 subtests) ==================
[17:28:29] [PASSED] drm_test_buddy_alloc_limit
[17:28:29] [PASSED] drm_test_buddy_alloc_optimistic
[17:28:29] [PASSED] drm_test_buddy_alloc_pessimistic
[17:28:29] [PASSED] drm_test_buddy_alloc_pathological
[17:28:29] [PASSED] drm_test_buddy_alloc_contiguous
[17:28:29] [PASSED] drm_test_buddy_alloc_clear
[17:28:29] [PASSED] drm_test_buddy_alloc_range_bias
[17:28:29] ==================== [PASSED] drm_buddy ====================
[17:28:29] ============= drm_cmdline_parser (40 subtests) =============
[17:28:29] [PASSED] drm_test_cmdline_force_d_only
[17:28:29] [PASSED] drm_test_cmdline_force_D_only_dvi
[17:28:29] [PASSED] drm_test_cmdline_force_D_only_hdmi
[17:28:29] [PASSED] drm_test_cmdline_force_D_only_not_digital
[17:28:29] [PASSED] drm_test_cmdline_force_e_only
[17:28:29] [PASSED] drm_test_cmdline_res
[17:28:29] [PASSED] drm_test_cmdline_res_vesa
[17:28:29] [PASSED] drm_test_cmdline_res_vesa_rblank
[17:28:29] [PASSED] drm_test_cmdline_res_rblank
[17:28:29] [PASSED] drm_test_cmdline_res_bpp
[17:28:29] [PASSED] drm_test_cmdline_res_refresh
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[17:28:29] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[17:28:29] [PASSED] drm_test_cmdline_res_margins_force_on
[17:28:29] [PASSED] drm_test_cmdline_res_vesa_margins
[17:28:29] [PASSED] drm_test_cmdline_name
[17:28:29] [PASSED] drm_test_cmdline_name_bpp
[17:28:29] [PASSED] drm_test_cmdline_name_option
[17:28:29] [PASSED] drm_test_cmdline_name_bpp_option
[17:28:29] [PASSED] drm_test_cmdline_rotate_0
[17:28:29] [PASSED] drm_test_cmdline_rotate_90
[17:28:29] [PASSED] drm_test_cmdline_rotate_180
[17:28:29] [PASSED] drm_test_cmdline_rotate_270
[17:28:29] [PASSED] drm_test_cmdline_hmirror
[17:28:29] [PASSED] drm_test_cmdline_vmirror
[17:28:29] [PASSED] drm_test_cmdline_margin_options
[17:28:29] [PASSED] drm_test_cmdline_multiple_options
[17:28:29] [PASSED] drm_test_cmdline_bpp_extra_and_option
[17:28:29] [PASSED] drm_test_cmdline_extra_and_option
[17:28:29] [PASSED] drm_test_cmdline_freestanding_options
[17:28:29] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[17:28:29] [PASSED] drm_test_cmdline_panel_orientation
[17:28:29] ================ drm_test_cmdline_invalid =================
[17:28:29] [PASSED] margin_only
[17:28:29] [PASSED] interlace_only
[17:28:29] [PASSED] res_missing_x
[17:28:29] [PASSED] res_missing_y
[17:28:29] [PASSED] res_bad_y
[17:28:29] [PASSED] res_missing_y_bpp
[17:28:29] [PASSED] res_bad_bpp
[17:28:29] [PASSED] res_bad_refresh
[17:28:29] [PASSED] res_bpp_refresh_force_on_off
[17:28:29] [PASSED] res_invalid_mode
[17:28:29] [PASSED] res_bpp_wrong_place_mode
[17:28:29] [PASSED] name_bpp_refresh
[17:28:29] [PASSED] name_refresh
[17:28:29] [PASSED] name_refresh_wrong_mode
[17:28:29] [PASSED] name_refresh_invalid_mode
[17:28:29] [PASSED] rotate_multiple
[17:28:29] [PASSED] rotate_invalid_val
[17:28:29] [PASSED] rotate_truncated
[17:28:29] [PASSED] invalid_option
[17:28:29] [PASSED] invalid_tv_option
[17:28:29] [PASSED] truncated_tv_option
[17:28:29] ============ [PASSED] drm_test_cmdline_invalid =============
[17:28:29] =============== drm_test_cmdline_tv_options ===============
[17:28:29] [PASSED] NTSC
[17:28:29] [PASSED] NTSC_443
[17:28:29] [PASSED] NTSC_J
[17:28:29] [PASSED] PAL
[17:28:29] [PASSED] PAL_M
[17:28:29] [PASSED] PAL_N
[17:28:29] [PASSED] SECAM
[17:28:29] [PASSED] MONO_525
[17:28:29] [PASSED] MONO_625
[17:28:29] =========== [PASSED] drm_test_cmdline_tv_options ===========
[17:28:29] =============== [PASSED] drm_cmdline_parser ================
[17:28:29] ========== drmm_connector_hdmi_init (20 subtests) ==========
[17:28:29] [PASSED] drm_test_connector_hdmi_init_valid
[17:28:29] [PASSED] drm_test_connector_hdmi_init_bpc_8
[17:28:29] [PASSED] drm_test_connector_hdmi_init_bpc_10
[17:28:29] [PASSED] drm_test_connector_hdmi_init_bpc_12
[17:28:29] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[17:28:29] [PASSED] drm_test_connector_hdmi_init_bpc_null
[17:28:29] [PASSED] drm_test_connector_hdmi_init_formats_empty
[17:28:29] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[17:28:29] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:28:29] [PASSED] supported_formats=0x9 yuv420_allowed=1
[17:28:29] [PASSED] supported_formats=0x9 yuv420_allowed=0
[17:28:29] [PASSED] supported_formats=0x3 yuv420_allowed=1
[17:28:29] [PASSED] supported_formats=0x3 yuv420_allowed=0
[17:28:29] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:28:29] [PASSED] drm_test_connector_hdmi_init_null_ddc
[17:28:29] [PASSED] drm_test_connector_hdmi_init_null_product
[17:28:29] [PASSED] drm_test_connector_hdmi_init_null_vendor
[17:28:29] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[17:28:29] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[17:28:29] [PASSED] drm_test_connector_hdmi_init_product_valid
[17:28:29] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[17:28:29] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[17:28:29] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[17:28:29] ========= drm_test_connector_hdmi_init_type_valid =========
[17:28:29] [PASSED] HDMI-A
[17:28:29] [PASSED] HDMI-B
[17:28:29] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[17:28:29] ======== drm_test_connector_hdmi_init_type_invalid ========
[17:28:29] [PASSED] Unknown
[17:28:29] [PASSED] VGA
[17:28:29] [PASSED] DVI-I
[17:28:29] [PASSED] DVI-D
[17:28:29] [PASSED] DVI-A
[17:28:29] [PASSED] Composite
[17:28:29] [PASSED] SVIDEO
[17:28:29] [PASSED] LVDS
[17:28:29] [PASSED] Component
[17:28:29] [PASSED] DIN
[17:28:29] [PASSED] DP
[17:28:29] [PASSED] TV
[17:28:29] [PASSED] eDP
[17:28:29] [PASSED] Virtual
[17:28:29] [PASSED] DSI
[17:28:29] [PASSED] DPI
[17:28:29] [PASSED] Writeback
[17:28:29] [PASSED] SPI
[17:28:29] [PASSED] USB
[17:28:29] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[17:28:29] ============ [PASSED] drmm_connector_hdmi_init =============
[17:28:29] ============= drmm_connector_init (3 subtests) =============
[17:28:29] [PASSED] drm_test_drmm_connector_init
[17:28:29] [PASSED] drm_test_drmm_connector_init_null_ddc
[17:28:29] ========= drm_test_drmm_connector_init_type_valid =========
[17:28:29] [PASSED] Unknown
[17:28:29] [PASSED] VGA
[17:28:29] [PASSED] DVI-I
[17:28:29] [PASSED] DVI-D
[17:28:29] [PASSED] DVI-A
[17:28:29] [PASSED] Composite
[17:28:29] [PASSED] SVIDEO
[17:28:29] [PASSED] LVDS
[17:28:29] [PASSED] Component
[17:28:29] [PASSED] DIN
[17:28:29] [PASSED] DP
[17:28:29] [PASSED] HDMI-A
[17:28:29] [PASSED] HDMI-B
[17:28:29] [PASSED] TV
[17:28:29] [PASSED] eDP
[17:28:29] [PASSED] Virtual
[17:28:29] [PASSED] DSI
[17:28:29] [PASSED] DPI
[17:28:29] [PASSED] Writeback
[17:28:29] [PASSED] SPI
[17:28:29] [PASSED] USB
[17:28:29] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[17:28:29] =============== [PASSED] drmm_connector_init ===============
[17:28:29] ========= drm_connector_dynamic_init (6 subtests) ==========
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_init
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_init_properties
[17:28:29] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[17:28:29] [PASSED] Unknown
[17:28:29] [PASSED] VGA
[17:28:29] [PASSED] DVI-I
[17:28:29] [PASSED] DVI-D
[17:28:29] [PASSED] DVI-A
[17:28:29] [PASSED] Composite
[17:28:29] [PASSED] SVIDEO
[17:28:29] [PASSED] LVDS
[17:28:29] [PASSED] Component
[17:28:29] [PASSED] DIN
[17:28:29] [PASSED] DP
[17:28:29] [PASSED] HDMI-A
[17:28:29] [PASSED] HDMI-B
[17:28:29] [PASSED] TV
[17:28:29] [PASSED] eDP
[17:28:29] [PASSED] Virtual
[17:28:29] [PASSED] DSI
[17:28:29] [PASSED] DPI
[17:28:29] [PASSED] Writeback
[17:28:29] [PASSED] SPI
[17:28:29] [PASSED] USB
[17:28:29] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[17:28:29] ======== drm_test_drm_connector_dynamic_init_name =========
[17:28:29] [PASSED] Unknown
[17:28:29] [PASSED] VGA
[17:28:29] [PASSED] DVI-I
[17:28:29] [PASSED] DVI-D
[17:28:29] [PASSED] DVI-A
[17:28:29] [PASSED] Composite
[17:28:29] [PASSED] SVIDEO
[17:28:29] [PASSED] LVDS
[17:28:29] [PASSED] Component
[17:28:29] [PASSED] DIN
[17:28:29] [PASSED] DP
[17:28:29] [PASSED] HDMI-A
[17:28:29] [PASSED] HDMI-B
[17:28:29] [PASSED] TV
[17:28:29] [PASSED] eDP
[17:28:29] [PASSED] Virtual
[17:28:29] [PASSED] DSI
[17:28:29] [PASSED] DPI
[17:28:29] [PASSED] Writeback
[17:28:29] [PASSED] SPI
[17:28:29] [PASSED] USB
[17:28:29] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[17:28:29] =========== [PASSED] drm_connector_dynamic_init ============
[17:28:29] ==== drm_connector_dynamic_register_early (4 subtests) =====
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[17:28:29] ====== [PASSED] drm_connector_dynamic_register_early =======
[17:28:29] ======= drm_connector_dynamic_register (7 subtests) ========
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[17:28:29] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[17:28:29] ========= [PASSED] drm_connector_dynamic_register ==========
[17:28:29] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[17:28:29] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[17:28:29] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[17:28:29] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[17:28:29] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[17:28:29] ========== drm_test_get_tv_mode_from_name_valid ===========
[17:28:29] [PASSED] NTSC
[17:28:29] [PASSED] NTSC-443
[17:28:29] [PASSED] NTSC-J
[17:28:29] [PASSED] PAL
[17:28:29] [PASSED] PAL-M
[17:28:29] [PASSED] PAL-N
[17:28:29] [PASSED] SECAM
[17:28:29] [PASSED] Mono
[17:28:29] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[17:28:29] [PASSED] drm_test_get_tv_mode_from_name_truncated
[17:28:29] ============ [PASSED] drm_get_tv_mode_from_name ============
[17:28:29] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[17:28:29] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[17:28:29] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[17:28:29] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[17:28:29] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[17:28:29] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[17:28:29] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[17:28:29] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[17:28:29] [PASSED] VIC 96
[17:28:29] [PASSED] VIC 97
[17:28:29] [PASSED] VIC 101
[17:28:29] [PASSED] VIC 102
[17:28:29] [PASSED] VIC 106
[17:28:29] [PASSED] VIC 107
[17:28:29] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[17:28:29] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[17:28:29] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[17:28:29] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[17:28:29] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[17:28:29] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[17:28:29] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[17:28:29] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[17:28:29] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[17:28:29] [PASSED] Automatic
[17:28:29] [PASSED] Full
[17:28:29] [PASSED] Limited 16:235
[17:28:29] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[17:28:29] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[17:28:29] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[17:28:29] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[17:28:29] === drm_test_drm_hdmi_connector_get_output_format_name ====
[17:28:29] [PASSED] RGB
[17:28:29] [PASSED] YUV 4:2:0
[17:28:29] [PASSED] YUV 4:2:2
[17:28:29] [PASSED] YUV 4:4:4
[17:28:29] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[17:28:29] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[17:28:29] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[17:28:29] ============= drm_damage_helper (21 subtests) ==============
[17:28:29] [PASSED] drm_test_damage_iter_no_damage
[17:28:29] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[17:28:29] [PASSED] drm_test_damage_iter_no_damage_src_moved
[17:28:29] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[17:28:29] [PASSED] drm_test_damage_iter_no_damage_not_visible
[17:28:29] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[17:28:29] [PASSED] drm_test_damage_iter_no_damage_no_fb
[17:28:29] [PASSED] drm_test_damage_iter_simple_damage
[17:28:29] [PASSED] drm_test_damage_iter_single_damage
[17:28:29] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[17:28:29] [PASSED] drm_test_damage_iter_single_damage_outside_src
[17:28:29] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[17:28:29] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[17:28:29] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[17:28:29] [PASSED] drm_test_damage_iter_single_damage_src_moved
[17:28:29] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[17:28:29] [PASSED] drm_test_damage_iter_damage
[17:28:29] [PASSED] drm_test_damage_iter_damage_one_intersect
[17:28:29] [PASSED] drm_test_damage_iter_damage_one_outside
[17:28:29] [PASSED] drm_test_damage_iter_damage_src_moved
[17:28:29] [PASSED] drm_test_damage_iter_damage_not_visible
[17:28:29] ================ [PASSED] drm_damage_helper ================
[17:28:29] ============== drm_dp_mst_helper (3 subtests) ==============
[17:28:29] ============== drm_test_dp_mst_calc_pbn_mode ==============
[17:28:29] [PASSED] Clock 154000 BPP 30 DSC disabled
[17:28:29] [PASSED] Clock 234000 BPP 30 DSC disabled
[17:28:29] [PASSED] Clock 297000 BPP 24 DSC disabled
[17:28:29] [PASSED] Clock 332880 BPP 24 DSC enabled
[17:28:29] [PASSED] Clock 324540 BPP 24 DSC enabled
[17:28:29] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[17:28:29] ============== drm_test_dp_mst_calc_pbn_div ===============
[17:28:29] [PASSED] Link rate 2000000 lane count 4
[17:28:29] [PASSED] Link rate 2000000 lane count 2
[17:28:29] [PASSED] Link rate 2000000 lane count 1
[17:28:29] [PASSED] Link rate 1350000 lane count 4
[17:28:29] [PASSED] Link rate 1350000 lane count 2
[17:28:29] [PASSED] Link rate 1350000 lane count 1
[17:28:29] [PASSED] Link rate 1000000 lane count 4
[17:28:29] [PASSED] Link rate 1000000 lane count 2
[17:28:29] [PASSED] Link rate 1000000 lane count 1
[17:28:29] [PASSED] Link rate 810000 lane count 4
[17:28:29] [PASSED] Link rate 810000 lane count 2
[17:28:29] [PASSED] Link rate 810000 lane count 1
[17:28:29] [PASSED] Link rate 540000 lane count 4
[17:28:29] [PASSED] Link rate 540000 lane count 2
[17:28:29] [PASSED] Link rate 540000 lane count 1
[17:28:29] [PASSED] Link rate 270000 lane count 4
[17:28:29] [PASSED] Link rate 270000 lane count 2
[17:28:29] [PASSED] Link rate 270000 lane count 1
[17:28:29] [PASSED] Link rate 162000 lane count 4
[17:28:29] [PASSED] Link rate 162000 lane count 2
[17:28:29] [PASSED] Link rate 162000 lane count 1
[17:28:29] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[17:28:29] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[17:28:29] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[17:28:29] [PASSED] DP_POWER_UP_PHY with port number
[17:28:29] [PASSED] DP_POWER_DOWN_PHY with port number
[17:28:29] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[17:28:29] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[17:28:29] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[17:28:29] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[17:28:29] [PASSED] DP_QUERY_PAYLOAD with port number
[17:28:29] [PASSED] DP_QUERY_PAYLOAD with VCPI
[17:28:29] [PASSED] DP_REMOTE_DPCD_READ with port number
[17:28:29] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[17:28:29] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[17:28:29] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[17:28:29] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[17:28:29] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[17:28:29] [PASSED] DP_REMOTE_I2C_READ with port number
[17:28:29] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[17:28:29] [PASSED] DP_REMOTE_I2C_READ with transactions array
[17:28:29] [PASSED] DP_REMOTE_I2C_WRITE with port number
[17:28:29] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[17:28:29] [PASSED] DP_REMOTE_I2C_WRITE with data array
[17:28:29] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[17:28:29] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[17:28:29] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[17:28:29] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[17:28:29] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[17:28:29] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[17:28:29] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[17:28:29] ================ [PASSED] drm_dp_mst_helper ================
[17:28:29] ================== drm_exec (7 subtests) ===================
[17:28:29] [PASSED] sanitycheck
[17:28:29] [PASSED] test_lock
[17:28:29] [PASSED] test_lock_unlock
[17:28:29] [PASSED] test_duplicates
[17:28:29] [PASSED] test_prepare
[17:28:29] [PASSED] test_prepare_array
[17:28:29] [PASSED] test_multiple_loops
[17:28:29] ==================== [PASSED] drm_exec =====================
[17:28:29] =========== drm_format_helper_test (17 subtests) ===========
[17:28:29] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[17:28:29] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[17:28:29] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[17:28:29] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[17:28:29] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[17:28:29] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[17:28:29] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[17:28:29] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[17:28:29] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[17:28:29] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[17:28:29] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[17:28:29] ============== drm_test_fb_xrgb8888_to_mono ===============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[17:28:29] ==================== drm_test_fb_swab =====================
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ================ [PASSED] drm_test_fb_swab =================
[17:28:29] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[17:28:29] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[17:28:29] [PASSED] single_pixel_source_buffer
[17:28:29] [PASSED] single_pixel_clip_rectangle
[17:28:29] [PASSED] well_known_colors
[17:28:29] [PASSED] destination_pitch
[17:28:29] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[17:28:29] ================= drm_test_fb_clip_offset =================
[17:28:29] [PASSED] pass through
[17:28:29] [PASSED] horizontal offset
[17:28:29] [PASSED] vertical offset
[17:28:29] [PASSED] horizontal and vertical offset
[17:28:29] [PASSED] horizontal offset (custom pitch)
[17:28:29] [PASSED] vertical offset (custom pitch)
[17:28:29] [PASSED] horizontal and vertical offset (custom pitch)
[17:28:29] ============= [PASSED] drm_test_fb_clip_offset =============
[17:28:29] =================== drm_test_fb_memcpy ====================
[17:28:29] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[17:28:29] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[17:28:29] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[17:28:29] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[17:28:29] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[17:28:29] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[17:28:29] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[17:28:29] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[17:28:29] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[17:28:29] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[17:28:29] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[17:28:29] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[17:28:29] =============== [PASSED] drm_test_fb_memcpy ================
[17:28:29] ============= [PASSED] drm_format_helper_test ==============
[17:28:29] ================= drm_format (18 subtests) =================
[17:28:29] [PASSED] drm_test_format_block_width_invalid
[17:28:29] [PASSED] drm_test_format_block_width_one_plane
[17:28:29] [PASSED] drm_test_format_block_width_two_plane
[17:28:29] [PASSED] drm_test_format_block_width_three_plane
[17:28:29] [PASSED] drm_test_format_block_width_tiled
[17:28:29] [PASSED] drm_test_format_block_height_invalid
[17:28:29] [PASSED] drm_test_format_block_height_one_plane
[17:28:29] [PASSED] drm_test_format_block_height_two_plane
[17:28:29] [PASSED] drm_test_format_block_height_three_plane
[17:28:29] [PASSED] drm_test_format_block_height_tiled
[17:28:29] [PASSED] drm_test_format_min_pitch_invalid
[17:28:29] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[17:28:29] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[17:28:29] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[17:28:29] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[17:28:29] [PASSED] drm_test_format_min_pitch_two_plane
[17:28:29] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[17:28:29] [PASSED] drm_test_format_min_pitch_tiled
[17:28:29] =================== [PASSED] drm_format ====================
[17:28:29] ============== drm_framebuffer (10 subtests) ===============
[17:28:29] ========== drm_test_framebuffer_check_src_coords ==========
[17:28:29] [PASSED] Success: source fits into fb
[17:28:29] [PASSED] Fail: overflowing fb with x-axis coordinate
[17:28:29] [PASSED] Fail: overflowing fb with y-axis coordinate
[17:28:29] [PASSED] Fail: overflowing fb with source width
[17:28:29] [PASSED] Fail: overflowing fb with source height
[17:28:29] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[17:28:29] [PASSED] drm_test_framebuffer_cleanup
[17:28:29] =============== drm_test_framebuffer_create ===============
[17:28:29] [PASSED] ABGR8888 normal sizes
[17:28:29] [PASSED] ABGR8888 max sizes
[17:28:29] [PASSED] ABGR8888 pitch greater than min required
[17:28:29] [PASSED] ABGR8888 pitch less than min required
[17:28:29] [PASSED] ABGR8888 Invalid width
[17:28:29] [PASSED] ABGR8888 Invalid buffer handle
[17:28:29] [PASSED] No pixel format
[17:28:29] [PASSED] ABGR8888 Width 0
[17:28:29] [PASSED] ABGR8888 Height 0
[17:28:29] [PASSED] ABGR8888 Out of bound height * pitch combination
[17:28:29] [PASSED] ABGR8888 Large buffer offset
[17:28:29] [PASSED] ABGR8888 Buffer offset for inexistent plane
[17:28:29] [PASSED] ABGR8888 Invalid flag
[17:28:29] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[17:28:29] [PASSED] ABGR8888 Valid buffer modifier
[17:28:29] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[17:28:29] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[17:28:29] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[17:28:29] [PASSED] NV12 Normal sizes
[17:28:29] [PASSED] NV12 Max sizes
[17:28:29] [PASSED] NV12 Invalid pitch
[17:28:29] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[17:28:29] [PASSED] NV12 different modifier per-plane
[17:28:29] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[17:28:29] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[17:28:29] [PASSED] NV12 Modifier for inexistent plane
[17:28:29] [PASSED] NV12 Handle for inexistent plane
[17:28:29] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[17:28:29] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[17:28:29] [PASSED] YVU420 Normal sizes
[17:28:29] [PASSED] YVU420 Max sizes
[17:28:29] [PASSED] YVU420 Invalid pitch
[17:28:29] [PASSED] YVU420 Different pitches
[17:28:29] [PASSED] YVU420 Different buffer offsets/pitches
[17:28:29] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[17:28:29] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[17:28:29] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[17:28:29] [PASSED] YVU420 Valid modifier
[17:28:29] [PASSED] YVU420 Different modifiers per plane
[17:28:29] [PASSED] YVU420 Modifier for inexistent plane
[17:28:29] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[17:28:29] [PASSED] X0L2 Normal sizes
[17:28:29] [PASSED] X0L2 Max sizes
[17:28:29] [PASSED] X0L2 Invalid pitch
[17:28:29] [PASSED] X0L2 Pitch greater than minimum required
[17:28:29] [PASSED] X0L2 Handle for inexistent plane
[17:28:29] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[17:28:29] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[17:28:29] [PASSED] X0L2 Valid modifier
[17:28:29] [PASSED] X0L2 Modifier for inexistent plane
[17:28:29] =========== [PASSED] drm_test_framebuffer_create ===========
[17:28:29] [PASSED] drm_test_framebuffer_free
[17:28:29] [PASSED] drm_test_framebuffer_init
[17:28:29] [PASSED] drm_test_framebuffer_init_bad_format
[17:28:29] [PASSED] drm_test_framebuffer_init_dev_mismatch
[17:28:29] [PASSED] drm_test_framebuffer_lookup
[17:28:29] [PASSED] drm_test_framebuffer_lookup_inexistent
[17:28:29] [PASSED] drm_test_framebuffer_modifiers_not_supported
[17:28:29] ================= [PASSED] drm_framebuffer =================
[17:28:29] ================ drm_gem_shmem (8 subtests) ================
[17:28:29] [PASSED] drm_gem_shmem_test_obj_create
[17:28:29] [PASSED] drm_gem_shmem_test_obj_create_private
[17:28:29] [PASSED] drm_gem_shmem_test_pin_pages
[17:28:29] [PASSED] drm_gem_shmem_test_vmap
[17:28:29] [PASSED] drm_gem_shmem_test_get_pages_sgt
[17:28:29] [PASSED] drm_gem_shmem_test_get_sg_table
[17:28:29] [PASSED] drm_gem_shmem_test_madvise
[17:28:29] [PASSED] drm_gem_shmem_test_purge
[17:28:29] ================== [PASSED] drm_gem_shmem ==================
[17:28:29] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[17:28:29] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[17:28:29] [PASSED] Automatic
[17:28:29] [PASSED] Full
[17:28:29] [PASSED] Limited 16:235
[17:28:29] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[17:28:29] [PASSED] drm_test_check_disable_connector
[17:28:29] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[17:28:29] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[17:28:29] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[17:28:29] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[17:28:29] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[17:28:29] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[17:28:29] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[17:28:29] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[17:28:29] [PASSED] drm_test_check_output_bpc_dvi
[17:28:29] [PASSED] drm_test_check_output_bpc_format_vic_1
[17:28:29] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[17:28:29] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[17:28:29] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[17:28:29] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[17:28:29] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[17:28:29] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[17:28:29] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[17:28:29] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[17:28:29] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[17:28:29] [PASSED] drm_test_check_broadcast_rgb_value
[17:28:29] [PASSED] drm_test_check_bpc_8_value
[17:28:29] [PASSED] drm_test_check_bpc_10_value
[17:28:29] [PASSED] drm_test_check_bpc_12_value
[17:28:29] [PASSED] drm_test_check_format_value
[17:28:29] [PASSED] drm_test_check_tmds_char_value
[17:28:29] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[17:28:29] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[17:28:29] [PASSED] drm_test_check_mode_valid
[17:28:29] [PASSED] drm_test_check_mode_valid_reject
[17:28:29] [PASSED] drm_test_check_mode_valid_reject_rate
[17:28:29] [PASSED] drm_test_check_mode_valid_reject_max_clock
[17:28:29] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[17:28:29] ================= drm_managed (2 subtests) =================
[17:28:29] [PASSED] drm_test_managed_release_action
[17:28:29] [PASSED] drm_test_managed_run_action
[17:28:29] =================== [PASSED] drm_managed ===================
[17:28:29] =================== drm_mm (6 subtests) ====================
[17:28:29] [PASSED] drm_test_mm_init
[17:28:29] [PASSED] drm_test_mm_debug
[17:28:29] [PASSED] drm_test_mm_align32
[17:28:29] [PASSED] drm_test_mm_align64
[17:28:29] [PASSED] drm_test_mm_lowest
[17:28:29] [PASSED] drm_test_mm_highest
[17:28:29] ===================== [PASSED] drm_mm ======================
[17:28:29] ============= drm_modes_analog_tv (5 subtests) =============
[17:28:29] [PASSED] drm_test_modes_analog_tv_mono_576i
[17:28:29] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[17:28:29] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[17:28:29] [PASSED] drm_test_modes_analog_tv_pal_576i
[17:28:29] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[17:28:29] =============== [PASSED] drm_modes_analog_tv ===============
[17:28:29] ============== drm_plane_helper (2 subtests) ===============
[17:28:29] =============== drm_test_check_plane_state ================
[17:28:29] [PASSED] clipping_simple
[17:28:29] [PASSED] clipping_rotate_reflect
[17:28:29] [PASSED] positioning_simple
[17:28:29] [PASSED] upscaling
[17:28:29] [PASSED] downscaling
[17:28:29] [PASSED] rounding1
[17:28:29] [PASSED] rounding2
[17:28:29] [PASSED] rounding3
[17:28:29] [PASSED] rounding4
[17:28:29] =========== [PASSED] drm_test_check_plane_state ============
[17:28:29] =========== drm_test_check_invalid_plane_state ============
[17:28:29] [PASSED] positioning_invalid
[17:28:29] [PASSED] upscaling_invalid
[17:28:29] [PASSED] downscaling_invalid
[17:28:29] ======= [PASSED] drm_test_check_invalid_plane_state ========
[17:28:29] ================ [PASSED] drm_plane_helper =================
[17:28:29] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[17:28:29] ====== drm_test_connector_helper_tv_get_modes_check =======
[17:28:29] [PASSED] None
[17:28:29] [PASSED] PAL
[17:28:29] [PASSED] NTSC
[17:28:29] [PASSED] Both, NTSC Default
[17:28:29] [PASSED] Both, PAL Default
[17:28:29] [PASSED] Both, NTSC Default, with PAL on command-line
[17:28:29] [PASSED] Both, PAL Default, with NTSC on command-line
[17:28:29] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[17:28:29] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[17:28:29] ================== drm_rect (9 subtests) ===================
[17:28:29] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[17:28:29] [PASSED] drm_test_rect_clip_scaled_not_clipped
[17:28:29] [PASSED] drm_test_rect_clip_scaled_clipped
[17:28:29] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[17:28:29] ================= drm_test_rect_intersect =================
[17:28:29] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[17:28:29] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[17:28:29] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[17:28:29] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[17:28:29] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[17:28:29] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[17:28:29] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[17:28:29] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[17:28:29] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[17:28:29] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[17:28:29] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[17:28:29] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[17:28:29] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[17:28:29] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[17:28:29] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[17:28:29] ============= [PASSED] drm_test_rect_intersect =============
[17:28:29] ================ drm_test_rect_calc_hscale ================
[17:28:29] [PASSED] normal use
[17:28:29] [PASSED] out of max range
[17:28:29] [PASSED] out of min range
[17:28:29] [PASSED] zero dst
[17:28:29] [PASSED] negative src
[17:28:29] [PASSED] negative dst
[17:28:29] ============ [PASSED] drm_test_rect_calc_hscale ============
[17:28:29] ================ drm_test_rect_calc_vscale ================
[17:28:29] [PASSED] normal use
[17:28:29] [PASSED] out of max range
[17:28:29] [PASSED] out of min range
[17:28:29] [PASSED] zero dst
[17:28:29] [PASSED] negative src
[17:28:29] [PASSED] negative dst
[17:28:29] ============ [PASSED] drm_test_rect_calc_vscale ============
[17:28:29] ================== drm_test_rect_rotate ===================
[17:28:29] [PASSED] reflect-x
[17:28:29] [PASSED] reflect-y
[17:28:29] [PASSED] rotate-0
[17:28:29] [PASSED] rotate-90
[17:28:29] [PASSED] rotate-180
[17:28:29] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[17:28:29] ============== [PASSED] drm_test_rect_rotate ===============
[17:28:29] ================ drm_test_rect_rotate_inv =================
[17:28:29] [PASSED] reflect-x
[17:28:29] [PASSED] reflect-y
[17:28:29] [PASSED] rotate-0
[17:28:29] [PASSED] rotate-90
[17:28:29] [PASSED] rotate-180
[17:28:29] [PASSED] rotate-270
[17:28:29] ============ [PASSED] drm_test_rect_rotate_inv =============
[17:28:29] ==================== [PASSED] drm_rect =====================
[17:28:29] ============ drm_sysfb_modeset_test (1 subtest) ============
[17:28:29] ============ drm_test_sysfb_build_fourcc_list =============
[17:28:29] [PASSED] no native formats
[17:28:29] [PASSED] XRGB8888 as native format
[17:28:29] [PASSED] remove duplicates
[17:28:29] [PASSED] convert alpha formats
[17:28:29] [PASSED] random formats
[17:28:29] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[17:28:29] ============= [PASSED] drm_sysfb_modeset_test ==============
[17:28:29] ============================================================
[17:28:29] Testing complete. Ran 616 tests: passed: 616
[17:28:29] Elapsed time: 23.348s total, 1.647s configuring, 21.486s building, 0.165s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[17:28:29] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:28:30] 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
[17:28:38] Starting KUnit Kernel (1/1)...
[17:28:38] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:28:38] ================= ttm_device (5 subtests) ==================
[17:28:38] [PASSED] ttm_device_init_basic
[17:28:38] [PASSED] ttm_device_init_multiple
[17:28:38] [PASSED] ttm_device_fini_basic
[17:28:38] [PASSED] ttm_device_init_no_vma_man
[17:28:38] ================== ttm_device_init_pools ==================
[17:28:38] [PASSED] No DMA allocations, no DMA32 required
[17:28:38] [PASSED] DMA allocations, DMA32 required
[17:28:38] [PASSED] No DMA allocations, DMA32 required
[17:28:38] [PASSED] DMA allocations, no DMA32 required
[17:28:38] ============== [PASSED] ttm_device_init_pools ==============
[17:28:38] =================== [PASSED] ttm_device ====================
[17:28:38] ================== ttm_pool (8 subtests) ===================
[17:28:38] ================== ttm_pool_alloc_basic ===================
[17:28:38] [PASSED] One page
[17:28:38] [PASSED] More than one page
[17:28:38] [PASSED] Above the allocation limit
[17:28:38] [PASSED] One page, with coherent DMA mappings enabled
[17:28:38] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:28:38] ============== [PASSED] ttm_pool_alloc_basic ===============
[17:28:38] ============== ttm_pool_alloc_basic_dma_addr ==============
[17:28:38] [PASSED] One page
[17:28:38] [PASSED] More than one page
[17:28:38] [PASSED] Above the allocation limit
[17:28:38] [PASSED] One page, with coherent DMA mappings enabled
[17:28:38] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:28:38] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[17:28:38] [PASSED] ttm_pool_alloc_order_caching_match
[17:28:38] [PASSED] ttm_pool_alloc_caching_mismatch
[17:28:38] [PASSED] ttm_pool_alloc_order_mismatch
[17:28:38] [PASSED] ttm_pool_free_dma_alloc
[17:28:38] [PASSED] ttm_pool_free_no_dma_alloc
[17:28:38] [PASSED] ttm_pool_fini_basic
[17:28:38] ==================== [PASSED] ttm_pool =====================
[17:28:38] ================ ttm_resource (8 subtests) =================
[17:28:38] ================= ttm_resource_init_basic =================
[17:28:38] [PASSED] Init resource in TTM_PL_SYSTEM
[17:28:38] [PASSED] Init resource in TTM_PL_VRAM
[17:28:38] [PASSED] Init resource in a private placement
[17:28:38] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[17:28:38] ============= [PASSED] ttm_resource_init_basic =============
[17:28:38] [PASSED] ttm_resource_init_pinned
[17:28:38] [PASSED] ttm_resource_fini_basic
[17:28:38] [PASSED] ttm_resource_manager_init_basic
[17:28:38] [PASSED] ttm_resource_manager_usage_basic
[17:28:38] [PASSED] ttm_resource_manager_set_used_basic
[17:28:38] [PASSED] ttm_sys_man_alloc_basic
[17:28:38] [PASSED] ttm_sys_man_free_basic
[17:28:38] ================== [PASSED] ttm_resource ===================
[17:28:38] =================== ttm_tt (15 subtests) ===================
[17:28:38] ==================== ttm_tt_init_basic ====================
[17:28:38] [PASSED] Page-aligned size
[17:28:38] [PASSED] Extra pages requested
[17:28:38] ================ [PASSED] ttm_tt_init_basic ================
[17:28:38] [PASSED] ttm_tt_init_misaligned
[17:28:38] [PASSED] ttm_tt_fini_basic
[17:28:38] [PASSED] ttm_tt_fini_sg
[17:28:38] [PASSED] ttm_tt_fini_shmem
[17:28:38] [PASSED] ttm_tt_create_basic
[17:28:38] [PASSED] ttm_tt_create_invalid_bo_type
[17:28:38] [PASSED] ttm_tt_create_ttm_exists
[17:28:38] [PASSED] ttm_tt_create_failed
[17:28:38] [PASSED] ttm_tt_destroy_basic
[17:28:38] [PASSED] ttm_tt_populate_null_ttm
[17:28:38] [PASSED] ttm_tt_populate_populated_ttm
[17:28:38] [PASSED] ttm_tt_unpopulate_basic
[17:28:38] [PASSED] ttm_tt_unpopulate_empty_ttm
[17:28:38] [PASSED] ttm_tt_swapin_basic
[17:28:38] ===================== [PASSED] ttm_tt ======================
[17:28:38] =================== ttm_bo (14 subtests) ===================
[17:28:38] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[17:28:38] [PASSED] Cannot be interrupted and sleeps
[17:28:38] [PASSED] Cannot be interrupted, locks straight away
[17:28:38] [PASSED] Can be interrupted, sleeps
[17:28:38] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[17:28:38] [PASSED] ttm_bo_reserve_locked_no_sleep
[17:28:38] [PASSED] ttm_bo_reserve_no_wait_ticket
[17:28:38] [PASSED] ttm_bo_reserve_double_resv
[17:28:38] [PASSED] ttm_bo_reserve_interrupted
[17:28:38] [PASSED] ttm_bo_reserve_deadlock
[17:28:38] [PASSED] ttm_bo_unreserve_basic
[17:28:38] [PASSED] ttm_bo_unreserve_pinned
[17:28:38] [PASSED] ttm_bo_unreserve_bulk
[17:28:38] [PASSED] ttm_bo_put_basic
[17:28:38] [PASSED] ttm_bo_put_shared_resv
[17:28:38] [PASSED] ttm_bo_pin_basic
[17:28:38] [PASSED] ttm_bo_pin_unpin_resource
[17:28:38] [PASSED] ttm_bo_multiple_pin_one_unpin
[17:28:38] ===================== [PASSED] ttm_bo ======================
[17:28:38] ============== ttm_bo_validate (21 subtests) ===============
[17:28:38] ============== ttm_bo_init_reserved_sys_man ===============
[17:28:38] [PASSED] Buffer object for userspace
[17:28:38] [PASSED] Kernel buffer object
[17:28:38] [PASSED] Shared buffer object
[17:28:38] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[17:28:38] ============== ttm_bo_init_reserved_mock_man ==============
[17:28:38] [PASSED] Buffer object for userspace
[17:28:38] [PASSED] Kernel buffer object
[17:28:38] [PASSED] Shared buffer object
[17:28:38] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[17:28:38] [PASSED] ttm_bo_init_reserved_resv
[17:28:38] ================== ttm_bo_validate_basic ==================
[17:28:38] [PASSED] Buffer object for userspace
[17:28:38] [PASSED] Kernel buffer object
[17:28:38] [PASSED] Shared buffer object
[17:28:38] ============== [PASSED] ttm_bo_validate_basic ==============
[17:28:38] [PASSED] ttm_bo_validate_invalid_placement
[17:28:38] ============= ttm_bo_validate_same_placement ==============
[17:28:38] [PASSED] System manager
[17:28:38] [PASSED] VRAM manager
[17:28:38] ========= [PASSED] ttm_bo_validate_same_placement ==========
[17:28:38] [PASSED] ttm_bo_validate_failed_alloc
[17:28:38] [PASSED] ttm_bo_validate_pinned
[17:28:38] [PASSED] ttm_bo_validate_busy_placement
[17:28:38] ================ ttm_bo_validate_multihop =================
[17:28:38] [PASSED] Buffer object for userspace
[17:28:38] [PASSED] Kernel buffer object
[17:28:38] [PASSED] Shared buffer object
[17:28:38] ============ [PASSED] ttm_bo_validate_multihop =============
[17:28:38] ========== ttm_bo_validate_no_placement_signaled ==========
[17:28:38] [PASSED] Buffer object in system domain, no page vector
[17:28:38] [PASSED] Buffer object in system domain with an existing page vector
[17:28:38] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[17:28:38] ======== ttm_bo_validate_no_placement_not_signaled ========
[17:28:38] [PASSED] Buffer object for userspace
[17:28:38] [PASSED] Kernel buffer object
[17:28:38] [PASSED] Shared buffer object
[17:28:38] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[17:28:38] [PASSED] ttm_bo_validate_move_fence_signaled
[17:28:38] ========= ttm_bo_validate_move_fence_not_signaled =========
[17:28:38] [PASSED] Waits for GPU
[17:28:38] [PASSED] Tries to lock straight away
[17:28:38] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[17:28:38] [PASSED] ttm_bo_validate_happy_evict
[17:28:38] [PASSED] ttm_bo_validate_all_pinned_evict
[17:28:38] [PASSED] ttm_bo_validate_allowed_only_evict
[17:28:38] [PASSED] ttm_bo_validate_deleted_evict
[17:28:38] [PASSED] ttm_bo_validate_busy_domain_evict
[17:28:38] [PASSED] ttm_bo_validate_evict_gutting
[17:28:38] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[17:28:38] ================= [PASSED] ttm_bo_validate =================
[17:28:38] ============================================================
[17:28:38] Testing complete. Ran 101 tests: passed: 101
[17:28:38] Elapsed time: 9.577s total, 1.681s configuring, 7.680s building, 0.174s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ Xe.CI.BAT: success for Updates for drm/xe/configfs (rev5)
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (11 preceding siblings ...)
2025-07-27 17:28 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev5) Patchwork
@ 2025-07-27 18:07 ` Patchwork
2025-07-27 19:09 ` ✓ Xe.CI.Full: " Patchwork
13 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2025-07-27 18:07 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 941 bytes --]
== Series Details ==
Series: Updates for drm/xe/configfs (rev5)
URL : https://patchwork.freedesktop.org/series/151773/
State : success
== Summary ==
CI Bug Log - changes from xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04_BAT -> xe-pw-151773v5_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04 -> xe-pw-151773v5
IGT_8476: 232d4de46aa5ec03aee240657c0b36110f8a6246 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04: 11e629e8c02307977802ba0ea8c60ddb15b17d04
xe-pw-151773v5: 151773v5
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/index.html
[-- Attachment #2: Type: text/html, Size: 1489 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* ✓ Xe.CI.Full: success for Updates for drm/xe/configfs (rev5)
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
` (12 preceding siblings ...)
2025-07-27 18:07 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-07-27 19:09 ` Patchwork
13 siblings, 0 replies; 31+ messages in thread
From: Patchwork @ 2025-07-27 19:09 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 49931 bytes --]
== Series Details ==
Series: Updates for drm/xe/configfs (rev5)
URL : https://patchwork.freedesktop.org/series/151773/
State : success
== Summary ==
CI Bug Log - changes from xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04_FULL -> xe-pw-151773v5_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
New tests
---------
New tests have been introduced between xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04_FULL and xe-pw-151773v5_FULL:
### New IGT tests (13) ###
* igt@kms_flip@basic-flip-vs-modeset@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [0.65] s
* igt@kms_flip@blocking-absolute-wf_vblank-interruptible@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [7.64] s
* igt@kms_flip@blocking-absolute-wf_vblank@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [7.65] s
* igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [7.90] s
* igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1:
- Statuses : 1 dmesg-warn(s)
- Exec time: [7.63] s
* igt@kms_flip@flip-vs-modeset-vs-hang@d-hdmi-a1:
- Statuses : 1 dmesg-warn(s)
- Exec time: [0.61] s
* igt@kms_flip@flip-vs-panning-interruptible@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [7.63] s
* igt@kms_flip@modeset-vs-vblank-race@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [2.96] s
* igt@kms_flip@plain-flip-fb-recreate-interruptible@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [7.93] s
* igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [0.64] s
* igt@kms_flip@wf_vblank-ts-check@d-hdmi-a1:
- Statuses : 1 pass(s)
- Exec time: [7.95] s
* igt@xe_pm_residency@idle-residency-on-exec@gt0-engine-drm_xe_engine_class_video_decode:
- Statuses : 2 pass(s)
- Exec time: [3.05, 3.10] s
* igt@xe_pm_residency@idle-residency-on-exec@gt0-engine-drm_xe_engine_class_video_enhance:
- Statuses : 2 pass(s)
- Exec time: [3.06, 3.08] s
Known issues
------------
Here are the changes found in xe-pw-151773v5_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-adlp: NOTRUN -> [SKIP][1] ([Intel XE#1124]) +2 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +1 other test skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][3] ([Intel XE#1124])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html
* igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
- shard-adlp: NOTRUN -> [SKIP][4] ([Intel XE#2191])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
* igt@kms_bw@linear-tiling-1-displays-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#367])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#2887])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][7] ([Intel XE#787]) +11 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#2887]) +3 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][9] ([Intel XE#455] / [Intel XE#787]) +16 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-466/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-d-dp-4.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-b-dp-2:
- shard-dg2-set2: NOTRUN -> [SKIP][10] ([Intel XE#787]) +118 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-b-dp-2.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs:
- shard-adlp: NOTRUN -> [SKIP][11] ([Intel XE#455] / [Intel XE#787]) +7 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
- shard-adlp: NOTRUN -> [SKIP][12] ([Intel XE#2907])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [PASS][13] -> [INCOMPLETE][14] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4:
- shard-dg2-set2: [PASS][15] -> [INCOMPLETE][16] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#2724])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_chamelium_edid@vga-edid-read:
- shard-adlp: NOTRUN -> [SKIP][18] ([Intel XE#373])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_chamelium_edid@vga-edid-read.html
* igt@kms_chamelium_hpd@dp-hpd:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2252]) +1 other test skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_chamelium_hpd@dp-hpd.html
* igt@kms_chamelium_hpd@dp-hpd-with-enabled-mode:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#373])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_chamelium_hpd@dp-hpd-with-enabled-mode.html
* igt@kms_content_protection@atomic@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][21] ([Intel XE#1178])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_content_protection@atomic@pipe-a-dp-2.html
* igt@kms_content_protection@lic-type-0@pipe-a-dp-2:
- shard-dg2-set2: NOTRUN -> [FAIL][22] ([Intel XE#1178])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-432/igt@kms_content_protection@lic-type-0@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#2321]) +1 other test skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-adlp: NOTRUN -> [SKIP][24] ([Intel XE#308]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2291])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-bmg: [PASS][26] -> [SKIP][27] ([Intel XE#2291]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-4/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursor-vs-flip-toggle:
- shard-bmg: [PASS][28] -> [DMESG-WARN][29] ([Intel XE#5354])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
* igt@kms_dp_aux_dev:
- shard-bmg: [PASS][30] -> [SKIP][31] ([Intel XE#3009])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-4/igt@kms_dp_aux_dev.html
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-1/igt@kms_dp_aux_dev.html
* igt@kms_flip@2x-flip-vs-blocking-wf-vblank:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#2316]) +1 other test skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_flip@2x-flip-vs-blocking-wf-vblank.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-adlp: NOTRUN -> [SKIP][33] ([Intel XE#310])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
- shard-bmg: [PASS][34] -> [SKIP][35] ([Intel XE#2316]) +4 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-4/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
* igt@kms_flip@basic-plain-flip@b-hdmi-a1:
- shard-adlp: [PASS][36] -> [DMESG-WARN][37] ([Intel XE#4543]) +5 other tests dmesg-warn
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-2/igt@kms_flip@basic-plain-flip@b-hdmi-a1.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-6/igt@kms_flip@basic-plain-flip@b-hdmi-a1.html
* igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-lnl: [PASS][38] -> [FAIL][39] ([Intel XE#301]) +3 other tests fail
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
* igt@kms_flip@flip-vs-suspend:
- shard-adlp: NOTRUN -> [DMESG-WARN][40] ([Intel XE#2953] / [Intel XE#4173]) +1 other test dmesg-warn
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-bmg: [PASS][41] -> [INCOMPLETE][42] ([Intel XE#2049] / [Intel XE#2597]) +3 other tests incomplete
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-3/igt@kms_flip@flip-vs-suspend-interruptible.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-7/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1:
- shard-adlp: [PASS][43] -> [DMESG-WARN][44] ([Intel XE#2953] / [Intel XE#4173]) +5 other tests dmesg-warn
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-9/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-4/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#2293] / [Intel XE#2380])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2293])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#1397] / [Intel XE#1745])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#1397])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-x:
- shard-adlp: [PASS][49] -> [FAIL][50] ([Intel XE#1874])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-4/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-x.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-6/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-x-to-x.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x:
- shard-adlp: [PASS][51] -> [DMESG-FAIL][52] ([Intel XE#4543]) +1 other test dmesg-fail
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-4/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-6/igt@kms_flip_tiling@flip-change-tiling@pipe-c-hdmi-a-1-y-to-x.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt:
- shard-adlp: NOTRUN -> [SKIP][53] ([Intel XE#656]) +6 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-slowdraw:
- shard-adlp: NOTRUN -> [SKIP][54] ([Intel XE#651]) +2 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_frontbuffer_tracking@drrs-slowdraw.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#5390])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][56] ([Intel XE#656]) +2 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#2311]) +2 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#2312]) +8 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][59] ([Intel XE#653]) +3 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#2313]) +1 other test skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-adlp: NOTRUN -> [SKIP][61] ([Intel XE#4298])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_plane_lowres@tiling-y:
- shard-bmg: NOTRUN -> [SKIP][62] ([Intel XE#2393])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#2763]) +4 other tests skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html
* igt@kms_pm_dc@deep-pkgc:
- shard-lnl: NOTRUN -> [FAIL][64] ([Intel XE#2029])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf:
- shard-lnl: NOTRUN -> [SKIP][65] ([Intel XE#2893] / [Intel XE#4608])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][66] ([Intel XE#4608]) +1 other test skip
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
- shard-adlp: NOTRUN -> [SKIP][67] ([Intel XE#1489])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#1489]) +1 other test skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr@fbc-psr-cursor-blt:
- shard-bmg: NOTRUN -> [SKIP][69] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_psr@fbc-psr-cursor-blt.html
* igt@kms_psr@fbc-psr2-cursor-blt:
- shard-adlp: NOTRUN -> [SKIP][70] ([Intel XE#2850] / [Intel XE#929]) +2 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_psr@fbc-psr2-cursor-blt.html
* igt@kms_psr@fbc-psr2-primary-blt:
- shard-lnl: NOTRUN -> [SKIP][71] ([Intel XE#1406])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_psr@fbc-psr2-primary-blt.html
* igt@kms_psr@fbc-psr2-primary-blt@edp-1:
- shard-lnl: NOTRUN -> [SKIP][72] ([Intel XE#4609])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_psr@fbc-psr2-primary-blt@edp-1.html
* igt@kms_rotation_crc@primary-rotation-270:
- shard-lnl: NOTRUN -> [SKIP][73] ([Intel XE#3414] / [Intel XE#3904])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@kms_rotation_crc@primary-rotation-270.html
* igt@kms_scaling_modes@scaling-mode-center:
- shard-bmg: NOTRUN -> [SKIP][74] ([Intel XE#2413])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_scaling_modes@scaling-mode-center.html
* igt@kms_vrr@flip-suspend:
- shard-adlp: NOTRUN -> [SKIP][75] ([Intel XE#455]) +3 other tests skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@kms_vrr@flip-suspend.html
* igt@xe_eudebug@discovery-race-sigint:
- shard-adlp: NOTRUN -> [SKIP][76] ([Intel XE#4837] / [Intel XE#5565]) +2 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@xe_eudebug@discovery-race-sigint.html
* igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram:
- shard-bmg: NOTRUN -> [SKIP][77] ([Intel XE#4837]) +3 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-vram.html
* igt@xe_evict_ccs@evict-overcommit-parallel-instantfree-samefd:
- shard-adlp: NOTRUN -> [SKIP][78] ([Intel XE#5563] / [Intel XE#688])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@xe_evict_ccs@evict-overcommit-parallel-instantfree-samefd.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate:
- shard-adlp: NOTRUN -> [SKIP][79] ([Intel XE#1392] / [Intel XE#5575])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap:
- shard-dg2-set2: [PASS][80] -> [SKIP][81] ([Intel XE#1392]) +8 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-466/igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap.html
* igt@xe_exec_basic@multigpu-no-exec-rebind:
- shard-bmg: NOTRUN -> [SKIP][82] ([Intel XE#2322]) +1 other test skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@xe_exec_basic@multigpu-no-exec-rebind.html
* igt@xe_exec_basic@multigpu-once-null:
- shard-lnl: NOTRUN -> [SKIP][83] ([Intel XE#1392])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@xe_exec_basic@multigpu-once-null.html
* igt@xe_exec_fault_mode@many-userptr-imm:
- shard-adlp: NOTRUN -> [SKIP][84] ([Intel XE#288] / [Intel XE#5561]) +2 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@xe_exec_fault_mode@many-userptr-imm.html
* igt@xe_exec_sip_eudebug@wait-writesip-nodebug:
- shard-lnl: NOTRUN -> [SKIP][85] ([Intel XE#4837])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@xe_exec_sip_eudebug@wait-writesip-nodebug.html
* igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#4943]) +8 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset.html
* igt@xe_exec_system_allocator@many-large-execqueues-malloc-mlock:
- shard-adlp: NOTRUN -> [SKIP][87] ([Intel XE#4915] / [Intel XE#5560]) +40 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@xe_exec_system_allocator@many-large-execqueues-malloc-mlock.html
* igt@xe_exec_system_allocator@process-many-mmap-free-huge-nomemset:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#4943]) +2 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@xe_exec_system_allocator@process-many-mmap-free-huge-nomemset.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset:
- shard-lnl: [PASS][89] -> [FAIL][90] ([Intel XE#5018]) +1 other test fail
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-lnl-7/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-3/igt@xe_exec_system_allocator@threads-shared-vm-many-large-execqueues-new-bo-map-nomemset.html
* igt@xe_oa@map-oa-buffer:
- shard-adlp: NOTRUN -> [SKIP][91] ([Intel XE#3573]) +1 other test skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-9/igt@xe_oa@map-oa-buffer.html
* igt@xe_pm@s4-basic:
- shard-dg2-set2: [PASS][92] -> [INCOMPLETE][93] ([Intel XE#5382])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-432/igt@xe_pm@s4-basic.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-464/igt@xe_pm@s4-basic.html
* igt@xe_query@multigpu-query-invalid-cs-cycles:
- shard-bmg: NOTRUN -> [SKIP][94] ([Intel XE#944])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@xe_query@multigpu-query-invalid-cs-cycles.html
* igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs:
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#4130])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-2/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-reduce-numvfs.html
#### Possible fixes ####
* igt@kms_atomic_transition@modeset-transition:
- shard-bmg: [DMESG-WARN][96] -> [PASS][97] +9 other tests pass
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_atomic_transition@modeset-transition.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_atomic_transition@modeset-transition.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-adlp: [DMESG-FAIL][98] ([Intel XE#4543]) -> [PASS][99] +1 other test pass
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
- shard-bmg: [SKIP][100] ([Intel XE#2314] / [Intel XE#2894]) -> [PASS][101]
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
* igt@kms_color@degamma@pipe-a-dp-2:
- shard-bmg: [SKIP][102] ([Intel XE#5677]) -> [PASS][103]
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_color@degamma@pipe-a-dp-2.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_color@degamma@pipe-a-dp-2.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
- shard-bmg: [SKIP][104] ([Intel XE#2291]) -> [PASS][105] +4 other tests pass
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-2/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-bmg: [SKIP][106] ([Intel XE#4354]) -> [PASS][107]
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_dp_link_training@non-uhbr-sst.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-2/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-bmg: [SKIP][108] ([Intel XE#2316]) -> [PASS][109] +4 other tests pass
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_flip@2x-flip-vs-dpms.html
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [FAIL][110] ([Intel XE#301]) -> [PASS][111]
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_flip@flip-vs-rmfb-interruptible:
- shard-adlp: [DMESG-WARN][112] ([Intel XE#4543] / [Intel XE#5208]) -> [PASS][113]
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-8/igt@kms_flip@flip-vs-rmfb-interruptible.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible.html
* igt@kms_flip@flip-vs-rmfb-interruptible@b-hdmi-a1:
- shard-adlp: [DMESG-WARN][114] ([Intel XE#4543]) -> [PASS][115] +4 other tests pass
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-8/igt@kms_flip@flip-vs-rmfb-interruptible@b-hdmi-a1.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-1/igt@kms_flip@flip-vs-rmfb-interruptible@b-hdmi-a1.html
* igt@kms_flip@flip-vs-suspend:
- shard-bmg: [DMESG-WARN][116] ([Intel XE#5208]) -> [PASS][117]
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_flip@flip-vs-suspend.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_flip@flip-vs-suspend.html
* igt@kms_plane@plane-panning-bottom-right-suspend:
- shard-adlp: [DMESG-WARN][118] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][119] +3 other tests pass
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-2/igt@kms_plane@plane-panning-bottom-right-suspend.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-2/igt@kms_plane@plane-panning-bottom-right-suspend.html
* igt@kms_plane@plane-position-hole@pipe-a-plane-1:
- shard-bmg: [FAIL][120] -> [PASS][121]
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_plane@plane-position-hole@pipe-a-plane-1.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-2/igt@kms_plane@plane-position-hole@pipe-a-plane-1.html
* igt@kms_plane@plane-position-hole@pipe-a-plane-3:
- shard-bmg: [FAIL][122] ([Intel XE#5203]) -> [PASS][123] +2 other tests pass
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_plane@plane-position-hole@pipe-a-plane-3.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-2/igt@kms_plane@plane-position-hole@pipe-a-plane-3.html
* igt@kms_plane_multiple@tiling-x:
- shard-bmg: [DMESG-FAIL][124] ([Intel XE#3428] / [Intel XE#5175]) -> [PASS][125]
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_plane_multiple@tiling-x.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_plane_multiple@tiling-x.html
* igt@kms_plane_multiple@tiling-x@pipe-c-dp-2:
- shard-bmg: [FAIL][126] ([Intel XE#5375]) -> [PASS][127]
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_plane_multiple@tiling-x@pipe-c-dp-2.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_plane_multiple@tiling-x@pipe-c-dp-2.html
* igt@kms_plane_multiple@tiling-x@pipe-d-dp-2:
- shard-bmg: [SKIP][128] ([Intel XE#5676]) -> [PASS][129]
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_plane_multiple@tiling-x@pipe-d-dp-2.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_plane_multiple@tiling-x@pipe-d-dp-2.html
* igt@kms_pm_rpm@drm-resources-equal:
- shard-bmg: [DMESG-FAIL][130] ([Intel XE#3428]) -> [PASS][131] +1 other test pass
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_pm_rpm@drm-resources-equal.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-2/igt@kms_pm_rpm@drm-resources-equal.html
* igt@kms_setmode@basic:
- shard-adlp: [FAIL][132] ([Intel XE#2883]) -> [PASS][133] +2 other tests pass
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-2/igt@kms_setmode@basic.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-2/igt@kms_setmode@basic.html
* igt@kms_setmode@basic@pipe-b-edp-1:
- shard-lnl: [FAIL][134] ([Intel XE#2883]) -> [PASS][135]
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-lnl-8/igt@kms_setmode@basic@pipe-b-edp-1.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-4/igt@kms_setmode@basic@pipe-b-edp-1.html
* igt@xe_eu_stall@blocking-read:
- shard-bmg: [FAIL][136] ([Intel XE#5420]) -> [PASS][137]
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-4/igt@xe_eu_stall@blocking-read.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-1/igt@xe_eu_stall@blocking-read.html
* igt@xe_exec_basic@multigpu-once-rebind:
- shard-dg2-set2: [SKIP][138] ([Intel XE#1392]) -> [PASS][139] +3 other tests pass
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-432/igt@xe_exec_basic@multigpu-once-rebind.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-466/igt@xe_exec_basic@multigpu-once-rebind.html
* igt@xe_exec_fault_mode@twice-bindexecqueue-imm:
- shard-lnl: [FAIL][140] ([Intel XE#5523]) -> [PASS][141]
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-lnl-3/igt@xe_exec_fault_mode@twice-bindexecqueue-imm.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-8/igt@xe_exec_fault_mode@twice-bindexecqueue-imm.html
* igt@xe_exec_system_allocator@many-large-execqueues-mmap-remap-dontunmap-eocheck:
- shard-bmg: [DMESG-WARN][142] ([Intel XE#3428]) -> [PASS][143] +20 other tests pass
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@xe_exec_system_allocator@many-large-execqueues-mmap-remap-dontunmap-eocheck.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-2/igt@xe_exec_system_allocator@many-large-execqueues-mmap-remap-dontunmap-eocheck.html
* igt@xe_exec_threads@threads-hang-rebind-err:
- shard-dg2-set2: [DMESG-WARN][144] ([Intel XE#3876]) -> [PASS][145]
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-434/igt@xe_exec_threads@threads-hang-rebind-err.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-432/igt@xe_exec_threads@threads-hang-rebind-err.html
* igt@xe_pmu@gt-frequency:
- shard-dg2-set2: [FAIL][146] ([Intel XE#5166]) -> [PASS][147] +1 other test pass
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-432/igt@xe_pmu@gt-frequency.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-464/igt@xe_pmu@gt-frequency.html
#### Warnings ####
* igt@kms_content_protection@atomic:
- shard-bmg: [SKIP][148] ([Intel XE#2341]) -> [FAIL][149] ([Intel XE#1178])
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_content_protection@atomic.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_content_protection@atomic.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: [FAIL][150] ([Intel XE#301]) -> [FAIL][151] ([Intel XE#301] / [Intel XE#3149])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1:
- shard-adlp: [DMESG-WARN][152] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#4543]) -> [DMESG-WARN][153] ([Intel XE#4543])
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-adlp-9/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-adlp-4/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt:
- shard-bmg: [SKIP][154] ([Intel XE#2312]) -> [SKIP][155] ([Intel XE#2311]) +8 other tests skip
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][156] ([Intel XE#2311]) -> [SKIP][157] ([Intel XE#2312]) +6 other tests skip
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][158] ([Intel XE#5390]) -> [SKIP][159] ([Intel XE#2312]) +2 other tests skip
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][160] ([Intel XE#2312]) -> [SKIP][161] ([Intel XE#5390]) +8 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][162] ([Intel XE#2312]) -> [SKIP][163] ([Intel XE#2313]) +8 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][164] ([Intel XE#2313]) -> [SKIP][165] ([Intel XE#2312]) +6 other tests skip
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-bmg-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html
* igt@xe_peer2peer@read:
- shard-dg2-set2: [FAIL][166] ([Intel XE#1173]) -> [SKIP][167] ([Intel XE#1061])
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04/shard-dg2-466/igt@xe_peer2peer@read.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/shard-dg2-432/igt@xe_peer2peer@read.html
[Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[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#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
[Intel XE#2029]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2029
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[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#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2883]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2883
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#3009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3009
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[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#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3428
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
[Intel XE#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#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[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#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[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#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
[Intel XE#5166]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5166
[Intel XE#5175]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5175
[Intel XE#5203]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5203
[Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
[Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
[Intel XE#5375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5375
[Intel XE#5382]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5382
[Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
[Intel XE#5420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5420
[Intel XE#5523]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5523
[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#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
[Intel XE#5676]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5676
[Intel XE#5677]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5677
[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#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04 -> xe-pw-151773v5
IGT_8476: 232d4de46aa5ec03aee240657c0b36110f8a6246 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3479-11e629e8c02307977802ba0ea8c60ddb15b17d04: 11e629e8c02307977802ba0ea8c60ddb15b17d04
xe-pw-151773v5: 151773v5
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151773v5/index.html
[-- Attachment #2: Type: text/html, Size: 57786 bytes --]
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 01/11] drm/xe: Simplify module initialization code
2025-07-27 17:19 ` [PATCH v4 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
@ 2025-07-28 19:35 ` Rodrigo Vivi
2025-07-28 19:47 ` Michal Wajdeczko
2025-07-28 23:52 ` John Harrison
1 sibling, 1 reply; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 19:35 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Sun, Jul 27, 2025 at 07:19:58PM +0200, Michal Wajdeczko wrote:
> 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>
> ---
> 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..593bc9e5851a 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]);
perhaps we can go further and avoid this extra function calling
directly here:
err = init_funcs[i].init();
> if (err) {
> while (i--)
> - xe_call_exit_func(i);
> + xe_call_exit_func(&init_funcs[i]);
and
init_funcs[i].exit();
here ?
> 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]);
and here
init_funcs[i].exit();
But either way is fine I guess... up to you:
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> }
>
> module_init(xe_init);
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 02/11] drm/xe: Print module init abort code
2025-07-27 17:19 ` [PATCH v4 02/11] drm/xe: Print module init abort code Michal Wajdeczko
@ 2025-07-28 19:39 ` Rodrigo Vivi
2025-07-28 19:51 ` Michal Wajdeczko
0 siblings, 1 reply; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 19:39 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Sun, Jul 27, 2025 at 07:19:59PM +0200, Michal Wajdeczko wrote:
> 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>
> ---
> 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 593bc9e5851a..23be7c4cfde1 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));
pr_err ?!
> while (i--)
> xe_call_exit_func(&init_funcs[i]);
> return err;
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error
2025-07-27 17:20 ` [PATCH v4 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error Michal Wajdeczko
@ 2025-07-28 19:42 ` Rodrigo Vivi
0 siblings, 0 replies; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 19:42 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Sun, Jul 27, 2025 at 07:20:00PM +0200, Michal Wajdeczko wrote:
> While mutex_destroy() is NOP when CONFIG_DEBUG_MUTEXES is not
> enabled, we should still call it.
>
> While around, simplify init() code as there is no need to print
> separate error message, nor have a temporary variable, which was
> likely just taken from the example code. And drop a traling line.
The temporary variable was good while used in the pr_err to minimize
the line size. But I agree it has to go with the pr_err removed.
But perhaps 2 separate patches here? one for the mutex destroy
and one for the pr_err removal?
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
> drivers/gpu/drm/xe/xe_configfs.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 36e2b45b305f..6aa0531bcf76 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -392,15 +392,13 @@ 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;
> }
>
> @@ -410,5 +408,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 [flat|nested] 31+ messages in thread
* Re: [PATCH v4 01/11] drm/xe: Simplify module initialization code
2025-07-28 19:35 ` Rodrigo Vivi
@ 2025-07-28 19:47 ` Michal Wajdeczko
2025-07-28 20:00 ` Rodrigo Vivi
0 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-28 19:47 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-xe, Lucas De Marchi
On 7/28/2025 9:35 PM, Rodrigo Vivi wrote:
> On Sun, Jul 27, 2025 at 07:19:58PM +0200, Michal Wajdeczko wrote:
>> 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>
>> ---
>> 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..593bc9e5851a 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]);
>
> perhaps we can go further and avoid this extra function calling
> directly here:
>
> err = init_funcs[i].init();
it depends if we want to preserve support for unset .init
(I assumed it was added on purpose)
>
>> if (err) {
>> while (i--)
>> - xe_call_exit_func(i);
>> + xe_call_exit_func(&init_funcs[i]);
>
> and
> init_funcs[i].exit();
> here ?
.exit is optional, so this will have to be:
if (init_funcs[i].exit)
init_funcs[i].exit();
but likely compiler will do the same with current code
>
>> 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]);
>
> and here
> init_funcs[i].exit();
since .exit is optional, better to keep one helper than
duplicate code here
>
> But either way is fine I guess... up to you:
>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
thanks!
>
>> }
>>
>> module_init(xe_init);
>> --
>> 2.47.1
>>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 04/11] drm/xe/configfs: Use mutex from xe_configfs subsystem
2025-07-27 17:20 ` [PATCH v4 04/11] drm/xe/configfs: Use mutex from xe_configfs subsystem Michal Wajdeczko
@ 2025-07-28 19:50 ` Rodrigo Vivi
2025-07-28 19:55 ` Michal Wajdeczko
0 siblings, 1 reply; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 19:50 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Sun, Jul 27, 2025 at 07:20:01PM +0200, Michal Wajdeczko wrote:
> It should be sufficient to protect all configuration parameters
> using single mutex already defined inside xe_configfs subsystem.
>
> While around, also convert code to use guard/scoped_guard classes.
agree on the guard/scope change, but I believe we should keep
the local lock for the local variables only instead of re-using
a global one...
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
> drivers/gpu/drm/xe/xe_configfs.c | 29 +++++++++++------------------
> 1 file changed, 11 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 6aa0531bcf76..e32517afae58 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -85,14 +85,15 @@
> * rmdir /sys/kernel/config/xe/0000:03:00.0/
> */
>
> +/*
> + * Use xe_configfs.su_mutex (also accessible from group.cg_subsys->su_mutex)
> + * to protect configuration data.
> + */
> struct xe_config_device {
> struct config_group group;
>
> bool survivability_mode;
> u64 engines_allowed;
> -
> - /* protects attributes */
> - struct mutex lock;
> };
>
> struct engine_info {
> @@ -135,9 +136,8 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
> if (ret)
> return ret;
>
> - mutex_lock(&dev->lock);
> - dev->survivability_mode = survivability_mode;
> - mutex_unlock(&dev->lock);
> + scoped_guard(mutex, &item->ci_group->cg_subsys->su_mutex)
> + dev->survivability_mode = survivability_mode;
>
> return len;
> }
> @@ -219,9 +219,8 @@ static ssize_t engines_allowed_store(struct config_item *item, const char *page,
> val |= mask;
> }
>
> - mutex_lock(&dev->lock);
> - dev->engines_allowed = val;
> - mutex_unlock(&dev->lock);
> + scoped_guard(mutex, &item->ci_group->cg_subsys->su_mutex)
> + dev->engines_allowed = val;
>
> return len;
> }
> @@ -239,7 +238,6 @@ static void xe_config_device_release(struct config_item *item)
> {
> struct xe_config_device *dev = to_xe_config_device(item);
>
> - mutex_destroy(&dev->lock);
> kfree(dev);
> }
>
> @@ -286,8 +284,6 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>
> config_group_init_type_name(&dev->group, name, &xe_config_device_type);
>
> - mutex_init(&dev->lock);
> -
> return &dev->group;
> }
>
> @@ -311,12 +307,10 @@ static struct configfs_subsystem xe_configfs = {
>
> static struct xe_config_device *configfs_find_group(struct pci_dev *pdev)
> {
> + guard(mutex)(&xe_configfs.su_mutex);
> struct config_item *item;
>
> - mutex_lock(&xe_configfs.su_mutex);
> item = config_group_find_item(&xe_configfs.su_group, pci_name(pdev));
> - mutex_unlock(&xe_configfs.su_mutex);
> -
> if (!item)
> return NULL;
>
> @@ -360,9 +354,8 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
> if (!dev)
> return;
>
> - mutex_lock(&dev->lock);
> - dev->survivability_mode = 0;
> - mutex_unlock(&dev->lock);
> + scoped_guard(mutex, &xe_configfs.su_mutex)
> + dev->survivability_mode = 0;
>
> config_item_put(&dev->group.cg_item);
> }
> --
> 2.47.1
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 02/11] drm/xe: Print module init abort code
2025-07-28 19:39 ` Rodrigo Vivi
@ 2025-07-28 19:51 ` Michal Wajdeczko
2025-07-28 19:59 ` Rodrigo Vivi
0 siblings, 1 reply; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-28 19:51 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-xe, Lucas De Marchi
On 7/28/2025 9:39 PM, Rodrigo Vivi wrote:
> On Sun, Jul 27, 2025 at 07:19:59PM +0200, Michal Wajdeczko wrote:
>> 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>
>> ---
>> 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 593bc9e5851a..23be7c4cfde1 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));
>
> pr_err ?!
that was also my first choice, but then noticed
.init = xe_check_nomodeset,
which is used to skip driver load on purpose, but not due
to a real error, so I decided to switch back to pr_info
but if you insist ...
>
>> while (i--)
>> xe_call_exit_func(&init_funcs[i]);
>> return err;
>> --
>> 2.47.1
>>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 05/11] drm/xe/configfs: Rename struct xe_config_device
2025-07-27 17:20 ` [PATCH v4 05/11] drm/xe/configfs: Rename struct xe_config_device Michal Wajdeczko
@ 2025-07-28 19:54 ` Rodrigo Vivi
0 siblings, 0 replies; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 19:54 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Sun, Jul 27, 2025 at 07:20:02PM +0200, Michal Wajdeczko wrote:
> 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>
> ---
> 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 e32517afae58..edd52b8f0543 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -89,7 +89,7 @@
> * Use xe_configfs.su_mutex (also accessible from group.cg_subsys->su_mutex)
> * to protect configuration data.
> */
> -struct xe_config_device {
> +struct xe_config_group_device {
> struct config_group group;
>
> bool survivability_mode;
> @@ -114,21 +114,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;
>
> @@ -236,7 +236,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);
>
> kfree(dev);
> }
> @@ -255,7 +255,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;
> @@ -305,7 +305,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)
> {
> guard(mutex)(&xe_configfs.su_mutex);
> struct config_item *item;
> @@ -314,7 +314,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);
> }
>
> /**
> @@ -328,7 +328,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)
> @@ -349,7 +349,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;
> @@ -371,7 +371,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 [flat|nested] 31+ messages in thread
* Re: [PATCH v4 04/11] drm/xe/configfs: Use mutex from xe_configfs subsystem
2025-07-28 19:50 ` Rodrigo Vivi
@ 2025-07-28 19:55 ` Michal Wajdeczko
0 siblings, 0 replies; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-28 19:55 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: intel-xe, Lucas De Marchi
On 7/28/2025 9:50 PM, Rodrigo Vivi wrote:
> On Sun, Jul 27, 2025 at 07:20:01PM +0200, Michal Wajdeczko wrote:
>> It should be sufficient to protect all configuration parameters
>> using single mutex already defined inside xe_configfs subsystem.
>>
>> While around, also convert code to use guard/scoped_guard classes.
>
> agree on the guard/scope change, but I believe we should keep
> the local lock for the local variables only instead of re-using
> a global one...
Lucas was fine with that, hence the patch, see [1]:
"I think it would be fine. This is very rarely changed and doesn't matter
much it crosses all devices."
[1] https://patchwork.freedesktop.org/patch/665141/?series=151773&rev=4#comment_1219134
>
>>
>> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: Lucas De Marchi <lucas.demarchi@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_configfs.c | 29 +++++++++++------------------
>> 1 file changed, 11 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
>> index 6aa0531bcf76..e32517afae58 100644
>> --- a/drivers/gpu/drm/xe/xe_configfs.c
>> +++ b/drivers/gpu/drm/xe/xe_configfs.c
>> @@ -85,14 +85,15 @@
>> * rmdir /sys/kernel/config/xe/0000:03:00.0/
>> */
>>
>> +/*
>> + * Use xe_configfs.su_mutex (also accessible from group.cg_subsys->su_mutex)
>> + * to protect configuration data.
>> + */
>> struct xe_config_device {
>> struct config_group group;
>>
>> bool survivability_mode;
>> u64 engines_allowed;
>> -
>> - /* protects attributes */
>> - struct mutex lock;
>> };
>>
>> struct engine_info {
>> @@ -135,9 +136,8 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
>> if (ret)
>> return ret;
>>
>> - mutex_lock(&dev->lock);
>> - dev->survivability_mode = survivability_mode;
>> - mutex_unlock(&dev->lock);
>> + scoped_guard(mutex, &item->ci_group->cg_subsys->su_mutex)
>> + dev->survivability_mode = survivability_mode;
>>
>> return len;
>> }
>> @@ -219,9 +219,8 @@ static ssize_t engines_allowed_store(struct config_item *item, const char *page,
>> val |= mask;
>> }
>>
>> - mutex_lock(&dev->lock);
>> - dev->engines_allowed = val;
>> - mutex_unlock(&dev->lock);
>> + scoped_guard(mutex, &item->ci_group->cg_subsys->su_mutex)
>> + dev->engines_allowed = val;
>>
>> return len;
>> }
>> @@ -239,7 +238,6 @@ static void xe_config_device_release(struct config_item *item)
>> {
>> struct xe_config_device *dev = to_xe_config_device(item);
>>
>> - mutex_destroy(&dev->lock);
>> kfree(dev);
>> }
>>
>> @@ -286,8 +284,6 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
>>
>> config_group_init_type_name(&dev->group, name, &xe_config_device_type);
>>
>> - mutex_init(&dev->lock);
>> -
>> return &dev->group;
>> }
>>
>> @@ -311,12 +307,10 @@ static struct configfs_subsystem xe_configfs = {
>>
>> static struct xe_config_device *configfs_find_group(struct pci_dev *pdev)
>> {
>> + guard(mutex)(&xe_configfs.su_mutex);
>> struct config_item *item;
>>
>> - mutex_lock(&xe_configfs.su_mutex);
>> item = config_group_find_item(&xe_configfs.su_group, pci_name(pdev));
>> - mutex_unlock(&xe_configfs.su_mutex);
>> -
>> if (!item)
>> return NULL;
>>
>> @@ -360,9 +354,8 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
>> if (!dev)
>> return;
>>
>> - mutex_lock(&dev->lock);
>> - dev->survivability_mode = 0;
>> - mutex_unlock(&dev->lock);
>> + scoped_guard(mutex, &xe_configfs.su_mutex)
>> + dev->survivability_mode = 0;
>>
>> config_item_put(&dev->group.cg_item);
>> }
>> --
>> 2.47.1
>>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 06/11] drm/xe/configfs: Rename configfs_find_group() helper
2025-07-27 17:20 ` [PATCH v4 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
@ 2025-07-28 19:57 ` Rodrigo Vivi
0 siblings, 0 replies; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 19:57 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Sun, Jul 27, 2025 at 07:20:03PM +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 edd52b8f0543..f5a780b8bb80 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -305,7 +305,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)
> {
> guard(mutex)(&xe_configfs.su_mutex);
> struct config_item *item;
> @@ -328,14 +328,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;
> }
> @@ -349,7 +349,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;
> @@ -357,7 +357,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
> scoped_guard(mutex, &xe_configfs.su_mutex)
> dev->survivability_mode = 0;
>
> - config_item_put(&dev->group.cg_item);
> + config_group_put(&dev->group);
> }
>
> /**
> @@ -371,14 +371,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] 31+ messages in thread
* Re: [PATCH v4 02/11] drm/xe: Print module init abort code
2025-07-28 19:51 ` Michal Wajdeczko
@ 2025-07-28 19:59 ` Rodrigo Vivi
0 siblings, 0 replies; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 19:59 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Mon, Jul 28, 2025 at 09:51:12PM +0200, Michal Wajdeczko wrote:
>
>
> On 7/28/2025 9:39 PM, Rodrigo Vivi wrote:
> > On Sun, Jul 27, 2025 at 07:19:59PM +0200, Michal Wajdeczko wrote:
> >> 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>
> >> ---
> >> 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 593bc9e5851a..23be7c4cfde1 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));
> >
> > pr_err ?!
>
> that was also my first choice, but then noticed
>
> .init = xe_check_nomodeset,
>
> which is used to skip driver load on purpose, but not due
> to a real error, so I decided to switch back to pr_info
>
> but if you insist ...
hmmm okay, let's go with info then
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> >
> >> while (i--)
> >> xe_call_exit_func(&init_funcs[i]);
> >> return err;
> >> --
> >> 2.47.1
> >>
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 01/11] drm/xe: Simplify module initialization code
2025-07-28 19:47 ` Michal Wajdeczko
@ 2025-07-28 20:00 ` Rodrigo Vivi
0 siblings, 0 replies; 31+ messages in thread
From: Rodrigo Vivi @ 2025-07-28 20:00 UTC (permalink / raw)
To: Michal Wajdeczko; +Cc: intel-xe, Lucas De Marchi
On Mon, Jul 28, 2025 at 09:47:39PM +0200, Michal Wajdeczko wrote:
>
>
> On 7/28/2025 9:35 PM, Rodrigo Vivi wrote:
> > On Sun, Jul 27, 2025 at 07:19:58PM +0200, Michal Wajdeczko wrote:
> >> 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>
> >> ---
> >> 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..593bc9e5851a 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]);
> >
> > perhaps we can go further and avoid this extra function calling
> > directly here:
> >
> > err = init_funcs[i].init();
>
> it depends if we want to preserve support for unset .init
> (I assumed it was added on purpose)
>
> >
> >> if (err) {
> >> while (i--)
> >> - xe_call_exit_func(i);
> >> + xe_call_exit_func(&init_funcs[i]);
> >
> > and
> > init_funcs[i].exit();
> > here ?
>
> .exit is optional, so this will have to be:
>
> if (init_funcs[i].exit)
> init_funcs[i].exit();
>
> but likely compiler will do the same with current code
>
> >
> >> 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]);
> >
> > and here
> > init_funcs[i].exit();
>
> since .exit is optional, better to keep one helper than
> duplicate code here
agreed... keep the helpers than and the rv-b
>
> >
> > But either way is fine I guess... up to you:
> >
> > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
> thanks!
> >
> >> }
> >>
> >> module_init(xe_init);
> >> --
> >> 2.47.1
> >>
>
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 01/11] drm/xe: Simplify module initialization code
2025-07-27 17:19 ` [PATCH v4 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
2025-07-28 19:35 ` Rodrigo Vivi
@ 2025-07-28 23:52 ` John Harrison
2025-07-29 8:39 ` Michal Wajdeczko
1 sibling, 1 reply; 31+ messages in thread
From: John Harrison @ 2025-07-28 23:52 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe; +Cc: Lucas De Marchi
On 7/27/2025 10:19 AM, Michal Wajdeczko wrote:
> 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.
Not sure this counts as specific to configfs but it looks like a good
clean up.
>
> 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>
> ---
> 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..593bc9e5851a 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]);
Would clearer to write as 'init_funcs + i'. The compiler should generate
the same code but &x[i] is technically a reference to a derefence of an
arithmetic operation rather than just an arithmetic operation.
Either way:
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
> 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);
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 07/11] drm/xe/configfs: Reintroduce struct xe_config_device
2025-07-27 17:20 ` [PATCH v4 07/11] drm/xe/configfs: Reintroduce struct xe_config_device Michal Wajdeczko
@ 2025-07-29 0:06 ` John Harrison
0 siblings, 0 replies; 31+ messages in thread
From: John Harrison @ 2025-07-29 0:06 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe; +Cc: Lucas De Marchi
On 7/27/2025 10:20 AM, Michal Wajdeczko wrote:
> 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>
> ---
> 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 f5a780b8bb80..a5f13dd779c7 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -92,8 +92,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;
> };
>
> struct engine_info {
> @@ -119,16 +121,21 @@ 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);
> }
>
> static ssize_t survivability_mode_store(struct config_item *item, const char *page, size_t len)
> {
> - struct xe_config_group_device *dev = to_xe_config_group_device(item);
> + struct xe_config_device *dev = to_xe_config_device(item);
> bool survivability_mode;
> int ret;
>
> @@ -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++) {
> @@ -199,7 +206,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_group_device *dev = to_xe_config_group_device(item);
> + struct xe_config_device *dev = to_xe_config_device(item);
> size_t patternlen, p;
> u64 mask, val = 0;
>
> @@ -280,7 +287,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);
>
> @@ -334,7 +341,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;
> @@ -355,7 +362,7 @@ void xe_configfs_clear_survivability_mode(struct pci_dev *pdev)
> return;
>
> scoped_guard(mutex, &xe_configfs.su_mutex)
> - dev->survivability_mode = 0;
> + dev->config.survivability_mode = 0;
>
> config_group_put(&dev->group);
> }
> @@ -377,7 +384,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;
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 08/11] drm/xe/configfs: Keep default device config settings together
2025-07-27 17:20 ` [PATCH v4 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
@ 2025-07-29 0:07 ` John Harrison
0 siblings, 0 replies; 31+ messages in thread
From: John Harrison @ 2025-07-29 0:07 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe; +Cc: Lucas De Marchi
On 7/27/2025 10:20 AM, 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 a5f13dd779c7..60d89d3ef656 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -98,6 +98,16 @@ struct xe_config_group_device {
> } config;
> };
>
> +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;
> @@ -286,8 +296,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);
>
> @@ -339,7 +348,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);
> @@ -382,7 +391,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);
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 09/11] drm/xe/configfs: Check if device was preconfigured
2025-07-27 17:20 ` [PATCH v4 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
@ 2025-07-29 0:11 ` John Harrison
0 siblings, 0 replies; 31+ messages in thread
From: John Harrison @ 2025-07-29 0:11 UTC (permalink / raw)
To: Michal Wajdeczko, intel-xe; +Cc: Lucas De Marchi
On 7/27/2025 10:20 AM, 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 60d89d3ef656..73fb6812efe0 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -108,6 +108,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;
> @@ -333,6 +338,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"
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH v4 01/11] drm/xe: Simplify module initialization code
2025-07-28 23:52 ` John Harrison
@ 2025-07-29 8:39 ` Michal Wajdeczko
0 siblings, 0 replies; 31+ messages in thread
From: Michal Wajdeczko @ 2025-07-29 8:39 UTC (permalink / raw)
To: John Harrison, intel-xe; +Cc: Lucas De Marchi
On 7/29/2025 1:52 AM, John Harrison wrote:
> On 7/27/2025 10:19 AM, Michal Wajdeczko wrote:
>> 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.
> Not sure this counts as specific to configfs but it looks like a good clean up.
it becomes a prerequisite due to cleanup of xe_configfs_init()
>
>>
>> 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>
>> ---
>> 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..593bc9e5851a 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]);
> Would clearer to write as 'init_funcs + i'. The compiler should generate the same code but &x[i] is technically a reference to a derefence of an arithmetic operation rather than just an arithmetic operation.
ha, actually I had that this way, but decided to switch to
more frequently used &foo[i] pattern to avoid pushback ;)
but I can still make the other way (as now there are two of us)
>
> Either way:
> Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
thanks!
>
>> 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);
>
^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2025-07-29 8:39 UTC | newest]
Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-27 17:19 [PATCH v4 00/11] Updates for drm/xe/configfs Michal Wajdeczko
2025-07-27 17:19 ` [PATCH v4 01/11] drm/xe: Simplify module initialization code Michal Wajdeczko
2025-07-28 19:35 ` Rodrigo Vivi
2025-07-28 19:47 ` Michal Wajdeczko
2025-07-28 20:00 ` Rodrigo Vivi
2025-07-28 23:52 ` John Harrison
2025-07-29 8:39 ` Michal Wajdeczko
2025-07-27 17:19 ` [PATCH v4 02/11] drm/xe: Print module init abort code Michal Wajdeczko
2025-07-28 19:39 ` Rodrigo Vivi
2025-07-28 19:51 ` Michal Wajdeczko
2025-07-28 19:59 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 03/11] drm/xe/configfs: Destroy xe_configfs.su_mutex on exit/error Michal Wajdeczko
2025-07-28 19:42 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 04/11] drm/xe/configfs: Use mutex from xe_configfs subsystem Michal Wajdeczko
2025-07-28 19:50 ` Rodrigo Vivi
2025-07-28 19:55 ` Michal Wajdeczko
2025-07-27 17:20 ` [PATCH v4 05/11] drm/xe/configfs: Rename struct xe_config_device Michal Wajdeczko
2025-07-28 19:54 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 06/11] drm/xe/configfs: Rename configfs_find_group() helper Michal Wajdeczko
2025-07-28 19:57 ` Rodrigo Vivi
2025-07-27 17:20 ` [PATCH v4 07/11] drm/xe/configfs: Reintroduce struct xe_config_device Michal Wajdeczko
2025-07-29 0:06 ` John Harrison
2025-07-27 17:20 ` [PATCH v4 08/11] drm/xe/configfs: Keep default device config settings together Michal Wajdeczko
2025-07-29 0:07 ` John Harrison
2025-07-27 17:20 ` [PATCH v4 09/11] drm/xe/configfs: Check if device was preconfigured Michal Wajdeczko
2025-07-29 0:11 ` John Harrison
2025-07-27 17:20 ` [PATCH v4 10/11] drm/xe/configfs: Only allow configurations for supported devices Michal Wajdeczko
2025-07-27 17:20 ` [PATCH v4 11/11] drm/xe/configfs: Allow adding configurations for future VFs Michal Wajdeczko
2025-07-27 17:28 ` ✓ CI.KUnit: success for Updates for drm/xe/configfs (rev5) Patchwork
2025-07-27 18:07 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-27 19:09 ` ✓ Xe.CI.Full: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.