Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] Add a configfs to program the hwconfig
@ 2026-11-11  0:08 Stuart Summers
  2026-11-11  0:08 ` [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table Stuart Summers
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Stuart Summers @ 2026-11-11  0:08 UTC (permalink / raw)
  Cc: intel-xe, fei.yang, rodrigo.vivi, Stuart Summers

For debugging it can be interesting to program different values
than the ones being decrypted from the GuC firmware for the
hwconfig. This isn't intended to be used in production as these
values are defined by architecture for the given platform.

Developed in collaboration with claude opus 5.

Stuart Summers (1):
  drm/xe/configfs: Allow overriding the GuC hwconfig table

 drivers/gpu/drm/xe/xe_configfs.c     | 119 ++++++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_configfs.h     |   6 ++
 drivers/gpu/drm/xe/xe_guc_hwconfig.c |  36 +++++---
 3 files changed, 150 insertions(+), 11 deletions(-)

-- 
2.43.0


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

* [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table
  2026-11-11  0:08 [PATCH 0/1] Add a configfs to program the hwconfig Stuart Summers
@ 2026-11-11  0:08 ` Stuart Summers
  2026-11-11  0:25   ` sashiko-bot
  2026-11-11 19:37   ` Rodrigo Vivi
  2026-11-11  1:35 ` ✓ CI.KUnit: success for Add a configfs to program the hwconfig Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 7+ messages in thread
From: Stuart Summers @ 2026-11-11  0:08 UTC (permalink / raw)
  Cc: intel-xe, fei.yang, rodrigo.vivi, Stuart Summers

Add a binary configfs attribute holding a raw hwconfig blob. When set
before bind, it is loaded into the hwconfig BO instead of querying GuC,
so all consumers - including the DRM_XE_DEVICE_QUERY_HWCONFIG IOCTL -
see the override. This also permits supplying a table on platforms where
GuC exposes none, which is useful for testing userspace against
hwconfig data the hardware does not report.

Signed-off-by: Stuart Summers <stuart.summers@intel.com>
---
 drivers/gpu/drm/xe/xe_configfs.c     | 119 ++++++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_configfs.h     |   6 ++
 drivers/gpu/drm/xe/xe_guc_hwconfig.c |  36 +++++---
 3 files changed, 150 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 2ddd707a6dbd..6f810b33e12d 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -63,7 +63,8 @@
  *	    ├── engines_allowed
  *	    ├── migrate_ulls_period_ms
  *	    ├── enable_psmi
- *	    └── disable_vram_page_offline
+ *	    ├── disable_vram_page_offline
+ *	    └── hwconfig
  *
  * After configuring the attributes as per next section, the device can be
  * probed with::
@@ -277,6 +278,22 @@
  *
  * This attribute can only be set before binding to the device.
  *
+ * Hwconfig:
+ * ---------
+ *
+ * Override the hardware configuration table normally obtained from the GuC
+ * with a user-provided binary blob. When set, the driver uses this table in
+ * place of the GuC one everywhere it is consumed, including the table
+ * reported to userspace by the DRM_XE_DEVICE_QUERY_HWCONFIG query. This also
+ * allows a table to be provided on platforms where the GuC exposes none.
+ *
+ * The blob is the raw hwconfig table, so its size must be a multiple of 4
+ * bytes. Writing a new blob replaces the previous one::
+ *
+ *	# cat hwconfig.bin > /sys/kernel/config/xe/0000:03:00.0/hwconfig
+ *
+ * This attribute can only be set before binding to the device.
+ *
  * Remove devices
  * ==============
  *
@@ -291,6 +308,12 @@ struct wa_bb {
 	u32 len; /* in dwords */
 };
 
+/* User-provided replacement for the GuC-provided hwconfig table */
+struct hwconfig_blob {
+	void *data;
+	size_t len; /* in bytes */
+};
+
 struct xe_config_group_device {
 	struct config_group group;
 	struct config_group sriov;
@@ -299,6 +322,7 @@ struct xe_config_group_device {
 		u64 gt_types_allowed;
 		u64 engines_allowed;
 		u32 migrate_ulls_period_ms;
+		struct hwconfig_blob hwconfig;
 		struct wa_bb ctx_restore_post_bb[XE_ENGINE_CLASS_MAX];
 		struct wa_bb ctx_restore_mid_bb[XE_ENGINE_CLASS_MAX];
 		bool survivability_mode;
@@ -937,6 +961,50 @@ static ssize_t ctx_restore_post_bb_store(struct config_item *item,
 	return wa_bb_store(dev->config.ctx_restore_post_bb, dev, data, sz);
 }
 
+static ssize_t hwconfig_read(struct config_item *item, void *buf, size_t count)
+{
+	struct xe_config_group_device *dev = to_xe_config_group_device(item);
+
+	guard(mutex)(&dev->lock);
+
+	if (!buf)
+		return dev->config.hwconfig.len;
+
+	count = min(count, dev->config.hwconfig.len);
+	memcpy(buf, dev->config.hwconfig.data, count);
+
+	return count;
+}
+
+static ssize_t hwconfig_write(struct config_item *item, const void *buf, size_t count)
+{
+	struct xe_config_group_device *dev = to_xe_config_group_device(item);
+	void *data = NULL;
+
+	/* The table is a sequence of dwords */
+	if (count % sizeof(u32))
+		return -EINVAL;
+
+	if (count) {
+		data = kmemdup(buf, count, GFP_KERNEL);
+		if (!data)
+			return -ENOMEM;
+	}
+
+	guard(mutex)(&dev->lock);
+
+	if (is_bound(dev)) {
+		kfree(data);
+		return -EBUSY;
+	}
+
+	kfree(dev->config.hwconfig.data);
+	dev->config.hwconfig.data = data;
+	dev->config.hwconfig.len = count;
+
+	return count;
+}
+
 CONFIGFS_ATTR(, ctx_restore_mid_bb);
 CONFIGFS_ATTR(, ctx_restore_post_bb);
 CONFIGFS_ATTR(, enable_multi_queue);
@@ -946,6 +1014,7 @@ CONFIGFS_ATTR(, disable_vram_page_offline);
 CONFIGFS_ATTR(, engines_allowed);
 CONFIGFS_ATTR(, gt_types_allowed);
 CONFIGFS_ATTR(, survivability_mode);
+CONFIGFS_BIN_ATTR(, hwconfig, NULL, SZ_64K);
 
 static struct configfs_attribute *xe_config_device_attrs[] = {
 	&attr_ctx_restore_mid_bb,
@@ -960,12 +1029,18 @@ static struct configfs_attribute *xe_config_device_attrs[] = {
 	NULL,
 };
 
+static const struct configfs_bin_attribute *const xe_config_device_bin_attrs[] = {
+	&attr_hwconfig,
+	NULL,
+};
+
 static void xe_config_device_release(struct config_item *item)
 {
 	struct xe_config_group_device *dev = to_xe_config_group_device(item);
 
 	mutex_destroy(&dev->lock);
 
+	kfree(dev->config.hwconfig.data);
 	kfree(dev->config.ctx_restore_mid_bb[0].cs);
 	kfree(dev->config.ctx_restore_post_bb[0].cs);
 	kfree(dev);
@@ -1001,6 +1076,7 @@ static const struct config_item_type xe_config_device_type = {
 	.ct_item_ops	= &xe_config_device_ops,
 	.ct_group_ops	= &xe_config_device_group_ops,
 	.ct_attrs	= xe_config_device_attrs,
+	.ct_bin_attrs	= xe_config_device_bin_attrs,
 	.ct_owner	= THIS_MODULE,
 };
 
@@ -1243,6 +1319,10 @@ static void dump_custom_dev_config(struct pci_dev *pdev,
 	PRI_CUSTOM_ATTR("%u", sriov.admin_only_pf);
 
 #undef PRI_CUSTOM_ATTR
+
+	if (dev->config.hwconfig.len)
+		pci_info(pdev, "configfs: hwconfig = %zu bytes\n",
+			 dev->config.hwconfig.len);
 }
 
 /**
@@ -1479,6 +1559,43 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
 	return len;
 }
 
+/**
+ * xe_configfs_get_hwconfig - get a copy of the configfs hwconfig blob
+ * @pdev: pci device
+ * @blob: pointer to store the newly allocated copy of the blob
+ *
+ * If a hwconfig table override was written to configfs for @pdev, allocate a
+ * copy of it and store the pointer in @blob. The caller takes ownership of it
+ * and is responsible for freeing it with kfree().
+ *
+ * Return: size in bytes of the blob stored in @blob, or 0 if no override is
+ *     set or it could not be copied.
+ */
+size_t xe_configfs_get_hwconfig(struct pci_dev *pdev, void **blob)
+{
+	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
+	size_t len = 0;
+
+	*blob = NULL;
+
+	if (!dev)
+		return 0;
+
+	scoped_guard(mutex, &dev->lock) {
+		if (!dev->config.hwconfig.len)
+			break;
+
+		*blob = kmemdup(dev->config.hwconfig.data,
+				dev->config.hwconfig.len, GFP_KERNEL);
+		if (*blob)
+			len = dev->config.hwconfig.len;
+	}
+
+	config_group_put(&dev->group);
+
+	return len;
+}
+
 #ifdef CONFIG_PCI_IOV
 /**
  * xe_configfs_admin_only_pf() - Get PF's operational mode.
diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
index 327b648944ff..526250e9fdfe 100644
--- a/drivers/gpu/drm/xe/xe_configfs.h
+++ b/drivers/gpu/drm/xe/xe_configfs.h
@@ -32,6 +32,7 @@ u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev,
 u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
 					enum xe_engine_class class,
 					const u32 **cs);
+size_t xe_configfs_get_hwconfig(struct pci_dev *pdev, void **blob);
 #ifdef CONFIG_PCI_IOV
 unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev);
 bool xe_configfs_admin_only_pf(struct pci_dev *pdev);
@@ -54,6 +55,11 @@ static inline u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev,
 static inline u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
 						      enum xe_engine_class class,
 						      const u32 **cs) { return 0; }
+static inline size_t xe_configfs_get_hwconfig(struct pci_dev *pdev, void **blob)
+{
+	*blob = NULL;
+	return 0;
+}
 #ifdef CONFIG_PCI_IOV
 static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
 {
diff --git a/drivers/gpu/drm/xe/xe_guc_hwconfig.c b/drivers/gpu/drm/xe/xe_guc_hwconfig.c
index dc667a71b438..33abfdfcff41 100644
--- a/drivers/gpu/drm/xe/xe_guc_hwconfig.c
+++ b/drivers/gpu/drm/xe/xe_guc_hwconfig.c
@@ -10,7 +10,9 @@
 
 #include "abi/guc_actions_abi.h"
 #include "xe_bo.h"
+#include "xe_configfs.h"
 #include "xe_device_types.h"
+#include "xe_gt_printk.h"
 #include "xe_gt_types.h"
 #include "xe_guc.h"
 #include "xe_map.h"
@@ -55,6 +57,7 @@ int xe_guc_hwconfig_init(struct xe_guc *guc)
 	struct xe_gt *gt = guc_to_gt(guc);
 	struct xe_tile *tile = gt_to_tile(gt);
 	struct xe_bo *bo;
+	void *blob;
 	u32 size;
 	int err;
 
@@ -68,25 +71,38 @@ int xe_guc_hwconfig_init(struct xe_guc *guc)
 	if (gt != xe_root_mmio_gt(xe))
 		return 0;
 
-	/* ADL_P, DG2+ supports hwconfig table */
-	if (GRAPHICS_VERx100(xe) < 1255 && xe->info.platform != XE_ALDERLAKE_P)
-		return 0;
-
-	err = guc_hwconfig_size(guc, &size);
-	if (err)
-		return err;
-	if (!size)
-		return -EINVAL;
+	size = xe_configfs_get_hwconfig(to_pci_dev(xe->drm.dev), &blob);
+	if (!size) {
+		/* ADL_P, DG2+ supports hwconfig table */
+		if (GRAPHICS_VERx100(xe) < 1255 && xe->info.platform != XE_ALDERLAKE_P)
+			return 0;
+
+		err = guc_hwconfig_size(guc, &size);
+		if (err)
+			return err;
+		if (!size)
+			return -EINVAL;
+	}
 
 	bo = xe_managed_bo_create_pin_map(xe, tile, PAGE_ALIGN(size),
 					  XE_BO_FLAG_SYSTEM |
 					  XE_BO_FLAG_GGTT |
 					  XE_BO_FLAG_GGTT_INVALIDATE);
-	if (IS_ERR(bo))
+	if (IS_ERR(bo)) {
+		kfree(blob);
 		return PTR_ERR(bo);
+	}
 	guc->hwconfig.bo = bo;
 	guc->hwconfig.size = size;
 
+	if (blob) {
+		xe_map_memcpy_to(xe, &bo->vmap, 0, blob, size);
+		kfree(blob);
+		xe_gt_info(gt, "Using hwconfig table override from configfs (%u bytes)\n",
+			   size);
+		return 0;
+	}
+
 	return guc_hwconfig_copy(guc);
 }
 
-- 
2.43.0


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

* Re: [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table
  2026-11-11  0:08 ` [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table Stuart Summers
@ 2026-11-11  0:25   ` sashiko-bot
  2026-11-11 19:37   ` Rodrigo Vivi
  1 sibling, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-11-11  0:25 UTC (permalink / raw)
  To: Stuart Summers; +Cc: intel-xe

Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [Medium] drm/xe: infinite loop on malformed configfs blob in
  xe_guc_hwconfig_lookup_u32()
- [Medium] drm/xe/configfs: uninitialized vmalloc memory leak in
  hwconfig_read()
--

commit 690eaa0a0c57392da54e4454901c30297777be5c
Author: Stuart Summers <stuart.summers@intel.com>

drm/xe/configfs: Allow overriding the GuC hwconfig table

This commit adds a binary configfs attribute to override the GuC hwconfig
table before binding the PCI device.

> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 2ddd707a6dbd3..6f810b33e12d9 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c

[ ... ]

> @@ -937,6 +961,50 @@ static ssize_t ctx_restore_post_bb_store(struct config_item *item,
>  	return wa_bb_store(dev->config.ctx_restore_post_bb, dev, data, sz);
>  }
>  
> +static ssize_t hwconfig_read(struct config_item *item, void *buf, size_t count)
> +{
> +	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +
> +	guard(mutex)(&dev->lock);
> +
> +	if (!buf)
> +		return dev->config.hwconfig.len;
> +
> +	count = min(count, dev->config.hwconfig.len);
> +	memcpy(buf, dev->config.hwconfig.data, count);
> +
> +	return count;
> +}

[Severity: Medium]
Can a concurrent hwconfig_write() cause hwconfig_read() to leak
uninitialized vmalloc() memory to userspace?

configfs_bin_read_iter() calls ->read() twice without holding dev->lock
across both calls:

CPU0                              CPU1
configfs_bin_read_iter()
  len = hwconfig_read(..., NULL, 0)
  buffer->bin_buffer = vmalloc(len)
  buffer->bin_buffer_size = len
                                  hwconfig_write()
                                    /* replaces blob with smaller len */
  len = hwconfig_read(..., bin_buffer, len)
    /* copies only smaller len, returns >= 0 */
  copy_to_iter(bin_buffer, bin_buffer_size, to)
    <-- copies uninitialized vmalloc() tail to userspace

Because configfs_bin_read_iter() only aborts when the second ->read()
returns a negative value and otherwise copies the full bin_buffer_size,
returning a negative error (such as -EAGAIN) when count !=
dev->config.hwconfig.len would avoid the short fill.

> +
> +static ssize_t hwconfig_write(struct config_item *item, const void *buf, size_t count)
> +{
> +	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +	void *data = NULL;
> +
> +	/* The table is a sequence of dwords */
> +	if (count % sizeof(u32))
> +		return -EINVAL;

[Severity: Medium]
Can a malformed hwconfig blob written here cause an infinite loop in
xe_guc_hwconfig_lookup_u32() during device probe?

hwconfig_write() only checks that count is a multiple of 4 bytes without
validating the KLV entry lengths.  When xe_guc_hwconfig_lookup_u32()
later walks the overridden table (for example from xe_gt_mcr_init() ->
init_steering_dss() -> dss_per_group()), it advances past non-matching
keys without checking len_dw:

drivers/gpu/drm/xe/xe_guc_hwconfig.c:xe_guc_hwconfig_lookup_u32() {
    ...
	while (i + 3 <= num_dw) {
		u32 key = hwconfig[i++];
		u32 len_dw = hwconfig[i++];

		if (key != attribute) {
			i += len_dw;
			continue;
		}

		*val = hwconfig[i];
    ...
}

If an entry has len_dw == 0xfffffffe, i += len_dw wraps 32-bit int i back
to the start of the same entry and hangs the probe thread; in
xe_guc_hwconfig_dump(), i + len_dw > num_dw also wraps in 32-bit unsigned
arithmetic before widening to u64 num_dw.  In addition, if len_dw == 0 on
a matching key, xe_guc_hwconfig_lookup_u32() reads the next entry's key
dword into *val.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261111000818.238585-3-stuart.summers@intel.com?part=1

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

* ✓ CI.KUnit: success for Add a configfs to program the hwconfig
  2026-11-11  0:08 [PATCH 0/1] Add a configfs to program the hwconfig Stuart Summers
  2026-11-11  0:08 ` [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table Stuart Summers
@ 2026-11-11  1:35 ` Patchwork
  2026-11-11  2:09 ` ✓ Xe.CI.BAT: " Patchwork
  2026-11-11  7:06 ` ✓ Xe.CI.FULL: " Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-11-11  1:35 UTC (permalink / raw)
  To: Stuart Summers; +Cc: intel-xe

== Series Details ==

Series: Add a configfs to program the hwconfig
URL   : https://patchwork.freedesktop.org/series/178249/
State : success

== Summary ==

+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[01:33:20] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:33:25] 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
[01:33:46] Starting KUnit Kernel (1/1)...
[01:33:46] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:33:46] ================= gpu_buddy (14 subtests) ==================
[01:33:46] [PASSED] gpu_test_buddy_alloc_limit
[01:33:46] [PASSED] gpu_test_buddy_alloc_optimistic
[01:33:46] [PASSED] gpu_test_buddy_alloc_pessimistic
[01:33:46] [PASSED] gpu_test_buddy_alloc_pathological
[01:33:46] [PASSED] gpu_test_buddy_alloc_contiguous
[01:33:46] [PASSED] gpu_test_buddy_alloc_clear
[01:33:46] [PASSED] gpu_test_buddy_alloc_range
[01:33:46] [PASSED] gpu_test_buddy_alloc_range_bias
[01:33:47] [PASSED] gpu_test_buddy_fragmentation_performance
[01:33:48] [PASSED] gpu_test_buddy_dirty_tracker_performance
[01:33:48] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[01:33:48] [PASSED] gpu_test_buddy_offset_aligned_allocation
[01:33:48] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[01:33:48] [PASSED] gpu_test_buddy_addr_to_block
[01:33:48] ==================== [PASSED] gpu_buddy ====================
[01:33:48] ============================================================
[01:33:48] Testing complete. Ran 14 tests: passed: 14
[01:33:48] Elapsed time: 27.271s total, 5.124s configuring, 20.229s building, 1.874s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[01:33:48] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:33:50] 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
[01:34:29] Starting KUnit Kernel (1/1)...
[01:34:29] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:34:29] ================== guc_buf (11 subtests) ===================
[01:34:29] [PASSED] test_smallest
[01:34:29] [PASSED] test_largest
[01:34:29] [PASSED] test_granular
[01:34:29] [PASSED] test_unique
[01:34:29] [PASSED] test_overlap
[01:34:29] [PASSED] test_reusable
[01:34:29] [PASSED] test_too_big
[01:34:29] [PASSED] test_flush
[01:34:29] [PASSED] test_lookup
[01:34:29] [PASSED] test_data
[01:34:29] [PASSED] test_class
[01:34:29] ===================== [PASSED] guc_buf =====================
[01:34:29] =================== guc_dbm (7 subtests) ===================
[01:34:29] [PASSED] test_empty
[01:34:29] [PASSED] test_default
[01:34:29] ======================== test_size  ========================
[01:34:29] [PASSED] 4
[01:34:29] [PASSED] 8
[01:34:29] [PASSED] 32
[01:34:29] [PASSED] 256
[01:34:29] ==================== [PASSED] test_size ====================
[01:34:29] ======================= test_reuse  ========================
[01:34:29] [PASSED] 4
[01:34:29] [PASSED] 8
[01:34:29] [PASSED] 32
[01:34:29] [PASSED] 256
[01:34:29] =================== [PASSED] test_reuse ====================
[01:34:29] =================== test_range_overlap  ====================
[01:34:29] [PASSED] 4
[01:34:29] [PASSED] 8
[01:34:29] [PASSED] 32
[01:34:29] [PASSED] 256
[01:34:29] =============== [PASSED] test_range_overlap ================
[01:34:29] =================== test_range_compact  ====================
[01:34:29] [PASSED] 4
[01:34:29] [PASSED] 8
[01:34:29] [PASSED] 32
[01:34:29] [PASSED] 256
[01:34:29] =============== [PASSED] test_range_compact ================
[01:34:29] ==================== test_range_spare  =====================
[01:34:29] [PASSED] 4
[01:34:29] [PASSED] 8
[01:34:29] [PASSED] 32
[01:34:29] [PASSED] 256
[01:34:29] ================ [PASSED] test_range_spare =================
[01:34:29] ===================== [PASSED] guc_dbm =====================
[01:34:29] ================== guc_idm (22 subtests) ===================
[01:34:29] [PASSED] bad_init
[01:34:29] [PASSED] no_init
[01:34:29] [PASSED] init_fini
[01:34:29] [PASSED] check_init_small
[01:34:29] [PASSED] check_init_shared
[01:34:29] [PASSED] check_used
[01:34:30] [PASSED] check_quota
[01:34:30] [PASSED] check_all
[01:34:30] [PASSED] check_limits
[01:34:30] [PASSED] check_overlap
[01:34:30] [PASSED] check_overlap_alloc
[01:34:30] [PASSED] check_overlap_release
[01:34:30] [PASSED] check_overlap_partial_init
[01:34:30] [PASSED] check_overlap_partial_shared_range_blocking
[01:34:30] [PASSED] check_used_usable
[01:34:30] [PASSED] check_used_shareable
[01:34:30] [PASSED] check_used_mixed
[01:34:30] [PASSED] check_release_usable_range
[01:34:30] [PASSED] check_release_shareable_range
[01:34:30] [PASSED] check_split_boundaries
[01:34:30] [PASSED] check_shareable_spare
[01:34:30] [PASSED] check_shareable_spare_fragmented_tail
[01:34:30] ===================== [PASSED] guc_idm =====================
[01:34:30] ============== guc_klv_helpers (13 subtests) ===============
[01:34:30] [PASSED] test_count
[01:34:30] [PASSED] test_encode_u32
[01:34:30] [PASSED] test_encode_u64
[01:34:30] [PASSED] test_encode_string
[01:34:30] [PASSED] test_encode_object_raw
[01:34:30] [PASSED] test_encode_object_klv
[01:34:30] [PASSED] test_encode_object_nested
[01:34:30] [PASSED] test_encode_object_basic
[01:34:30] ===================== test_decode_u16  =====================
[01:34:30] [PASSED] empty
[01:34:30] [PASSED] valid
[01:34:30] [PASSED] max
[01:34:30] [PASSED] big
[01:34:30] [PASSED] long
[01:34:30] ================= [PASSED] test_decode_u16 =================
[01:34:30] ===================== test_decode_u32  =====================
[01:34:30] [PASSED] empty
[01:34:30] [PASSED] valid
[01:34:30] [PASSED] max
[01:34:30] [PASSED] long
[01:34:30] ================= [PASSED] test_decode_u32 =================
[01:34:30] ===================== test_decode_u64  =====================
[01:34:30] [PASSED] empty
[01:34:30] [PASSED] short
[01:34:30] [PASSED] valid
[01:34:30] [PASSED] max
[01:34:30] [PASSED] long
[01:34:30] ================= [PASSED] test_decode_u64 =================
[01:34:30] ===================== test_decode_str  =====================
[01:34:30] [PASSED] empty
[01:34:30] [PASSED] one
[01:34:30] [PASSED] one_trash
[01:34:30] [PASSED] two
[01:34:30] [PASSED] two_trash
[01:34:30] [PASSED] three
[01:34:30] [PASSED] dword
[01:34:30] [PASSED] four
[01:34:30] [PASSED] five
[01:34:30] [PASSED] six
[01:34:30] [PASSED] seven
[01:34:30] [PASSED] qword
[01:34:30] ================= [PASSED] test_decode_str =================
[01:34:30] [PASSED] test_print
[01:34:30] ================= [PASSED] guc_klv_helpers =================
[01:34:30] =================== xe_log (4 subtests) ====================
[01:34:30] [PASSED] demo_cper
[01:34:30] [PASSED] demo_dmesg
[01:34:30] ======================= test_dmesg  ========================
[01:34:30] [PASSED] test_fatal
[01:34:30] [PASSED] test_fatal_tile
[01:34:30] [PASSED] test_fatal_gt
[01:34:30] [PASSED] test_fatal_comp
[01:34:30] [PASSED] test_fatal_comp_tile
[01:34:30] [PASSED] test_fatal_comp_gt
[01:34:30] [PASSED] test_fatal_all
[01:34:30] [PASSED] test_recoverable
[01:34:30] [PASSED] test_recoverable_tile
[01:34:30] [PASSED] test_recoverable_gt
[01:34:30] [PASSED] test_recoverable_comp
[01:34:30] [PASSED] test_recoverable_comp_tile
[01:34:30] [PASSED] test_recoverable_comp_gt
[01:34:30] [PASSED] test_recoverable_all
[01:34:30] [PASSED] test_info
[01:34:30] [PASSED] test_info_tile
[01:34:30] [PASSED] test_info_gt
[01:34:30] [PASSED] test_info_err
[01:34:30] [PASSED] test_info_comp
[01:34:30] [PASSED] test_info_comp_tile
[01:34:30] [PASSED] test_info_comp_gt
[01:34:30] [PASSED] test_info_all
[01:34:30] [PASSED] test_hw_fatal
[01:34:30] [PASSED] test_hw_recoverable
[01:34:30] [PASSED] test_hw_corrected
[01:34:30] [PASSED] test_hw_informational
[01:34:30] =================== [PASSED] test_dmesg ====================
[01:34:30] ====================== test_invalid  =======================
[01:34:30] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[01:34:30] ================== [SKIPPED] test_invalid ==================
[01:34:30] ===================== [PASSED] xe_log ======================
[01:34:30] ================== no_relay (3 subtests) ===================
[01:34:30] [PASSED] xe_drops_guc2pf_if_not_ready
[01:34:30] [PASSED] xe_drops_guc2vf_if_not_ready
[01:34:30] [PASSED] xe_rejects_send_if_not_ready
[01:34:30] ==================== [PASSED] no_relay =====================
[01:34:30] ================== pf_relay (14 subtests) ==================
[01:34:30] [PASSED] pf_rejects_guc2pf_too_short
[01:34:30] [PASSED] pf_rejects_guc2pf_too_long
[01:34:30] [PASSED] pf_rejects_guc2pf_no_payload
[01:34:30] [PASSED] pf_fails_no_payload
[01:34:30] [PASSED] pf_fails_bad_origin
[01:34:30] [PASSED] pf_fails_bad_type
[01:34:30] [PASSED] pf_txn_reports_error
[01:34:30] [PASSED] pf_txn_sends_pf2guc
[01:34:30] [PASSED] pf_sends_pf2guc
[01:34:30] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:34:30] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:34:30] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:34:30] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:34:30] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:34:30] ==================== [PASSED] pf_relay =====================
[01:34:30] ================== vf_relay (3 subtests) ===================
[01:34:30] [PASSED] vf_rejects_guc2vf_too_short
[01:34:30] [PASSED] vf_rejects_guc2vf_too_long
[01:34:30] [PASSED] vf_rejects_guc2vf_no_payload
[01:34:30] ==================== [PASSED] vf_relay =====================
[01:34:30] ================ pf_gt_config (9 subtests) =================
[01:34:30] [PASSED] fair_contexts_1vf
[01:34:30] [PASSED] fair_doorbells_1vf
[01:34:30] [PASSED] fair_ggtt_1vf
[01:34:30] ====================== fair_vram_1vf  ======================
[01:34:30] [PASSED] 3.50 GiB
[01:34:30] [PASSED] 11.5 GiB
[01:34:30] [PASSED] 15.5 GiB
[01:34:30] [PASSED] 31.5 GiB
[01:34:30] [PASSED] 63.5 GiB
[01:34:30] [PASSED] 1.91 GiB
[01:34:30] ================== [PASSED] fair_vram_1vf ==================
[01:34:30] ================ fair_vram_1vf_admin_only  =================
[01:34:30] [PASSED] 3.50 GiB
[01:34:30] [PASSED] 11.5 GiB
[01:34:30] [PASSED] 15.5 GiB
[01:34:30] [PASSED] 31.5 GiB
[01:34:30] [PASSED] 63.5 GiB
[01:34:30] [PASSED] 1.91 GiB
[01:34:30] ============ [PASSED] fair_vram_1vf_admin_only =============
[01:34:30] ====================== fair_contexts  ======================
[01:34:30] [PASSED] 1 VF
[01:34:30] [PASSED] 2 VFs
[01:34:30] [PASSED] 3 VFs
[01:34:30] [PASSED] 4 VFs
[01:34:30] [PASSED] 5 VFs
[01:34:30] [PASSED] 6 VFs
[01:34:30] [PASSED] 7 VFs
[01:34:30] [PASSED] 8 VFs
[01:34:30] [PASSED] 9 VFs
[01:34:30] [PASSED] 10 VFs
[01:34:30] [PASSED] 11 VFs
[01:34:30] [PASSED] 12 VFs
[01:34:30] [PASSED] 13 VFs
[01:34:30] [PASSED] 14 VFs
[01:34:30] [PASSED] 15 VFs
[01:34:30] [PASSED] 16 VFs
[01:34:30] [PASSED] 17 VFs
[01:34:30] [PASSED] 18 VFs
[01:34:30] [PASSED] 19 VFs
[01:34:30] [PASSED] 20 VFs
[01:34:30] [PASSED] 21 VFs
[01:34:30] [PASSED] 22 VFs
[01:34:30] [PASSED] 23 VFs
[01:34:30] [PASSED] 24 VFs
[01:34:30] [PASSED] 25 VFs
[01:34:30] [PASSED] 26 VFs
[01:34:30] [PASSED] 27 VFs
[01:34:30] [PASSED] 28 VFs
[01:34:30] [PASSED] 29 VFs
[01:34:30] [PASSED] 30 VFs
[01:34:30] [PASSED] 31 VFs
[01:34:30] [PASSED] 32 VFs
[01:34:30] [PASSED] 33 VFs
[01:34:30] [PASSED] 34 VFs
[01:34:30] [PASSED] 35 VFs
[01:34:30] [PASSED] 36 VFs
[01:34:30] [PASSED] 37 VFs
[01:34:30] [PASSED] 38 VFs
[01:34:30] [PASSED] 39 VFs
[01:34:30] [PASSED] 40 VFs
[01:34:30] [PASSED] 41 VFs
[01:34:30] [PASSED] 42 VFs
[01:34:30] [PASSED] 43 VFs
[01:34:30] [PASSED] 44 VFs
[01:34:30] [PASSED] 45 VFs
[01:34:30] [PASSED] 46 VFs
[01:34:30] [PASSED] 47 VFs
[01:34:30] [PASSED] 48 VFs
[01:34:30] [PASSED] 49 VFs
[01:34:30] [PASSED] 50 VFs
[01:34:30] [PASSED] 51 VFs
[01:34:30] [PASSED] 52 VFs
[01:34:30] [PASSED] 53 VFs
[01:34:30] [PASSED] 54 VFs
[01:34:30] [PASSED] 55 VFs
[01:34:30] [PASSED] 56 VFs
[01:34:30] [PASSED] 57 VFs
[01:34:30] [PASSED] 58 VFs
[01:34:30] [PASSED] 59 VFs
[01:34:30] [PASSED] 60 VFs
[01:34:30] [PASSED] 61 VFs
[01:34:30] [PASSED] 62 VFs
[01:34:30] [PASSED] 63 VFs
[01:34:30] ================== [PASSED] fair_contexts ==================
[01:34:30] ===================== fair_doorbells  ======================
[01:34:30] [PASSED] 1 VF
[01:34:30] [PASSED] 2 VFs
[01:34:30] [PASSED] 3 VFs
[01:34:30] [PASSED] 4 VFs
[01:34:30] [PASSED] 5 VFs
[01:34:30] [PASSED] 6 VFs
[01:34:30] [PASSED] 7 VFs
[01:34:30] [PASSED] 8 VFs
[01:34:30] [PASSED] 9 VFs
[01:34:30] [PASSED] 10 VFs
[01:34:30] [PASSED] 11 VFs
[01:34:30] [PASSED] 12 VFs
[01:34:30] [PASSED] 13 VFs
[01:34:30] [PASSED] 14 VFs
[01:34:30] [PASSED] 15 VFs
[01:34:30] [PASSED] 16 VFs
[01:34:30] [PASSED] 17 VFs
[01:34:30] [PASSED] 18 VFs
[01:34:30] [PASSED] 19 VFs
[01:34:30] [PASSED] 20 VFs
[01:34:30] [PASSED] 21 VFs
[01:34:30] [PASSED] 22 VFs
[01:34:30] [PASSED] 23 VFs
[01:34:30] [PASSED] 24 VFs
[01:34:30] [PASSED] 25 VFs
[01:34:30] [PASSED] 26 VFs
[01:34:30] [PASSED] 27 VFs
[01:34:30] [PASSED] 28 VFs
[01:34:30] [PASSED] 29 VFs
[01:34:30] [PASSED] 30 VFs
[01:34:30] [PASSED] 31 VFs
[01:34:30] [PASSED] 32 VFs
[01:34:30] [PASSED] 33 VFs
[01:34:30] [PASSED] 34 VFs
[01:34:30] [PASSED] 35 VFs
[01:34:30] [PASSED] 36 VFs
[01:34:30] [PASSED] 37 VFs
[01:34:30] [PASSED] 38 VFs
[01:34:30] [PASSED] 39 VFs
[01:34:30] [PASSED] 40 VFs
[01:34:30] [PASSED] 41 VFs
[01:34:30] [PASSED] 42 VFs
[01:34:30] [PASSED] 43 VFs
[01:34:30] [PASSED] 44 VFs
[01:34:30] [PASSED] 45 VFs
[01:34:30] [PASSED] 46 VFs
[01:34:30] [PASSED] 47 VFs
[01:34:30] [PASSED] 48 VFs
[01:34:30] [PASSED] 49 VFs
[01:34:30] [PASSED] 50 VFs
[01:34:30] [PASSED] 51 VFs
[01:34:30] [PASSED] 52 VFs
[01:34:30] [PASSED] 53 VFs
[01:34:30] [PASSED] 54 VFs
[01:34:30] [PASSED] 55 VFs
[01:34:30] [PASSED] 56 VFs
[01:34:30] [PASSED] 57 VFs
[01:34:30] [PASSED] 58 VFs
[01:34:30] [PASSED] 59 VFs
[01:34:30] [PASSED] 60 VFs
[01:34:30] [PASSED] 61 VFs
[01:34:30] [PASSED] 62 VFs
[01:34:30] [PASSED] 63 VFs
[01:34:30] ================= [PASSED] fair_doorbells ==================
[01:34:30] ======================== fair_ggtt  ========================
[01:34:30] [PASSED] 1 VF
[01:34:30] [PASSED] 2 VFs
[01:34:30] [PASSED] 3 VFs
[01:34:30] [PASSED] 4 VFs
[01:34:30] [PASSED] 5 VFs
[01:34:30] [PASSED] 6 VFs
[01:34:30] [PASSED] 7 VFs
[01:34:30] [PASSED] 8 VFs
[01:34:30] [PASSED] 9 VFs
[01:34:30] [PASSED] 10 VFs
[01:34:30] [PASSED] 11 VFs
[01:34:30] [PASSED] 12 VFs
[01:34:30] [PASSED] 13 VFs
[01:34:30] [PASSED] 14 VFs
[01:34:30] [PASSED] 15 VFs
[01:34:30] [PASSED] 16 VFs
[01:34:30] [PASSED] 17 VFs
[01:34:30] [PASSED] 18 VFs
[01:34:30] [PASSED] 19 VFs
[01:34:30] [PASSED] 20 VFs
[01:34:30] [PASSED] 21 VFs
[01:34:30] [PASSED] 22 VFs
[01:34:30] [PASSED] 23 VFs
[01:34:30] [PASSED] 24 VFs
[01:34:30] [PASSED] 25 VFs
[01:34:30] [PASSED] 26 VFs
[01:34:30] [PASSED] 27 VFs
[01:34:30] [PASSED] 28 VFs
[01:34:30] [PASSED] 29 VFs
[01:34:30] [PASSED] 30 VFs
[01:34:30] [PASSED] 31 VFs
[01:34:30] [PASSED] 32 VFs
[01:34:30] [PASSED] 33 VFs
[01:34:30] [PASSED] 34 VFs
[01:34:30] [PASSED] 35 VFs
[01:34:30] [PASSED] 36 VFs
[01:34:30] [PASSED] 37 VFs
[01:34:30] [PASSED] 38 VFs
[01:34:30] [PASSED] 39 VFs
[01:34:30] [PASSED] 40 VFs
[01:34:30] [PASSED] 41 VFs
[01:34:30] [PASSED] 42 VFs
[01:34:30] [PASSED] 43 VFs
[01:34:30] [PASSED] 44 VFs
[01:34:30] [PASSED] 45 VFs
[01:34:30] [PASSED] 46 VFs
[01:34:30] [PASSED] 47 VFs
[01:34:30] [PASSED] 48 VFs
[01:34:30] [PASSED] 49 VFs
[01:34:30] [PASSED] 50 VFs
[01:34:30] [PASSED] 51 VFs
[01:34:30] [PASSED] 52 VFs
[01:34:30] [PASSED] 53 VFs
[01:34:30] [PASSED] 54 VFs
[01:34:30] [PASSED] 55 VFs
[01:34:30] [PASSED] 56 VFs
[01:34:30] [PASSED] 57 VFs
[01:34:30] [PASSED] 58 VFs
[01:34:30] [PASSED] 59 VFs
[01:34:30] [PASSED] 60 VFs
[01:34:30] [PASSED] 61 VFs
[01:34:30] [PASSED] 62 VFs
[01:34:30] [PASSED] 63 VFs
[01:34:30] ==================== [PASSED] fair_ggtt ====================
[01:34:30] ======================== fair_vram  ========================
[01:34:30] [PASSED] 1 VF
[01:34:30] [PASSED] 2 VFs
[01:34:30] [PASSED] 3 VFs
[01:34:30] [PASSED] 4 VFs
[01:34:30] [PASSED] 5 VFs
[01:34:30] [PASSED] 6 VFs
[01:34:30] [PASSED] 7 VFs
[01:34:30] [PASSED] 8 VFs
[01:34:30] [PASSED] 9 VFs
[01:34:30] [PASSED] 10 VFs
[01:34:30] [PASSED] 11 VFs
[01:34:30] [PASSED] 12 VFs
[01:34:30] [PASSED] 13 VFs
[01:34:30] [PASSED] 14 VFs
[01:34:30] [PASSED] 15 VFs
[01:34:30] [PASSED] 16 VFs
[01:34:30] [PASSED] 17 VFs
[01:34:30] [PASSED] 18 VFs
[01:34:30] [PASSED] 19 VFs
[01:34:30] [PASSED] 20 VFs
[01:34:30] [PASSED] 21 VFs
[01:34:30] [PASSED] 22 VFs
[01:34:30] [PASSED] 23 VFs
[01:34:30] [PASSED] 24 VFs
[01:34:30] [PASSED] 25 VFs
[01:34:30] [PASSED] 26 VFs
[01:34:30] [PASSED] 27 VFs
[01:34:30] [PASSED] 28 VFs
[01:34:30] [PASSED] 29 VFs
[01:34:30] [PASSED] 30 VFs
[01:34:30] [PASSED] 31 VFs
[01:34:30] [PASSED] 32 VFs
[01:34:30] [PASSED] 33 VFs
[01:34:30] [PASSED] 34 VFs
[01:34:30] [PASSED] 35 VFs
[01:34:30] [PASSED] 36 VFs
[01:34:30] [PASSED] 37 VFs
[01:34:30] [PASSED] 38 VFs
[01:34:30] [PASSED] 39 VFs
[01:34:30] [PASSED] 40 VFs
[01:34:30] [PASSED] 41 VFs
[01:34:30] [PASSED] 42 VFs
[01:34:30] [PASSED] 43 VFs
[01:34:30] [PASSED] 44 VFs
[01:34:30] [PASSED] 45 VFs
[01:34:30] [PASSED] 46 VFs
[01:34:30] [PASSED] 47 VFs
[01:34:30] [PASSED] 48 VFs
[01:34:30] [PASSED] 49 VFs
[01:34:30] [PASSED] 50 VFs
[01:34:30] [PASSED] 51 VFs
[01:34:30] [PASSED] 52 VFs
[01:34:30] [PASSED] 53 VFs
[01:34:30] [PASSED] 54 VFs
[01:34:30] [PASSED] 55 VFs
[01:34:30] [PASSED] 56 VFs
[01:34:30] [PASSED] 57 VFs
[01:34:30] [PASSED] 58 VFs
[01:34:30] [PASSED] 59 VFs
[01:34:30] [PASSED] 60 VFs
[01:34:30] [PASSED] 61 VFs
[01:34:30] [PASSED] 62 VFs
[01:34:30] [PASSED] 63 VFs
[01:34:30] ==================== [PASSED] fair_vram ====================
[01:34:30] ================== [PASSED] pf_gt_config ===================
[01:34:30] ===================== lmtt (1 subtest) =====================
[01:34:30] ======================== test_ops  =========================
[01:34:30] [PASSED] 2-level
[01:34:30] [PASSED] multi-level
[01:34:30] ==================== [PASSED] test_ops =====================
[01:34:30] ====================== [PASSED] lmtt =======================
[01:34:30] ================= sriov_packet (1 subtest) =================
[01:34:30] [PASSED] test_descriptor_init
[01:34:30] ================== [PASSED] sriov_packet ===================
[01:34:30] ================= pf_service (11 subtests) =================
[01:34:30] [PASSED] pf_negotiate_any
[01:34:30] [PASSED] pf_negotiate_base_match
[01:34:30] [PASSED] pf_negotiate_base_newer
[01:34:30] [PASSED] pf_negotiate_base_next
[01:34:30] [SKIPPED] pf_negotiate_base_older (no older minor)
[01:34:30] [PASSED] pf_negotiate_base_prev
[01:34:30] [PASSED] pf_negotiate_latest_match
[01:34:30] [PASSED] pf_negotiate_latest_newer
[01:34:30] [PASSED] pf_negotiate_latest_next
[01:34:30] [SKIPPED] pf_negotiate_latest_older (no older minor)
[01:34:30] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[01:34:30] =================== [PASSED] pf_service ====================
[01:34:30] ================= xe_guc_g2g (2 subtests) ==================
[01:34:30] ============== xe_live_guc_g2g_kunit_default  ==============
[01:34:30] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[01:34:30] ============== xe_live_guc_g2g_kunit_allmem  ===============
[01:34:30] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[01:34:30] =================== [SKIPPED] xe_guc_g2g ===================
[01:34:30] =================== xe_mocs (2 subtests) ===================
[01:34:30] ================ xe_live_mocs_kernel_kunit  ================
[01:34:30] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[01:34:30] ================ xe_live_mocs_reset_kunit  =================
[01:34:30] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[01:34:30] ==================== [SKIPPED] xe_mocs =====================
[01:34:30] ================= xe_migrate (3 subtests) ==================
[01:34:30] ================= xe_migrate_sanity_kunit  =================
[01:34:30] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[01:34:30] ================== xe_validate_ccs_kunit  ==================
[01:34:30] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[01:34:30] ============= xe_migrate_access_memory_kunit  ==============
[01:34:30] ========= [SKIPPED] xe_migrate_access_memory_kunit =========
[01:34:30] =================== [SKIPPED] xe_migrate ===================
[01:34:30] ================== xe_dma_buf (1 subtest) ==================
[01:34:30] ==================== xe_dma_buf_kunit  =====================
[01:34:30] ================ [SKIPPED] xe_dma_buf_kunit ================
[01:34:30] =================== [SKIPPED] xe_dma_buf ===================
[01:34:30] ================= xe_bo_shrink (1 subtest) =================
[01:34:30] =================== xe_bo_shrink_kunit  ====================
[01:34:30] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[01:34:30] ================== [SKIPPED] xe_bo_shrink ==================
[01:34:30] ==================== xe_bo (2 subtests) ====================
[01:34:30] ================== xe_ccs_migrate_kunit  ===================
[01:34:30] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[01:34:30] ==================== xe_bo_evict_kunit  ====================
[01:34:30] =============== [SKIPPED] xe_bo_evict_kunit ================
[01:34:30] ===================== [SKIPPED] xe_bo ======================
[01:34:30] =================== xe_any (9 subtests) ====================
[01:34:30] [PASSED] test_to_xe
[01:34:30] [PASSED] test_to_dev
[01:34:30] [PASSED] test_to_pdev
[01:34:30] [PASSED] test_to_drm
[01:34:30] [PASSED] test_if_pdev
[01:34:30] [PASSED] test_if_xe
[01:34:30] [PASSED] test_if_tile
[01:34:30] [PASSED] test_if_gt
[01:34:30] [PASSED] test_to_id
[01:34:30] ===================== [PASSED] xe_any ======================
[01:34:30] ==================== args (13 subtests) ====================
[01:34:30] [PASSED] count_args_test
[01:34:30] [PASSED] call_args_example
[01:34:30] [PASSED] call_args_test
[01:34:30] [PASSED] drop_first_arg_example
[01:34:30] [PASSED] drop_first_arg_test
[01:34:30] [PASSED] first_arg_example
[01:34:30] [PASSED] first_arg_test
[01:34:30] [PASSED] last_arg_example
[01:34:30] [PASSED] last_arg_test
[01:34:30] [PASSED] pick_arg_example
[01:34:30] [PASSED] if_args_example
[01:34:30] [PASSED] if_args_test
[01:34:30] [PASSED] sep_comma_example
[01:34:30] ====================== [PASSED] args =======================
[01:34:30] =================== xe_pci (3 subtests) ====================
[01:34:30] ==================== check_graphics_ip  ====================
[01:34:30] [PASSED] 12.00 Xe_LP
[01:34:30] [PASSED] 12.10 Xe_LP+
[01:34:30] [PASSED] 12.55 Xe_HPG
[01:34:30] [PASSED] 12.60 Xe_HPC
[01:34:30] [PASSED] 12.70 Xe_LPG
[01:34:30] [PASSED] 12.71 Xe_LPG
[01:34:30] [PASSED] 12.74 Xe_LPG+
[01:34:30] [PASSED] 20.01 Xe2_HPG
[01:34:30] [PASSED] 20.02 Xe2_HPG
[01:34:30] [PASSED] 20.04 Xe2_LPG
[01:34:30] [PASSED] 30.00 Xe3_LPG
[01:34:30] [PASSED] 30.01 Xe3_LPG
[01:34:30] [PASSED] 30.03 Xe3_LPG
[01:34:30] [PASSED] 30.04 Xe3_LPG
[01:34:30] [PASSED] 30.05 Xe3_LPG
[01:34:30] [PASSED] 35.10 Xe3p_LPG
[01:34:30] [PASSED] 35.11 Xe3p_XPC
[01:34:30] ================ [PASSED] check_graphics_ip ================
[01:34:30] ===================== check_media_ip  ======================
[01:34:30] [PASSED] 12.00 Xe_M
[01:34:30] [PASSED] 12.55 Xe_HPM
[01:34:30] [PASSED] 13.00 Xe_LPM+
[01:34:30] [PASSED] 13.01 Xe2_HPM
[01:34:30] [PASSED] 20.00 Xe2_LPM
[01:34:30] [PASSED] 30.00 Xe3_LPM
[01:34:30] [PASSED] 30.02 Xe3_LPM
[01:34:30] [PASSED] 35.00 Xe3p_LPM
[01:34:30] [PASSED] 35.03 Xe3p_HPM
[01:34:30] ================= [PASSED] check_media_ip ==================
[01:34:30] =================== check_platform_desc  ===================
[01:34:30] [PASSED] 0x9A60 (TIGERLAKE)
[01:34:30] [PASSED] 0x9A68 (TIGERLAKE)
[01:34:30] [PASSED] 0x9A70 (TIGERLAKE)
[01:34:30] [PASSED] 0x9A40 (TIGERLAKE)
[01:34:30] [PASSED] 0x9A49 (TIGERLAKE)
[01:34:30] [PASSED] 0x9A59 (TIGERLAKE)
[01:34:30] [PASSED] 0x9A78 (TIGERLAKE)
[01:34:30] [PASSED] 0x9AC0 (TIGERLAKE)
[01:34:30] [PASSED] 0x9AC9 (TIGERLAKE)
[01:34:30] [PASSED] 0x9AD9 (TIGERLAKE)
[01:34:30] [PASSED] 0x9AF8 (TIGERLAKE)
[01:34:30] [PASSED] 0x4C80 (ROCKETLAKE)
[01:34:30] [PASSED] 0x4C8A (ROCKETLAKE)
[01:34:30] [PASSED] 0x4C8B (ROCKETLAKE)
[01:34:30] [PASSED] 0x4C8C (ROCKETLAKE)
[01:34:30] [PASSED] 0x4C90 (ROCKETLAKE)
[01:34:30] [PASSED] 0x4C9A (ROCKETLAKE)
[01:34:30] [PASSED] 0x4680 (ALDERLAKE_S)
[01:34:30] [PASSED] 0x4682 (ALDERLAKE_S)
[01:34:30] [PASSED] 0x4688 (ALDERLAKE_S)
[01:34:30] [PASSED] 0x468A (ALDERLAKE_S)
[01:34:30] [PASSED] 0x468B (ALDERLAKE_S)
[01:34:30] [PASSED] 0x4690 (ALDERLAKE_S)
[01:34:30] [PASSED] 0x4692 (ALDERLAKE_S)
[01:34:30] [PASSED] 0x4693 (ALDERLAKE_S)
[01:34:30] [PASSED] 0x46A0 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46A1 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46A2 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46A3 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46A6 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46A8 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46AA (ALDERLAKE_P)
[01:34:30] [PASSED] 0x462A (ALDERLAKE_P)
[01:34:30] [PASSED] 0x4626 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x4628 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46B0 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46B1 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46B2 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46B3 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46C0 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46C1 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46C2 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46C3 (ALDERLAKE_P)
[01:34:30] [PASSED] 0x46D0 (ALDERLAKE_N)
[01:34:30] [PASSED] 0x46D1 (ALDERLAKE_N)
[01:34:30] [PASSED] 0x46D2 (ALDERLAKE_N)
[01:34:30] [PASSED] 0x46D3 (ALDERLAKE_N)
[01:34:30] [PASSED] 0x46D4 (ALDERLAKE_N)
[01:34:30] [PASSED] 0xA721 (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7A1 (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7A9 (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7AC (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7AD (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA720 (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7A0 (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7A8 (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7AA (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA7AB (ALDERLAKE_P)
[01:34:30] [PASSED] 0xA780 (ALDERLAKE_S)
[01:34:30] [PASSED] 0xA781 (ALDERLAKE_S)
[01:34:30] [PASSED] 0xA782 (ALDERLAKE_S)
[01:34:30] [PASSED] 0xA783 (ALDERLAKE_S)
[01:34:30] [PASSED] 0xA788 (ALDERLAKE_S)
[01:34:30] [PASSED] 0xA789 (ALDERLAKE_S)
[01:34:30] [PASSED] 0xA78A (ALDERLAKE_S)
[01:34:30] [PASSED] 0xA78B (ALDERLAKE_S)
[01:34:30] [PASSED] 0x4905 (DG1)
[01:34:30] [PASSED] 0x4906 (DG1)
[01:34:30] [PASSED] 0x4907 (DG1)
[01:34:30] [PASSED] 0x4908 (DG1)
[01:34:30] [PASSED] 0x4909 (DG1)
[01:34:30] [PASSED] 0x56C0 (DG2)
[01:34:30] [PASSED] 0x56C2 (DG2)
[01:34:30] [PASSED] 0x56C1 (DG2)
[01:34:30] [PASSED] 0x7D51 (METEORLAKE)
[01:34:30] [PASSED] 0x7DD1 (METEORLAKE)
[01:34:30] [PASSED] 0x7D41 (METEORLAKE)
[01:34:30] [PASSED] 0x7D67 (METEORLAKE)
[01:34:30] [PASSED] 0xB640 (METEORLAKE)
[01:34:30] [PASSED] 0x56A0 (DG2)
[01:34:30] [PASSED] 0x56A1 (DG2)
[01:34:30] [PASSED] 0x56A2 (DG2)
[01:34:30] [PASSED] 0x56BE (DG2)
[01:34:30] [PASSED] 0x56BF (DG2)
[01:34:30] [PASSED] 0x5690 (DG2)
[01:34:30] [PASSED] 0x5691 (DG2)
[01:34:30] [PASSED] 0x5692 (DG2)
[01:34:30] [PASSED] 0x56A5 (DG2)
[01:34:30] [PASSED] 0x56A6 (DG2)
[01:34:30] [PASSED] 0x56B0 (DG2)
[01:34:30] [PASSED] 0x56B1 (DG2)
[01:34:30] [PASSED] 0x56BA (DG2)
[01:34:30] [PASSED] 0x56BB (DG2)
[01:34:30] [PASSED] 0x56BC (DG2)
[01:34:30] [PASSED] 0x56BD (DG2)
[01:34:30] [PASSED] 0x5693 (DG2)
[01:34:30] [PASSED] 0x5694 (DG2)
[01:34:30] [PASSED] 0x5695 (DG2)
[01:34:30] [PASSED] 0x56A3 (DG2)
[01:34:30] [PASSED] 0x56A4 (DG2)
[01:34:30] [PASSED] 0x56B2 (DG2)
[01:34:30] [PASSED] 0x56B3 (DG2)
[01:34:30] [PASSED] 0x5696 (DG2)
[01:34:30] [PASSED] 0x5697 (DG2)
[01:34:30] [PASSED] 0xB69 (PVC)
[01:34:30] [PASSED] 0xB6E (PVC)
[01:34:30] [PASSED] 0xBD4 (PVC)
[01:34:30] [PASSED] 0xBD5 (PVC)
[01:34:30] [PASSED] 0xBD6 (PVC)
[01:34:30] [PASSED] 0xBD7 (PVC)
[01:34:30] [PASSED] 0xBD8 (PVC)
[01:34:30] [PASSED] 0xBD9 (PVC)
[01:34:30] [PASSED] 0xBDA (PVC)
[01:34:30] [PASSED] 0xBDB (PVC)
[01:34:30] [PASSED] 0xBE0 (PVC)
[01:34:30] [PASSED] 0xBE1 (PVC)
[01:34:30] [PASSED] 0xBE5 (PVC)
[01:34:30] [PASSED] 0x7D40 (METEORLAKE)
[01:34:30] [PASSED] 0x7D45 (METEORLAKE)
[01:34:30] [PASSED] 0x7D55 (METEORLAKE)
[01:34:30] [PASSED] 0x7D60 (METEORLAKE)
[01:34:30] [PASSED] 0x7DD5 (METEORLAKE)
[01:34:30] [PASSED] 0x6420 (LUNARLAKE)
[01:34:30] [PASSED] 0x64A0 (LUNARLAKE)
[01:34:30] [PASSED] 0x64B0 (LUNARLAKE)
[01:34:30] [PASSED] 0xE202 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE209 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE20B (BATTLEMAGE)
[01:34:30] [PASSED] 0xE20C (BATTLEMAGE)
[01:34:30] [PASSED] 0xE20D (BATTLEMAGE)
[01:34:30] [PASSED] 0xE210 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE211 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE212 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE216 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE220 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE221 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE222 (BATTLEMAGE)
[01:34:30] [PASSED] 0xE223 (BATTLEMAGE)
[01:34:30] [PASSED] 0xB080 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB081 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB082 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB083 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB084 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB085 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB086 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB087 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB08F (PANTHERLAKE)
[01:34:30] [PASSED] 0xB090 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB0A0 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB0A1 (PANTHERLAKE)
[01:34:30] [PASSED] 0xB0B0 (PANTHERLAKE)
[01:34:30] [PASSED] 0xFD80 (PANTHERLAKE)
[01:34:30] [PASSED] 0xFD81 (PANTHERLAKE)
[01:34:30] [PASSED] 0xD740 (NOVALAKE_S)
[01:34:30] [PASSED] 0xD741 (NOVALAKE_S)
[01:34:30] [PASSED] 0xD742 (NOVALAKE_S)
[01:34:30] [PASSED] 0xD743 (NOVALAKE_S)
[01:34:30] [PASSED] 0xD745 (NOVALAKE_S)
[01:34:30] [PASSED] 0xD74A (NOVALAKE_S)
[01:34:30] [PASSED] 0xD74B (NOVALAKE_S)
[01:34:30] [PASSED] 0x674C (CRESCENTISLAND)
[01:34:30] [PASSED] 0x674D (CRESCENTISLAND)
[01:34:30] [PASSED] 0x674E (CRESCENTISLAND)
[01:34:30] [PASSED] 0x674F (CRESCENTISLAND)
[01:34:30] [PASSED] 0x6750 (CRESCENTISLAND)
[01:34:30] [PASSED] 0x6751 (CRESCENTISLAND)
[01:34:30] [PASSED] 0x6752 (CRESCENTISLAND)
[01:34:30] [PASSED] 0xD750 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD751 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD752 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD753 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD754 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD755 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD756 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD757 (NOVALAKE_P)
[01:34:30] [PASSED] 0xD75F (NOVALAKE_P)
[01:34:30] =============== [PASSED] check_platform_desc ===============
[01:34:30] ===================== [PASSED] xe_pci ======================
[01:34:30] ============= xe_rtp_tables_test (5 subtests) ==============
[01:34:30] ================== xe_rtp_table_gt_test  ===================
[01:34:30] [PASSED] gt_was/14011060649
[01:34:30] [PASSED] gt_was/14011059788
[01:34:30] [PASSED] gt_was/14015795083
[01:34:30] [PASSED] gt_was/16021867713
[01:34:30] [PASSED] gt_was/14019449301
[01:34:30] [PASSED] gt_was/16028005424
[01:34:30] [PASSED] gt_was/14026578760
[01:34:30] [PASSED] gt_was/1409420604
[01:34:30] [PASSED] gt_was/1408615072
[01:34:30] [PASSED] gt_was/22010523718
[01:34:30] [PASSED] gt_was/14011006942
[01:34:30] [PASSED] gt_was/14014830051
[01:34:30] [PASSED] gt_was/18018781329
[01:34:30] [PASSED] gt_was/1509235366
[01:34:30] [PASSED] gt_was/18018781329
[01:34:30] [PASSED] gt_was/16016694945
[01:34:30] [PASSED] gt_was/14018575942
[01:34:30] [PASSED] gt_was/22016670082
[01:34:30] [PASSED] gt_was/22016670082
[01:34:30] [PASSED] gt_was/14017421178
[01:34:30] [PASSED] gt_was/16025250150
[01:34:30] [PASSED] gt_was/14021871409
[01:34:30] [PASSED] gt_was/16021865536
[01:34:30] [PASSED] gt_was/14021486841
[01:34:30] [PASSED] gt_was/14025160223
[01:34:30] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[01:34:30] [PASSED] gt_was/14025635424
[01:34:30] [PASSED] gt_was/16028005424
[01:34:30] ============== [PASSED] xe_rtp_table_gt_test ===============
[01:34:30] ================== xe_rtp_table_gt_test  ===================
[01:34:30] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[01:34:30] [PASSED] gt_tunings/Tuning: 32B Access Enable
[01:34:30] [PASSED] gt_tunings/Tuning: L3 cache
[01:34:30] [PASSED] gt_tunings/Tuning: L3 cache - media
[01:34:30] [PASSED] gt_tunings/Tuning: Compression Overfetch
[01:34:30] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[01:34:30] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[01:34:30] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[01:34:30] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[01:34:30] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[01:34:30] [PASSED] gt_tunings/Tuning: Stateless compression control
[01:34:30] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[01:34:30] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[01:34:30] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[01:34:30] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[01:34:30] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[01:34:30] ============== [PASSED] xe_rtp_table_gt_test ===============
[01:34:30] ================== xe_rtp_table_oob_test  ==================
[01:34:30] [PASSED] oob_was/1607983814
[01:34:30] [PASSED] oob_was/16010904313
[01:34:30] [PASSED] oob_was/18022495364
[01:34:30] [PASSED] oob_was/22012773006
[01:34:30] [PASSED] oob_was/14014475959
[01:34:30] [PASSED] oob_was/22011391025
[01:34:30] [PASSED] oob_was/22012727170
[01:34:30] [PASSED] oob_was/22012727685
[01:34:30] [PASSED] oob_was/22016596838
[01:34:30] [PASSED] oob_was/18020744125
[01:34:30] [PASSED] oob_was/1409600907
[01:34:30] [PASSED] oob_was/22014953428
[01:34:30] [PASSED] oob_was/16017236439
[01:34:30] [PASSED] oob_was/14019821291
[01:34:30] [PASSED] oob_was/14015076503
[01:34:30] [PASSED] oob_was/22016122933
[01:34:30] [PASSED] oob_was/14018913170
[01:34:30] [PASSED] oob_was/14018094691
[01:34:30] [PASSED] oob_was/18024947630
[01:34:30] [PASSED] oob_was/16022287689
[01:34:30] [PASSED] oob_was/13011645652
[01:34:30] [PASSED] oob_was/14022293748
[01:34:30] [PASSED] oob_was/22019794406
[01:34:30] [PASSED] oob_was/22019338487
[01:34:30] [PASSED] oob_was/16023588340
[01:34:30] [PASSED] oob_was/14019789679
[01:34:30] [PASSED] oob_was/14022866841
[01:34:30] [PASSED] oob_was/16021333562
[01:34:30] [PASSED] oob_was/14016712196
[01:34:30] [PASSED] oob_was/14015568240
[01:34:30] [PASSED] oob_was/18013179988
[01:34:30] [PASSED] oob_was/1508761755
[01:34:30] [PASSED] oob_was/16023105232
[01:34:30] [PASSED] oob_was/16026508708
[01:34:30] [PASSED] oob_was/14020001231
[01:34:30] [PASSED] oob_was/16023683509
[01:34:30] [PASSED] oob_was/14025515070
[01:34:30] [PASSED] oob_was/15015404425_disable
[01:34:30] [PASSED] oob_was/16026007364
[01:34:30] [PASSED] oob_was/14020316580
[01:34:30] [PASSED] oob_was/14025883347
[01:34:30] [PASSED] oob_was/16029380221
[01:34:30] [PASSED] oob_was/22022079272
[01:34:30] [PASSED] oob_was/16029897822
[01:34:30] [PASSED] oob_was/14026539277
[01:34:30] [PASSED] oob_was/14027054324
[01:34:30] [PASSED] oob_was/14025941587
[01:34:30] [PASSED] oob_was/16030224309
[01:34:30] [PASSED] oob_was/14028709524
[01:34:30] [PASSED] oob_was/14028250015
[01:34:30] [PASSED] oob_was/16031259911
[01:34:30] ============== [PASSED] xe_rtp_table_oob_test ==============
[01:34:30] ================ xe_rtp_table_dev_oob_test  ================
[01:34:30] [PASSED] device_oob_was/22010954014
[01:34:30] [PASSED] device_oob_was/15015404425
[01:34:30] [PASSED] device_oob_was/22019338487_display
[01:34:30] [PASSED] device_oob_was/14022085890
[01:34:30] [PASSED] device_oob_was/14026633728
[01:34:30] [PASSED] device_oob_was/14026746987
[01:34:30] [PASSED] device_oob_was/14026779378
[01:34:30] [PASSED] device_oob_was/14028586678
[01:34:30] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[01:34:30] ========== xe_rtp_table_missing_upper_bound_test  ==========
[01:34:30] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[01:34:30] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[01:34:30] [PASSED] register_whitelist/1806527549
[01:34:30] [PASSED] register_whitelist/allow_read_ctx_timestamp
[01:34:30] [PASSED] register_whitelist/allow_read_queue_timestamp
[01:34:30] [PASSED] register_whitelist/16014440446
[01:34:30] [PASSED] register_whitelist/16017236439
[01:34:30] [PASSED] register_whitelist/16020183090
[01:34:30] [PASSED] register_whitelist/14024997852
[01:34:30] [PASSED] register_whitelist/14024997852
[01:34:30] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[01:34:30] =============== [PASSED] xe_rtp_tables_test ================
[01:34:30] =================== xe_rtp (3 subtests) ====================
[01:34:30] =================== xe_rtp_rules_tests  ====================
[01:34:30] [PASSED] no
[01:34:30] [PASSED] yes
[01:34:30] [PASSED] no-and-no
[01:34:30] [PASSED] no-and-yes
[01:34:30] [PASSED] yes-and-no
[01:34:30] [PASSED] yes-and-yes
[01:34:30] [PASSED] no-or-no
[01:34:30] [PASSED] no-or-yes
[01:34:30] [PASSED] yes-or-no
[01:34:30] [PASSED] yes-or-yes
[01:34:30] [PASSED] no-yes-or-yes-no
[01:34:30] [PASSED] no-yes-or-yes-yes
[01:34:30] [PASSED] yes-yes-or-no-yes
[01:34:30] [PASSED] yes-yes-or-yes-yes
[01:34:30] [PASSED] no-no-or-yes-or-no
[01:34:30] [PASSED] or
[01:34:30] [PASSED] or-yes
[01:34:30] [PASSED] or-no
[01:34:30] [PASSED] yes-or
[01:34:30] [PASSED] no-or
[01:34:30] [PASSED] no-or-or-yes
[01:34:30] [PASSED] yes-or-or-no
[01:34:30] [PASSED] no-or-or-no
[01:34:30] [PASSED] missing-context-engine-class
[01:34:30] [PASSED] missing-context-engine-class-or-yes
[01:34:30] [PASSED] missing-context-engine-class-or-or-yes
[01:34:30] =============== [PASSED] xe_rtp_rules_tests ================
[01:34:30] =============== xe_rtp_process_to_sr_tests  ================
[01:34:30] [PASSED] coalesce-same-reg
[01:34:30] [PASSED] coalesce-same-reg-literal-and-func
[01:34:30] [PASSED] no-match-no-add
[01:34:30] [PASSED] two-regs-two-entries
[01:34:30] [PASSED] clr-one-set-other
[01:34:30] [PASSED] set-field
[01:34:30] [PASSED] conflict-duplicate
[01:34:30] [PASSED] conflict-not-disjoint
[01:34:30] [PASSED] conflict-not-disjoint-literal-and-func
[01:34:30] [PASSED] conflict-reg-type
[01:34:30] [PASSED] bad-mcr-reg-forced-to-regular
[01:34:30] [PASSED] bad-regular-reg-forced-to-mcr
[01:34:30] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[01:34:30] ================== xe_rtp_process_tests  ===================
[01:34:30] [PASSED] active1
[01:34:30] [PASSED] active2
[01:34:30] [PASSED] active-inactive
[01:34:30] [PASSED] inactive-active
[01:34:30] [PASSED] inactive-active-inactive
[01:34:30] [PASSED] inactive-inactive-inactive
[01:34:30] ============== [PASSED] xe_rtp_process_tests ===============
[01:34:30] ===================== [PASSED] xe_rtp ======================
[01:34:30] ==================== xe_wa (1 subtest) =====================
[01:34:30] ======================== xe_wa_gt  =========================
[01:34:30] [PASSED] TIGERLAKE B0
[01:34:30] [PASSED] DG1 A0
[01:34:30] [PASSED] DG1 B0
[01:34:30] [PASSED] ALDERLAKE_S A0
[01:34:30] [PASSED] ALDERLAKE_S B0
[01:34:30] [PASSED] ALDERLAKE_S C0
[01:34:30] [PASSED] ALDERLAKE_S D0
[01:34:30] [PASSED] ALDERLAKE_P A0
[01:34:30] [PASSED] ALDERLAKE_P B0
[01:34:30] [PASSED] ALDERLAKE_P C0
[01:34:30] [PASSED] ALDERLAKE_S RPLS D0
[01:34:30] [PASSED] ALDERLAKE_P RPLU E0
[01:34:30] [PASSED] DG2 G10 C0
[01:34:30] [PASSED] DG2 G11 B1
[01:34:30] [PASSED] DG2 G12 A1
[01:34:30] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[01:34:30] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[01:34:30] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[01:34:30] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[01:34:30] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[01:34:30] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[01:34:30] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[01:34:30] ==================== [PASSED] xe_wa_gt =====================
[01:34:30] ====================== [PASSED] xe_wa ======================
[01:34:30] ============================================================
[01:34:30] Testing complete. Ran 843 tests: passed: 814, skipped: 29
[01:34:30] Elapsed time: 42.299s total, 2.518s configuring, 39.014s building, 0.721s running

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

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

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[01:35:12] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:35:14] 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
[01:35:23] Starting KUnit Kernel (1/1)...
[01:35:23] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:35:23] =============== dma-buf-fence (12 subtests) ================
[01:35:23] [PASSED] test_sanitycheck
[01:35:23] [PASSED] test_signaling
[01:35:23] [PASSED] test_add_callback
[01:35:23] [PASSED] test_late_add_callback
[01:35:23] [PASSED] test_rm_callback
[01:35:23] [PASSED] test_late_rm_callback
[01:35:23] [PASSED] test_status
[01:35:23] [PASSED] test_error
[01:35:23] [PASSED] test_wait
[01:35:23] [PASSED] test_wait_timeout
[01:35:23] [PASSED] test_stub
[01:35:23] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[01:35:23] ================== [PASSED] dma-buf-fence ==================
[01:35:23] ============ dma-buf-fence-chain (11 subtests) =============
[01:35:23] [PASSED] test_sanitycheck
[01:35:23] [PASSED] test_find_seqno
[01:35:23] [PASSED] test_find_signaled
[01:35:23] [PASSED] test_find_out_of_order
[01:35:28] [PASSED] test_find_gap
[01:35:28] [PASSED] test_find_race
[01:35:28] [PASSED] test_signal_forward
[01:35:28] [PASSED] test_signal_backward
[01:35:28] [PASSED] test_wait_forward
[01:35:28] [PASSED] test_wait_backward
[01:35:28] [PASSED] test_wait_random
[01:35:28] =============== [PASSED] dma-buf-fence-chain ===============
[01:35:28] ============ dma-buf-fence-unwrap (11 subtests) ============
[01:35:28] [PASSED] test_sanitycheck
[01:35:28] [PASSED] test_unwrap_array
[01:35:28] [PASSED] test_unwrap_chain
[01:35:28] [PASSED] test_unwrap_chain_array
[01:35:28] [PASSED] test_unwrap_merge
[01:35:28] [PASSED] test_unwrap_merge_duplicate
[01:35:28] [PASSED] test_unwrap_merge_seqno
[01:35:28] [PASSED] test_unwrap_merge_order
[01:35:28] [PASSED] test_unwrap_merge_complex
[01:35:28] [PASSED] test_unwrap_merge_complex_seqno
[01:35:28] [PASSED] test_dedup_empty
[01:35:28] ============== [PASSED] dma-buf-fence-unwrap ===============
[01:35:28] ================ dma-buf-resv (5 subtests) =================
[01:35:28] [PASSED] test_sanitycheck
[01:35:28] ===================== test_signaling  ======================
[01:35:28] [PASSED] kernel
[01:35:28] [PASSED] write
[01:35:28] [PASSED] read
[01:35:28] [PASSED] bookkeep
[01:35:28] ================= [PASSED] test_signaling ==================
[01:35:28] ====================== test_for_each  ======================
[01:35:28] [PASSED] kernel
[01:35:28] [PASSED] write
[01:35:28] [PASSED] read
[01:35:28] [PASSED] bookkeep
[01:35:28] ================== [PASSED] test_for_each ==================
[01:35:28] ================= test_for_each_unlocked  ==================
[01:35:28] [PASSED] kernel
[01:35:28] [PASSED] write
[01:35:28] [PASSED] read
[01:35:28] [PASSED] bookkeep
[01:35:28] ============= [PASSED] test_for_each_unlocked ==============
[01:35:28] ===================== test_get_fences  =====================
[01:35:28] [PASSED] kernel
[01:35:28] [PASSED] write
[01:35:28] [PASSED] read
[01:35:28] [PASSED] bookkeep
[01:35:28] ================= [PASSED] test_get_fences =================
[01:35:28] ================== [PASSED] dma-buf-resv ===================
[01:35:28] ============================================================
[01:35:28] Testing complete. Ran 51 tests: passed: 50, skipped: 1
[01:35:28] Elapsed time: 16.641s total, 2.495s configuring, 8.874s building, 5.262s running

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



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

* ✓ Xe.CI.BAT: success for Add a configfs to program the hwconfig
  2026-11-11  0:08 [PATCH 0/1] Add a configfs to program the hwconfig Stuart Summers
  2026-11-11  0:08 ` [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table Stuart Summers
  2026-11-11  1:35 ` ✓ CI.KUnit: success for Add a configfs to program the hwconfig Patchwork
@ 2026-11-11  2:09 ` Patchwork
  2026-11-11  7:06 ` ✓ Xe.CI.FULL: " Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-11-11  2:09 UTC (permalink / raw)
  To: Stuart Summers; +Cc: intel-xe

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

== Series Details ==

Series: Add a configfs to program the hwconfig
URL   : https://patchwork.freedesktop.org/series/178249/
State : success

== Summary ==

CI Bug Log - changes from xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42_BAT -> xe-pw-178249v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (15 -> 15)
------------------------------

  No changes in participating hosts


Changes
-------

  No changes found


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

  * Linux: xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42 -> xe-pw-178249v1

  IGT_9186: 9186
  xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42: 8cdf6abb193ff7958fdadabf64ce96b8c5312c42
  xe-pw-178249v1: 178249v1

== Logs ==

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

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

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

* ✓ Xe.CI.FULL: success for Add a configfs to program the hwconfig
  2026-11-11  0:08 [PATCH 0/1] Add a configfs to program the hwconfig Stuart Summers
                   ` (2 preceding siblings ...)
  2026-11-11  2:09 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-11-11  7:06 ` Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-11-11  7:06 UTC (permalink / raw)
  To: Stuart Summers; +Cc: intel-xe

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

== Series Details ==

Series: Add a configfs to program the hwconfig
URL   : https://patchwork.freedesktop.org/series/178249/
State : success

== Summary ==

CI Bug Log - changes from xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42_FULL -> xe-pw-178249v1_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (3 -> 3)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-dp-2:
    - shard-bmg:          [PASS][1] -> [FAIL][2] ([Intel XE#8098] / [Intel XE#9561]) +1 other test fail
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-bmg-5/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-dp-2.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-3/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-dp-2.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-bmg:          NOTRUN -> [SKIP][3] ([Intel XE#1124]) +1 other test skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-ptl:          NOTRUN -> [SKIP][4] ([Intel XE#5808])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p:
    - shard-ptl:          NOTRUN -> [SKIP][5] ([Intel XE#7679])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_bw@connected-linear-tiling-3-displays-target-2160x1440p.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
    - shard-ptl:          NOTRUN -> [SKIP][6] ([Intel XE#5822]) +2 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html

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

  * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#2887]) +5 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs.html

  * igt@kms_chamelium_audio@dp-audio-after-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#2252]) +2 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_chamelium_audio@dp-audio-after-suspend.html

  * igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709-lim:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#7358])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709-lim.html

  * igt@kms_chamelium_edid@hdmi-edid-change-during-hibernate:
    - shard-ptl:          NOTRUN -> [SKIP][11] ([Intel XE#2252]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_chamelium_edid@hdmi-edid-change-during-hibernate.html

  * igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][12] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +2 other tests fail
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-9/igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2.html

  * igt@kms_content_protection@srm@pipe-a-dp-1:
    - shard-bmg:          NOTRUN -> [FAIL][13] ([Intel XE#3304])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-7/igt@kms_content_protection@srm@pipe-a-dp-1.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2320])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-ptl:          NOTRUN -> [SKIP][15] ([Intel XE#5900])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-ptl:          NOTRUN -> [SKIP][16] ([Intel XE#5962])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_dp_link_training@non-uhbr-mst-direct-train:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#9532])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_dp_link_training@non-uhbr-mst-direct-train.html

  * igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner:
    - shard-ptl:          NOTRUN -> [SKIP][18] ([Intel XE#5907])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner.html

  * igt@kms_fbcon_fbt@psr:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#8680])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-6/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@vrr:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#8586])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_feature_discovery@vrr.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-rgb565-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][22] ([Intel XE#5800] / [Intel XE#6312])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#2311]) +19 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html

  * igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-spr-indfb-onoff:
    - shard-ptl:          NOTRUN -> [SKIP][24] ([Intel XE#6312]) +2 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#4141]) +2 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][26] ([Intel XE#7865])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#2313]) +13 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-argb161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#7061])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsrhdr-argb161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-shrfb-plflip-blt:
    - shard-ptl:          NOTRUN -> [SKIP][29] ([Intel XE#5812]) +4 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#7061] / [Intel XE#7356])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-render.html

  * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping:
    - shard-ptl:          NOTRUN -> [SKIP][31] ([Intel XE#7283]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#7283])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#1489]) +1 other test skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-7/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#2387] / [Intel XE#7429])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-psr2-cursor-plane-onoff@edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][35] ([Intel XE#1406] / [Intel XE#5835]) +1 other test skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_psr@fbc-psr2-cursor-plane-onoff@edp-1.html

  * igt@kms_psr@pr-primary-blt:
    - shard-ptl:          NOTRUN -> [SKIP][36] ([Intel XE#1406])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_psr@pr-primary-blt.html

  * igt@kms_psr@pr-primary-render:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#2234] / [Intel XE#2850]) +4 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-6/igt@kms_psr@pr-primary-render.html

  * igt@kms_rotation_crc@bad-tiling:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#3904] / [Intel XE#7342])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_rotation_crc@bad-tiling.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
    - shard-ptl:          NOTRUN -> [SKIP][39] ([Intel XE#5813])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#2330] / [Intel XE#5813])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_sharpness_filter@filter-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#6503])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@kms_sharpness_filter@filter-suspend.html

  * igt@kms_vrr@flip-suspend@pipe-a-edp-1:
    - shard-ptl:          [PASS][42] -> [FAIL][43] ([Intel XE#4227] / [Intel XE#7397]) +1 other test fail
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-ptl-7/igt@kms_vrr@flip-suspend@pipe-a-edp-1.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-3/igt@kms_vrr@flip-suspend@pipe-a-edp-1.html

  * igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all:
    - shard-ptl:          NOTRUN -> [ABORT][44] ([Intel XE#8868])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@sriov_basic@pf-unbind-with-vfs-enabled-numvfs-all.html

  * igt@xe_compute@ccs-mode-basic:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#6599])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_compute@ccs-mode-basic.html

  * igt@xe_evict@evict-beng-cm-threads-small:
    - shard-ptl:          NOTRUN -> [SKIP][46] ([Intel XE#5764]) +1 other test skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_evict@evict-beng-cm-threads-small.html

  * igt@xe_evict@evict-small-multi-queue:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#8370])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_evict@evict-small-multi-queue.html

  * igt@xe_exec_balancer@twice-cm-parallel-userptr-invalidate:
    - shard-ptl:          NOTRUN -> [SKIP][48] ([Intel XE#7482])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_exec_balancer@twice-cm-parallel-userptr-invalidate.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr:
    - shard-ptl:          NOTRUN -> [SKIP][49] ([Intel XE#5575] / [Intel XE#7484])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-rebind.html

  * igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-race-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][51] ([Intel XE#8374]) +4 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-race-prefetch.html

  * igt@xe_exec_fault_mode@once-multi-queue-userptr-prefetch:
    - shard-ptl:          NOTRUN -> [SKIP][52] ([Intel XE#8374])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_exec_fault_mode@once-multi-queue-userptr-prefetch.html

  * igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-priority:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#8364]) +8 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-6/igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-priority.html

  * igt@xe_exec_multi_queue@two-queues-preempt-mode-userptr-invalidate:
    - shard-ptl:          NOTRUN -> [SKIP][54] ([Intel XE#8364]) +4 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_exec_multi_queue@two-queues-preempt-mode-userptr-invalidate.html

  * igt@xe_exec_reset@multi-queue-cat-error:
    - shard-bmg:          NOTRUN -> [SKIP][55] ([Intel XE#8369])
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_exec_reset@multi-queue-cat-error.html

  * igt@xe_exec_reset@multi-queue-cat-error-on-secondary:
    - shard-ptl:          NOTRUN -> [SKIP][56] ([Intel XE#8369])
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_exec_reset@multi-queue-cat-error-on-secondary.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-basic:
    - shard-ptl:          NOTRUN -> [SKIP][57] ([Intel XE#8378])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-basic.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#8378]) +2 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html

  * igt@xe_multigpu_svm@mgpu-pagefault-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][59] ([Intel XE#6964])
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_multigpu_svm@mgpu-pagefault-prefetch.html

  * igt@xe_oa@oa-tlb-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#2248] / [Intel XE#7325] / [Intel XE#7393])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_oa@oa-tlb-invalidate.html

  * igt@xe_page_reclaim@binds-null-vma:
    - shard-bmg:          NOTRUN -> [SKIP][61] ([Intel XE#7793])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_page_reclaim@binds-null-vma.html

  * igt@xe_pat@l2-flush-opt-svm-pat-restrict:
    - shard-ptl:          NOTRUN -> [SKIP][62] ([Intel XE#7590])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_pat@l2-flush-opt-svm-pat-restrict.html

  * igt@xe_pm@d3cold-mmap-system:
    - shard-ptl:          NOTRUN -> [SKIP][63] ([Intel XE#5741])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_pm@d3cold-mmap-system.html

  * igt@xe_pm@s4-vm-bind-prefetch:
    - shard-ptl:          [PASS][64] -> [ABORT][65] ([Intel XE#9362])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-ptl-1/igt@xe_pm@s4-vm-bind-prefetch.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-1/igt@xe_pm@s4-vm-bind-prefetch.html

  * igt@xe_query@multigpu-query-invalid-cs-cycles:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#944])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_query@multigpu-query-invalid-cs-cycles.html

  * igt@xe_sriov_vram@vf-access-beyond:
    - shard-ptl:          NOTRUN -> [SKIP][67] ([Intel XE#6376] / [Intel XE#7422])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_sriov_vram@vf-access-beyond.html

  
#### Possible fixes ####

  * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-dp-2:
    - shard-bmg:          [FAIL][68] ([Intel XE#3718] / [Intel XE#6078]) -> [PASS][69] +1 other test pass
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-bmg-6/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-dp-2.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-1/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-dp-2.html

  * igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing:
    - shard-bmg:          [INCOMPLETE][70] ([Intel XE#8174]) -> [PASS][71] +1 other test pass
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-bmg-7/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-6/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-lnl:          [FAIL][72] ([Intel XE#8628]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-lnl-8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-lnl-5/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@linear-tiling-1-displays-target-1920x1080p:
    - shard-bmg:          [SKIP][74] ([Intel XE#367]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-bmg-2/igt@kms_bw@linear-tiling-1-displays-target-1920x1080p.html
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-7/igt@kms_bw@linear-tiling-1-displays-target-1920x1080p.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
    - shard-lnl:          [FAIL][76] ([Intel XE#301]) -> [PASS][77] +1 other test pass
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html

  * igt@kms_flip@plain-flip-ts-check@c-edp1:
    - shard-ptl:          [FAIL][78] ([Intel XE#3098] / [Intel XE#9171]) -> [PASS][79] +1 other test pass
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-ptl-8/igt@kms_flip@plain-flip-ts-check@c-edp1.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-2/igt@kms_flip@plain-flip-ts-check@c-edp1.html

  * igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute:
    - shard-bmg:          [ABORT][80] ([Intel XE#1727] / [Intel XE#6652]) -> [PASS][81] +1 other test pass
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-bmg-3/igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute.html
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-2/igt@xe_compute_preempt@compute-preempt-many-vram-evict@engine-drm_xe_engine_class_compute.html

  * igt@xe_pm@s4-mocs:
    - shard-ptl:          [ABORT][82] ([Intel XE#9362]) -> [PASS][83]
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-ptl-6/igt@xe_pm@s4-mocs.html
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-ptl-5/igt@xe_pm@s4-mocs.html

  
#### Warnings ####

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
    - shard-lnl:          [SKIP][84] ([Intel XE#309] / [Intel XE#7343] / [Intel XE#7935]) -> [SKIP][85] ([Intel XE#309] / [Intel XE#7343])
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-lnl-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-lnl-1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][86] ([Intel XE#3544]) -> [SKIP][87] ([Intel XE#3374] / [Intel XE#3544])
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-bmg-9/igt@kms_hdr@brightness-with-hdr.html
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-7/igt@kms_hdr@brightness-with-hdr.html

  * igt@xe_survivability@runtime-survivability:
    - shard-bmg:          [DMESG-WARN][88] -> [DMESG-WARN][89] ([Intel XE#9365])
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42/shard-bmg-7/igt@xe_survivability@runtime-survivability.html
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-178249v1/shard-bmg-9/igt@xe_survivability@runtime-survivability.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [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#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2248]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2248
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5741]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5741
  [Intel XE#5764]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5764
  [Intel XE#5800]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5800
  [Intel XE#5808]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5808
  [Intel XE#5812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5812
  [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
  [Intel XE#5822]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5822
  [Intel XE#5835]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5835
  [Intel XE#5900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5900
  [Intel XE#5907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5907
  [Intel XE#5962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5962
  [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6376
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7325
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
  [Intel XE#7393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7393
  [Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
  [Intel XE#7422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7422
  [Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
  [Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
  [Intel XE#7484]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7484
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
  [Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
  [Intel XE#7935]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7935
  [Intel XE#8098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8098
  [Intel XE#8174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8174
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
  [Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
  [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
  [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
  [Intel XE#8586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8586
  [Intel XE#8628]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8628
  [Intel XE#8680]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8680
  [Intel XE#8868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8868
  [Intel XE#9171]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9171
  [Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
  [Intel XE#9365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9365
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#9532]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9532
  [Intel XE#9561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9561


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

  * Linux: xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42 -> xe-pw-178249v1

  IGT_9186: 9186
  xe-6106-8cdf6abb193ff7958fdadabf64ce96b8c5312c42: 8cdf6abb193ff7958fdadabf64ce96b8c5312c42
  xe-pw-178249v1: 178249v1

== Logs ==

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

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

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

* Re: [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table
  2026-11-11  0:08 ` [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table Stuart Summers
  2026-11-11  0:25   ` sashiko-bot
@ 2026-11-11 19:37   ` Rodrigo Vivi
  1 sibling, 0 replies; 7+ messages in thread
From: Rodrigo Vivi @ 2026-11-11 19:37 UTC (permalink / raw)
  To: Stuart Summers; +Cc: intel-xe, fei.yang

On Wed, Nov 11, 2026 at 12:08:18AM +0000, Stuart Summers wrote:
> Add a binary configfs attribute holding a raw hwconfig blob. When set
> before bind, it is loaded into the hwconfig BO instead of querying GuC,
> so all consumers - including the DRM_XE_DEVICE_QUERY_HWCONFIG IOCTL -
> see the override. This also permits supplying a table on platforms where
> GuC exposes none, which is useful for testing userspace against
> hwconfig data the hardware does not report.

we should only put this in after we get that series that make most of
configfs as debug environments only...

> 
> Signed-off-by: Stuart Summers <stuart.summers@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_configfs.c     | 119 ++++++++++++++++++++++++++-
>  drivers/gpu/drm/xe/xe_configfs.h     |   6 ++
>  drivers/gpu/drm/xe/xe_guc_hwconfig.c |  36 +++++---
>  3 files changed, 150 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 2ddd707a6dbd..6f810b33e12d 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -63,7 +63,8 @@
>   *	    ├── engines_allowed
>   *	    ├── migrate_ulls_period_ms
>   *	    ├── enable_psmi
> - *	    └── disable_vram_page_offline
> + *	    ├── disable_vram_page_offline
> + *	    └── hwconfig
>   *
>   * After configuring the attributes as per next section, the device can be
>   * probed with::
> @@ -277,6 +278,22 @@
>   *
>   * This attribute can only be set before binding to the device.
>   *
> + * Hwconfig:
> + * ---------
> + *
> + * Override the hardware configuration table normally obtained from the GuC
> + * with a user-provided binary blob. When set, the driver uses this table in
> + * place of the GuC one everywhere it is consumed, including the table
> + * reported to userspace by the DRM_XE_DEVICE_QUERY_HWCONFIG query. This also
> + * allows a table to be provided on platforms where the GuC exposes none.
> + *
> + * The blob is the raw hwconfig table, so its size must be a multiple of 4
> + * bytes. Writing a new blob replaces the previous one::
> + *
> + *	# cat hwconfig.bin > /sys/kernel/config/xe/0000:03:00.0/hwconfig
> + *
> + * This attribute can only be set before binding to the device.
> + *
>   * Remove devices
>   * ==============
>   *
> @@ -291,6 +308,12 @@ struct wa_bb {
>  	u32 len; /* in dwords */
>  };
>  
> +/* User-provided replacement for the GuC-provided hwconfig table */
> +struct hwconfig_blob {
> +	void *data;
> +	size_t len; /* in bytes */
> +};
> +
>  struct xe_config_group_device {
>  	struct config_group group;
>  	struct config_group sriov;
> @@ -299,6 +322,7 @@ struct xe_config_group_device {
>  		u64 gt_types_allowed;
>  		u64 engines_allowed;
>  		u32 migrate_ulls_period_ms;
> +		struct hwconfig_blob hwconfig;
>  		struct wa_bb ctx_restore_post_bb[XE_ENGINE_CLASS_MAX];
>  		struct wa_bb ctx_restore_mid_bb[XE_ENGINE_CLASS_MAX];
>  		bool survivability_mode;
> @@ -937,6 +961,50 @@ static ssize_t ctx_restore_post_bb_store(struct config_item *item,
>  	return wa_bb_store(dev->config.ctx_restore_post_bb, dev, data, sz);
>  }
>  
> +static ssize_t hwconfig_read(struct config_item *item, void *buf, size_t count)
> +{
> +	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +
> +	guard(mutex)(&dev->lock);
> +
> +	if (!buf)
> +		return dev->config.hwconfig.len;
> +
> +	count = min(count, dev->config.hwconfig.len);
> +	memcpy(buf, dev->config.hwconfig.data, count);
> +
> +	return count;
> +}
> +
> +static ssize_t hwconfig_write(struct config_item *item, const void *buf, size_t count)
> +{
> +	struct xe_config_group_device *dev = to_xe_config_group_device(item);
> +	void *data = NULL;
> +
> +	/* The table is a sequence of dwords */
> +	if (count % sizeof(u32))
> +		return -EINVAL;
> +
> +	if (count) {
> +		data = kmemdup(buf, count, GFP_KERNEL);
> +		if (!data)
> +			return -ENOMEM;
> +	}
> +
> +	guard(mutex)(&dev->lock);
> +
> +	if (is_bound(dev)) {
> +		kfree(data);
> +		return -EBUSY;
> +	}
> +
> +	kfree(dev->config.hwconfig.data);
> +	dev->config.hwconfig.data = data;
> +	dev->config.hwconfig.len = count;
> +
> +	return count;
> +}
> +
>  CONFIGFS_ATTR(, ctx_restore_mid_bb);
>  CONFIGFS_ATTR(, ctx_restore_post_bb);
>  CONFIGFS_ATTR(, enable_multi_queue);
> @@ -946,6 +1014,7 @@ CONFIGFS_ATTR(, disable_vram_page_offline);
>  CONFIGFS_ATTR(, engines_allowed);
>  CONFIGFS_ATTR(, gt_types_allowed);
>  CONFIGFS_ATTR(, survivability_mode);
> +CONFIGFS_BIN_ATTR(, hwconfig, NULL, SZ_64K);
>  
>  static struct configfs_attribute *xe_config_device_attrs[] = {
>  	&attr_ctx_restore_mid_bb,
> @@ -960,12 +1029,18 @@ static struct configfs_attribute *xe_config_device_attrs[] = {
>  	NULL,
>  };
>  
> +static const struct configfs_bin_attribute *const xe_config_device_bin_attrs[] = {
> +	&attr_hwconfig,
> +	NULL,
> +};
> +
>  static void xe_config_device_release(struct config_item *item)
>  {
>  	struct xe_config_group_device *dev = to_xe_config_group_device(item);
>  
>  	mutex_destroy(&dev->lock);
>  
> +	kfree(dev->config.hwconfig.data);
>  	kfree(dev->config.ctx_restore_mid_bb[0].cs);
>  	kfree(dev->config.ctx_restore_post_bb[0].cs);
>  	kfree(dev);
> @@ -1001,6 +1076,7 @@ static const struct config_item_type xe_config_device_type = {
>  	.ct_item_ops	= &xe_config_device_ops,
>  	.ct_group_ops	= &xe_config_device_group_ops,
>  	.ct_attrs	= xe_config_device_attrs,
> +	.ct_bin_attrs	= xe_config_device_bin_attrs,
>  	.ct_owner	= THIS_MODULE,
>  };
>  
> @@ -1243,6 +1319,10 @@ static void dump_custom_dev_config(struct pci_dev *pdev,
>  	PRI_CUSTOM_ATTR("%u", sriov.admin_only_pf);
>  
>  #undef PRI_CUSTOM_ATTR
> +
> +	if (dev->config.hwconfig.len)
> +		pci_info(pdev, "configfs: hwconfig = %zu bytes\n",
> +			 dev->config.hwconfig.len);
>  }
>  
>  /**
> @@ -1479,6 +1559,43 @@ u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
>  	return len;
>  }
>  
> +/**
> + * xe_configfs_get_hwconfig - get a copy of the configfs hwconfig blob
> + * @pdev: pci device
> + * @blob: pointer to store the newly allocated copy of the blob
> + *
> + * If a hwconfig table override was written to configfs for @pdev, allocate a
> + * copy of it and store the pointer in @blob. The caller takes ownership of it
> + * and is responsible for freeing it with kfree().
> + *
> + * Return: size in bytes of the blob stored in @blob, or 0 if no override is
> + *     set or it could not be copied.
> + */
> +size_t xe_configfs_get_hwconfig(struct pci_dev *pdev, void **blob)
> +{
> +	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
> +	size_t len = 0;
> +
> +	*blob = NULL;
> +
> +	if (!dev)
> +		return 0;
> +
> +	scoped_guard(mutex, &dev->lock) {
> +		if (!dev->config.hwconfig.len)
> +			break;
> +
> +		*blob = kmemdup(dev->config.hwconfig.data,
> +				dev->config.hwconfig.len, GFP_KERNEL);
> +		if (*blob)
> +			len = dev->config.hwconfig.len;
> +	}
> +
> +	config_group_put(&dev->group);
> +
> +	return len;
> +}
> +
>  #ifdef CONFIG_PCI_IOV
>  /**
>   * xe_configfs_admin_only_pf() - Get PF's operational mode.
> diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
> index 327b648944ff..526250e9fdfe 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.h
> +++ b/drivers/gpu/drm/xe/xe_configfs.h
> @@ -32,6 +32,7 @@ u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev,
>  u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
>  					enum xe_engine_class class,
>  					const u32 **cs);
> +size_t xe_configfs_get_hwconfig(struct pci_dev *pdev, void **blob);
>  #ifdef CONFIG_PCI_IOV
>  unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev);
>  bool xe_configfs_admin_only_pf(struct pci_dev *pdev);
> @@ -54,6 +55,11 @@ static inline u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev,
>  static inline u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev,
>  						      enum xe_engine_class class,
>  						      const u32 **cs) { return 0; }
> +static inline size_t xe_configfs_get_hwconfig(struct pci_dev *pdev, void **blob)
> +{
> +	*blob = NULL;
> +	return 0;
> +}
>  #ifdef CONFIG_PCI_IOV
>  static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
>  {
> diff --git a/drivers/gpu/drm/xe/xe_guc_hwconfig.c b/drivers/gpu/drm/xe/xe_guc_hwconfig.c
> index dc667a71b438..33abfdfcff41 100644
> --- a/drivers/gpu/drm/xe/xe_guc_hwconfig.c
> +++ b/drivers/gpu/drm/xe/xe_guc_hwconfig.c
> @@ -10,7 +10,9 @@
>  
>  #include "abi/guc_actions_abi.h"
>  #include "xe_bo.h"
> +#include "xe_configfs.h"
>  #include "xe_device_types.h"
> +#include "xe_gt_printk.h"
>  #include "xe_gt_types.h"
>  #include "xe_guc.h"
>  #include "xe_map.h"
> @@ -55,6 +57,7 @@ int xe_guc_hwconfig_init(struct xe_guc *guc)
>  	struct xe_gt *gt = guc_to_gt(guc);
>  	struct xe_tile *tile = gt_to_tile(gt);
>  	struct xe_bo *bo;
> +	void *blob;
>  	u32 size;
>  	int err;
>  
> @@ -68,25 +71,38 @@ int xe_guc_hwconfig_init(struct xe_guc *guc)
>  	if (gt != xe_root_mmio_gt(xe))
>  		return 0;
>  
> -	/* ADL_P, DG2+ supports hwconfig table */
> -	if (GRAPHICS_VERx100(xe) < 1255 && xe->info.platform != XE_ALDERLAKE_P)
> -		return 0;
> -
> -	err = guc_hwconfig_size(guc, &size);
> -	if (err)
> -		return err;
> -	if (!size)
> -		return -EINVAL;
> +	size = xe_configfs_get_hwconfig(to_pci_dev(xe->drm.dev), &blob);
> +	if (!size) {
> +		/* ADL_P, DG2+ supports hwconfig table */
> +		if (GRAPHICS_VERx100(xe) < 1255 && xe->info.platform != XE_ALDERLAKE_P)
> +			return 0;
> +
> +		err = guc_hwconfig_size(guc, &size);
> +		if (err)
> +			return err;
> +		if (!size)
> +			return -EINVAL;
> +	}
>  
>  	bo = xe_managed_bo_create_pin_map(xe, tile, PAGE_ALIGN(size),
>  					  XE_BO_FLAG_SYSTEM |
>  					  XE_BO_FLAG_GGTT |
>  					  XE_BO_FLAG_GGTT_INVALIDATE);
> -	if (IS_ERR(bo))
> +	if (IS_ERR(bo)) {
> +		kfree(blob);
>  		return PTR_ERR(bo);
> +	}
>  	guc->hwconfig.bo = bo;
>  	guc->hwconfig.size = size;
>  
> +	if (blob) {
> +		xe_map_memcpy_to(xe, &bo->vmap, 0, blob, size);
> +		kfree(blob);
> +		xe_gt_info(gt, "Using hwconfig table override from configfs (%u bytes)\n",
> +			   size);
> +		return 0;
> +	}
> +
>  	return guc_hwconfig_copy(guc);
>  }
>  
> -- 
> 2.43.0
> 

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

end of thread, other threads:[~2026-11-11 19:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-11  0:08 [PATCH 0/1] Add a configfs to program the hwconfig Stuart Summers
2026-11-11  0:08 ` [PATCH 1/1] drm/xe/configfs: Allow overriding the GuC hwconfig table Stuart Summers
2026-11-11  0:25   ` sashiko-bot
2026-11-11 19:37   ` Rodrigo Vivi
2026-11-11  1:35 ` ✓ CI.KUnit: success for Add a configfs to program the hwconfig Patchwork
2026-11-11  2:09 ` ✓ Xe.CI.BAT: " Patchwork
2026-11-11  7:06 ` ✓ Xe.CI.FULL: " Patchwork

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