Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove
@ 2026-11-04  0:52 Umesh Nerlige Ramappa
  2026-11-04  0:52 ` [PATCH v3 1/5] drm/xe/oa: Use the drm device address_space for the OA stream fd Umesh Nerlige Ramappa
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Umesh Nerlige Ramappa @ 2026-11-04  0:52 UTC (permalink / raw)
  To: intel-xe, shekhar.chauhan, Matthew Brost; +Cc: harish.chegondi

When an OA stream FD is open, removing the PCI device due to PCIe errors
or doing an unbind causes a NPD and system reboots. While OA registers a
fini handler with devm, the handler does not take into account active OA
connections.

Add code to quiesce OA connection on PCI remove/unbind.

v2: Sashiko Comments
v3: More Sashiko fixes and refactor

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Umesh Nerlige Ramappa (5):
  drm/xe/oa: Use the drm device address_space for the OA stream fd
  drm/xe/oa: Split OA stream destroy into HW teardown and resource
    release
  drm/xe/oa: Take the runtime PM reference in xe_oa_destroy_locked()
  drm/xe: Reject vm_ops->access on BO mappings of an unplugged device
  drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset

 drivers/gpu/drm/xe/xe_bo.c          |  15 +-
 drivers/gpu/drm/xe/xe_oa.c          | 244 ++++++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_oa_types.h    |   3 +
 drivers/gpu/drm/xe/xe_observation.c |  23 ++-
 4 files changed, 253 insertions(+), 32 deletions(-)

-- 
2.55.0


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

* [PATCH v3 1/5] drm/xe/oa: Use the drm device address_space for the OA stream fd
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
@ 2026-11-04  0:52 ` Umesh Nerlige Ramappa
  2026-11-04  1:10   ` sashiko-bot
  2026-11-04  0:52 ` [PATCH v3 2/5] drm/xe/oa: Split OA stream destroy into HW teardown and resource release Umesh Nerlige Ramappa
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 11+ messages in thread
From: Umesh Nerlige Ramappa @ 2026-11-04  0:52 UTC (permalink / raw)
  To: intel-xe, shekhar.chauhan, Matthew Brost; +Cc: harish.chegondi

anon_inode_getfd() hands back a file whose f_mapping points at the
address_space of the kernel-wide singleton anon_inode_inode, shared by
every other anon_inode_getfd()/anon_inode_getfile() user in the system.
Userspace mmaps of the OA buffer are therefore tracked in an
address_space the driver doesn't own, so they can't be zapped without
affecting unrelated mappings, and drm_dev_unplug() doesn't zap them
along with the other mmaps of the device.

Allocating a private inode with anon_inode_create_getfile() is not an
option, since that goes through security_inode_init_security_anon() and
is denied by SELinux policies that don't know about "[xe_oa]", breaking
OA on enforcing systems.

Instead, keep the anon inode singleton and only point the file's
f_mapping at the drm device's address_space (drm.anon_inode->i_mapping),
same as drm_file does for drm fds. drm_dev_unplug() then zaps the OA
buffer mmaps too, and refaults get the dummy page from the BO fault
handler, same as for GEM mmaps. f_mapping must be set before the fd is
visible to userspace, so reserve the fd with get_unused_fd_flags(),
create the file with anon_inode_getfile() and install it with
fd_install() after setting f_mapping.

GEM mmaps live in that address_space at fake offsets starting at
DRM_FILE_PAGE_OFFSET_START, while userspace maps the OA buffer at offset
0, so the two don't share ranges there. The uAPI is unchanged.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_oa.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 838802482ada..09043bc90de9 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -1869,6 +1869,7 @@ static int xe_oa_stream_open_ioctl_locked(struct xe_oa *oa,
 {
 	struct xe_oa_stream *stream;
 	struct drm_syncobj *ufence_syncobj;
+	struct file *file;
 	int stream_fd;
 	int ret;
 
@@ -1910,12 +1911,27 @@ static int xe_oa_stream_open_ioctl_locked(struct xe_oa *oa,
 			goto err_destroy;
 	}
 
-	stream_fd = anon_inode_getfd("[xe_oa]", &xe_oa_fops, stream, 0);
+	stream_fd = get_unused_fd_flags(0);
 	if (stream_fd < 0) {
 		ret = stream_fd;
 		goto err_disable;
 	}
 
+	file = anon_inode_getfile("[xe_oa]", &xe_oa_fops, stream, 0);
+	if (IS_ERR(file)) {
+		ret = PTR_ERR(file);
+		put_unused_fd(stream_fd);
+		goto err_disable;
+	}
+
+	/*
+	 * Don't use the address_space of the anon inode singleton, which is shared with
+	 * unrelated anon files. Use the drm device's address_space instead, same as drm fds,
+	 * so that drm_dev_unplug() also zaps the OA buffer mmaps.
+	 */
+	file->f_mapping = oa->xe->drm.anon_inode->i_mapping;
+	fd_install(stream_fd, file);
+
 	if (stream->sample)
 		xe_reg_whitelist_oa_regs(stream->gt);
 
-- 
2.55.0


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

* [PATCH v3 2/5] drm/xe/oa: Split OA stream destroy into HW teardown and resource release
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
  2026-11-04  0:52 ` [PATCH v3 1/5] drm/xe/oa: Use the drm device address_space for the OA stream fd Umesh Nerlige Ramappa
@ 2026-11-04  0:52 ` Umesh Nerlige Ramappa
  2026-11-04  0:52 ` [PATCH v3 3/5] drm/xe/oa: Take the runtime PM reference in xe_oa_destroy_locked() Umesh Nerlige Ramappa
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Umesh Nerlige Ramappa @ 2026-11-04  0:52 UTC (permalink / raw)
  To: intel-xe, shekhar.chauhan, Matthew Brost; +Cc: harish.chegondi

Split the body of xe_oa_stream_destroy() into xe_oa_stream_hw_teardown(),
which puts back the HW state (register whitelist, metric set) and drops
forcewake, and xe_oa_stream_free_resources(), which releases the SW
resources (kernel exec queue, OA buffer, runtime PM reference, configs,
xe file reference).

This lets a following patch release the stream resources without
touching the HW when the device is wedged.

The only change in behavior is that forcewake is now dropped before the
kernel exec queue and the OA buffer are released, neither of which
needs it.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/xe/xe_oa.c | 33 +++++++++++++++++++++------------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 09043bc90de9..cc10403f51e0 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -875,33 +875,42 @@ static void xe_oa_disable_metric_set(struct xe_oa_stream *stream)
 		xe_mmio_rmw32(mmio, OAM_COMPRESSION_T3_CONTROL, OAM_LAT_MEASURE_ENABLE, 0);
 }
 
-static void xe_oa_stream_destroy(struct xe_oa_stream *stream)
+static void xe_oa_stream_hw_teardown(struct xe_oa_stream *stream)
 {
-	struct xe_oa_unit *u = stream->oa_unit;
-	struct xe_gt *gt = stream->hwe->gt;
-
-	if (WARN_ON(stream != u->exclusive_stream))
-		return;
-
-	WRITE_ONCE(u->exclusive_stream, NULL);
-
-	mutex_destroy(&stream->stream_lock);
-
 	if (stream->sample)
 		xe_reg_dewhitelist_oa_regs(stream->gt);
 
 	xe_oa_disable_metric_set(stream);
+	xe_force_wake_put(gt_to_fw(stream->hwe->gt), stream->fw_ref);
+}
+
+static void xe_oa_stream_free_resources(struct xe_oa_stream *stream)
+{
 	xe_exec_queue_put(stream->k_exec_q);
 
 	xe_oa_free_oa_buffer(stream);
 
-	xe_force_wake_put(gt_to_fw(gt), stream->fw_ref);
 	xe_pm_runtime_put(stream->oa->xe);
 
 	xe_oa_free_configs(stream);
 	xe_file_put(stream->xef);
 }
 
+static void xe_oa_stream_destroy(struct xe_oa_stream *stream)
+{
+	struct xe_oa_unit *u = stream->oa_unit;
+
+	if (WARN_ON(stream != u->exclusive_stream))
+		return;
+
+	WRITE_ONCE(u->exclusive_stream, NULL);
+
+	mutex_destroy(&stream->stream_lock);
+
+	xe_oa_stream_hw_teardown(stream);
+	xe_oa_stream_free_resources(stream);
+}
+
 static int xe_oa_alloc_oa_buffer(struct xe_oa_stream *stream, size_t size)
 {
 	u32 vram = mert_wa_14026633728(stream) ?
-- 
2.55.0


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

* [PATCH v3 3/5] drm/xe/oa: Take the runtime PM reference in xe_oa_destroy_locked()
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
  2026-11-04  0:52 ` [PATCH v3 1/5] drm/xe/oa: Use the drm device address_space for the OA stream fd Umesh Nerlige Ramappa
  2026-11-04  0:52 ` [PATCH v3 2/5] drm/xe/oa: Split OA stream destroy into HW teardown and resource release Umesh Nerlige Ramappa
@ 2026-11-04  0:52 ` Umesh Nerlige Ramappa
  2026-11-04  0:52 ` [PATCH v3 4/5] drm/xe: Reject vm_ops->access on BO mappings of an unplugged device Umesh Nerlige Ramappa
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Umesh Nerlige Ramappa @ 2026-11-04  0:52 UTC (permalink / raw)
  To: intel-xe, shekhar.chauhan, Matthew Brost; +Cc: harish.chegondi

Move the runtime PM get/put around stream destruction from
xe_oa_release() into xe_oa_destroy_locked(), the only caller, so the
reference is held just around the code that needs the device awake.

This lets a following patch free a stream of a removed device without
taking a runtime PM reference on it. No functional change.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 drivers/gpu/drm/xe/xe_oa.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index cc10403f51e0..7a151f338ae2 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -1691,6 +1691,8 @@ static long xe_oa_ioctl(struct file *file,
 
 static void xe_oa_destroy_locked(struct xe_oa_stream *stream)
 {
+	xe_pm_runtime_get(gt_to_xe(stream->gt));
+
 	if (stream->enabled)
 		xe_oa_disable_locked(stream);
 
@@ -1700,6 +1702,7 @@ static void xe_oa_destroy_locked(struct xe_oa_stream *stream)
 		xe_exec_queue_put(stream->exec_q);
 
 	drm_syncobj_put(stream->ufence_syncobj);
+	xe_pm_runtime_put(gt_to_xe(stream->gt));
 	kfree(stream);
 }
 
@@ -1708,11 +1711,9 @@ static int xe_oa_release(struct inode *inode, struct file *file)
 	struct xe_oa_stream *stream = file->private_data;
 	struct xe_gt *gt = stream->gt;
 
-	xe_pm_runtime_get(gt_to_xe(gt));
 	mutex_lock(&gt->oa.gt_lock);
 	xe_oa_destroy_locked(stream);
 	mutex_unlock(&gt->oa.gt_lock);
-	xe_pm_runtime_put(gt_to_xe(gt));
 
 	/* Release the reference the OA stream kept on the driver */
 	drm_dev_put(&gt_to_xe(gt)->drm);
-- 
2.55.0


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

* [PATCH v3 4/5] drm/xe: Reject vm_ops->access on BO mappings of an unplugged device
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
                   ` (2 preceding siblings ...)
  2026-11-04  0:52 ` [PATCH v3 3/5] drm/xe/oa: Take the runtime PM reference in xe_oa_destroy_locked() Umesh Nerlige Ramappa
@ 2026-11-04  0:52 ` Umesh Nerlige Ramappa
  2026-11-04  0:52 ` [PATCH v3 5/5] drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset Umesh Nerlige Ramappa
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Umesh Nerlige Ramappa @ 2026-11-04  0:52 UTC (permalink / raw)
  To: intel-xe, shekhar.chauhan, Matthew Brost; +Cc: harish.chegondi

A userspace mapping of a BO can outlive the device, e.g. across unbind
or a PCI slot reset. After drm_dev_unplug() the fault handler only
installs a dummy page, but ptrace, /proc/<pid>/mem and
process_vm_readv() can't use get_user_pages() on these VM_PFNMAP vmas
and fall back to vm_ops->access(), i.e. xe_bo_vm_access().

xe_bo_vm_access() doesn't check whether the device is still there. For
a BO in VRAM, xe_ttm_access_memory() then either goes through the VRAM
iomap, which is unmapped on remove, or submits a migrate job after the
GT has been torn down. This applies to GEM mmaps and to the OA buffer
mmap of an OA stream that outlives the device.

Enter a drm_dev_enter() section in xe_bo_vm_access() and fail with
-ENODEV once the device is unplugged, like xe_bo_cpu_fault() does.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 42a6aa1a2e4a..a74c38df2bdd 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -2345,9 +2345,20 @@ static int xe_bo_vm_access(struct vm_area_struct *vma, unsigned long addr,
 	struct ttm_buffer_object *ttm_bo = vma->vm_private_data;
 	struct xe_bo *bo = ttm_to_xe_bo(ttm_bo);
 	struct xe_device *xe = xe_bo_device(bo);
+	int idx, ret;
 
-	guard(xe_pm_runtime)(xe);
-	return ttm_bo_vm_access(vma, addr, buf, len, write);
+	/*
+	 * A mapping can outlive the device. Once it's unplugged, VRAM is unmapped and the
+	 * migrate engines are gone, so refuse access, like the fault handler does.
+	 */
+	if (!drm_dev_enter(&xe->drm, &idx))
+		return -ENODEV;
+
+	scoped_guard(xe_pm_runtime, xe)
+		ret = ttm_bo_vm_access(vma, addr, buf, len, write);
+
+	drm_dev_exit(idx);
+	return ret;
 }
 
 /**
-- 
2.55.0


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

* [PATCH v3 5/5] drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
                   ` (3 preceding siblings ...)
  2026-11-04  0:52 ` [PATCH v3 4/5] drm/xe: Reject vm_ops->access on BO mappings of an unplugged device Umesh Nerlige Ramappa
@ 2026-11-04  0:52 ` Umesh Nerlige Ramappa
  2026-11-04  1:35   ` sashiko-bot
  2026-11-04  1:13 ` ✓ CI.KUnit: success for Cleanup OA stream on PCI unbind/remove (rev3) Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 11+ messages in thread
From: Umesh Nerlige Ramappa @ 2026-11-04  0:52 UTC (permalink / raw)
  To: intel-xe, shekhar.chauhan, Matthew Brost; +Cc: harish.chegondi

An OA stream fd can outlive the device: after a PCI slot reset or after
unbind. The poll hrtimer and userspace calls on the fd could then access
MMIO and other device-bound objects that were released on remove,
causing a NULL pointer dereference, and xe_oa_release() would tear down
against freed objects.

Call xe_oa_quiesce() from xe_oa_fini() to cleanup the stream resources.
Only the stream struct stays allocated, with stream_lock and poll_wq
valid, until the fd is closed or the process owning the fd exits.

Once dead, OA interfaces return -ENODEV, poll reports EPOLLERR |
EPOLLHUP, and xe_oa_release() frees the stream struct and drops the drm
device reference.

Note:

- xe_oa_fini() is a devm action and runs after drm_dev_unplug() in
  xe_device_remove(). drm_dev_unplug() has zapped the OA buffer mmaps by
  then and refaults get a dummy page, so the OA buffer can be freed. Each
  vma holds a reference on the BO, which keeps the BO object alive until
  munmap. xe_oa_mmap() runs in a drm_dev_enter() section, which
  drm_dev_unplug() waits for, so no new mmap can reference the OA buffer
  once it is freed. stream_lock can't be used for that, since mmap runs
  under mmap_lock and read holds stream_lock across user copies.

- With an mmap still around, the OA buffer is no longer pinned when
  xe_bo_pinned_fini() DMA-unmaps the remaining kernel BOs, and
  xe_bo_pci_dev_remove_all() ran while it was still pinned. Drop its DMA
  mapping in quiesce while it is still pinned, so it doesn't outlive the
  device.

- Unbind does not reset the GT or the device, so cleanup HW state as
  well in this case. In the wedged case, HW state cleanup is not
  attempted. For a stream on an exec queue, the HW cleanup submits an LRI
  batch. Wait for it, bounded by the job timeout of the exec queue, since
  GuC submission and the fence irqs are torn down right after.

- drm_ioctl() only checks for unplug on entry, so an OA ioctl that
  started before drm_dev_unplug() could still open a stream, or access
  oa->xe and the metrics idr, around xe_oa_fini(). Run the OA ioctls in
  a drm_dev_enter() section, so drm_dev_unplug() waits for them.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
v2: Include Sashiko's comments
v3: Fix circular lockdep issue due to scope of stream->mmap_mutex
v4: Rely on drm_dev_unplug() to zap OA buffer mmaps and on the dummy page
    for refaults. Drop the OA specific fault handler, the per OA buffer
    mmap offset and mmap_mutex. Don't reject non-zero mmap offsets, that
    would change the uAPI. Split out the stream destroy refactor and the
    runtime PM move into separate patches. Wait for the LRI batch on
    quiesce, DMA-unmap the OA buffer on quiesce and run the OA ioctls in
    a drm_dev_enter() section instead of the per-GT quiesced flag
    (Sashiko).
---
 drivers/gpu/drm/xe/xe_oa.c          | 188 ++++++++++++++++++++++++++--
 drivers/gpu/drm/xe/xe_oa_types.h    |   3 +
 drivers/gpu/drm/xe/xe_observation.c |  23 +++-
 3 files changed, 199 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
index 7a151f338ae2..b4ba8874f17e 100644
--- a/drivers/gpu/drm/xe/xe_oa.c
+++ b/drivers/gpu/drm/xe/xe_oa.c
@@ -43,6 +43,7 @@
 #include "xe_sriov.h"
 #include "xe_sync.h"
 #include "xe_wa.h"
+#include "xe_wedge.h"
 
 #define DEFAULT_POLL_FREQUENCY_HZ 200
 #define DEFAULT_POLL_PERIOD_NS (NSEC_PER_SEC / DEFAULT_POLL_FREQUENCY_HZ)
@@ -260,13 +261,18 @@ static bool mert_wa_14026633728(struct xe_oa_stream *s)
 
 static bool xe_oa_buffer_check_unlocked(struct xe_oa_stream *stream)
 {
-	u32 gtt_offset = xe_bo_ggtt_addr(stream->oa_buffer.bo);
-	u32 tail, hw_tail, partial_report_size, available;
+	u32 gtt_offset, tail, hw_tail, partial_report_size, available;
 	int report_size = stream->oa_buffer.format->size;
 	unsigned long flags;
 
 	spin_lock_irqsave(&stream->oa_buffer.ptr_lock, flags);
 
+	if (stream->dead) {
+		spin_unlock_irqrestore(&stream->oa_buffer.ptr_lock, flags);
+		return false;
+	}
+
+	gtt_offset = xe_bo_ggtt_addr(stream->oa_buffer.bo);
 	hw_tail = xe_oa_hw_tail_read(stream);
 	hw_tail -= gtt_offset;
 
@@ -318,6 +324,9 @@ static enum hrtimer_restart xe_oa_poll_check_timer_cb(struct hrtimer *hrtimer)
 	struct xe_oa_stream *stream =
 		container_of(hrtimer, typeof(*stream), poll_check_timer);
 
+	if (READ_ONCE(stream->dead))
+		return HRTIMER_NORESTART;
+
 	if (xe_oa_buffer_check_unlocked(stream))
 		wake_up(&stream->poll_wq);
 
@@ -529,12 +538,19 @@ static void xe_oa_disable(struct xe_oa_stream *stream)
 
 static int xe_oa_wait_unlocked(struct xe_oa_stream *stream)
 {
+	int ret;
+
 	/* We might wait indefinitely if periodic sampling is not enabled */
 	if (!stream->periodic)
 		return -EINVAL;
 
-	return wait_event_interruptible(stream->poll_wq,
-					xe_oa_buffer_check_unlocked(stream));
+	ret = wait_event_interruptible(stream->poll_wq,
+				       READ_ONCE(stream->dead) ||
+				       xe_oa_buffer_check_unlocked(stream));
+	if (ret)
+		return ret;
+
+	return READ_ONCE(stream->dead) ? -ENODEV : 0;
 }
 
 #define OASTATUS_RELEVANT_BITS (OASTATUS_MMIO_TRG_Q_FULL | OASTATUS_COUNTER_OVERFLOW | \
@@ -563,6 +579,9 @@ static ssize_t xe_oa_read(struct file *file, char __user *buf,
 	size_t offset = 0;
 	int ret;
 
+	if (READ_ONCE(stream->dead))
+		return -ENODEV;
+
 	if (!stream->sample)
 		return -EINVAL;
 
@@ -573,13 +592,14 @@ static ssize_t xe_oa_read(struct file *file, char __user *buf,
 				return ret;
 
 			mutex_lock(&stream->stream_lock);
-			ret = __xe_oa_read(stream, buf, count, &offset);
+			ret = stream->dead ? -ENODEV :
+				__xe_oa_read(stream, buf, count, &offset);
 			mutex_unlock(&stream->stream_lock);
 		} while (!offset && !ret);
 	} else {
 		xe_oa_buffer_check_unlocked(stream);
 		mutex_lock(&stream->stream_lock);
-		ret = __xe_oa_read(stream, buf, count, &offset);
+		ret = stream->dead ? -ENODEV : __xe_oa_read(stream, buf, count, &offset);
 		mutex_unlock(&stream->stream_lock);
 	}
 
@@ -606,6 +626,9 @@ static __poll_t xe_oa_poll_locked(struct xe_oa_stream *stream,
 
 	poll_wait(file, &stream->poll_wq, wait);
 
+	if (stream->dead)
+		return EPOLLERR | EPOLLHUP;
+
 	/*
 	 * We don't explicitly check whether there's something to read here since this
 	 * path may be hot depending on what else userspace is polling, or on the timeout
@@ -752,6 +775,20 @@ static int xe_oa_load_with_lri(struct xe_oa_stream *stream, struct xe_oa_reg *re
 		goto free_bb;
 	}
 	xe_bb_free(bb, fence);
+
+	/*
+	 * When quiescing the stream, GuC submission and the fence irqs are torn down right
+	 * after, so wait for the batch. It may be queued behind other jobs of the exec queue,
+	 * which complete or get reset within the job timeout.
+	 */
+	if (READ_ONCE(stream->dead)) {
+		struct xe_exec_queue *q = stream->exec_q ?: stream->k_exec_q;
+		long timeout = msecs_to_jiffies(q->sched_props.job_timeout_ms) + HZ;
+
+		if (!dma_fence_wait_timeout(fence, false, timeout))
+			drm_err(&stream->oa->xe->drm,
+				"Timed out waiting for OA LRI batch on quiesce\n");
+	}
 	dma_fence_put(fence);
 
 	return 0;
@@ -1659,6 +1696,9 @@ static long xe_oa_ioctl_locked(struct xe_oa_stream *stream,
 			       unsigned int cmd,
 			       unsigned long arg)
 {
+	if (stream->dead)
+		return -ENODEV;
+
 	switch (cmd) {
 	case DRM_XE_OBSERVATION_IOCTL_ENABLE:
 		return xe_oa_enable_locked(stream);
@@ -1691,6 +1731,12 @@ static long xe_oa_ioctl(struct file *file,
 
 static void xe_oa_destroy_locked(struct xe_oa_stream *stream)
 {
+	if (stream->dead) {
+		mutex_destroy(&stream->stream_lock);
+		kfree(stream);
+		return;
+	}
+
 	xe_pm_runtime_get(gt_to_xe(stream->gt));
 
 	if (stream->enabled)
@@ -1724,18 +1770,36 @@ static int xe_oa_release(struct inode *inode, struct file *file)
 static int xe_oa_mmap(struct file *file, struct vm_area_struct *vma)
 {
 	struct xe_oa_stream *stream = file->private_data;
+	struct xe_device *xe = gt_to_xe(stream->gt);
 	int ret = xe_observation_paranoid_check();
-	struct xe_bo *bo = stream->oa_buffer.bo;
+	struct xe_bo *bo;
+	int idx;
 
 	if (ret) {
-		drm_dbg(&stream->oa->xe->drm, "Insufficient privilege to map OA buffer\n");
+		drm_dbg(&xe->drm, "Insufficient privilege to map OA buffer\n");
 		return ret;
 	}
 
+	/*
+	 * xe_oa_quiesce() frees the OA buffer only after drm_dev_unplug(), which waits for
+	 * this section to finish. Can't use stream_lock here, it is held across user copies
+	 * which fault on mmap_lock, held by the caller.
+	 */
+	if (!drm_dev_enter(&xe->drm, &idx))
+		return -ENODEV;
+
+	if (READ_ONCE(stream->dead)) {
+		ret = -ENODEV;
+		goto exit;
+	}
+
+	bo = stream->oa_buffer.bo;
+
 	/* Can mmap the entire OA buffer or nothing (no partial OA buffer mmaps) */
 	if (vma->vm_end - vma->vm_start != xe_bo_size(bo)) {
-		drm_dbg(&stream->oa->xe->drm, "Wrong mmap size, must be OA buffer size\n");
-		return -EINVAL;
+		drm_dbg(&xe->drm, "Wrong mmap size, must be OA buffer size\n");
+		ret = -EINVAL;
+		goto exit;
 	}
 
 	/*
@@ -1743,13 +1807,17 @@ static int xe_oa_mmap(struct file *file, struct vm_area_struct *vma)
 	 * VM_MAYSHARE, don't copy the vma on fork
 	 */
 	if (vma->vm_flags & (VM_WRITE | VM_EXEC | VM_SHARED | VM_MAYSHARE)) {
-		drm_dbg(&stream->oa->xe->drm, "mmap must be read only\n");
-		return -EINVAL;
+		drm_dbg(&xe->drm, "mmap must be read only\n");
+		ret = -EINVAL;
+		goto exit;
 	}
 	vm_flags_mod(vma, VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP | VM_DONTCOPY,
 		     VM_MAYWRITE | VM_MAYEXEC);
 
-	return drm_gem_mmap_obj(&bo->ttm.base, xe_bo_size(bo), vma);
+	ret = drm_gem_mmap_obj(&bo->ttm.base, xe_bo_size(bo), vma);
+exit:
+	drm_dev_exit(idx);
+	return ret;
 }
 
 static const struct file_operations xe_oa_fops = {
@@ -2575,6 +2643,92 @@ static void xe_oa_unregister(void *arg)
 	oa->metrics_kobj = NULL;
 }
 
+static void xe_oa_quiesce_oa_unit(struct xe_oa_unit *u, bool hw_accessible)
+{
+	struct xe_oa_stream *stream = u->exclusive_stream;
+	unsigned long flags;
+
+	if (!stream)
+		return;
+
+	mutex_lock(&stream->stream_lock);
+	if (stream->enabled && hw_accessible)
+		xe_oa_disable_locked(stream);
+
+	stream->enabled = false;
+
+	spin_lock_irqsave(&stream->oa_buffer.ptr_lock, flags);
+	WRITE_ONCE(stream->dead, true);
+	spin_unlock_irqrestore(&stream->oa_buffer.ptr_lock, flags);
+
+	if (stream->sample)
+		hrtimer_cancel(&stream->poll_check_timer);
+
+	wake_up_all(&stream->poll_wq);
+
+	/*
+	 * Restore the HW state while the stream still holds its runtime PM ref and exec_q.
+	 * The device is not reset on unbind, so this can't be left to a later reset.
+	 */
+	if (hw_accessible)
+		xe_oa_stream_hw_teardown(stream);
+
+	/*
+	 * drm_dev_unplug() has already zapped the userspace mappings of the OA buffer and
+	 * refaults get a dummy page, so the OA buffer can go. Each vma holds a reference on
+	 * the BO, keeping the BO object itself alive until munmap. The BO is then no longer
+	 * pinned when xe_bo_pinned_fini() DMA-unmaps the other kernel BOs, so drop its DMA
+	 * mapping here, while it is still pinned.
+	 */
+	xe_bo_dma_unmap_pinned(stream->oa_buffer.bo);
+	xe_oa_stream_free_resources(stream);
+	if (stream->exec_q) {
+		xe_exec_queue_put(stream->exec_q);
+		stream->exec_q = NULL;
+	}
+	drm_syncobj_put(stream->ufence_syncobj);
+
+	WRITE_ONCE(u->exclusive_stream, NULL);
+	mutex_unlock(&stream->stream_lock);
+}
+
+static void xe_oa_quiesce_gt(struct xe_gt *gt, bool hw_accessible)
+{
+	int i;
+
+	mutex_lock(&gt->oa.gt_lock);
+	for (i = 0; i < gt->oa.num_oa_units; i++)
+		xe_oa_quiesce_oa_unit(&gt->oa.oa_unit[i], hw_accessible);
+	mutex_unlock(&gt->oa.gt_lock);
+}
+
+/**
+ * xe_oa_quiesce - Disable all active OA streams on driver unbind or PCI slot reset
+ * @xe: @xe_device
+ *
+ * Disables the OA unit and stops the poll timer of every active stream, marks it dead
+ * and releases all device-bound resources (OA buffer, exec queues, configs, references).
+ * Unless the device is wedged, the HW state (whitelist, metric set, forcewake, preemption)
+ * is restored first. Any further read, poll, mmap or ioctl on the stream fd is rejected
+ * (-ENODEV). Only the stream struct stays allocated until userspace closes the fd, at
+ * which point xe_oa_release() just frees it.
+ */
+static void xe_oa_quiesce(struct xe_device *xe)
+{
+	struct xe_gt *gt;
+	u8 id;
+
+	if (!xe->oa.xe)
+		return;
+
+	/*
+	 * A wedged device may be unresponsive and a driver FLR follows on fini, so skip HW
+	 * access there and only release the SW resources.
+	 */
+	for_each_gt(gt, xe, id)
+		xe_oa_quiesce_gt(gt, !xe_wedged(xe));
+}
+
 /**
  * xe_oa_register - Xe OA registration
  * @xe: @xe_device
@@ -2886,6 +3040,14 @@ static void xe_oa_fini(void *arg)
 	if (!oa->xe)
 		return;
 
+	/*
+	 * Devm action, so this runs on unbind and PCI slot reset after xe_device_remove() even
+	 * if streams are still open. Quiesce them before the configs they hold are destroyed.
+	 * Must run after drm_dev_unplug(), which zaps the OA buffer mmaps and fences off mmap
+	 * and the OA ioctls.
+	 */
+	xe_oa_quiesce(xe);
+
 	idr_for_each(&oa->metrics_idr, destroy_config, oa);
 	idr_destroy(&oa->metrics_idr);
 
diff --git a/drivers/gpu/drm/xe/xe_oa_types.h b/drivers/gpu/drm/xe/xe_oa_types.h
index e876e9be92ba..e60a90bae1c6 100644
--- a/drivers/gpu/drm/xe/xe_oa_types.h
+++ b/drivers/gpu/drm/xe/xe_oa_types.h
@@ -214,6 +214,9 @@ struct xe_oa_stream {
 	/** @enabled: Whether the stream is currently enabled */
 	bool enabled;
 
+	/** @dead: Gate HW access when device is wedged or going away */
+	bool dead;
+
 	/** @oa_config: OA configuration used by the stream */
 	struct xe_oa_config *oa_config;
 
diff --git a/drivers/gpu/drm/xe/xe_observation.c b/drivers/gpu/drm/xe/xe_observation.c
index 39e05b9131a7..a3a8ac358c81 100644
--- a/drivers/gpu/drm/xe/xe_observation.c
+++ b/drivers/gpu/drm/xe/xe_observation.c
@@ -7,6 +7,7 @@
 #include <linux/perf_event.h>
 #include <linux/sysctl.h>
 
+#include <drm/drm_drv.h>
 #include <uapi/drm/xe_drm.h>
 
 #include "xe_eu_stall.h"
@@ -35,8 +36,8 @@ int xe_observation_paranoid_check(void)
 	return perf_allow_cpu();
 }
 
-static int xe_oa_ioctl(struct drm_device *dev, struct drm_xe_observation_param *arg,
-		       struct drm_file *file)
+static int __xe_oa_ioctl(struct drm_device *dev, struct drm_xe_observation_param *arg,
+			 struct drm_file *file)
 {
 	switch (arg->observation_op) {
 	case DRM_XE_OBSERVATION_OP_STREAM_OPEN:
@@ -50,6 +51,24 @@ static int xe_oa_ioctl(struct drm_device *dev, struct drm_xe_observation_param *
 	}
 }
 
+static int xe_oa_ioctl(struct drm_device *dev, struct drm_xe_observation_param *arg,
+		       struct drm_file *file)
+{
+	int idx, ret;
+
+	/*
+	 * drm_ioctl() only checks for unplug on entry. Hold off drm_dev_unplug() while the OA
+	 * ioctls run, so that xe_oa_fini() can't tear down OA under them.
+	 */
+	if (!drm_dev_enter(dev, &idx))
+		return -ENODEV;
+
+	ret = __xe_oa_ioctl(dev, arg, file);
+
+	drm_dev_exit(idx);
+	return ret;
+}
+
 static int xe_eu_stall_ioctl(struct drm_device *dev, struct drm_xe_observation_param *arg,
 			     struct drm_file *file)
 {
-- 
2.55.0


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

* Re: [PATCH v3 1/5] drm/xe/oa: Use the drm device address_space for the OA stream fd
  2026-11-04  0:52 ` [PATCH v3 1/5] drm/xe/oa: Use the drm device address_space for the OA stream fd Umesh Nerlige Ramappa
@ 2026-11-04  1:10   ` sashiko-bot
  0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-11-04  1:10 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa, intel-xe

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/xe/oa: missing vm_pgoff check in xe_oa_mmap() allows OOB fault
--

commit fbfcd89abe0e799c3080815623130528c7cfb1de
Author: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

drm/xe/oa: Use the drm device address_space for the OA stream fd

This commit points the OA stream file's f_mapping at the DRM device's
anon_inode address_space so that drm_dev_unplug() zaps OA buffer mmaps
alongside GEM mmaps when the device is unplugged.

> diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> index 838802482adaf..09043bc90de94 100644
> --- a/drivers/gpu/drm/xe/xe_oa.c
> +++ b/drivers/gpu/drm/xe/xe_oa.c
> @@ -1869,6 +1869,7 @@ static int xe_oa_stream_open_ioctl_locked(struct xe_oa *oa,
>  {
>  	struct xe_oa_stream *stream;
>  	struct drm_syncobj *ufence_syncobj;
> +	struct file *file;
>  	int stream_fd;
>  	int ret;
>  
> @@ -1910,12 +1911,27 @@ static int xe_oa_stream_open_ioctl_locked(struct xe_oa *oa,
>  			goto err_destroy;
>  	}
>  
> -	stream_fd = anon_inode_getfd("[xe_oa]", &xe_oa_fops, stream, 0);
> +	stream_fd = get_unused_fd_flags(0);
>  	if (stream_fd < 0) {
>  		ret = stream_fd;
>  		goto err_disable;
>  	}
>  
> +	file = anon_inode_getfile("[xe_oa]", &xe_oa_fops, stream, 0);
> +	if (IS_ERR(file)) {
> +		ret = PTR_ERR(file);
> +		put_unused_fd(stream_fd);
> +		goto err_disable;
> +	}
> +
> +	/*
> +	 * Don't use the address_space of the anon inode singleton, which is shared with
> +	 * unrelated anon files. Use the drm device's address_space instead, same as drm fds,
> +	 * so that drm_dev_unplug() also zaps the OA buffer mmaps.
> +	 */
> +	file->f_mapping = oa->xe->drm.anon_inode->i_mapping;
> +	fd_install(stream_fd, file);

[Severity: High]
Does sharing oa->xe->drm.anon_inode->i_mapping require xe_oa_mmap() to
reject a non-zero vma->vm_pgoff?

The commit message notes that GEM mmaps live at fake offsets starting at
DRM_FILE_PAGE_OFFSET_START while userspace maps the OA buffer at offset 0.
However, in drivers/gpu/drm/xe/xe_oa.c, xe_oa_mmap() only checks the VMA
size and does not verify that vma->vm_pgoff is 0:

drivers/gpu/drm/xe/xe_oa.c:xe_oa_mmap() {
	...
	/* Can mmap the entire OA buffer or nothing (no partial OA buffer mmaps) */
	if (vma->vm_end - vma->vm_start != xe_bo_size(bo)) {
		drm_dbg(&stream->oa->xe->drm, "Wrong mmap size, must be OA buffer size\n");
		return -EINVAL;
	}

	return drm_gem_mmap_obj(&bo->ttm.base, xe_bo_size(bo), vma);
}

Because stream_fd is backed by anon_inode_inode (which is not S_ISREG),
do_mmap() allows arbitrary page-aligned offsets, and neither xe_oa_mmap()
nor the drm_gem_mmap_obj() -> xe_gem_object_mmap() -> drm_gem_ttm_mmap() ->
ttm_bo_mmap_obj() call chain checks vma->vm_pgoff.

If userspace calls mmap() on stream_fd with a non-zero offset in the
DRM_FILE_PAGE_OFFSET_START range, the OA VMA is inserted into
oa->xe->drm.anon_inode->i_mapping->i_mmap at [vma->vm_pgoff,
vma->vm_pgoff + vma_pages(vma) - 1], colliding with GEM BO vma_node ranges
so that drm_vma_node_unmap() on a GEM BO at that range will unexpectedly
zap the OA VMA.

In addition, stream->oa_buffer.bo is allocated in xe_oa_alloc_oa_buffer()
as ttm_bo_type_kernel, so drm_vma_node_start(&bo->ttm.base.vma_node) is 0.
When a page fault occurs via xe_bo_cpu_fault() -> __xe_bo_cpu_fault() ->
ttm_bo_vm_fault_reserved() in drivers/gpu/drm/ttm/ttm_bo_vm.c:

drivers/gpu/drm/ttm/ttm_bo_vm.c:ttm_bo_vm_fault_reserved() {
	...
	page_offset = linear_page_index(vma, address) -
		drm_vma_node_start(&bo->base.vma_node);
	page_last = vma_end_pgoff(vma) -
		drm_vma_node_start(&bo->base.vma_node);

	if (unlikely(page_offset >= PFN_UP(bo->base.size)))
		return VM_FAULT_SIGBUS;
	...
}

If 0 < vma->vm_pgoff < PFN_UP(bo->base.size) and userspace faults at an
address where page_offset < PFN_UP(bo->base.size) (for example,
PFN_UP(bo->base.size) - 1), the initial bounds check passes, and the
prefault loop increments page_offset up to page_last - 1 (which is
vma->vm_pgoff + PFN_UP(bo->base.size) - 1), reading past the end of
ttm->pages[] or the BO's VRAM resource and mapping out-of-bounds physical
pages into userspace?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261104005221.3230003-7-umesh.nerlige.ramappa@intel.com?part=1

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

* ✓ CI.KUnit: success for Cleanup OA stream on PCI unbind/remove (rev3)
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
                   ` (4 preceding siblings ...)
  2026-11-04  0:52 ` [PATCH v3 5/5] drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset Umesh Nerlige Ramappa
@ 2026-11-04  1:13 ` Patchwork
  2026-11-04  1:57 ` ✓ Xe.CI.BAT: " Patchwork
  2026-11-04 16:50 ` ✓ Xe.CI.FULL: " Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-11-04  1:13 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: intel-xe

== Series Details ==

Series: Cleanup OA stream on PCI unbind/remove (rev3)
URL   : https://patchwork.freedesktop.org/series/177300/
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:10:53] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:10:58] 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:11:19] Starting KUnit Kernel (1/1)...
[01:11:19] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:11:19] ================= gpu_buddy (14 subtests) ==================
[01:11:19] [PASSED] gpu_test_buddy_alloc_limit
[01:11:19] [PASSED] gpu_test_buddy_alloc_optimistic
[01:11:19] [PASSED] gpu_test_buddy_alloc_pessimistic
[01:11:19] [PASSED] gpu_test_buddy_alloc_pathological
[01:11:19] [PASSED] gpu_test_buddy_alloc_contiguous
[01:11:19] [PASSED] gpu_test_buddy_alloc_clear
[01:11:19] [PASSED] gpu_test_buddy_alloc_range
[01:11:19] [PASSED] gpu_test_buddy_alloc_range_bias
[01:11:20] [PASSED] gpu_test_buddy_fragmentation_performance
[01:11:21] [PASSED] gpu_test_buddy_dirty_tracker_performance
[01:11:21] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[01:11:21] [PASSED] gpu_test_buddy_offset_aligned_allocation
[01:11:21] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[01:11:21] [PASSED] gpu_test_buddy_addr_to_block
[01:11:21] ==================== [PASSED] gpu_buddy ====================
[01:11:21] ============================================================
[01:11:21] Testing complete. Ran 14 tests: passed: 14
[01:11:21] Elapsed time: 27.337s total, 5.095s configuring, 20.375s building, 1.826s 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:11:21] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:11:23] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[01:12:02] Starting KUnit Kernel (1/1)...
[01:12:02] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:12:02] ================== guc_buf (11 subtests) ===================
[01:12:02] [PASSED] test_smallest
[01:12:02] [PASSED] test_largest
[01:12:02] [PASSED] test_granular
[01:12:02] [PASSED] test_unique
[01:12:02] [PASSED] test_overlap
[01:12:02] [PASSED] test_reusable
[01:12:02] [PASSED] test_too_big
[01:12:02] [PASSED] test_flush
[01:12:02] [PASSED] test_lookup
[01:12:02] [PASSED] test_data
[01:12:02] [PASSED] test_class
[01:12:02] ===================== [PASSED] guc_buf =====================
[01:12:02] =================== guc_dbm (7 subtests) ===================
[01:12:02] [PASSED] test_empty
[01:12:02] [PASSED] test_default
[01:12:02] ======================== test_size  ========================
[01:12:02] [PASSED] 4
[01:12:02] [PASSED] 8
[01:12:02] [PASSED] 32
[01:12:02] [PASSED] 256
[01:12:02] ==================== [PASSED] test_size ====================
[01:12:02] ======================= test_reuse  ========================
[01:12:02] [PASSED] 4
[01:12:02] [PASSED] 8
[01:12:02] [PASSED] 32
[01:12:02] [PASSED] 256
[01:12:02] =================== [PASSED] test_reuse ====================
[01:12:02] =================== test_range_overlap  ====================
[01:12:02] [PASSED] 4
[01:12:02] [PASSED] 8
[01:12:02] [PASSED] 32
[01:12:02] [PASSED] 256
[01:12:02] =============== [PASSED] test_range_overlap ================
[01:12:02] =================== test_range_compact  ====================
[01:12:02] [PASSED] 4
[01:12:02] [PASSED] 8
[01:12:02] [PASSED] 32
[01:12:02] [PASSED] 256
[01:12:02] =============== [PASSED] test_range_compact ================
[01:12:02] ==================== test_range_spare  =====================
[01:12:02] [PASSED] 4
[01:12:02] [PASSED] 8
[01:12:02] [PASSED] 32
[01:12:02] [PASSED] 256
[01:12:02] ================ [PASSED] test_range_spare =================
[01:12:02] ===================== [PASSED] guc_dbm =====================
[01:12:02] ================== guc_idm (22 subtests) ===================
[01:12:02] [PASSED] bad_init
[01:12:02] [PASSED] no_init
[01:12:02] [PASSED] init_fini
[01:12:02] [PASSED] check_init_small
[01:12:02] [PASSED] check_init_shared
[01:12:02] [PASSED] check_used
[01:12:02] [PASSED] check_quota
[01:12:02] [PASSED] check_all
[01:12:02] [PASSED] check_limits
[01:12:02] [PASSED] check_overlap
[01:12:02] [PASSED] check_overlap_alloc
[01:12:02] [PASSED] check_overlap_release
[01:12:02] [PASSED] check_overlap_partial_init
[01:12:02] [PASSED] check_overlap_partial_shared_range_blocking
[01:12:02] [PASSED] check_used_usable
[01:12:02] [PASSED] check_used_shareable
[01:12:02] [PASSED] check_used_mixed
[01:12:02] [PASSED] check_release_usable_range
[01:12:02] [PASSED] check_release_shareable_range
[01:12:02] [PASSED] check_split_boundaries
[01:12:02] [PASSED] check_shareable_spare
[01:12:02] [PASSED] check_shareable_spare_fragmented_tail
[01:12:02] ===================== [PASSED] guc_idm =====================
[01:12:02] ============== guc_klv_helpers (13 subtests) ===============
[01:12:02] [PASSED] test_count
[01:12:02] [PASSED] test_encode_u32
[01:12:02] [PASSED] test_encode_u64
[01:12:02] [PASSED] test_encode_string
[01:12:02] [PASSED] test_encode_object_raw
[01:12:02] [PASSED] test_encode_object_klv
[01:12:02] [PASSED] test_encode_object_nested
[01:12:02] [PASSED] test_encode_object_basic
[01:12:02] ===================== test_decode_u16  =====================
[01:12:02] [PASSED] empty
[01:12:02] [PASSED] valid
[01:12:02] [PASSED] max
[01:12:02] [PASSED] big
[01:12:02] [PASSED] long
[01:12:02] ================= [PASSED] test_decode_u16 =================
[01:12:02] ===================== test_decode_u32  =====================
[01:12:02] [PASSED] empty
[01:12:02] [PASSED] valid
[01:12:02] [PASSED] max
[01:12:02] [PASSED] long
[01:12:02] ================= [PASSED] test_decode_u32 =================
[01:12:02] ===================== test_decode_u64  =====================
[01:12:02] [PASSED] empty
[01:12:02] [PASSED] short
[01:12:02] [PASSED] valid
[01:12:02] [PASSED] max
[01:12:02] [PASSED] long
[01:12:02] ================= [PASSED] test_decode_u64 =================
[01:12:02] ===================== test_decode_str  =====================
[01:12:02] [PASSED] empty
[01:12:02] [PASSED] one
[01:12:02] [PASSED] one_trash
[01:12:02] [PASSED] two
[01:12:02] [PASSED] two_trash
[01:12:02] [PASSED] three
[01:12:02] [PASSED] dword
[01:12:02] [PASSED] four
[01:12:02] [PASSED] five
[01:12:02] [PASSED] six
[01:12:02] [PASSED] seven
[01:12:02] [PASSED] qword
[01:12:02] ================= [PASSED] test_decode_str =================
[01:12:02] [PASSED] test_print
[01:12:02] ================= [PASSED] guc_klv_helpers =================
[01:12:02] =================== xe_log (4 subtests) ====================
[01:12:02] [PASSED] demo_cper
[01:12:02] [PASSED] demo_dmesg
[01:12:02] ======================= test_dmesg  ========================
[01:12:02] [PASSED] test_fatal
[01:12:02] [PASSED] test_fatal_tile
[01:12:02] [PASSED] test_fatal_gt
[01:12:02] [PASSED] test_fatal_comp
[01:12:02] [PASSED] test_fatal_comp_tile
[01:12:02] [PASSED] test_fatal_comp_gt
[01:12:02] [PASSED] test_fatal_all
[01:12:02] [PASSED] test_recoverable
[01:12:02] [PASSED] test_recoverable_tile
[01:12:02] [PASSED] test_recoverable_gt
[01:12:02] [PASSED] test_recoverable_comp
[01:12:02] [PASSED] test_recoverable_comp_tile
[01:12:02] [PASSED] test_recoverable_comp_gt
[01:12:02] [PASSED] test_recoverable_all
[01:12:02] [PASSED] test_info
[01:12:02] [PASSED] test_info_tile
[01:12:02] [PASSED] test_info_gt
[01:12:02] [PASSED] test_info_err
[01:12:02] [PASSED] test_info_comp
[01:12:02] [PASSED] test_info_comp_tile
[01:12:02] [PASSED] test_info_comp_gt
[01:12:02] [PASSED] test_info_all
[01:12:02] [PASSED] test_hw_fatal
[01:12:02] [PASSED] test_hw_recoverable
[01:12:02] [PASSED] test_hw_corrected
[01:12:02] [PASSED] test_hw_informational
[01:12:02] =================== [PASSED] test_dmesg ====================
[01:12:02] ====================== test_invalid  =======================
[01:12:02] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[01:12:02] ================== [SKIPPED] test_invalid ==================
[01:12:02] ===================== [PASSED] xe_log ======================
[01:12:02] ================== no_relay (3 subtests) ===================
[01:12:02] [PASSED] xe_drops_guc2pf_if_not_ready
[01:12:02] [PASSED] xe_drops_guc2vf_if_not_ready
[01:12:02] [PASSED] xe_rejects_send_if_not_ready
[01:12:02] ==================== [PASSED] no_relay =====================
[01:12:02] ================== pf_relay (14 subtests) ==================
[01:12:02] [PASSED] pf_rejects_guc2pf_too_short
[01:12:02] [PASSED] pf_rejects_guc2pf_too_long
[01:12:02] [PASSED] pf_rejects_guc2pf_no_payload
[01:12:02] [PASSED] pf_fails_no_payload
[01:12:02] [PASSED] pf_fails_bad_origin
[01:12:02] [PASSED] pf_fails_bad_type
[01:12:02] [PASSED] pf_txn_reports_error
[01:12:02] [PASSED] pf_txn_sends_pf2guc
[01:12:02] [PASSED] pf_sends_pf2guc
[01:12:02] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:12:02] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:12:02] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:12:02] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:12:02] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[01:12:02] ==================== [PASSED] pf_relay =====================
[01:12:02] ================== vf_relay (3 subtests) ===================
[01:12:02] [PASSED] vf_rejects_guc2vf_too_short
[01:12:02] [PASSED] vf_rejects_guc2vf_too_long
[01:12:02] [PASSED] vf_rejects_guc2vf_no_payload
[01:12:02] ==================== [PASSED] vf_relay =====================
[01:12:02] ================ pf_gt_config (9 subtests) =================
[01:12:02] [PASSED] fair_contexts_1vf
[01:12:02] [PASSED] fair_doorbells_1vf
[01:12:02] [PASSED] fair_ggtt_1vf
[01:12:02] ====================== fair_vram_1vf  ======================
[01:12:02] [PASSED] 3.50 GiB
[01:12:02] [PASSED] 11.5 GiB
[01:12:02] [PASSED] 15.5 GiB
[01:12:02] [PASSED] 31.5 GiB
[01:12:02] [PASSED] 63.5 GiB
[01:12:02] [PASSED] 1.91 GiB
[01:12:02] ================== [PASSED] fair_vram_1vf ==================
[01:12:02] ================ fair_vram_1vf_admin_only  =================
[01:12:02] [PASSED] 3.50 GiB
[01:12:02] [PASSED] 11.5 GiB
[01:12:02] [PASSED] 15.5 GiB
[01:12:02] [PASSED] 31.5 GiB
[01:12:02] [PASSED] 63.5 GiB
[01:12:02] [PASSED] 1.91 GiB
[01:12:02] ============ [PASSED] fair_vram_1vf_admin_only =============
[01:12:02] ====================== fair_contexts  ======================
[01:12:02] [PASSED] 1 VF
[01:12:02] [PASSED] 2 VFs
[01:12:02] [PASSED] 3 VFs
[01:12:02] [PASSED] 4 VFs
[01:12:02] [PASSED] 5 VFs
[01:12:02] [PASSED] 6 VFs
[01:12:02] [PASSED] 7 VFs
[01:12:02] [PASSED] 8 VFs
[01:12:02] [PASSED] 9 VFs
[01:12:02] [PASSED] 10 VFs
[01:12:02] [PASSED] 11 VFs
[01:12:02] [PASSED] 12 VFs
[01:12:02] [PASSED] 13 VFs
[01:12:02] [PASSED] 14 VFs
[01:12:02] [PASSED] 15 VFs
[01:12:02] [PASSED] 16 VFs
[01:12:02] [PASSED] 17 VFs
[01:12:02] [PASSED] 18 VFs
[01:12:02] [PASSED] 19 VFs
[01:12:02] [PASSED] 20 VFs
[01:12:02] [PASSED] 21 VFs
[01:12:02] [PASSED] 22 VFs
[01:12:02] [PASSED] 23 VFs
[01:12:02] [PASSED] 24 VFs
[01:12:02] [PASSED] 25 VFs
[01:12:02] [PASSED] 26 VFs
[01:12:02] [PASSED] 27 VFs
[01:12:02] [PASSED] 28 VFs
[01:12:02] [PASSED] 29 VFs
[01:12:02] [PASSED] 30 VFs
[01:12:02] [PASSED] 31 VFs
[01:12:02] [PASSED] 32 VFs
[01:12:02] [PASSED] 33 VFs
[01:12:02] [PASSED] 34 VFs
[01:12:02] [PASSED] 35 VFs
[01:12:02] [PASSED] 36 VFs
[01:12:02] [PASSED] 37 VFs
[01:12:02] [PASSED] 38 VFs
[01:12:02] [PASSED] 39 VFs
[01:12:02] [PASSED] 40 VFs
[01:12:02] [PASSED] 41 VFs
[01:12:02] [PASSED] 42 VFs
[01:12:02] [PASSED] 43 VFs
[01:12:02] [PASSED] 44 VFs
[01:12:02] [PASSED] 45 VFs
[01:12:02] [PASSED] 46 VFs
[01:12:02] [PASSED] 47 VFs
[01:12:02] [PASSED] 48 VFs
[01:12:02] [PASSED] 49 VFs
[01:12:02] [PASSED] 50 VFs
[01:12:02] [PASSED] 51 VFs
[01:12:02] [PASSED] 52 VFs
[01:12:02] [PASSED] 53 VFs
[01:12:02] [PASSED] 54 VFs
[01:12:02] [PASSED] 55 VFs
[01:12:02] [PASSED] 56 VFs
[01:12:02] [PASSED] 57 VFs
[01:12:02] [PASSED] 58 VFs
[01:12:02] [PASSED] 59 VFs
[01:12:02] [PASSED] 60 VFs
[01:12:02] [PASSED] 61 VFs
[01:12:02] [PASSED] 62 VFs
[01:12:02] [PASSED] 63 VFs
[01:12:02] ================== [PASSED] fair_contexts ==================
[01:12:02] ===================== fair_doorbells  ======================
[01:12:02] [PASSED] 1 VF
[01:12:02] [PASSED] 2 VFs
[01:12:02] [PASSED] 3 VFs
[01:12:02] [PASSED] 4 VFs
[01:12:02] [PASSED] 5 VFs
[01:12:02] [PASSED] 6 VFs
[01:12:02] [PASSED] 7 VFs
[01:12:02] [PASSED] 8 VFs
[01:12:02] [PASSED] 9 VFs
[01:12:02] [PASSED] 10 VFs
[01:12:02] [PASSED] 11 VFs
[01:12:02] [PASSED] 12 VFs
[01:12:02] [PASSED] 13 VFs
[01:12:02] [PASSED] 14 VFs
[01:12:02] [PASSED] 15 VFs
[01:12:02] [PASSED] 16 VFs
[01:12:02] [PASSED] 17 VFs
[01:12:02] [PASSED] 18 VFs
[01:12:02] [PASSED] 19 VFs
[01:12:02] [PASSED] 20 VFs
[01:12:02] [PASSED] 21 VFs
[01:12:02] [PASSED] 22 VFs
[01:12:02] [PASSED] 23 VFs
[01:12:02] [PASSED] 24 VFs
[01:12:02] [PASSED] 25 VFs
[01:12:02] [PASSED] 26 VFs
[01:12:02] [PASSED] 27 VFs
[01:12:02] [PASSED] 28 VFs
[01:12:02] [PASSED] 29 VFs
[01:12:02] [PASSED] 30 VFs
[01:12:02] [PASSED] 31 VFs
[01:12:02] [PASSED] 32 VFs
[01:12:02] [PASSED] 33 VFs
[01:12:02] [PASSED] 34 VFs
[01:12:02] [PASSED] 35 VFs
[01:12:02] [PASSED] 36 VFs
[01:12:02] [PASSED] 37 VFs
[01:12:02] [PASSED] 38 VFs
[01:12:02] [PASSED] 39 VFs
[01:12:02] [PASSED] 40 VFs
[01:12:02] [PASSED] 41 VFs
[01:12:02] [PASSED] 42 VFs
[01:12:02] [PASSED] 43 VFs
[01:12:02] [PASSED] 44 VFs
[01:12:02] [PASSED] 45 VFs
[01:12:02] [PASSED] 46 VFs
[01:12:02] [PASSED] 47 VFs
[01:12:02] [PASSED] 48 VFs
[01:12:02] [PASSED] 49 VFs
[01:12:02] [PASSED] 50 VFs
[01:12:02] [PASSED] 51 VFs
[01:12:02] [PASSED] 52 VFs
[01:12:02] [PASSED] 53 VFs
[01:12:02] [PASSED] 54 VFs
[01:12:02] [PASSED] 55 VFs
[01:12:02] [PASSED] 56 VFs
[01:12:02] [PASSED] 57 VFs
[01:12:02] [PASSED] 58 VFs
[01:12:02] [PASSED] 59 VFs
[01:12:02] [PASSED] 60 VFs
[01:12:02] [PASSED] 61 VFs
[01:12:02] [PASSED] 62 VFs
[01:12:02] [PASSED] 63 VFs
[01:12:02] ================= [PASSED] fair_doorbells ==================
[01:12:02] ======================== fair_ggtt  ========================
[01:12:02] [PASSED] 1 VF
[01:12:02] [PASSED] 2 VFs
[01:12:02] [PASSED] 3 VFs
[01:12:02] [PASSED] 4 VFs
[01:12:02] [PASSED] 5 VFs
[01:12:02] [PASSED] 6 VFs
[01:12:02] [PASSED] 7 VFs
[01:12:02] [PASSED] 8 VFs
[01:12:02] [PASSED] 9 VFs
[01:12:02] [PASSED] 10 VFs
[01:12:02] [PASSED] 11 VFs
[01:12:02] [PASSED] 12 VFs
[01:12:02] [PASSED] 13 VFs
[01:12:02] [PASSED] 14 VFs
[01:12:02] [PASSED] 15 VFs
[01:12:02] [PASSED] 16 VFs
[01:12:02] [PASSED] 17 VFs
[01:12:02] [PASSED] 18 VFs
[01:12:02] [PASSED] 19 VFs
[01:12:02] [PASSED] 20 VFs
[01:12:02] [PASSED] 21 VFs
[01:12:02] [PASSED] 22 VFs
[01:12:02] [PASSED] 23 VFs
[01:12:02] [PASSED] 24 VFs
[01:12:02] [PASSED] 25 VFs
[01:12:02] [PASSED] 26 VFs
[01:12:02] [PASSED] 27 VFs
[01:12:02] [PASSED] 28 VFs
[01:12:02] [PASSED] 29 VFs
[01:12:02] [PASSED] 30 VFs
[01:12:02] [PASSED] 31 VFs
[01:12:02] [PASSED] 32 VFs
[01:12:02] [PASSED] 33 VFs
[01:12:02] [PASSED] 34 VFs
[01:12:02] [PASSED] 35 VFs
[01:12:02] [PASSED] 36 VFs
[01:12:02] [PASSED] 37 VFs
[01:12:02] [PASSED] 38 VFs
[01:12:02] [PASSED] 39 VFs
[01:12:02] [PASSED] 40 VFs
[01:12:02] [PASSED] 41 VFs
[01:12:02] [PASSED] 42 VFs
[01:12:02] [PASSED] 43 VFs
[01:12:02] [PASSED] 44 VFs
[01:12:02] [PASSED] 45 VFs
[01:12:02] [PASSED] 46 VFs
[01:12:02] [PASSED] 47 VFs
[01:12:02] [PASSED] 48 VFs
[01:12:02] [PASSED] 49 VFs
[01:12:02] [PASSED] 50 VFs
[01:12:02] [PASSED] 51 VFs
[01:12:02] [PASSED] 52 VFs
[01:12:02] [PASSED] 53 VFs
[01:12:02] [PASSED] 54 VFs
[01:12:02] [PASSED] 55 VFs
[01:12:02] [PASSED] 56 VFs
[01:12:02] [PASSED] 57 VFs
[01:12:02] [PASSED] 58 VFs
[01:12:02] [PASSED] 59 VFs
[01:12:02] [PASSED] 60 VFs
[01:12:02] [PASSED] 61 VFs
[01:12:02] [PASSED] 62 VFs
[01:12:02] [PASSED] 63 VFs
[01:12:02] ==================== [PASSED] fair_ggtt ====================
[01:12:02] ======================== fair_vram  ========================
[01:12:02] [PASSED] 1 VF
[01:12:02] [PASSED] 2 VFs
[01:12:02] [PASSED] 3 VFs
[01:12:02] [PASSED] 4 VFs
[01:12:02] [PASSED] 5 VFs
[01:12:02] [PASSED] 6 VFs
[01:12:02] [PASSED] 7 VFs
[01:12:02] [PASSED] 8 VFs
[01:12:02] [PASSED] 9 VFs
[01:12:02] [PASSED] 10 VFs
[01:12:02] [PASSED] 11 VFs
[01:12:02] [PASSED] 12 VFs
[01:12:02] [PASSED] 13 VFs
[01:12:02] [PASSED] 14 VFs
[01:12:02] [PASSED] 15 VFs
[01:12:02] [PASSED] 16 VFs
[01:12:02] [PASSED] 17 VFs
[01:12:02] [PASSED] 18 VFs
[01:12:02] [PASSED] 19 VFs
[01:12:02] [PASSED] 20 VFs
[01:12:02] [PASSED] 21 VFs
[01:12:02] [PASSED] 22 VFs
[01:12:02] [PASSED] 23 VFs
[01:12:02] [PASSED] 24 VFs
[01:12:02] [PASSED] 25 VFs
[01:12:02] [PASSED] 26 VFs
[01:12:02] [PASSED] 27 VFs
[01:12:02] [PASSED] 28 VFs
[01:12:02] [PASSED] 29 VFs
[01:12:02] [PASSED] 30 VFs
[01:12:02] [PASSED] 31 VFs
[01:12:02] [PASSED] 32 VFs
[01:12:02] [PASSED] 33 VFs
[01:12:02] [PASSED] 34 VFs
[01:12:02] [PASSED] 35 VFs
[01:12:02] [PASSED] 36 VFs
[01:12:02] [PASSED] 37 VFs
[01:12:02] [PASSED] 38 VFs
[01:12:02] [PASSED] 39 VFs
[01:12:02] [PASSED] 40 VFs
[01:12:02] [PASSED] 41 VFs
[01:12:02] [PASSED] 42 VFs
[01:12:02] [PASSED] 43 VFs
[01:12:02] [PASSED] 44 VFs
[01:12:02] [PASSED] 45 VFs
[01:12:02] [PASSED] 46 VFs
[01:12:02] [PASSED] 47 VFs
[01:12:02] [PASSED] 48 VFs
[01:12:02] [PASSED] 49 VFs
[01:12:02] [PASSED] 50 VFs
[01:12:02] [PASSED] 51 VFs
[01:12:02] [PASSED] 52 VFs
[01:12:02] [PASSED] 53 VFs
[01:12:02] [PASSED] 54 VFs
[01:12:02] [PASSED] 55 VFs
[01:12:02] [PASSED] 56 VFs
[01:12:02] [PASSED] 57 VFs
[01:12:02] [PASSED] 58 VFs
[01:12:02] [PASSED] 59 VFs
[01:12:02] [PASSED] 60 VFs
[01:12:02] [PASSED] 61 VFs
[01:12:02] [PASSED] 62 VFs
[01:12:02] [PASSED] 63 VFs
[01:12:02] ==================== [PASSED] fair_vram ====================
[01:12:02] ================== [PASSED] pf_gt_config ===================
[01:12:02] ===================== lmtt (1 subtest) =====================
[01:12:02] ======================== test_ops  =========================
[01:12:02] [PASSED] 2-level
[01:12:02] [PASSED] multi-level
[01:12:02] ==================== [PASSED] test_ops =====================
[01:12:02] ====================== [PASSED] lmtt =======================
[01:12:02] ================= sriov_packet (1 subtest) =================
[01:12:02] [PASSED] test_descriptor_init
[01:12:02] ================== [PASSED] sriov_packet ===================
[01:12:02] ================= pf_service (11 subtests) =================
[01:12:02] [PASSED] pf_negotiate_any
[01:12:02] [PASSED] pf_negotiate_base_match
[01:12:02] [PASSED] pf_negotiate_base_newer
[01:12:02] [PASSED] pf_negotiate_base_next
[01:12:02] [SKIPPED] pf_negotiate_base_older (no older minor)
[01:12:02] [PASSED] pf_negotiate_base_prev
[01:12:02] [PASSED] pf_negotiate_latest_match
[01:12:02] [PASSED] pf_negotiate_latest_newer
[01:12:02] [PASSED] pf_negotiate_latest_next
[01:12:02] [SKIPPED] pf_negotiate_latest_older (no older minor)
[01:12:02] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[01:12:02] =================== [PASSED] pf_service ====================
[01:12:02] ================= xe_guc_g2g (2 subtests) ==================
[01:12:02] ============== xe_live_guc_g2g_kunit_default  ==============
[01:12:02] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[01:12:02] ============== xe_live_guc_g2g_kunit_allmem  ===============
[01:12:02] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[01:12:02] =================== [SKIPPED] xe_guc_g2g ===================
[01:12:02] =================== xe_mocs (2 subtests) ===================
[01:12:02] ================ xe_live_mocs_kernel_kunit  ================
[01:12:02] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[01:12:02] ================ xe_live_mocs_reset_kunit  =================
[01:12:02] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[01:12:02] ==================== [SKIPPED] xe_mocs =====================
[01:12:02] ================= xe_migrate (3 subtests) ==================
[01:12:02] ================= xe_migrate_sanity_kunit  =================
[01:12:02] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[01:12:02] ================== xe_validate_ccs_kunit  ==================
[01:12:02] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[01:12:02] ============= xe_migrate_access_memory_kunit  ==============
[01:12:02] ========= [SKIPPED] xe_migrate_access_memory_kunit =========
[01:12:02] =================== [SKIPPED] xe_migrate ===================
[01:12:02] ================== xe_dma_buf (1 subtest) ==================
[01:12:02] ==================== xe_dma_buf_kunit  =====================
[01:12:02] ================ [SKIPPED] xe_dma_buf_kunit ================
[01:12:02] =================== [SKIPPED] xe_dma_buf ===================
[01:12:02] ================= xe_bo_shrink (1 subtest) =================
[01:12:02] =================== xe_bo_shrink_kunit  ====================
[01:12:02] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[01:12:02] ================== [SKIPPED] xe_bo_shrink ==================
[01:12:02] ==================== xe_bo (2 subtests) ====================
[01:12:02] ================== xe_ccs_migrate_kunit  ===================
[01:12:02] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[01:12:02] ==================== xe_bo_evict_kunit  ====================
[01:12:02] =============== [SKIPPED] xe_bo_evict_kunit ================
[01:12:02] ===================== [SKIPPED] xe_bo ======================
[01:12:02] =================== xe_any (9 subtests) ====================
[01:12:02] [PASSED] test_to_xe
[01:12:02] [PASSED] test_to_dev
[01:12:02] [PASSED] test_to_pdev
[01:12:02] [PASSED] test_to_drm
[01:12:02] [PASSED] test_if_pdev
[01:12:02] [PASSED] test_if_xe
[01:12:02] [PASSED] test_if_tile
[01:12:02] [PASSED] test_if_gt
[01:12:02] [PASSED] test_to_id
[01:12:02] ===================== [PASSED] xe_any ======================
[01:12:02] ==================== args (13 subtests) ====================
[01:12:02] [PASSED] count_args_test
[01:12:02] [PASSED] call_args_example
[01:12:02] [PASSED] call_args_test
[01:12:02] [PASSED] drop_first_arg_example
[01:12:02] [PASSED] drop_first_arg_test
[01:12:02] [PASSED] first_arg_example
[01:12:02] [PASSED] first_arg_test
[01:12:02] [PASSED] last_arg_example
[01:12:02] [PASSED] last_arg_test
[01:12:02] [PASSED] pick_arg_example
[01:12:02] [PASSED] if_args_example
[01:12:02] [PASSED] if_args_test
[01:12:02] [PASSED] sep_comma_example
[01:12:02] ====================== [PASSED] args =======================
[01:12:02] =================== xe_pci (3 subtests) ====================
[01:12:02] ==================== check_graphics_ip  ====================
[01:12:02] [PASSED] 12.00 Xe_LP
[01:12:02] [PASSED] 12.10 Xe_LP+
[01:12:02] [PASSED] 12.55 Xe_HPG
[01:12:02] [PASSED] 12.60 Xe_HPC
[01:12:02] [PASSED] 12.70 Xe_LPG
[01:12:02] [PASSED] 12.71 Xe_LPG
[01:12:02] [PASSED] 12.74 Xe_LPG+
[01:12:02] [PASSED] 20.01 Xe2_HPG
[01:12:02] [PASSED] 20.02 Xe2_HPG
[01:12:02] [PASSED] 20.04 Xe2_LPG
[01:12:02] [PASSED] 30.00 Xe3_LPG
[01:12:02] [PASSED] 30.01 Xe3_LPG
[01:12:02] [PASSED] 30.03 Xe3_LPG
[01:12:02] [PASSED] 30.04 Xe3_LPG
[01:12:02] [PASSED] 30.05 Xe3_LPG
[01:12:02] [PASSED] 35.10 Xe3p_LPG
[01:12:02] [PASSED] 35.11 Xe3p_XPC
[01:12:02] ================ [PASSED] check_graphics_ip ================
[01:12:02] ===================== check_media_ip  ======================
[01:12:02] [PASSED] 12.00 Xe_M
[01:12:02] [PASSED] 12.55 Xe_HPM
[01:12:02] [PASSED] 13.00 Xe_LPM+
[01:12:02] [PASSED] 13.01 Xe2_HPM
[01:12:02] [PASSED] 20.00 Xe2_LPM
[01:12:02] [PASSED] 30.00 Xe3_LPM
[01:12:02] [PASSED] 30.02 Xe3_LPM
[01:12:02] [PASSED] 35.00 Xe3p_LPM
[01:12:02] [PASSED] 35.03 Xe3p_HPM
[01:12:02] ================= [PASSED] check_media_ip ==================
[01:12:02] =================== check_platform_desc  ===================
[01:12:02] [PASSED] 0x9A60 (TIGERLAKE)
[01:12:02] [PASSED] 0x9A68 (TIGERLAKE)
[01:12:02] [PASSED] 0x9A70 (TIGERLAKE)
[01:12:02] [PASSED] 0x9A40 (TIGERLAKE)
[01:12:02] [PASSED] 0x9A49 (TIGERLAKE)
[01:12:02] [PASSED] 0x9A59 (TIGERLAKE)
[01:12:02] [PASSED] 0x9A78 (TIGERLAKE)
[01:12:02] [PASSED] 0x9AC0 (TIGERLAKE)
[01:12:02] [PASSED] 0x9AC9 (TIGERLAKE)
[01:12:02] [PASSED] 0x9AD9 (TIGERLAKE)
[01:12:02] [PASSED] 0x9AF8 (TIGERLAKE)
[01:12:02] [PASSED] 0x4C80 (ROCKETLAKE)
[01:12:02] [PASSED] 0x4C8A (ROCKETLAKE)
[01:12:02] [PASSED] 0x4C8B (ROCKETLAKE)
[01:12:02] [PASSED] 0x4C8C (ROCKETLAKE)
[01:12:02] [PASSED] 0x4C90 (ROCKETLAKE)
[01:12:02] [PASSED] 0x4C9A (ROCKETLAKE)
[01:12:02] [PASSED] 0x4680 (ALDERLAKE_S)
[01:12:02] [PASSED] 0x4682 (ALDERLAKE_S)
[01:12:02] [PASSED] 0x4688 (ALDERLAKE_S)
[01:12:02] [PASSED] 0x468A (ALDERLAKE_S)
[01:12:02] [PASSED] 0x468B (ALDERLAKE_S)
[01:12:02] [PASSED] 0x4690 (ALDERLAKE_S)
[01:12:02] [PASSED] 0x4692 (ALDERLAKE_S)
[01:12:02] [PASSED] 0x4693 (ALDERLAKE_S)
[01:12:02] [PASSED] 0x46A0 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46A1 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46A2 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46A3 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46A6 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46A8 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46AA (ALDERLAKE_P)
[01:12:02] [PASSED] 0x462A (ALDERLAKE_P)
[01:12:02] [PASSED] 0x4626 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x4628 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46B0 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46B1 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46B2 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46B3 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46C0 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46C1 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46C2 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46C3 (ALDERLAKE_P)
[01:12:02] [PASSED] 0x46D0 (ALDERLAKE_N)
[01:12:02] [PASSED] 0x46D1 (ALDERLAKE_N)
[01:12:02] [PASSED] 0x46D2 (ALDERLAKE_N)
[01:12:02] [PASSED] 0x46D3 (ALDERLAKE_N)
[01:12:02] [PASSED] 0x46D4 (ALDERLAKE_N)
[01:12:02] [PASSED] 0xA721 (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7A1 (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7A9 (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7AC (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7AD (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA720 (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7A0 (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7A8 (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7AA (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA7AB (ALDERLAKE_P)
[01:12:02] [PASSED] 0xA780 (ALDERLAKE_S)
[01:12:02] [PASSED] 0xA781 (ALDERLAKE_S)
[01:12:02] [PASSED] 0xA782 (ALDERLAKE_S)
[01:12:02] [PASSED] 0xA783 (ALDERLAKE_S)
[01:12:02] [PASSED] 0xA788 (ALDERLAKE_S)
[01:12:02] [PASSED] 0xA789 (ALDERLAKE_S)
[01:12:02] [PASSED] 0xA78A (ALDERLAKE_S)
[01:12:02] [PASSED] 0xA78B (ALDERLAKE_S)
[01:12:02] [PASSED] 0x4905 (DG1)
[01:12:02] [PASSED] 0x4906 (DG1)
[01:12:02] [PASSED] 0x4907 (DG1)
[01:12:02] [PASSED] 0x4908 (DG1)
[01:12:02] [PASSED] 0x4909 (DG1)
[01:12:02] [PASSED] 0x56C0 (DG2)
[01:12:02] [PASSED] 0x56C2 (DG2)
[01:12:02] [PASSED] 0x56C1 (DG2)
[01:12:02] [PASSED] 0x7D51 (METEORLAKE)
[01:12:02] [PASSED] 0x7DD1 (METEORLAKE)
[01:12:02] [PASSED] 0x7D41 (METEORLAKE)
[01:12:02] [PASSED] 0x7D67 (METEORLAKE)
[01:12:02] [PASSED] 0xB640 (METEORLAKE)
[01:12:02] [PASSED] 0x56A0 (DG2)
[01:12:02] [PASSED] 0x56A1 (DG2)
[01:12:02] [PASSED] 0x56A2 (DG2)
[01:12:02] [PASSED] 0x56BE (DG2)
[01:12:02] [PASSED] 0x56BF (DG2)
[01:12:02] [PASSED] 0x5690 (DG2)
[01:12:02] [PASSED] 0x5691 (DG2)
[01:12:02] [PASSED] 0x5692 (DG2)
[01:12:02] [PASSED] 0x56A5 (DG2)
[01:12:02] [PASSED] 0x56A6 (DG2)
[01:12:02] [PASSED] 0x56B0 (DG2)
[01:12:02] [PASSED] 0x56B1 (DG2)
[01:12:02] [PASSED] 0x56BA (DG2)
[01:12:02] [PASSED] 0x56BB (DG2)
[01:12:02] [PASSED] 0x56BC (DG2)
[01:12:02] [PASSED] 0x56BD (DG2)
[01:12:02] [PASSED] 0x5693 (DG2)
[01:12:02] [PASSED] 0x5694 (DG2)
[01:12:02] [PASSED] 0x5695 (DG2)
[01:12:02] [PASSED] 0x56A3 (DG2)
[01:12:02] [PASSED] 0x56A4 (DG2)
[01:12:02] [PASSED] 0x56B2 (DG2)
[01:12:02] [PASSED] 0x56B3 (DG2)
[01:12:02] [PASSED] 0x5696 (DG2)
[01:12:02] [PASSED] 0x5697 (DG2)
[01:12:02] [PASSED] 0xB69 (PVC)
[01:12:02] [PASSED] 0xB6E (PVC)
[01:12:02] [PASSED] 0xBD4 (PVC)
[01:12:02] [PASSED] 0xBD5 (PVC)
[01:12:02] [PASSED] 0xBD6 (PVC)
[01:12:02] [PASSED] 0xBD7 (PVC)
[01:12:02] [PASSED] 0xBD8 (PVC)
[01:12:02] [PASSED] 0xBD9 (PVC)
[01:12:02] [PASSED] 0xBDA (PVC)
[01:12:02] [PASSED] 0xBDB (PVC)
[01:12:02] [PASSED] 0xBE0 (PVC)
[01:12:02] [PASSED] 0xBE1 (PVC)
[01:12:02] [PASSED] 0xBE5 (PVC)
[01:12:02] [PASSED] 0x7D40 (METEORLAKE)
[01:12:02] [PASSED] 0x7D45 (METEORLAKE)
[01:12:02] [PASSED] 0x7D55 (METEORLAKE)
[01:12:02] [PASSED] 0x7D60 (METEORLAKE)
[01:12:02] [PASSED] 0x7DD5 (METEORLAKE)
[01:12:02] [PASSED] 0x6420 (LUNARLAKE)
[01:12:02] [PASSED] 0x64A0 (LUNARLAKE)
[01:12:02] [PASSED] 0x64B0 (LUNARLAKE)
[01:12:02] [PASSED] 0xE202 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE209 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE20B (BATTLEMAGE)
[01:12:02] [PASSED] 0xE20C (BATTLEMAGE)
[01:12:02] [PASSED] 0xE20D (BATTLEMAGE)
[01:12:02] [PASSED] 0xE210 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE211 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE212 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE216 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE220 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE221 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE222 (BATTLEMAGE)
[01:12:02] [PASSED] 0xE223 (BATTLEMAGE)
[01:12:02] [PASSED] 0xB080 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB081 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB082 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB083 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB084 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB085 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB086 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB087 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB08F (PANTHERLAKE)
[01:12:02] [PASSED] 0xB090 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB0A0 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB0A1 (PANTHERLAKE)
[01:12:02] [PASSED] 0xB0B0 (PANTHERLAKE)
[01:12:02] [PASSED] 0xFD80 (PANTHERLAKE)
[01:12:02] [PASSED] 0xFD81 (PANTHERLAKE)
[01:12:02] [PASSED] 0xD740 (NOVALAKE_S)
[01:12:02] [PASSED] 0xD741 (NOVALAKE_S)
[01:12:02] [PASSED] 0xD742 (NOVALAKE_S)
[01:12:02] [PASSED] 0xD743 (NOVALAKE_S)
[01:12:02] [PASSED] 0xD745 (NOVALAKE_S)
[01:12:02] [PASSED] 0xD74A (NOVALAKE_S)
[01:12:02] [PASSED] 0xD74B (NOVALAKE_S)
[01:12:02] [PASSED] 0x674C (CRESCENTISLAND)
[01:12:02] [PASSED] 0x674D (CRESCENTISLAND)
[01:12:02] [PASSED] 0x674E (CRESCENTISLAND)
[01:12:02] [PASSED] 0x674F (CRESCENTISLAND)
[01:12:02] [PASSED] 0x6750 (CRESCENTISLAND)
[01:12:02] [PASSED] 0x6751 (CRESCENTISLAND)
[01:12:02] [PASSED] 0x6752 (CRESCENTISLAND)
[01:12:02] [PASSED] 0xD750 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD751 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD752 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD753 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD754 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD755 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD756 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD757 (NOVALAKE_P)
[01:12:02] [PASSED] 0xD75F (NOVALAKE_P)
[01:12:02] =============== [PASSED] check_platform_desc ===============
[01:12:02] ===================== [PASSED] xe_pci ======================
[01:12:02] ============= xe_rtp_tables_test (5 subtests) ==============
[01:12:02] ================== xe_rtp_table_gt_test  ===================
[01:12:02] [PASSED] gt_was/14011060649
[01:12:02] [PASSED] gt_was/14011059788
[01:12:02] [PASSED] gt_was/14015795083
[01:12:02] [PASSED] gt_was/16021867713
[01:12:02] [PASSED] gt_was/14019449301
[01:12:02] [PASSED] gt_was/16028005424
[01:12:02] [PASSED] gt_was/14026578760
[01:12:02] [PASSED] gt_was/1409420604
[01:12:02] [PASSED] gt_was/1408615072
[01:12:02] [PASSED] gt_was/22010523718
[01:12:02] [PASSED] gt_was/14011006942
[01:12:02] [PASSED] gt_was/14014830051
[01:12:02] [PASSED] gt_was/18018781329
[01:12:02] [PASSED] gt_was/1509235366
[01:12:02] [PASSED] gt_was/18018781329
[01:12:02] [PASSED] gt_was/16016694945
[01:12:02] [PASSED] gt_was/14018575942
[01:12:02] [PASSED] gt_was/22016670082
[01:12:02] [PASSED] gt_was/22016670082
[01:12:02] [PASSED] gt_was/14017421178
[01:12:02] [PASSED] gt_was/16025250150
[01:12:02] [PASSED] gt_was/14021871409
[01:12:02] [PASSED] gt_was/16021865536
[01:12:02] [PASSED] gt_was/14021486841
[01:12:02] [PASSED] gt_was/14025160223
[01:12:02] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[01:12:02] [PASSED] gt_was/14025635424
[01:12:02] [PASSED] gt_was/16028005424
[01:12:02] ============== [PASSED] xe_rtp_table_gt_test ===============
[01:12:02] ================== xe_rtp_table_gt_test  ===================
[01:12:02] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[01:12:02] [PASSED] gt_tunings/Tuning: 32B Access Enable
[01:12:02] [PASSED] gt_tunings/Tuning: L3 cache
[01:12:02] [PASSED] gt_tunings/Tuning: L3 cache - media
[01:12:02] [PASSED] gt_tunings/Tuning: Compression Overfetch
[01:12:02] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[01:12:02] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[01:12:02] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[01:12:02] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[01:12:02] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[01:12:02] [PASSED] gt_tunings/Tuning: Stateless compression control
[01:12:02] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[01:12:02] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[01:12:02] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[01:12:02] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[01:12:02] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[01:12:02] ============== [PASSED] xe_rtp_table_gt_test ===============
[01:12:02] ================== xe_rtp_table_oob_test  ==================
[01:12:02] [PASSED] oob_was/1607983814
[01:12:02] [PASSED] oob_was/16010904313
[01:12:02] [PASSED] oob_was/18022495364
[01:12:02] [PASSED] oob_was/22012773006
[01:12:02] [PASSED] oob_was/14014475959
[01:12:02] [PASSED] oob_was/22011391025
[01:12:02] [PASSED] oob_was/22012727170
[01:12:02] [PASSED] oob_was/22012727685
[01:12:02] [PASSED] oob_was/22016596838
[01:12:02] [PASSED] oob_was/18020744125
[01:12:02] [PASSED] oob_was/1409600907
[01:12:02] [PASSED] oob_was/22014953428
[01:12:02] [PASSED] oob_was/16017236439
[01:12:02] [PASSED] oob_was/14019821291
[01:12:02] [PASSED] oob_was/14015076503
[01:12:02] [PASSED] oob_was/22016122933
[01:12:02] [PASSED] oob_was/14018913170
[01:12:02] [PASSED] oob_was/14018094691
[01:12:02] [PASSED] oob_was/18024947630
[01:12:02] [PASSED] oob_was/16022287689
[01:12:02] [PASSED] oob_was/13011645652
[01:12:02] [PASSED] oob_was/14022293748
[01:12:02] [PASSED] oob_was/22019794406
[01:12:02] [PASSED] oob_was/22019338487
[01:12:02] [PASSED] oob_was/16023588340
[01:12:02] [PASSED] oob_was/14019789679
[01:12:02] [PASSED] oob_was/14022866841
[01:12:02] [PASSED] oob_was/16021333562
[01:12:02] [PASSED] oob_was/14016712196
[01:12:02] [PASSED] oob_was/14015568240
[01:12:02] [PASSED] oob_was/18013179988
[01:12:02] [PASSED] oob_was/1508761755
[01:12:02] [PASSED] oob_was/16023105232
[01:12:02] [PASSED] oob_was/16026508708
[01:12:02] [PASSED] oob_was/14020001231
[01:12:02] [PASSED] oob_was/16023683509
[01:12:02] [PASSED] oob_was/14025515070
[01:12:02] [PASSED] oob_was/15015404425_disable
[01:12:02] [PASSED] oob_was/16026007364
[01:12:02] [PASSED] oob_was/14020316580
[01:12:02] [PASSED] oob_was/14025883347
[01:12:02] [PASSED] oob_was/16029380221
[01:12:02] [PASSED] oob_was/22022079272
[01:12:02] [PASSED] oob_was/16029897822
[01:12:02] [PASSED] oob_was/14026539277
[01:12:02] [PASSED] oob_was/14027054324
[01:12:02] [PASSED] oob_was/14025941587
[01:12:02] [PASSED] oob_was/16030224309
[01:12:02] [PASSED] oob_was/14028709524
[01:12:02] ============== [PASSED] xe_rtp_table_oob_test ==============
[01:12:02] ================ xe_rtp_table_dev_oob_test  ================
[01:12:02] [PASSED] device_oob_was/22010954014
[01:12:02] [PASSED] device_oob_was/15015404425
[01:12:02] [PASSED] device_oob_was/22019338487_display
[01:12:02] [PASSED] device_oob_was/14022085890
[01:12:02] [PASSED] device_oob_was/14026633728
[01:12:02] [PASSED] device_oob_was/14026746987
[01:12:02] [PASSED] device_oob_was/14026779378
[01:12:02] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[01:12:02] ========== xe_rtp_table_missing_upper_bound_test  ==========
[01:12:02] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[01:12:02] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[01:12:02] [PASSED] register_whitelist/1806527549
[01:12:02] [PASSED] register_whitelist/allow_read_ctx_timestamp
[01:12:02] [PASSED] register_whitelist/allow_read_queue_timestamp
[01:12:02] [PASSED] register_whitelist/16014440446
[01:12:02] [PASSED] register_whitelist/16017236439
[01:12:02] [PASSED] register_whitelist/16020183090
[01:12:02] [PASSED] register_whitelist/14024997852
[01:12:02] [PASSED] register_whitelist/14024997852
[01:12:02] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[01:12:02] =============== [PASSED] xe_rtp_tables_test ================
[01:12:02] =================== xe_rtp (3 subtests) ====================
[01:12:02] =================== xe_rtp_rules_tests  ====================
[01:12:02] [PASSED] no
[01:12:02] [PASSED] yes
[01:12:02] [PASSED] no-and-no
[01:12:02] [PASSED] no-and-yes
[01:12:02] [PASSED] yes-and-no
[01:12:02] [PASSED] yes-and-yes
[01:12:02] [PASSED] no-or-no
[01:12:02] [PASSED] no-or-yes
[01:12:02] [PASSED] yes-or-no
[01:12:02] [PASSED] yes-or-yes
[01:12:02] [PASSED] no-yes-or-yes-no
[01:12:02] [PASSED] no-yes-or-yes-yes
[01:12:02] [PASSED] yes-yes-or-no-yes
[01:12:02] [PASSED] yes-yes-or-yes-yes
[01:12:02] [PASSED] no-no-or-yes-or-no
[01:12:03] [PASSED] or
[01:12:03] [PASSED] or-yes
[01:12:03] [PASSED] or-no
[01:12:03] [PASSED] yes-or
[01:12:03] [PASSED] no-or
[01:12:03] [PASSED] no-or-or-yes
[01:12:03] [PASSED] yes-or-or-no
[01:12:03] [PASSED] no-or-or-no
[01:12:03] [PASSED] missing-context-engine-class
[01:12:03] [PASSED] missing-context-engine-class-or-yes
[01:12:03] [PASSED] missing-context-engine-class-or-or-yes
[01:12:03] =============== [PASSED] xe_rtp_rules_tests ================
[01:12:03] =============== xe_rtp_process_to_sr_tests  ================
[01:12:03] [PASSED] coalesce-same-reg
[01:12:03] [PASSED] coalesce-same-reg-literal-and-func
[01:12:03] [PASSED] no-match-no-add
[01:12:03] [PASSED] two-regs-two-entries
[01:12:03] [PASSED] clr-one-set-other
[01:12:03] [PASSED] set-field
[01:12:03] [PASSED] conflict-duplicate
[01:12:03] [PASSED] conflict-not-disjoint
[01:12:03] [PASSED] conflict-not-disjoint-literal-and-func
[01:12:03] [PASSED] conflict-reg-type
[01:12:03] [PASSED] bad-mcr-reg-forced-to-regular
[01:12:03] [PASSED] bad-regular-reg-forced-to-mcr
[01:12:03] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[01:12:03] ================== xe_rtp_process_tests  ===================
[01:12:03] [PASSED] active1
[01:12:03] [PASSED] active2
[01:12:03] [PASSED] active-inactive
[01:12:03] [PASSED] inactive-active
[01:12:03] [PASSED] inactive-active-inactive
[01:12:03] [PASSED] inactive-inactive-inactive
[01:12:03] ============== [PASSED] xe_rtp_process_tests ===============
[01:12:03] ===================== [PASSED] xe_rtp ======================
[01:12:03] ==================== xe_wa (1 subtest) =====================
[01:12:03] ======================== xe_wa_gt  =========================
[01:12:03] [PASSED] TIGERLAKE B0
[01:12:03] [PASSED] DG1 A0
[01:12:03] [PASSED] DG1 B0
[01:12:03] [PASSED] ALDERLAKE_S A0
[01:12:03] [PASSED] ALDERLAKE_S B0
[01:12:03] [PASSED] ALDERLAKE_S C0
[01:12:03] [PASSED] ALDERLAKE_S D0
[01:12:03] [PASSED] ALDERLAKE_P A0
[01:12:03] [PASSED] ALDERLAKE_P B0
[01:12:03] [PASSED] ALDERLAKE_P C0
[01:12:03] [PASSED] ALDERLAKE_S RPLS D0
[01:12:03] [PASSED] ALDERLAKE_P RPLU E0
[01:12:03] [PASSED] DG2 G10 C0
[01:12:03] [PASSED] DG2 G11 B1
[01:12:03] [PASSED] DG2 G12 A1
[01:12:03] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[01:12:03] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[01:12:03] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[01:12:03] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[01:12:03] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[01:12:03] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[01:12:03] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[01:12:03] ==================== [PASSED] xe_wa_gt =====================
[01:12:03] ====================== [PASSED] xe_wa ======================
[01:12:03] ============================================================
[01:12:03] Testing complete. Ran 840 tests: passed: 811, skipped: 29
[01:12:03] Elapsed time: 41.752s total, 2.536s configuring, 38.451s building, 0.718s 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:12:03] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:12:05] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[01:12:30] Starting KUnit Kernel (1/1)...
[01:12:30] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:12:30] ============ drm_test_pick_cmdline (2 subtests) ============
[01:12:30] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[01:12:30] =============== drm_test_pick_cmdline_named  ===============
[01:12:30] [PASSED] NTSC
[01:12:30] [PASSED] NTSC-J
[01:12:30] [PASSED] PAL
[01:12:30] [PASSED] PAL-M
[01:12:30] =========== [PASSED] drm_test_pick_cmdline_named ===========
[01:12:30] ============== [PASSED] drm_test_pick_cmdline ==============
[01:12:30] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[01:12:30] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[01:12:30] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[01:12:30] =========== drm_validate_clone_mode (2 subtests) ===========
[01:12:30] ============== drm_test_check_in_clone_mode  ===============
[01:12:30] [PASSED] in_clone_mode
[01:12:30] [PASSED] not_in_clone_mode
[01:12:30] ========== [PASSED] drm_test_check_in_clone_mode ===========
[01:12:30] =============== drm_test_check_valid_clones  ===============
[01:12:30] [PASSED] not_in_clone_mode
[01:12:30] [PASSED] valid_clone
[01:12:30] [PASSED] invalid_clone
[01:12:30] =========== [PASSED] drm_test_check_valid_clones ===========
[01:12:30] ============= [PASSED] drm_validate_clone_mode =============
[01:12:30] ============= drm_validate_modeset (1 subtest) =============
[01:12:30] [PASSED] drm_test_check_connector_changed_modeset
[01:12:30] ============== [PASSED] drm_validate_modeset ===============
[01:12:30] ====== drm_test_bridge_get_current_state (1 subtest) =======
[01:12:30] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[01:12:30] ======== [PASSED] drm_test_bridge_get_current_state ========
[01:12:30] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[01:12:30] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[01:12:30] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[01:12:30] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[01:12:30] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[01:12:30] ============== drm_bridge_alloc (2 subtests) ===============
[01:12:30] [PASSED] drm_test_drm_bridge_alloc_basic
[01:12:30] [PASSED] drm_test_drm_bridge_alloc_get_put
[01:12:30] ================ [PASSED] drm_bridge_alloc =================
[01:12:30] ============= drm_bridge_bus_fmt (5 subtests) ==============
[01:12:30] [PASSED] drm_test_bridge_rgb_yuv_rgb
[01:12:30] [PASSED] drm_test_bridge_must_convert_to_yuv444
[01:12:30] [PASSED] drm_test_bridge_hdmi_auto_rgb
[01:12:30] [PASSED] drm_test_bridge_auto_first
[01:12:30] [PASSED] drm_test_bridge_rgb_yuv_no_path
[01:12:30] =============== [PASSED] drm_bridge_bus_fmt ================
[01:12:30] ============= drm_cmdline_parser (40 subtests) =============
[01:12:30] [PASSED] drm_test_cmdline_force_d_only
[01:12:30] [PASSED] drm_test_cmdline_force_D_only_dvi
[01:12:30] [PASSED] drm_test_cmdline_force_D_only_hdmi
[01:12:30] [PASSED] drm_test_cmdline_force_D_only_not_digital
[01:12:30] [PASSED] drm_test_cmdline_force_e_only
[01:12:30] [PASSED] drm_test_cmdline_res
[01:12:30] [PASSED] drm_test_cmdline_res_vesa
[01:12:30] [PASSED] drm_test_cmdline_res_vesa_rblank
[01:12:30] [PASSED] drm_test_cmdline_res_rblank
[01:12:30] [PASSED] drm_test_cmdline_res_bpp
[01:12:30] [PASSED] drm_test_cmdline_res_refresh
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[01:12:30] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[01:12:30] [PASSED] drm_test_cmdline_res_margins_force_on
[01:12:30] [PASSED] drm_test_cmdline_res_vesa_margins
[01:12:30] [PASSED] drm_test_cmdline_name
[01:12:30] [PASSED] drm_test_cmdline_name_bpp
[01:12:30] [PASSED] drm_test_cmdline_name_option
[01:12:30] [PASSED] drm_test_cmdline_name_bpp_option
[01:12:30] [PASSED] drm_test_cmdline_rotate_0
[01:12:30] [PASSED] drm_test_cmdline_rotate_90
[01:12:30] [PASSED] drm_test_cmdline_rotate_180
[01:12:30] [PASSED] drm_test_cmdline_rotate_270
[01:12:30] [PASSED] drm_test_cmdline_hmirror
[01:12:30] [PASSED] drm_test_cmdline_vmirror
[01:12:30] [PASSED] drm_test_cmdline_margin_options
[01:12:30] [PASSED] drm_test_cmdline_multiple_options
[01:12:30] [PASSED] drm_test_cmdline_bpp_extra_and_option
[01:12:30] [PASSED] drm_test_cmdline_extra_and_option
[01:12:30] [PASSED] drm_test_cmdline_freestanding_options
[01:12:30] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[01:12:30] [PASSED] drm_test_cmdline_panel_orientation
[01:12:30] ================ drm_test_cmdline_invalid  =================
[01:12:30] [PASSED] margin_only
[01:12:30] [PASSED] interlace_only
[01:12:30] [PASSED] res_missing_x
[01:12:30] [PASSED] res_missing_y
[01:12:30] [PASSED] res_bad_y
[01:12:30] [PASSED] res_missing_y_bpp
[01:12:30] [PASSED] res_bad_bpp
[01:12:30] [PASSED] res_bad_refresh
[01:12:30] [PASSED] res_bpp_refresh_force_on_off
[01:12:30] [PASSED] res_invalid_mode
[01:12:30] [PASSED] res_bpp_wrong_place_mode
[01:12:30] [PASSED] name_bpp_refresh
[01:12:30] [PASSED] name_refresh
[01:12:30] [PASSED] name_refresh_wrong_mode
[01:12:30] [PASSED] name_refresh_invalid_mode
[01:12:30] [PASSED] rotate_multiple
[01:12:30] [PASSED] rotate_invalid_val
[01:12:30] [PASSED] rotate_truncated
[01:12:30] [PASSED] invalid_option
[01:12:30] [PASSED] invalid_tv_option
[01:12:30] [PASSED] truncated_tv_option
[01:12:30] ============ [PASSED] drm_test_cmdline_invalid =============
[01:12:30] =============== drm_test_cmdline_tv_options  ===============
[01:12:30] [PASSED] NTSC
[01:12:30] [PASSED] NTSC_443
[01:12:30] [PASSED] NTSC_J
[01:12:30] [PASSED] PAL
[01:12:30] [PASSED] PAL_M
[01:12:30] [PASSED] PAL_N
[01:12:30] [PASSED] SECAM
[01:12:30] [PASSED] MONO_525
[01:12:30] [PASSED] MONO_625
[01:12:30] =========== [PASSED] drm_test_cmdline_tv_options ===========
[01:12:30] =============== [PASSED] drm_cmdline_parser ================
[01:12:30] ========== drmm_connector_hdmi_init (20 subtests) ==========
[01:12:30] [PASSED] drm_test_connector_hdmi_init_valid
[01:12:30] [PASSED] drm_test_connector_hdmi_init_bpc_8
[01:12:30] [PASSED] drm_test_connector_hdmi_init_bpc_10
[01:12:30] [PASSED] drm_test_connector_hdmi_init_bpc_12
[01:12:30] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[01:12:30] [PASSED] drm_test_connector_hdmi_init_bpc_null
[01:12:30] [PASSED] drm_test_connector_hdmi_init_formats_empty
[01:12:30] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[01:12:30] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[01:12:30] [PASSED] supported_formats=0x9 yuv420_allowed=1
[01:12:30] [PASSED] supported_formats=0x9 yuv420_allowed=0
[01:12:30] [PASSED] supported_formats=0x5 yuv420_allowed=1
[01:12:30] [PASSED] supported_formats=0x5 yuv420_allowed=0
[01:12:30] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[01:12:30] [PASSED] drm_test_connector_hdmi_init_null_ddc
[01:12:30] [PASSED] drm_test_connector_hdmi_init_null_product
[01:12:30] [PASSED] drm_test_connector_hdmi_init_null_vendor
[01:12:30] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[01:12:30] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[01:12:30] [PASSED] drm_test_connector_hdmi_init_product_valid
[01:12:30] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[01:12:30] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[01:12:30] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[01:12:30] ========= drm_test_connector_hdmi_init_type_valid  =========
[01:12:30] [PASSED] HDMI-A
[01:12:30] [PASSED] HDMI-B
[01:12:30] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[01:12:30] ======== drm_test_connector_hdmi_init_type_invalid  ========
[01:12:30] [PASSED] Unknown
[01:12:30] [PASSED] VGA
[01:12:30] [PASSED] DVI-I
[01:12:30] [PASSED] DVI-D
[01:12:30] [PASSED] DVI-A
[01:12:30] [PASSED] Composite
[01:12:30] [PASSED] SVIDEO
[01:12:30] [PASSED] LVDS
[01:12:30] [PASSED] Component
[01:12:30] [PASSED] DIN
[01:12:30] [PASSED] DP
[01:12:30] [PASSED] TV
[01:12:30] [PASSED] eDP
[01:12:30] [PASSED] Virtual
[01:12:30] [PASSED] DSI
[01:12:30] [PASSED] DPI
[01:12:30] [PASSED] Writeback
[01:12:30] [PASSED] SPI
[01:12:30] [PASSED] USB
[01:12:30] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[01:12:30] ============ [PASSED] drmm_connector_hdmi_init =============
[01:12:30] ============= drmm_connector_init (3 subtests) =============
[01:12:30] [PASSED] drm_test_drmm_connector_init
[01:12:30] [PASSED] drm_test_drmm_connector_init_null_ddc
[01:12:30] ========= drm_test_drmm_connector_init_type_valid  =========
[01:12:30] [PASSED] Unknown
[01:12:30] [PASSED] VGA
[01:12:30] [PASSED] DVI-I
[01:12:30] [PASSED] DVI-D
[01:12:30] [PASSED] DVI-A
[01:12:30] [PASSED] Composite
[01:12:30] [PASSED] SVIDEO
[01:12:30] [PASSED] LVDS
[01:12:30] [PASSED] Component
[01:12:30] [PASSED] DIN
[01:12:30] [PASSED] DP
[01:12:30] [PASSED] HDMI-A
[01:12:30] [PASSED] HDMI-B
[01:12:30] [PASSED] TV
[01:12:30] [PASSED] eDP
[01:12:30] [PASSED] Virtual
[01:12:30] [PASSED] DSI
[01:12:30] [PASSED] DPI
[01:12:30] [PASSED] Writeback
[01:12:30] [PASSED] SPI
[01:12:30] [PASSED] USB
[01:12:30] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[01:12:30] =============== [PASSED] drmm_connector_init ===============
[01:12:30] ========= drm_connector_dynamic_init (6 subtests) ==========
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_init
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_init_properties
[01:12:30] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[01:12:30] [PASSED] Unknown
[01:12:30] [PASSED] VGA
[01:12:30] [PASSED] DVI-I
[01:12:30] [PASSED] DVI-D
[01:12:30] [PASSED] DVI-A
[01:12:30] [PASSED] Composite
[01:12:30] [PASSED] SVIDEO
[01:12:30] [PASSED] LVDS
[01:12:30] [PASSED] Component
[01:12:30] [PASSED] DIN
[01:12:30] [PASSED] DP
[01:12:30] [PASSED] HDMI-A
[01:12:30] [PASSED] HDMI-B
[01:12:30] [PASSED] TV
[01:12:30] [PASSED] eDP
[01:12:30] [PASSED] Virtual
[01:12:30] [PASSED] DSI
[01:12:30] [PASSED] DPI
[01:12:30] [PASSED] Writeback
[01:12:30] [PASSED] SPI
[01:12:30] [PASSED] USB
[01:12:30] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[01:12:30] ======== drm_test_drm_connector_dynamic_init_name  =========
[01:12:30] [PASSED] Unknown
[01:12:30] [PASSED] VGA
[01:12:30] [PASSED] DVI-I
[01:12:30] [PASSED] DVI-D
[01:12:30] [PASSED] DVI-A
[01:12:30] [PASSED] Composite
[01:12:30] [PASSED] SVIDEO
[01:12:30] [PASSED] LVDS
[01:12:30] [PASSED] Component
[01:12:30] [PASSED] DIN
[01:12:30] [PASSED] DP
[01:12:30] [PASSED] HDMI-A
[01:12:30] [PASSED] HDMI-B
[01:12:30] [PASSED] TV
[01:12:30] [PASSED] eDP
[01:12:30] [PASSED] Virtual
[01:12:30] [PASSED] DSI
[01:12:30] [PASSED] DPI
[01:12:30] [PASSED] Writeback
[01:12:30] [PASSED] SPI
[01:12:30] [PASSED] USB
[01:12:30] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[01:12:30] =========== [PASSED] drm_connector_dynamic_init ============
[01:12:30] ==== drm_connector_dynamic_register_early (4 subtests) =====
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[01:12:30] ====== [PASSED] drm_connector_dynamic_register_early =======
[01:12:30] ======= drm_connector_dynamic_register (7 subtests) ========
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[01:12:30] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[01:12:30] ========= [PASSED] drm_connector_dynamic_register ==========
[01:12:30] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[01:12:30] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[01:12:30] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[01:12:30] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[01:12:30] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[01:12:30] ========== drm_test_get_tv_mode_from_name_valid  ===========
[01:12:30] [PASSED] NTSC
[01:12:30] [PASSED] NTSC-443
[01:12:30] [PASSED] NTSC-J
[01:12:30] [PASSED] PAL
[01:12:30] [PASSED] PAL-M
[01:12:30] [PASSED] PAL-N
[01:12:30] [PASSED] SECAM
[01:12:30] [PASSED] Mono
[01:12:30] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[01:12:30] [PASSED] drm_test_get_tv_mode_from_name_truncated
[01:12:30] ============ [PASSED] drm_get_tv_mode_from_name ============
[01:12:30] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[01:12:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[01:12:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[01:12:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[01:12:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[01:12:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[01:12:30] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[01:12:30] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[01:12:30] [PASSED] VIC 96
[01:12:30] [PASSED] VIC 97
[01:12:30] [PASSED] VIC 101
[01:12:30] [PASSED] VIC 102
[01:12:30] [PASSED] VIC 106
[01:12:30] [PASSED] VIC 107
[01:12:30] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[01:12:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[01:12:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[01:12:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[01:12:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[01:12:30] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[01:12:30] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[01:12:30] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[01:12:30] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[01:12:30] [PASSED] Automatic
[01:12:30] [PASSED] Full
[01:12:30] [PASSED] Limited 16:235
[01:12:30] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[01:12:30] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[01:12:30] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[01:12:30] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[01:12:30] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[01:12:30] [PASSED] RGB
[01:12:30] [PASSED] YUV 4:2:0
[01:12:30] [PASSED] YUV 4:2:2
[01:12:30] [PASSED] YUV 4:4:4
[01:12:30] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[01:12:30] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[01:12:30] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[01:12:30] ============= drm_damage_helper (21 subtests) ==============
[01:12:30] [PASSED] drm_test_damage_iter_no_damage
[01:12:30] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[01:12:30] [PASSED] drm_test_damage_iter_no_damage_src_moved
[01:12:30] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[01:12:30] [PASSED] drm_test_damage_iter_no_damage_not_visible
[01:12:30] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[01:12:30] [PASSED] drm_test_damage_iter_no_damage_no_fb
[01:12:30] [PASSED] drm_test_damage_iter_simple_damage
[01:12:30] [PASSED] drm_test_damage_iter_single_damage
[01:12:30] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[01:12:30] [PASSED] drm_test_damage_iter_single_damage_outside_src
[01:12:30] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[01:12:30] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[01:12:30] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[01:12:30] [PASSED] drm_test_damage_iter_single_damage_src_moved
[01:12:30] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[01:12:30] [PASSED] drm_test_damage_iter_damage
[01:12:30] [PASSED] drm_test_damage_iter_damage_one_intersect
[01:12:30] [PASSED] drm_test_damage_iter_damage_one_outside
[01:12:30] [PASSED] drm_test_damage_iter_damage_src_moved
[01:12:30] [PASSED] drm_test_damage_iter_damage_not_visible
[01:12:30] ================ [PASSED] drm_damage_helper ================
[01:12:30] ============== drm_dp_mst_helper (3 subtests) ==============
[01:12:30] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[01:12:30] [PASSED] Clock 154000 BPP 30 DSC disabled
[01:12:30] [PASSED] Clock 234000 BPP 30 DSC disabled
[01:12:30] [PASSED] Clock 297000 BPP 24 DSC disabled
[01:12:30] [PASSED] Clock 332880 BPP 24 DSC enabled
[01:12:30] [PASSED] Clock 324540 BPP 24 DSC enabled
[01:12:30] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[01:12:30] ============== drm_test_dp_mst_calc_pbn_div  ===============
[01:12:30] [PASSED] Link rate 2000000 lane count 4
[01:12:30] [PASSED] Link rate 2000000 lane count 2
[01:12:30] [PASSED] Link rate 2000000 lane count 1
[01:12:30] [PASSED] Link rate 1350000 lane count 4
[01:12:30] [PASSED] Link rate 1350000 lane count 2
[01:12:30] [PASSED] Link rate 1350000 lane count 1
[01:12:30] [PASSED] Link rate 1000000 lane count 4
[01:12:30] [PASSED] Link rate 1000000 lane count 2
[01:12:30] [PASSED] Link rate 1000000 lane count 1
[01:12:30] [PASSED] Link rate 810000 lane count 4
[01:12:30] [PASSED] Link rate 810000 lane count 2
[01:12:30] [PASSED] Link rate 810000 lane count 1
[01:12:30] [PASSED] Link rate 540000 lane count 4
[01:12:30] [PASSED] Link rate 540000 lane count 2
[01:12:30] [PASSED] Link rate 540000 lane count 1
[01:12:30] [PASSED] Link rate 270000 lane count 4
[01:12:30] [PASSED] Link rate 270000 lane count 2
[01:12:30] [PASSED] Link rate 270000 lane count 1
[01:12:30] [PASSED] Link rate 162000 lane count 4
[01:12:30] [PASSED] Link rate 162000 lane count 2
[01:12:30] [PASSED] Link rate 162000 lane count 1
[01:12:30] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[01:12:30] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[01:12:30] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[01:12:30] [PASSED] DP_POWER_UP_PHY with port number
[01:12:30] [PASSED] DP_POWER_DOWN_PHY with port number
[01:12:30] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[01:12:30] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[01:12:30] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[01:12:30] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[01:12:30] [PASSED] DP_QUERY_PAYLOAD with port number
[01:12:30] [PASSED] DP_QUERY_PAYLOAD with VCPI
[01:12:30] [PASSED] DP_REMOTE_DPCD_READ with port number
[01:12:30] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[01:12:30] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[01:12:30] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[01:12:30] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[01:12:30] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[01:12:30] [PASSED] DP_REMOTE_I2C_READ with port number
[01:12:30] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[01:12:30] [PASSED] DP_REMOTE_I2C_READ with transactions array
[01:12:30] [PASSED] DP_REMOTE_I2C_WRITE with port number
[01:12:30] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[01:12:30] [PASSED] DP_REMOTE_I2C_WRITE with data array
[01:12:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[01:12:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[01:12:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[01:12:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[01:12:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[01:12:30] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[01:12:30] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[01:12:30] ================ [PASSED] drm_dp_mst_helper ================
[01:12:30] ================== drm_exec (7 subtests) ===================
[01:12:30] [PASSED] sanitycheck
[01:12:30] [PASSED] test_lock
[01:12:30] [PASSED] test_lock_unlock
[01:12:30] [PASSED] test_duplicates
[01:12:30] [PASSED] test_prepare
[01:12:30] [PASSED] test_prepare_array
[01:12:30] [PASSED] test_multiple_loops
[01:12:30] ==================== [PASSED] drm_exec =====================
[01:12:30] =========== drm_format_helper_test (17 subtests) ===========
[01:12:30] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[01:12:30] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[01:12:30] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[01:12:30] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[01:12:30] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[01:12:30] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[01:12:30] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[01:12:30] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[01:12:30] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[01:12:30] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[01:12:30] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[01:12:30] ============== drm_test_fb_xrgb8888_to_mono  ===============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[01:12:30] ==================== drm_test_fb_swab  =====================
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ================ [PASSED] drm_test_fb_swab =================
[01:12:30] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[01:12:30] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[01:12:30] [PASSED] single_pixel_source_buffer
[01:12:30] [PASSED] single_pixel_clip_rectangle
[01:12:30] [PASSED] well_known_colors
[01:12:30] [PASSED] destination_pitch
[01:12:30] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[01:12:30] ================= drm_test_fb_clip_offset  =================
[01:12:30] [PASSED] pass through
[01:12:30] [PASSED] horizontal offset
[01:12:30] [PASSED] vertical offset
[01:12:30] [PASSED] horizontal and vertical offset
[01:12:30] [PASSED] horizontal offset (custom pitch)
[01:12:30] [PASSED] vertical offset (custom pitch)
[01:12:30] [PASSED] horizontal and vertical offset (custom pitch)
[01:12:30] ============= [PASSED] drm_test_fb_clip_offset =============
[01:12:30] =================== drm_test_fb_memcpy  ====================
[01:12:30] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[01:12:30] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[01:12:30] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[01:12:30] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[01:12:30] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[01:12:30] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[01:12:30] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[01:12:30] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[01:12:30] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[01:12:30] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[01:12:30] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[01:12:30] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[01:12:30] =============== [PASSED] drm_test_fb_memcpy ================
[01:12:30] ============= [PASSED] drm_format_helper_test ==============
[01:12:30] ================= drm_format (18 subtests) =================
[01:12:30] [PASSED] drm_test_format_block_width_invalid
[01:12:30] [PASSED] drm_test_format_block_width_one_plane
[01:12:30] [PASSED] drm_test_format_block_width_two_plane
[01:12:30] [PASSED] drm_test_format_block_width_three_plane
[01:12:30] [PASSED] drm_test_format_block_width_tiled
[01:12:30] [PASSED] drm_test_format_block_height_invalid
[01:12:30] [PASSED] drm_test_format_block_height_one_plane
[01:12:30] [PASSED] drm_test_format_block_height_two_plane
[01:12:30] [PASSED] drm_test_format_block_height_three_plane
[01:12:30] [PASSED] drm_test_format_block_height_tiled
[01:12:30] [PASSED] drm_test_format_min_pitch_invalid
[01:12:30] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[01:12:30] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[01:12:30] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[01:12:30] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[01:12:30] [PASSED] drm_test_format_min_pitch_two_plane
[01:12:30] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[01:12:30] [PASSED] drm_test_format_min_pitch_tiled
[01:12:30] =================== [PASSED] drm_format ====================
[01:12:30] ============== drm_framebuffer (10 subtests) ===============
[01:12:30] ========== drm_test_framebuffer_check_src_coords  ==========
[01:12:30] [PASSED] Success: source fits into fb
[01:12:30] [PASSED] Fail: overflowing fb with x-axis coordinate
[01:12:30] [PASSED] Fail: overflowing fb with y-axis coordinate
[01:12:30] [PASSED] Fail: overflowing fb with source width
[01:12:30] [PASSED] Fail: overflowing fb with source height
[01:12:30] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[01:12:30] [PASSED] drm_test_framebuffer_cleanup
[01:12:30] =============== drm_test_framebuffer_create  ===============
[01:12:30] [PASSED] ABGR8888 normal sizes
[01:12:30] [PASSED] ABGR8888 max sizes
[01:12:30] [PASSED] ABGR8888 pitch greater than min required
[01:12:30] [PASSED] ABGR8888 pitch less than min required
[01:12:30] [PASSED] ABGR8888 Invalid width
[01:12:30] [PASSED] ABGR8888 Invalid buffer handle
[01:12:30] [PASSED] No pixel format
[01:12:30] [PASSED] ABGR8888 Width 0
[01:12:30] [PASSED] ABGR8888 Height 0
[01:12:30] [PASSED] ABGR8888 Out of bound height * pitch combination
[01:12:30] [PASSED] ABGR8888 Large buffer offset
[01:12:30] [PASSED] ABGR8888 Buffer offset for inexistent plane
[01:12:30] [PASSED] ABGR8888 Invalid flag
[01:12:30] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[01:12:30] [PASSED] ABGR8888 Valid buffer modifier
[01:12:30] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[01:12:30] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[01:12:30] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[01:12:30] [PASSED] NV12 Normal sizes
[01:12:30] [PASSED] NV12 Max sizes
[01:12:30] [PASSED] NV12 Invalid pitch
[01:12:30] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[01:12:30] [PASSED] NV12 different  modifier per-plane
[01:12:30] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[01:12:30] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[01:12:30] [PASSED] NV12 Modifier for inexistent plane
[01:12:30] [PASSED] NV12 Handle for inexistent plane
[01:12:30] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[01:12:30] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[01:12:30] [PASSED] YVU420 Normal sizes
[01:12:30] [PASSED] YVU420 Max sizes
[01:12:30] [PASSED] YVU420 Invalid pitch
[01:12:30] [PASSED] YVU420 Different pitches
[01:12:30] [PASSED] YVU420 Different buffer offsets/pitches
[01:12:30] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[01:12:30] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[01:12:30] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[01:12:30] [PASSED] YVU420 Valid modifier
[01:12:30] [PASSED] YVU420 Different modifiers per plane
[01:12:30] [PASSED] YVU420 Modifier for inexistent plane
[01:12:30] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[01:12:30] [PASSED] X0L2 Normal sizes
[01:12:30] [PASSED] X0L2 Max sizes
[01:12:30] [PASSED] X0L2 Invalid pitch
[01:12:30] [PASSED] X0L2 Pitch greater than minimum required
[01:12:30] [PASSED] X0L2 Handle for inexistent plane
[01:12:30] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[01:12:30] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[01:12:30] [PASSED] X0L2 Valid modifier
[01:12:30] [PASSED] X0L2 Modifier for inexistent plane
[01:12:30] =========== [PASSED] drm_test_framebuffer_create ===========
[01:12:30] [PASSED] drm_test_framebuffer_free
[01:12:30] [PASSED] drm_test_framebuffer_init
[01:12:30] [PASSED] drm_test_framebuffer_init_bad_format
[01:12:30] [PASSED] drm_test_framebuffer_init_dev_mismatch
[01:12:30] [PASSED] drm_test_framebuffer_lookup
[01:12:30] [PASSED] drm_test_framebuffer_lookup_inexistent
[01:12:30] [PASSED] drm_test_framebuffer_modifiers_not_supported
[01:12:30] ================= [PASSED] drm_framebuffer =================
[01:12:30] ================ drm_gem_shmem (8 subtests) ================
[01:12:30] [PASSED] drm_gem_shmem_test_obj_create
[01:12:30] [PASSED] drm_gem_shmem_test_obj_create_private
[01:12:30] [PASSED] drm_gem_shmem_test_pin_pages
[01:12:30] [PASSED] drm_gem_shmem_test_vmap
[01:12:30] [PASSED] drm_gem_shmem_test_get_sg_table
[01:12:30] [PASSED] drm_gem_shmem_test_get_pages_sgt
[01:12:30] [PASSED] drm_gem_shmem_test_madvise
[01:12:30] [PASSED] drm_gem_shmem_test_purge
[01:12:30] ================== [PASSED] drm_gem_shmem ==================
[01:12:30] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[01:12:30] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[01:12:30] [PASSED] Automatic
[01:12:30] [PASSED] Full
[01:12:30] [PASSED] Limited 16:235
[01:12:30] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[01:12:30] [PASSED] drm_test_check_disable_connector
[01:12:30] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[01:12:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[01:12:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[01:12:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[01:12:30] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[01:12:30] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[01:12:30] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[01:12:30] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[01:12:30] [PASSED] drm_test_check_output_bpc_dvi
[01:12:30] [PASSED] drm_test_check_output_bpc_format_vic_1
[01:12:30] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[01:12:30] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[01:12:30] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[01:12:30] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[01:12:30] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[01:12:30] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[01:12:30] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[01:12:30] ============ drm_test_check_hdmi_color_format  =============
[01:12:30] [PASSED] AUTO -> RGB
[01:12:30] [PASSED] YCBCR422 -> YUV422
[01:12:30] [PASSED] YCBCR420 -> YUV420
[01:12:30] [PASSED] YCBCR444 -> YUV444
[01:12:30] [PASSED] RGB -> RGB
[01:12:30] ======== [PASSED] drm_test_check_hdmi_color_format =========
[01:12:30] ======== drm_test_check_hdmi_color_format_420_only  ========
[01:12:30] [PASSED] RGB should fail
[01:12:30] [PASSED] YUV444 should fail
[01:12:30] [PASSED] YUV422 should fail
[01:12:30] [PASSED] YUV420 should work
[01:12:30] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[01:12:30] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[01:12:30] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[01:12:30] [PASSED] drm_test_check_broadcast_rgb_value
[01:12:30] [PASSED] drm_test_check_bpc_8_value
[01:12:30] [PASSED] drm_test_check_bpc_10_value
[01:12:30] [PASSED] drm_test_check_bpc_12_value
[01:12:30] [PASSED] drm_test_check_format_value
[01:12:30] [PASSED] drm_test_check_tmds_char_value
[01:12:30] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[01:12:30] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[01:12:30] [PASSED] drm_test_check_mode_valid
[01:12:30] [PASSED] drm_test_check_mode_valid_reject
[01:12:30] [PASSED] drm_test_check_mode_valid_reject_rate
[01:12:30] [PASSED] drm_test_check_mode_valid_reject_max_clock
[01:12:30] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[01:12:30] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[01:12:30] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[01:12:30] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[01:12:30] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[01:12:30] [PASSED] drm_test_check_infoframes
[01:12:30] [PASSED] drm_test_check_reject_avi_infoframe
[01:12:30] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[01:12:30] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[01:12:30] [PASSED] drm_test_check_reject_audio_infoframe
[01:12:30] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[01:12:30] ================= drm_managed (2 subtests) =================
[01:12:30] [PASSED] drm_test_managed_release_action
[01:12:30] [PASSED] drm_test_managed_run_action
[01:12:30] =================== [PASSED] drm_managed ===================
[01:12:30] =================== drm_mm (6 subtests) ====================
[01:12:30] [PASSED] drm_test_mm_init
[01:12:30] [PASSED] drm_test_mm_debug
[01:12:30] [PASSED] drm_test_mm_align32
[01:12:30] [PASSED] drm_test_mm_align64
[01:12:30] [PASSED] drm_test_mm_lowest
[01:12:30] [PASSED] drm_test_mm_highest
[01:12:30] ===================== [PASSED] drm_mm ======================
[01:12:30] ============= drm_modes_analog_tv (5 subtests) =============
[01:12:30] [PASSED] drm_test_modes_analog_tv_mono_576i
[01:12:30] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[01:12:30] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[01:12:30] [PASSED] drm_test_modes_analog_tv_pal_576i
[01:12:30] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[01:12:30] =============== [PASSED] drm_modes_analog_tv ===============
[01:12:30] ============== drm_panic_helper (3 subtests) ===============
[01:12:30] ============= drm_test_panic_screen_user_map  ==============
[01:12:30] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[01:12:30] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[01:12:30] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[01:12:30] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[01:12:31] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[01:12:31] ========= [PASSED] drm_test_panic_screen_user_map ==========
[01:12:31] ============= drm_test_panic_screen_user_page  =============
[01:12:31] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[01:12:31] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[01:12:31] ========= [PASSED] drm_test_panic_screen_user_page =========
[01:12:31] ========== drm_test_panic_screen_user_set_pixel  ===========
[01:12:31] [PASSED] Panic screen user, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen user, mode: 494 x 494 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen user, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen user, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[01:12:31] [PASSED] Panic screen user, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 494 x 494 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1920 x 1080 	XR24 little-endian (0x34325258)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG16 little-endian (0x36314752)
[01:12:31] [PASSED] Panic screen kmsg, mode: 1024 x 768 	RG24 little-endian (0x34324752)
[01:12:31] ====== [PASSED] drm_test_panic_screen_user_set_pixel =======
[01:12:31] ================ [PASSED] drm_panic_helper =================
[01:12:31] ============== drm_plane_helper (2 subtests) ===============
[01:12:31] =============== drm_test_check_plane_state  ================
[01:12:31] [PASSED] clipping_simple
[01:12:31] [PASSED] clipping_rotate_reflect
[01:12:31] [PASSED] positioning_simple
[01:12:31] [PASSED] upscaling
[01:12:31] [PASSED] downscaling
[01:12:31] [PASSED] rounding1
[01:12:31] [PASSED] rounding2
[01:12:31] [PASSED] rounding3
[01:12:31] [PASSED] rounding4
[01:12:31] =========== [PASSED] drm_test_check_plane_state ============
[01:12:31] =========== drm_test_check_invalid_plane_state  ============
[01:12:31] [PASSED] positioning_invalid
[01:12:31] [PASSED] upscaling_invalid
[01:12:31] [PASSED] downscaling_invalid
[01:12:31] ======= [PASSED] drm_test_check_invalid_plane_state ========
[01:12:31] ================ [PASSED] drm_plane_helper =================
[01:12:31] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[01:12:31] ====== drm_test_connector_helper_tv_get_modes_check  =======
[01:12:31] [PASSED] None
[01:12:31] [PASSED] PAL
[01:12:31] [PASSED] NTSC
[01:12:31] [PASSED] Both, NTSC Default
[01:12:31] [PASSED] Both, PAL Default
[01:12:31] [PASSED] Both, NTSC Default, with PAL on command-line
[01:12:31] [PASSED] Both, PAL Default, with NTSC on command-line
[01:12:31] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[01:12:31] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[01:12:31] ================== drm_rect (9 subtests) ===================
[01:12:31] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[01:12:31] [PASSED] drm_test_rect_clip_scaled_not_clipped
[01:12:31] [PASSED] drm_test_rect_clip_scaled_clipped
[01:12:31] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[01:12:31] ================= drm_test_rect_intersect  =================
[01:12:31] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[01:12:31] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[01:12:31] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[01:12:31] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[01:12:31] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[01:12:31] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[01:12:31] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[01:12:31] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[01:12:31] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[01:12:31] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[01:12:31] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[01:12:31] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[01:12:31] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[01:12:31] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[01:12:31] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[01:12:31] ============= [PASSED] drm_test_rect_intersect =============
[01:12:31] ================ drm_test_rect_calc_hscale  ================
[01:12:31] [PASSED] normal use
[01:12:31] [PASSED] out of max range
[01:12:31] [PASSED] out of min range
[01:12:31] [PASSED] zero dst
[01:12:31] [PASSED] negative src
[01:12:31] [PASSED] negative dst
[01:12:31] ============ [PASSED] drm_test_rect_calc_hscale ============
[01:12:31] ================ drm_test_rect_calc_vscale  ================
[01:12:31] [PASSED] normal use
[01:12:31] [PASSED] out of max range
[01:12:31] [PASSED] out of min range
[01:12:31] [PASSED] zero dst
[01:12:31] [PASSED] negative src
[01:12:31] [PASSED] negative dst
[01:12:31] ============ [PASSED] drm_test_rect_calc_vscale ============
[01:12:31] ================== drm_test_rect_rotate  ===================
[01:12:31] [PASSED] reflect-x
[01:12:31] [PASSED] reflect-y
[01:12:31] [PASSED] rotate-0
[01:12:31] [PASSED] rotate-90
[01:12:31] [PASSED] rotate-180
[01:12:31] [PASSED] rotate-270
[01:12:31] ============== [PASSED] drm_test_rect_rotate ===============
[01:12:31] ================ drm_test_rect_rotate_inv  =================
[01:12:31] [PASSED] reflect-x
[01:12:31] [PASSED] reflect-y
[01:12:31] [PASSED] rotate-0
[01:12:31] [PASSED] rotate-90
[01:12:31] [PASSED] rotate-180
[01:12:31] [PASSED] rotate-270
[01:12:31] ============ [PASSED] drm_test_rect_rotate_inv =============
[01:12:31] ==================== [PASSED] drm_rect =====================
[01:12:31] ============ drm_sysfb_modeset_test (1 subtest) ============
[01:12:31] ============ drm_test_sysfb_build_fourcc_list  =============
[01:12:31] [PASSED] no native formats
[01:12:31] [PASSED] XRGB8888 as native format
[01:12:31] [PASSED] remove duplicates
[01:12:31] [PASSED] convert alpha formats
[01:12:31] [PASSED] random formats
[01:12:31] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[01:12:31] ============= [PASSED] drm_sysfb_modeset_test ==============
[01:12:31] ================== drm_fixp (2 subtests) ===================
[01:12:31] [PASSED] drm_test_int2fixp
[01:12:31] [PASSED] drm_test_sm2fixp
[01:12:31] ==================== [PASSED] drm_fixp =====================
[01:12:31] ============================================================
[01:12:31] Testing complete. Ran 667 tests: passed: 667
[01:12:31] Elapsed time: 28.024s total, 2.547s configuring, 25.061s building, 0.411s 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:12:31] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:12: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:12:43] Starting KUnit Kernel (1/1)...
[01:12:43] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:12:44] ================= ttm_device (5 subtests) ==================
[01:12:44] [PASSED] ttm_device_init_basic
[01:12:44] [PASSED] ttm_device_init_multiple
[01:12:44] [PASSED] ttm_device_fini_basic
[01:12:44] [PASSED] ttm_device_init_no_vma_man
[01:12:44] ================== ttm_device_init_pools  ==================
[01:12:44] [PASSED] No DMA allocations, no DMA32 required
[01:12:44] [PASSED] DMA allocations, DMA32 required
[01:12:44] [PASSED] No DMA allocations, DMA32 required
[01:12:44] [PASSED] DMA allocations, no DMA32 required
[01:12:44] ============== [PASSED] ttm_device_init_pools ==============
[01:12:44] =================== [PASSED] ttm_device ====================
[01:12:44] ================== ttm_pool (8 subtests) ===================
[01:12:44] ================== ttm_pool_alloc_basic  ===================
[01:12:44] [PASSED] One page
[01:12:44] [PASSED] More than one page
[01:12:44] [PASSED] Above the allocation limit
[01:12:44] [PASSED] One page, with coherent DMA mappings enabled
[01:12:44] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[01:12:44] ============== [PASSED] ttm_pool_alloc_basic ===============
[01:12:44] ============== ttm_pool_alloc_basic_dma_addr  ==============
[01:12:44] [PASSED] One page
[01:12:44] [PASSED] More than one page
[01:12:44] [PASSED] Above the allocation limit
[01:12:44] [PASSED] One page, with coherent DMA mappings enabled
[01:12:44] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[01:12:44] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[01:12:44] [PASSED] ttm_pool_alloc_order_caching_match
[01:12:44] [PASSED] ttm_pool_alloc_caching_mismatch
[01:12:44] [PASSED] ttm_pool_alloc_order_mismatch
[01:12:44] [PASSED] ttm_pool_free_dma_alloc
[01:12:44] [PASSED] ttm_pool_free_no_dma_alloc
[01:12:44] [PASSED] ttm_pool_fini_basic
[01:12:44] ==================== [PASSED] ttm_pool =====================
[01:12:44] ================ ttm_resource (8 subtests) =================
[01:12:44] ================= ttm_resource_init_basic  =================
[01:12:44] [PASSED] Init resource in TTM_PL_SYSTEM
[01:12:44] [PASSED] Init resource in TTM_PL_VRAM
[01:12:44] [PASSED] Init resource in a private placement
[01:12:44] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[01:12:44] ============= [PASSED] ttm_resource_init_basic =============
[01:12:44] [PASSED] ttm_resource_init_pinned
[01:12:44] [PASSED] ttm_resource_fini_basic
[01:12:44] [PASSED] ttm_resource_manager_init_basic
[01:12:44] [PASSED] ttm_resource_manager_usage_basic
[01:12:44] [PASSED] ttm_resource_manager_set_used_basic
[01:12:44] [PASSED] ttm_sys_man_alloc_basic
[01:12:44] [PASSED] ttm_sys_man_free_basic
[01:12:44] ================== [PASSED] ttm_resource ===================
[01:12:44] =================== ttm_tt (15 subtests) ===================
[01:12:44] ==================== ttm_tt_init_basic  ====================
[01:12:44] [PASSED] Page-aligned size
[01:12:44] [PASSED] Extra pages requested
[01:12:44] ================ [PASSED] ttm_tt_init_basic ================
[01:12:44] [PASSED] ttm_tt_init_misaligned
[01:12:44] [PASSED] ttm_tt_fini_basic
[01:12:44] [PASSED] ttm_tt_fini_sg
[01:12:44] [PASSED] ttm_tt_fini_shmem
[01:12:44] [PASSED] ttm_tt_create_basic
[01:12:44] [PASSED] ttm_tt_create_invalid_bo_type
[01:12:44] [PASSED] ttm_tt_create_ttm_exists
[01:12:44] [PASSED] ttm_tt_create_failed
[01:12:44] [PASSED] ttm_tt_destroy_basic
[01:12:44] [PASSED] ttm_tt_populate_null_ttm
[01:12:44] [PASSED] ttm_tt_populate_populated_ttm
[01:12:44] [PASSED] ttm_tt_unpopulate_basic
[01:12:44] [PASSED] ttm_tt_unpopulate_empty_ttm
[01:12:44] [PASSED] ttm_tt_swapin_basic
[01:12:44] ===================== [PASSED] ttm_tt ======================
[01:12:44] =================== ttm_bo (14 subtests) ===================
[01:12:44] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[01:12:44] [PASSED] Cannot be interrupted and sleeps
[01:12:44] [PASSED] Cannot be interrupted, locks straight away
[01:12:44] [PASSED] Can be interrupted, sleeps
[01:12:44] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[01:12:44] [PASSED] ttm_bo_reserve_locked_no_sleep
[01:12:44] [PASSED] ttm_bo_reserve_no_wait_ticket
[01:12:44] [PASSED] ttm_bo_reserve_double_resv
[01:12:44] [PASSED] ttm_bo_reserve_interrupted
[01:12:44] [PASSED] ttm_bo_reserve_deadlock
[01:12:44] [PASSED] ttm_bo_unreserve_basic
[01:12:44] [PASSED] ttm_bo_unreserve_pinned
[01:12:44] [PASSED] ttm_bo_unreserve_bulk
[01:12:44] [PASSED] ttm_bo_fini_basic
[01:12:44] [PASSED] ttm_bo_fini_shared_resv
[01:12:44] [PASSED] ttm_bo_pin_basic
[01:12:44] [PASSED] ttm_bo_pin_unpin_resource
[01:12:44] [PASSED] ttm_bo_multiple_pin_one_unpin
[01:12:44] ===================== [PASSED] ttm_bo ======================
[01:12:44] ============== ttm_bo_validate (22 subtests) ===============
[01:12:44] ============== ttm_bo_init_reserved_sys_man  ===============
[01:12:44] [PASSED] Buffer object for userspace
[01:12:44] [PASSED] Kernel buffer object
[01:12:44] [PASSED] Shared buffer object
[01:12:44] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[01:12:44] ============== ttm_bo_init_reserved_mock_man  ==============
[01:12:44] [PASSED] Buffer object for userspace
[01:12:44] [PASSED] Kernel buffer object
[01:12:44] [PASSED] Shared buffer object
[01:12:44] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[01:12:44] [PASSED] ttm_bo_init_reserved_resv
[01:12:44] ================== ttm_bo_validate_basic  ==================
[01:12:44] [PASSED] Buffer object for userspace
[01:12:44] [PASSED] Kernel buffer object
[01:12:44] [PASSED] Shared buffer object
[01:12:44] ============== [PASSED] ttm_bo_validate_basic ==============
[01:12:44] [PASSED] ttm_bo_validate_invalid_placement
[01:12:44] ============= ttm_bo_validate_same_placement  ==============
[01:12:44] [PASSED] System manager
[01:12:44] [PASSED] VRAM manager
[01:12:44] ========= [PASSED] ttm_bo_validate_same_placement ==========
[01:12:44] [PASSED] ttm_bo_validate_failed_alloc
[01:12:44] [PASSED] ttm_bo_validate_pinned
[01:12:44] [PASSED] ttm_bo_validate_busy_placement
[01:12:44] ================ ttm_bo_validate_multihop  =================
[01:12:44] [PASSED] Buffer object for userspace
[01:12:44] [PASSED] Kernel buffer object
[01:12:44] [PASSED] Shared buffer object
[01:12:44] ============ [PASSED] ttm_bo_validate_multihop =============
[01:12:44] ========== ttm_bo_validate_no_placement_signaled  ==========
[01:12:44] [PASSED] Buffer object in system domain, no page vector
[01:12:44] [PASSED] Buffer object in system domain with an existing page vector
[01:12:44] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[01:12:44] ======== ttm_bo_validate_no_placement_not_signaled  ========
[01:12:44] [PASSED] Buffer object for userspace
[01:12:44] [PASSED] Kernel buffer object
[01:12:44] [PASSED] Shared buffer object
[01:12:44] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[01:12:44] [PASSED] ttm_bo_validate_move_fence_signaled
[01:12:44] ========= ttm_bo_validate_move_fence_not_signaled  =========
[01:12:44] [PASSED] Waits for GPU
[01:12:44] [PASSED] Tries to lock straight away
[01:12:44] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[01:12:44] [PASSED] ttm_bo_validate_swapout
[01:12:44] [PASSED] ttm_bo_validate_happy_evict
[01:12:44] [PASSED] ttm_bo_validate_all_pinned_evict
[01:12:44] [PASSED] ttm_bo_validate_allowed_only_evict
[01:12:44] [PASSED] ttm_bo_validate_deleted_evict
[01:12:44] [PASSED] ttm_bo_validate_busy_domain_evict
[01:12:44] [PASSED] ttm_bo_validate_evict_gutting
[01:12:44] [PASSED] ttm_bo_validate_recrusive_evict
[01:12:44] ================= [PASSED] ttm_bo_validate =================
[01:12:44] ============================================================
[01:12:44] Testing complete. Ran 102 tests: passed: 102
[01:12:44] Elapsed time: 12.790s total, 2.530s configuring, 10.044s building, 0.180s 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:12:44] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[01:12:46] 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:12:55] Starting KUnit Kernel (1/1)...
[01:12:55] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[01:12:55] =============== dma-buf-fence (12 subtests) ================
[01:12:55] [PASSED] test_sanitycheck
[01:12:55] [PASSED] test_signaling
[01:12:55] [PASSED] test_add_callback
[01:12:55] [PASSED] test_late_add_callback
[01:12:55] [PASSED] test_rm_callback
[01:12:55] [PASSED] test_late_rm_callback
[01:12:55] [PASSED] test_status
[01:12:55] [PASSED] test_error
[01:12:55] [PASSED] test_wait
[01:12:55] [PASSED] test_wait_timeout
[01:12:55] [PASSED] test_stub
[01:12:55] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[01:12:55] ================== [PASSED] dma-buf-fence ==================
[01:12:55] ============ dma-buf-fence-chain (11 subtests) =============
[01:12:55] [PASSED] test_sanitycheck
[01:12:55] [PASSED] test_find_seqno
[01:12:55] [PASSED] test_find_signaled
[01:12:55] [PASSED] test_find_out_of_order
[01:13:00] [PASSED] test_find_gap
[01:13:00] [PASSED] test_find_race
[01:13:00] [PASSED] test_signal_forward
[01:13:00] [PASSED] test_signal_backward
[01:13:00] [PASSED] test_wait_forward
[01:13:00] [PASSED] test_wait_backward
[01:13:00] [PASSED] test_wait_random
[01:13:00] =============== [PASSED] dma-buf-fence-chain ===============
[01:13:00] ============ dma-buf-fence-unwrap (11 subtests) ============
[01:13:00] [PASSED] test_sanitycheck
[01:13:00] [PASSED] test_unwrap_array
[01:13:00] [PASSED] test_unwrap_chain
[01:13:00] [PASSED] test_unwrap_chain_array
[01:13:00] [PASSED] test_unwrap_merge
[01:13:00] [PASSED] test_unwrap_merge_duplicate
[01:13:00] [PASSED] test_unwrap_merge_seqno
[01:13:00] [PASSED] test_unwrap_merge_order
[01:13:00] [PASSED] test_unwrap_merge_complex
[01:13:00] [PASSED] test_unwrap_merge_complex_seqno
[01:13:00] [PASSED] test_dedup_empty
[01:13:00] ============== [PASSED] dma-buf-fence-unwrap ===============
[01:13:00] ================ dma-buf-resv (5 subtests) =================
[01:13:00] [PASSED] test_sanitycheck
[01:13:00] ===================== test_signaling  ======================
[01:13:00] [PASSED] kernel
[01:13:00] [PASSED] write
[01:13:00] [PASSED] read
[01:13:00] [PASSED] bookkeep
[01:13:00] ================= [PASSED] test_signaling ==================
[01:13:00] ====================== test_for_each  ======================
[01:13:00] [PASSED] kernel
[01:13:00] [PASSED] write
[01:13:00] [PASSED] read
[01:13:00] [PASSED] bookkeep
[01:13:00] ================== [PASSED] test_for_each ==================
[01:13:00] ================= test_for_each_unlocked  ==================
[01:13:00] [PASSED] kernel
[01:13:00] [PASSED] write
[01:13:00] [PASSED] read
[01:13:00] [PASSED] bookkeep
[01:13:00] ============= [PASSED] test_for_each_unlocked ==============
[01:13:00] ===================== test_get_fences  =====================
[01:13:00] [PASSED] kernel
[01:13:00] [PASSED] write
[01:13:00] [PASSED] read
[01:13:00] [PASSED] bookkeep
[01:13:00] ================= [PASSED] test_get_fences =================
[01:13:00] ================== [PASSED] dma-buf-resv ===================
[01:13:00] ============================================================
[01:13:00] Testing complete. Ran 51 tests: passed: 50, skipped: 1
[01:13:00] Elapsed time: 16.630s total, 2.497s configuring, 8.811s building, 5.279s running

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



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

* Re: [PATCH v3 5/5] drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset
  2026-11-04  0:52 ` [PATCH v3 5/5] drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset Umesh Nerlige Ramappa
@ 2026-11-04  1:35   ` sashiko-bot
  0 siblings, 0 replies; 11+ messages in thread
From: sashiko-bot @ 2026-11-04  1:35 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa, intel-xe

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] drm/xe/oa: incomplete teardown when xe_oa_release() precedes xe_oa_quiesce()
- [High] drm/xe/oa: missing wait on stream->last_fence in xe_oa_quiesce_oa_unit()
- [Medium] drm/xe/oa: incomplete LRI batch drain on user exec_q in xe_oa_load_with_lri()
--

commit 3662190fcd57d2e4b3bb172dd837ebb9aa4e7e39
Author: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset

This commit introduces xe_oa_quiesce() called from xe_oa_fini() to clean up
active OA streams during driver unbind or PCI reset while keeping the
stream structure alive until the file descriptor is closed. It also wraps
OA mmap and observation ioctls in drm_dev_enter() sections.

> diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c
> index 7a151f338ae25..b4ba8874f17eb 100644
> --- a/drivers/gpu/drm/xe/xe_oa.c
> +++ b/drivers/gpu/drm/xe/xe_oa.c

[ ... ]

> @@ -752,6 +775,20 @@ static int xe_oa_load_with_lri(struct xe_oa_stream *stream, struct xe_oa_reg *re
>  		goto free_bb;
>  	}
>  	xe_bb_free(bb, fence);
> +
> +	/*
> +	 * When quiescing the stream, GuC submission and the fence irqs are torn down right
> +	 * after, so wait for the batch. It may be queued behind other jobs of the exec queue,
> +	 * which complete or get reset within the job timeout.
> +	 */
> +	if (READ_ONCE(stream->dead)) {
> +		struct xe_exec_queue *q = stream->exec_q ?: stream->k_exec_q;
> +		long timeout = msecs_to_jiffies(q->sched_props.job_timeout_ms) + HZ;
> +
> +		if (!dma_fence_wait_timeout(fence, false, timeout))
> +			drm_err(&stream->oa->xe->drm,
> +				"Timed out waiting for OA LRI batch on quiesce\n");
> +	}
>  	dma_fence_put(fence);
>  
>  	return 0;

[Severity: Medium]
As reported by Sashiko on v3 [1], when a stream is attached to a user
stream->exec_q in drivers/gpu/drm/xe/xe_oa.c:xe_oa_load_with_lri(), is
waiting for q->sched_props.job_timeout_ms + HZ sufficient to guarantee the
LRI teardown batch completes before GuC submission and fence IRQs are torn
down?

When xe_device_remove() -> xe_oa_fini() -> xe_oa_quiesce() ->
xe_oa_quiesce_oa_unit() -> xe_oa_stream_hw_teardown() ->
xe_oa_disable_metric_set() -> xe_oa_configure_oa_context() ->
xe_oa_load_with_lri() submits to a user stream->exec_q, it looks like
dma_fence_wait_timeout() can time out in three situations:

1. If stream->exec_q belongs to a preempt-fence (LR mode) VM,
xe_bo_pci_dev_remove_all() evicts the VM's BOs after drm_dev_unplug() and
suspends stream->exec_q via __guc_exec_queue_process_msg_suspend(). If the
queue was idle when preempt_rebind_work_func() ran,
vm->preempt.rebind_deactivated is set and xe_oa_submit_bb() does not call
xe_vm_reactivate_rebind(), so submit_exec_queue() returns early on
exec_queue_suspended(q) without submitting the LRI batch to GuC while the
scheduler timeout is MAX_SCHEDULE_TIMEOUT.

2. If an earlier user job on stream->exec_q->entity is blocked on an
unsignaled input dependency in drm_sched_entity_pop_job(), the LRI job
queued behind it never enters sched->pending_list or starts its timeout
timer.

3. If a prior user job on stream->exec_q times out after drm_dev_unplug(),
guc_exec_queue_timedout_job() takes the !drm_dev_enter() path:

drivers/gpu/drm/xe/xe_guc_submit.c:guc_exec_queue_timedout_job() {
	if (!drm_dev_enter(&xe->drm, &idx)) {
		xe_sched_job_set_error(job, -ENODEV);
		return DRM_GPU_SCHED_STAT_NO_HANG;
	}
}

Because that only errors the single head job without disabling scheduling or
canceling subsequent jobs, the OA LRI job behind it requires another full
job_timeout_ms cycle.

When dma_fence_wait_timeout() times out here, won't the LRI batch's
xe_hw_fence remain on gt->fence_irq[i].pending and trigger
XE_WARN_ON(!list_empty(&irq->pending)) in xe_hw_fence_irq_finish() during
xe_gt_fini()?

[ ... ]

> @@ -1691,6 +1731,12 @@ static long xe_oa_ioctl(struct file *file,
>  
>  static void xe_oa_destroy_locked(struct xe_oa_stream *stream)
>  {
> +	if (stream->dead) {
> +		mutex_destroy(&stream->stream_lock);
> +		kfree(stream);
> +		return;
> +	}
> +
>  	xe_pm_runtime_get(gt_to_xe(stream->gt));
>  
>  	if (stream->enabled)

[Severity: High]
What happens if userspace closes the OA stream file descriptor (or the
process exits) after xe_device_remove() or xe_wedge_declare() has started,
but before the devm callback xe_oa_fini() -> xe_oa_quiesce_gt() acquires
gt->oa.gt_lock?

In that window, xe_oa_release() -> xe_oa_destroy_locked() in
drivers/gpu/drm/xe/xe_oa.c sees stream->dead == false and runs the normal
teardown path:

1. In xe_oa_destroy_locked() -> xe_oa_stream_destroy() ->
xe_oa_stream_hw_teardown() -> xe_oa_disable_metric_set() ->
xe_oa_configure_oa_context() -> xe_oa_load_with_lri(), READ_ONCE(stream->dead)
is false, so xe_oa_load_with_lri() does not wait for the submitted LRI
batch fence. Because xe_oa_stream_destroy() also clears u->exclusive_stream
to NULL, xe_oa_quiesce_oa_unit() sees !stream and returns immediately,
allowing guc_submit_fini() and xe_gt_fini() -> xe_hw_fence_irq_finish() to
run while the LRI batch fence is still pending on gt->fence_irq[i].pending.

2. If the device is wedged (including after prepare_device_for_reset() has
called pci_disable_device()), xe_oa_destroy_locked() does not check
xe_wedged(xe) and still calls xe_oa_disable_locked() and
xe_oa_stream_hw_teardown(), performing MMIO accesses and LRI batch
submissions against a wedged or disabled device.

3. If xe_oa_destroy_locked() runs after xe_bo_pci_dev_remove_all(),
xe_oa_free_oa_buffer() calls xe_bo_unpin_map_no_vm(stream->oa_buffer.bo)
without calling xe_bo_dma_unmap_pinned(). Since xe_bo_unpin() removes the
BO from xe->pinned.early.kernel_bo_present, if an mmap VMA still holds a BO
reference or ttm_bo_release() defers cleanup to bdev->wq,
xe_bo_pinned_fini() will not unmap its DMA mapping before devres release
completes.

Should xe_oa_destroy_locked() also handle the unplugged and wedged cases
(unmapping the pinned OA BO DMA, skipping HW access when wedged, and
waiting for any in-flight LRI fences when unplugged)?

[ ... ]

> @@ -2575,6 +2643,92 @@ static void xe_oa_unregister(void *arg)
>  	oa->metrics_kobj = NULL;
>  }
>  
> +static void xe_oa_quiesce_oa_unit(struct xe_oa_unit *u, bool hw_accessible)
> +{
> +	struct xe_oa_stream *stream = u->exclusive_stream;
> +	unsigned long flags;
> +
> +	if (!stream)
> +		return;
> +
> +	mutex_lock(&stream->stream_lock);
> +	if (stream->enabled && hw_accessible)
> +		xe_oa_disable_locked(stream);
> +
> +	stream->enabled = false;
> +
> +	spin_lock_irqsave(&stream->oa_buffer.ptr_lock, flags);
> +	WRITE_ONCE(stream->dead, true);
> +	spin_unlock_irqrestore(&stream->oa_buffer.ptr_lock, flags);
> +
> +	if (stream->sample)
> +		hrtimer_cancel(&stream->poll_check_timer);
> +
> +	wake_up_all(&stream->poll_wq);
> +
> +	/*
> +	 * Restore the HW state while the stream still holds its runtime PM ref and exec_q.
> +	 * The device is not reset on unbind, so this can't be left to a later reset.
> +	 */
> +	if (hw_accessible)
> +		xe_oa_stream_hw_teardown(stream);
> +
> +	/*
> +	 * drm_dev_unplug() has already zapped the userspace mappings of the OA buffer and
> +	 * refaults get a dummy page, so the OA buffer can go. Each vma holds a reference on
> +	 * the BO, keeping the BO object itself alive until munmap. The BO is then no longer
> +	 * pinned when xe_bo_pinned_fini() DMA-unmaps the other kernel BOs, so drop its DMA
> +	 * mapping here, while it is still pinned.
> +	 */
> +	xe_bo_dma_unmap_pinned(stream->oa_buffer.bo);
> +	xe_oa_stream_free_resources(stream);
> +	if (stream->exec_q) {
> +		xe_exec_queue_put(stream->exec_q);
> +		stream->exec_q = NULL;
> +	}
> +	drm_syncobj_put(stream->ufence_syncobj);
> +
> +	WRITE_ONCE(u->exclusive_stream, NULL);
> +	mutex_unlock(&stream->stream_lock);
> +}

[Severity: High]
Does xe_oa_quiesce_oa_unit() in drivers/gpu/drm/xe/xe_oa.c also need to
wait for or cancel stream->last_fence before tearing down hardware state
and freeing stream resources?

When userspace opens an OA stream (DRM_XE_OBSERVATION_OP_STREAM_OPEN) or
reconfigures it (DRM_XE_OBSERVATION_IOCTL_CONFIG) with output syncs
(num_signal > 0), xe_oa_emit_oa_config() submits oa_bo->bb via
xe_oa_submit_bb(stream, XE_OA_SUBMIT_ADD_DEPS, oa_bo->bb), records the job
fence in stream->last_fence via xe_oa_update_last_fence(), and returns
without waiting:

drivers/gpu/drm/xe/xe_oa.c:xe_oa_emit_oa_config() {
	/* Update last fence too before adding callback */
	xe_oa_update_last_fence(stream, fence);
	...
	/* If nothing needs to be signaled we wait synchronously */
	if (!num_signal) {
		dma_fence_wait(&ofence->base, false);
		dma_fence_put(&ofence->base);
	}
}

If xe_oa_fini() -> xe_oa_quiesce() -> xe_oa_quiesce_oa_unit() runs while
stream->last_fence is still unsignaled:

1. For streams without stream->exec_q (where batches run on
stream->k_exec_q), streams on video engines where
xe_oa_configure_oa_context() is a no-op, or when hw_accessible is false,
xe_oa_load_with_lri() is never called. Neither xe_oa_quiesce_oa_unit() nor
xe_oa_free_configs() waits for stream->last_fence.

2. The in-flight oa_bo->bb LRI batch on stream->k_exec_q can execute on the
GPU during or after xe_oa_stream_hw_teardown(), overwriting OA/NOA
registers after xe_oa_disable_metric_set() has cleared them and after
xe_force_wake_put() has dropped stream->fw_ref.

3. When devres subsequently runs guc_submit_fini() and xe_gt_fini() ->
xe_hw_fence_irq_finish(), an in-flight config batch job on
sched->pending_list still has its xe_hw_fence on gt->fence_irq[i].pending,
triggering XE_WARN_ON(!list_empty(&irq->pending)). Moreover, if that config
batch job is still queued in q->entity waiting on an unsignaled input sync
dependency from stream->syncs, the job holds a reference on the queue (so
xe_exec_queue_put() in xe_oa_stream_free_resources() does not run
xe_exec_queue_destroy() / drm_sched_entity_fini()), while
sched->pending_list is empty so xe_guc_submit_pause_abort() does not run
TDR, leaking the scheduler job, suballocation, xe_exec_queue, and
drm_device reference.

[1] https://lore.kernel.org/r/20261030233839.2284694-8-umesh.nerlige.ramappa@intel.com

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261104005221.3230003-7-umesh.nerlige.ramappa@intel.com?part=5

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

* ✓ Xe.CI.BAT: success for Cleanup OA stream on PCI unbind/remove (rev3)
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
                   ` (5 preceding siblings ...)
  2026-11-04  1:13 ` ✓ CI.KUnit: success for Cleanup OA stream on PCI unbind/remove (rev3) Patchwork
@ 2026-11-04  1:57 ` Patchwork
  2026-11-04 16:50 ` ✓ Xe.CI.FULL: " Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-11-04  1:57 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: intel-xe

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

== Series Details ==

Series: Cleanup OA stream on PCI unbind/remove (rev3)
URL   : https://patchwork.freedesktop.org/series/177300/
State : success

== Summary ==

CI Bug Log - changes from xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560_BAT -> xe-pw-177300v3_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts


Changes
-------

  No changes found


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

  * Linux: xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560 -> xe-pw-177300v3

  IGT_9177: 9177
  xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560: d11bbfdac0f3d443b367857ffe683ae6bb80d560
  xe-pw-177300v3: 177300v3

== Logs ==

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

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

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

* ✓ Xe.CI.FULL: success for Cleanup OA stream on PCI unbind/remove (rev3)
  2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
                   ` (6 preceding siblings ...)
  2026-11-04  1:57 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-11-04 16:50 ` Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-11-04 16:50 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: intel-xe

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

== Series Details ==

Series: Cleanup OA stream on PCI unbind/remove (rev3)
URL   : https://patchwork.freedesktop.org/series/177300/
State : success

== Summary ==

CI Bug Log - changes from xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560_FULL -> xe-pw-177300v3_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

New tests
---------

  New tests have been introduced between xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560_FULL and xe-pw-177300v3_FULL:

### New IGT tests (79) ###

  * igt@kms_chamelium_sharpness_filter@filter-basic:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_sharpness_filter@filter-basic:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 4.98] s

  * igt@kms_sharpness_filter@filter-basic@pipe-a-edp-1-basic:
    - Statuses : 2 pass(s)
    - Exec time: [0.38, 0.41] s

  * igt@kms_sharpness_filter@filter-basic@pipe-b-edp-1-basic:
    - Statuses : 2 pass(s)
    - Exec time: [1.46, 1.53] s

  * igt@kms_sharpness_filter@filter-basic@pipe-c-edp-1-basic:
    - Statuses : 2 pass(s)
    - Exec time: [1.45, 1.49] s

  * igt@kms_sharpness_filter@filter-basic@pipe-d-edp-1-basic:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  * igt@kms_sharpness_filter@filter-dpms:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 9.63] s

  * igt@kms_sharpness_filter@filter-dpms@pipe-a-edp-1-dpms:
    - Statuses : 2 pass(s)
    - Exec time: [1.51, 1.64] s

  * igt@kms_sharpness_filter@filter-dpms@pipe-b-edp-1-dpms:
    - Statuses : 2 pass(s)
    - Exec time: [2.62, 2.71] s

  * igt@kms_sharpness_filter@filter-dpms@pipe-c-edp-1-dpms:
    - Statuses : 2 pass(s)
    - Exec time: [2.61, 2.63] s

  * igt@kms_sharpness_filter@filter-dpms@pipe-d-edp-1-dpms:
    - Statuses : 1 pass(s)
    - Exec time: [2.62] s

  * igt@kms_sharpness_filter@filter-scaler-downscale:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 5.24] s

  * igt@kms_sharpness_filter@filter-scaler-downscale@pipe-a-edp-1-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.44, 0.46] s

  * igt@kms_sharpness_filter@filter-scaler-downscale@pipe-b-edp-1-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.47, 1.54] s

  * igt@kms_sharpness_filter@filter-scaler-downscale@pipe-c-edp-1-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.56, 1.61] s

  * igt@kms_sharpness_filter@filter-scaler-downscale@pipe-d-edp-1-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.59] s

  * igt@kms_sharpness_filter@filter-scaler-upscale:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 5.24] s

  * igt@kms_sharpness_filter@filter-scaler-upscale@pipe-a-edp-1-upscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.42, 0.50] s

  * igt@kms_sharpness_filter@filter-scaler-upscale@pipe-b-edp-1-upscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.50, 1.58] s

  * igt@kms_sharpness_filter@filter-scaler-upscale@pipe-c-edp-1-upscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.47, 1.60] s

  * igt@kms_sharpness_filter@filter-scaler-upscale@pipe-d-edp-1-upscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  * igt@kms_sharpness_filter@filter-strength:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.05, 29.09] s

  * igt@kms_sharpness_filter@filter-strength@pipe-a-edp-1-strength-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.37, 0.42] s

  * igt@kms_sharpness_filter@filter-strength@pipe-a-edp-1-strength-128:
    - Statuses : 2 pass(s)
    - Exec time: [1.47, 1.52] s

  * igt@kms_sharpness_filter@filter-strength@pipe-a-edp-1-strength-191:
    - Statuses : 2 pass(s)
    - Exec time: [1.46, 1.52] s

  * igt@kms_sharpness_filter@filter-strength@pipe-a-edp-1-strength-255:
    - Statuses : 2 pass(s)
    - Exec time: [1.47, 1.52] s

  * igt@kms_sharpness_filter@filter-strength@pipe-a-edp-1-strength-64:
    - Statuses : 2 pass(s)
    - Exec time: [1.48, 1.52] s

  * igt@kms_sharpness_filter@filter-strength@pipe-b-edp-1-strength-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.47, 1.54] s

  * igt@kms_sharpness_filter@filter-strength@pipe-b-edp-1-strength-128:
    - Statuses : 2 pass(s)
    - Exec time: [1.47, 1.51] s

  * igt@kms_sharpness_filter@filter-strength@pipe-b-edp-1-strength-191:
    - Statuses : 2 pass(s)
    - Exec time: [1.48, 1.51] s

  * igt@kms_sharpness_filter@filter-strength@pipe-b-edp-1-strength-255:
    - Statuses : 2 pass(s)
    - Exec time: [1.46, 1.51] s

  * igt@kms_sharpness_filter@filter-strength@pipe-b-edp-1-strength-64:
    - Statuses : 2 pass(s)
    - Exec time: [1.44, 1.50] s

  * igt@kms_sharpness_filter@filter-strength@pipe-c-edp-1-strength-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.45, 1.48] s

  * igt@kms_sharpness_filter@filter-strength@pipe-c-edp-1-strength-128:
    - Statuses : 2 pass(s)
    - Exec time: [1.44, 1.48] s

  * igt@kms_sharpness_filter@filter-strength@pipe-c-edp-1-strength-191:
    - Statuses : 2 pass(s)
    - Exec time: [1.46, 1.49] s

  * igt@kms_sharpness_filter@filter-strength@pipe-c-edp-1-strength-255:
    - Statuses : 2 pass(s)
    - Exec time: [1.45, 1.49] s

  * igt@kms_sharpness_filter@filter-strength@pipe-c-edp-1-strength-64:
    - Statuses : 2 pass(s)
    - Exec time: [1.45, 1.48] s

  * igt@kms_sharpness_filter@filter-strength@pipe-d-edp-1-strength-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  * igt@kms_sharpness_filter@filter-strength@pipe-d-edp-1-strength-128:
    - Statuses : 1 pass(s)
    - Exec time: [1.51] s

  * igt@kms_sharpness_filter@filter-strength@pipe-d-edp-1-strength-191:
    - Statuses : 1 pass(s)
    - Exec time: [1.49] s

  * igt@kms_sharpness_filter@filter-strength@pipe-d-edp-1-strength-255:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  * igt@kms_sharpness_filter@filter-strength@pipe-d-edp-1-strength-64:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  * igt@kms_sharpness_filter@filter-suspend:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 9.48] s

  * igt@kms_sharpness_filter@filter-suspend@pipe-a-edp-1-suspend:
    - Statuses : 2 pass(s)
    - Exec time: [3.26, 4.38] s

  * igt@kms_sharpness_filter@filter-suspend@pipe-c-edp-1-suspend:
    - Statuses : 1 pass(s)
    - Exec time: [4.41] s

  * igt@kms_sharpness_filter@filter-suspend@pipe-d-edp-1-suspend:
    - Statuses : 1 pass(s)
    - Exec time: [5.05] s

  * igt@kms_sharpness_filter@filter-tap:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 5.60] s

  * igt@kms_sharpness_filter@filter-tap@pipe-a-edp-1-tap-5:
    - Statuses : 2 pass(s)
    - Exec time: [1.27, 1.34] s

  * igt@kms_sharpness_filter@filter-tap@pipe-b-edp-1-tap-5:
    - Statuses : 2 pass(s)
    - Exec time: [1.24, 1.42] s

  * igt@kms_sharpness_filter@filter-tap@pipe-c-edp-1-tap-5:
    - Statuses : 2 pass(s)
    - Exec time: [1.26, 1.37] s

  * igt@kms_sharpness_filter@filter-tap@pipe-d-edp-1-tap-5:
    - Statuses : 1 pass(s)
    - Exec time: [1.42] s

  * igt@kms_sharpness_filter@filter-toggle:
    - Statuses : 1 pass(s)
    - Exec time: [3.76] s

  * igt@kms_sharpness_filter@filter-toggle@pipe-a-edp-1-toggle:
    - Statuses : 1 pass(s)
    - Exec time: [0.54] s

  * igt@kms_sharpness_filter@filter-toggle@pipe-b-edp-1-toggle:
    - Statuses : 1 pass(s)
    - Exec time: [1.62] s

  * igt@kms_sharpness_filter@filter-toggle@pipe-c-edp-1-toggle:
    - Statuses : 1 pass(s)
    - Exec time: [1.55] s

  * igt@kms_sharpness_filter@invalid-filter-with-plane:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 1.65] s

  * igt@kms_sharpness_filter@invalid-filter-with-plane@pipe-a-edp-1-invalid-filter-with-plane:
    - Statuses : 2 pass(s)
    - Exec time: [0.32, 0.55] s

  * igt@kms_sharpness_filter@invalid-filter-with-plane@pipe-b-edp-1-invalid-filter-with-plane:
    - Statuses : 2 pass(s)
    - Exec time: [0.31, 0.36] s

  * igt@kms_sharpness_filter@invalid-filter-with-plane@pipe-c-edp-1-invalid-filter-with-plane:
    - Statuses : 2 pass(s)
    - Exec time: [0.31, 0.36] s

  * igt@kms_sharpness_filter@invalid-filter-with-plane@pipe-d-edp-1-invalid-filter-with-plane:
    - Statuses : 1 pass(s)
    - Exec time: [0.35] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaler:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 0.53] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaler@pipe-a-edp-1-invalid-filter-with-scaler:
    - Statuses : 2 pass(s)
    - Exec time: [0.12, 0.14] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaler@pipe-b-edp-1-invalid-filter-with-scaler:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.12] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaler@pipe-c-edp-1-invalid-filter-with-scaler:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.13] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaler@pipe-d-edp-1-invalid-filter-with-scaler:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 10.84] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-a-edp-1-invalid-filter-with-scaling-mode-aspec:
    - Statuses : 2 pass(s)
    - Exec time: [1.34, 1.49] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-a-edp-1-invalid-filter-with-scaling-mode-fulls:
    - Statuses : 2 pass(s)
    - Exec time: [0.27, 0.34] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-b-edp-1-invalid-filter-with-scaling-mode-aspec:
    - Statuses : 2 pass(s)
    - Exec time: [1.47, 1.49] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-b-edp-1-invalid-filter-with-scaling-mode-fulls:
    - Statuses : 2 pass(s)
    - Exec time: [1.40, 1.43] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-c-edp-1-invalid-filter-with-scaling-mode-aspec:
    - Statuses : 2 pass(s)
    - Exec time: [1.37, 1.52] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-c-edp-1-invalid-filter-with-scaling-mode-fulls:
    - Statuses : 2 pass(s)
    - Exec time: [1.38, 1.52] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-d-edp-1-invalid-filter-with-scaling-mode-aspec:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode@pipe-d-edp-1-invalid-filter-with-scaling-mode-fulls:
    - Statuses : 1 pass(s)
    - Exec time: [1.50] s

  * igt@kms_sharpness_filter@invalid-plane-with-filter:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.02, 4.81] s

  * igt@kms_sharpness_filter@invalid-plane-with-filter@pipe-a-edp-1-invalid-plane-with-filter:
    - Statuses : 2 pass(s)
    - Exec time: [0.31, 0.40] s

  * igt@kms_sharpness_filter@invalid-plane-with-filter@pipe-b-edp-1-invalid-plane-with-filter:
    - Statuses : 2 pass(s)
    - Exec time: [1.30, 1.43] s

  * igt@kms_sharpness_filter@invalid-plane-with-filter@pipe-c-edp-1-invalid-plane-with-filter:
    - Statuses : 2 pass(s)
    - Exec time: [1.37, 1.45] s

  * igt@kms_sharpness_filter@invalid-plane-with-filter@pipe-d-edp-1-invalid-plane-with-filter:
    - Statuses : 1 pass(s)
    - Exec time: [1.48] s

  

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

  Here are the changes found in xe-pw-177300v3_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_async_flips@alternate-sync-async-flip-atomic:
    - shard-bmg:          [PASS][1] -> [FAIL][2] ([Intel XE#3718] / [Intel XE#6078])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-7/igt@kms_async_flips@alternate-sync-async-flip-atomic.html

  * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-dp-1:
    - shard-bmg:          NOTRUN -> [FAIL][3] ([Intel XE#6078])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-7/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-dp-1.html

  * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-3:
    - shard-bmg:          [PASS][4] -> [FAIL][5] ([Intel XE#6078])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-3.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-7/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-3.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#2370])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-ptl:          [PASS][7] -> [FAIL][8] ([Intel XE#8628])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-ptl-7/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-180:
    - shard-ptl:          NOTRUN -> [SKIP][9] ([Intel XE#5808]) +1 other test skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_big_fb@x-tiled-16bpp-rotate-180.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2327])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-16bpp-rotate-180:
    - shard-lnl:          NOTRUN -> [SKIP][11] ([Intel XE#1124])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_big_fb@y-tiled-16bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-0:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#1124]) +3 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_big_fb@yf-tiled-64bpp-rotate-0.html

  * igt@kms_bw@connected-linear-tiling-3-displays-target-1920x1080p:
    - shard-ptl:          NOTRUN -> [SKIP][13] ([Intel XE#7679])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_bw@connected-linear-tiling-3-displays-target-1920x1080p.html
    - shard-lnl:          NOTRUN -> [SKIP][14] ([Intel XE#7679])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_bw@connected-linear-tiling-3-displays-target-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#7679])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p.html

  * igt@kms_bw@linear-tiling-2-displays-target-2160x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#367])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_bw@linear-tiling-2-displays-target-2160x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-target-2160x1440p:
    - shard-ptl:          NOTRUN -> [SKIP][17] ([Intel XE#367])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_bw@linear-tiling-4-displays-target-2160x1440p.html
    - shard-lnl:          NOTRUN -> [SKIP][18] ([Intel XE#8365])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_bw@linear-tiling-4-displays-target-2160x1440p.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2887]) +7 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][20] ([Intel XE#2669] / [Intel XE#7389]) +3 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-d-edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][21] ([Intel XE#5823] / [Intel XE#6918]) +4 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-d-edp-1.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-1:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#2652]) +7 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#3432])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_chamelium_color@ctm-green-to-red:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#2325] / [Intel XE#7358]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_chamelium_color@ctm-green-to-red.html

  * igt@kms_chamelium_edid@dp-edid-change-during-hibernate:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#2252]) +4 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_chamelium_edid@dp-edid-change-during-hibernate.html

  * igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode:
    - shard-ptl:          NOTRUN -> [SKIP][26] ([Intel XE#2252])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html
    - shard-lnl:          NOTRUN -> [SKIP][27] ([Intel XE#373])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_chamelium_hpd@dp-hpd-enable-disable-mode.html

  * igt@kms_color_pipeline@plane-lut1d-pre-ctm3x4@pipe-d-plane-4:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#6969]) +15 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_color_pipeline@plane-lut1d-pre-ctm3x4@pipe-d-plane-4.html

  * igt@kms_content_protection@lic-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#7642])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_content_protection@lic-type-1.html

  * igt@kms_content_protection@suspend-resume@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][30] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-8/igt@kms_content_protection@suspend-resume@pipe-a-dp-2.html

  * igt@kms_content_protection@uevent-hdcp14:
    - shard-bmg:          NOTRUN -> [FAIL][31] ([Intel XE#6707] / [Intel XE#7439]) +2 other tests fail
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_content_protection@uevent-hdcp14.html

  * igt@kms_cursor_crc@cursor-offscreen-max-size:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#2320]) +3 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_cursor_crc@cursor-offscreen-max-size.html

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

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#8265]) +1 other test skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner:
    - shard-lnl:          NOTRUN -> [SKIP][35] ([Intel XE#8265])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html
    - shard-ptl:          NOTRUN -> [SKIP][36] ([Intel XE#5907])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html

  * igt@kms_fbcon_fbt@fbc:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#4156] / [Intel XE#7425])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_fbcon_fbt@fbc.html

  * igt@kms_feature_discovery@display-3x:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#2373] / [Intel XE#7448])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_feature_discovery@display-3x.html

  * igt@kms_feature_discovery@display-4x:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#1138] / [Intel XE#7344])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_feature_discovery@display-4x.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank:
    - shard-bmg:          NOTRUN -> [FAIL][40] ([Intel XE#5408] / [Intel XE#6266]) +1 other test fail
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-ptl:          NOTRUN -> [SKIP][41] ([Intel XE#2316])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html
    - shard-lnl:          NOTRUN -> [SKIP][42] ([Intel XE#1421])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [PASS][43] -> [FAIL][44] ([Intel XE#301]) +1 other test fail
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#7178] / [Intel XE#7351])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#7179])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x.html

  * igt@kms_frontbuffer_tracking@drrshdr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#2311]) +27 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_frontbuffer_tracking@drrshdr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrshdr-abgr161616f-draw-render:
    - shard-ptl:          NOTRUN -> [SKIP][48] ([Intel XE#7061])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_frontbuffer_tracking@drrshdr-abgr161616f-draw-render.html
    - shard-lnl:          NOTRUN -> [SKIP][49] ([Intel XE#7061])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_frontbuffer_tracking@drrshdr-abgr161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#4141]) +6 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][51] ([Intel XE#5800] / [Intel XE#6312])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-blt.html
    - shard-lnl:          NOTRUN -> [SKIP][52] ([Intel XE#6312] / [Intel XE#651])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-spr-indfb-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][53] ([Intel XE#6312]) +2 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-spr-indfb-draw-blt.html
    - shard-lnl:          NOTRUN -> [SKIP][54] ([Intel XE#6312]) +2 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-shrfb-draw-blt:
    - shard-lnl:          NOTRUN -> [SKIP][55] ([Intel XE#7905]) +5 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#7061]) +2 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][57] ([Intel XE#7865]) +3 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-mmap-wc.html
    - shard-lnl:          NOTRUN -> [SKIP][58] ([Intel XE#7865]) +3 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][59] ([Intel XE#5812]) +7 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html
    - shard-lnl:          NOTRUN -> [SKIP][60] ([Intel XE#656] / [Intel XE#7905]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
    - shard-bmg:          NOTRUN -> [SKIP][61] ([Intel XE#2313]) +28 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][62] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-render.html

  * igt@kms_plane@pixel-format-4-tiled-modifier@pipe-a-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#8303]) +1 other test skip
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_plane@pixel-format-4-tiled-modifier@pipe-a-plane-5.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier:
    - shard-ptl:          NOTRUN -> [SKIP][64] ([Intel XE#7283])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html
    - shard-lnl:          NOTRUN -> [SKIP][65] ([Intel XE#7283])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#7283]) +1 other test skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][67] ([Intel XE#5020] / [Intel XE#7348])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_plane_multiple@tiling-y.html

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

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          NOTRUN -> [SKIP][69] ([Intel XE#1489]) +2 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr@fbc-psr2-primary-blt:
    - shard-bmg:          NOTRUN -> [SKIP][70] ([Intel XE#2234] / [Intel XE#2850]) +5 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_psr@fbc-psr2-primary-blt.html

  * igt@kms_sharpness_filter@filter-suspend (NEW):
    - shard-bmg:          NOTRUN -> [SKIP][71] ([Intel XE#6503]) +1 other test skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_sharpness_filter@filter-suspend.html

  * igt@kms_vrr@cmrr-video-mode:
    - shard-bmg:          NOTRUN -> [SKIP][72] ([Intel XE#9271])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@kms_vrr@cmrr-video-mode.html

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#1499] / [Intel XE#9271])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@xe_evict@evict-small-multi-queue-priority-cm:
    - shard-ptl:          NOTRUN -> [SKIP][74] ([Intel XE#5764])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_evict@evict-small-multi-queue-priority-cm.html
    - shard-lnl:          NOTRUN -> [SKIP][75] ([Intel XE#6540] / [Intel XE#688])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_evict@evict-small-multi-queue-priority-cm.html

  * igt@xe_exec_balancer@once-virtual-rebind:
    - shard-ptl:          NOTRUN -> [SKIP][76] ([Intel XE#7482]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_exec_balancer@once-virtual-rebind.html
    - shard-lnl:          NOTRUN -> [SKIP][77] ([Intel XE#7482]) +1 other test skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_exec_balancer@once-virtual-rebind.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind:
    - shard-bmg:          NOTRUN -> [SKIP][78] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind.html

  * igt@xe_exec_basic@multigpu-no-exec-userptr-rebind:
    - shard-ptl:          NOTRUN -> [SKIP][79] ([Intel XE#5575] / [Intel XE#7484])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_exec_basic@multigpu-no-exec-userptr-rebind.html
    - shard-lnl:          NOTRUN -> [SKIP][80] ([Intel XE#1392])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_exec_basic@multigpu-no-exec-userptr-rebind.html

  * igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race:
    - shard-ptl:          NOTRUN -> [SKIP][81] ([Intel XE#8374]) +2 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race.html
    - shard-lnl:          NOTRUN -> [SKIP][82] ([Intel XE#8374]) +2 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@twice-multi-queue-userptr-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][83] ([Intel XE#8374]) +4 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@xe_exec_fault_mode@twice-multi-queue-userptr-prefetch.html

  * igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority:
    - shard-ptl:          NOTRUN -> [SKIP][84] ([Intel XE#8364]) +2 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority.html
    - shard-lnl:          NOTRUN -> [SKIP][85] ([Intel XE#8364]) +2 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority.html

  * igt@xe_exec_multi_queue@max-queues-basic:
    - shard-bmg:          NOTRUN -> [SKIP][86] ([Intel XE#8364]) +13 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@xe_exec_multi_queue@max-queues-basic.html

  * igt@xe_exec_threads@threads-multi-queue-cm-fd-basic:
    - shard-bmg:          NOTRUN -> [SKIP][87] ([Intel XE#8378]) +5 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@xe_exec_threads@threads-multi-queue-cm-fd-basic.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race:
    - shard-ptl:          NOTRUN -> [SKIP][88] ([Intel XE#8378]) +2 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html
    - shard-lnl:          NOTRUN -> [SKIP][89] ([Intel XE#8378]) +2 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html

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

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

  * igt@xe_pat@xa-app-transient-media-on:
    - shard-ptl:          NOTRUN -> [SKIP][92] ([Intel XE#7590])
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_pat@xa-app-transient-media-on.html
    - shard-lnl:          NOTRUN -> [SKIP][93] ([Intel XE#7590] / [Intel XE#7772])
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_pat@xa-app-transient-media-on.html

  * igt@xe_peer2peer@write:
    - shard-bmg:          NOTRUN -> [SKIP][94] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@xe_peer2peer@write.html

  * igt@xe_pm@vram-d3cold-threshold:
    - shard-bmg:          NOTRUN -> [SKIP][95] ([Intel XE#579] / [Intel XE#7329] / [Intel XE#7517])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@xe_pm@vram-d3cold-threshold.html

  * igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq:
    - shard-bmg:          NOTRUN -> [SKIP][96] ([Intel XE#4733] / [Intel XE#7417]) +1 other test skip
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html

  * igt@xe_query@multigpu-query-mem-usage:
    - shard-bmg:          NOTRUN -> [SKIP][97] ([Intel XE#944])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@xe_query@multigpu-query-mem-usage.html

  * igt@xe_sriov_vram@vf-access-beyond:
    - shard-ptl:          NOTRUN -> [SKIP][98] ([Intel XE#6376] / [Intel XE#7422])
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_sriov_vram@vf-access-beyond.html
    - shard-lnl:          NOTRUN -> [SKIP][99] ([Intel XE#6376] / [Intel XE#7330] / [Intel XE#7422])
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_sriov_vram@vf-access-beyond.html

  
#### Possible fixes ####

  * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-b-edp-1:
    - shard-ptl:          [FAIL][100] ([Intel XE#6078]) -> [PASS][101] +1 other test pass
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-ptl-3/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-b-edp-1.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-6/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-b-edp-1.html

  * igt@kms_bw@linear-tiling-1-displays-target-3840x2160p:
    - shard-bmg:          [SKIP][102] ([Intel XE#367]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-4/igt@kms_bw@linear-tiling-1-displays-target-3840x2160p.html
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-7/igt@kms_bw@linear-tiling-1-displays-target-3840x2160p.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-bmg:          [INCOMPLETE][104] ([Intel XE#7084] / [Intel XE#8150]) -> [PASS][105] +1 other test pass
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
    - shard-bmg:          [FAIL][106] ([Intel XE#5408] / [Intel XE#6266]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-8/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank:
    - shard-lnl:          [FAIL][108] ([Intel XE#3098]) -> [PASS][109] +1 other test pass
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-lnl-8/igt@kms_flip@flip-vs-absolute-wf_vblank.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-7/igt@kms_flip@flip-vs-absolute-wf_vblank.html

  * igt@kms_vrr@flip-dpms@pipe-a-edp-1:
    - shard-ptl:          [FAIL][110] ([Intel XE#4227] / [Intel XE#7397]) -> [PASS][111] +3 other tests pass
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-ptl-3/igt@kms_vrr@flip-dpms@pipe-a-edp-1.html
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-6/igt@kms_vrr@flip-dpms@pipe-a-edp-1.html

  * igt@xe_compute_preempt@compute-preempt-many-all-ram:
    - shard-bmg:          [ABORT][112] ([Intel XE#9481]) -> [PASS][113] +1 other test pass
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-9/igt@xe_compute_preempt@compute-preempt-many-all-ram.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-3/igt@xe_compute_preempt@compute-preempt-many-all-ram.html

  * igt@xe_pm@s4-multiple-execs:
    - shard-ptl:          [ABORT][114] ([Intel XE#9362]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-ptl-8/igt@xe_pm@s4-multiple-execs.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-ptl-8/igt@xe_pm@s4-multiple-execs.html
    - shard-lnl:          [ABORT][116] ([Intel XE#9362]) -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-lnl-4/igt@xe_pm@s4-multiple-execs.html
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-lnl-3/igt@xe_pm@s4-multiple-execs.html

  
#### Warnings ####

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][118] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][119] ([Intel XE#3544])
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-4/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [SKIP][120] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][121] ([Intel XE#1729] / [Intel XE#7424])
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html

  * igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add:
    - shard-bmg:          [SKIP][122] ([Intel XE#6281] / [Intel XE#7426]) -> [ABORT][123] ([Intel XE#9463])
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560/shard-bmg-2/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-177300v3/shard-bmg-6/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [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#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [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#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
  [Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [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#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [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#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156
  [Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5408
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5764]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5764
  [Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
  [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#5823]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5823
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#5907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5907
  [Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
  [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
  [Intel XE#6266]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6266
  [Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
  [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#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6918]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6918
  [Intel XE#6953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6953
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326
  [Intel XE#7329]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7329
  [Intel XE#7330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7330
  [Intel XE#7344]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7344
  [Intel XE#7348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7348
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7353
  [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#7389]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7389
  [Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7422
  [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
  [Intel XE#7425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7425
  [Intel XE#7426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7426
  [Intel XE#7439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7439
  [Intel XE#7448]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7448
  [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#7517]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7517
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7772]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7772
  [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#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
  [Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
  [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
  [Intel XE#8303]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8303
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8365
  [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#8628]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8628
  [Intel XE#9271]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9271
  [Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#9463]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9463
  [Intel XE#9481]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9481


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

  * Linux: xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560 -> xe-pw-177300v3

  IGT_9177: 9177
  xe-6059-d11bbfdac0f3d443b367857ffe683ae6bb80d560: d11bbfdac0f3d443b367857ffe683ae6bb80d560
  xe-pw-177300v3: 177300v3

== Logs ==

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

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

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

end of thread, other threads:[~2026-11-04 16:50 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-04  0:52 [PATCH v3 0/5] Cleanup OA stream on PCI unbind/remove Umesh Nerlige Ramappa
2026-11-04  0:52 ` [PATCH v3 1/5] drm/xe/oa: Use the drm device address_space for the OA stream fd Umesh Nerlige Ramappa
2026-11-04  1:10   ` sashiko-bot
2026-11-04  0:52 ` [PATCH v3 2/5] drm/xe/oa: Split OA stream destroy into HW teardown and resource release Umesh Nerlige Ramappa
2026-11-04  0:52 ` [PATCH v3 3/5] drm/xe/oa: Take the runtime PM reference in xe_oa_destroy_locked() Umesh Nerlige Ramappa
2026-11-04  0:52 ` [PATCH v3 4/5] drm/xe: Reject vm_ops->access on BO mappings of an unplugged device Umesh Nerlige Ramappa
2026-11-04  0:52 ` [PATCH v3 5/5] drm/xe/oa: Quiesce OA streams on driver unbind and PCI reset Umesh Nerlige Ramappa
2026-11-04  1:35   ` sashiko-bot
2026-11-04  1:13 ` ✓ CI.KUnit: success for Cleanup OA stream on PCI unbind/remove (rev3) Patchwork
2026-11-04  1:57 ` ✓ Xe.CI.BAT: " Patchwork
2026-11-04 16:50 ` ✓ 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