All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning
@ 2026-08-17 14:03 Piórkowski, Piotr
  2026-08-17 14:03 ` [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools Piórkowski, Piotr
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Piórkowski, Piotr @ 2026-08-17 14:03 UTC (permalink / raw)
  To: intel-xe; +Cc: Piotr Piórkowski

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

GGTT space is used both for driver-owned allocations and for provisioning
GGTT regions to VFs. These allocations currently share a single pool,
which does not allow their usable ranges or allocation policies to be
managed independently.

Introduce separate logical usable and shareable GGTT pools. The pools may
overlap, while each allocation remains constrained to its corresponding
range. When a shareable pool is present, usable allocations proceed from
the bottom and shareable allocations from the top.

v1 -> v2:
 - Rename ggtt->usable_size back to ggtt->size.
 - Remove the ggtt_insert_node_in_range() helper.
v2 -> v3:
 - Init ggtt.lock with mutex_init() in each test.
 - Introduce the hw_size struct field instead of the ggtt_accessible_size
   function.

Piotr Piórkowski (3):
  drm/xe/ggtt: Split GGTT into usable and shareable pools
  drm/xe/ggtt: Initialize GGTT pools by SR-IOV mode
  drm/xe/ggtt: Add KUnit tests for usable and shareable pools

 drivers/gpu/drm/xe/tests/xe_ggtt_test.c    | 336 +++++++++++++++++++++
 drivers/gpu/drm/xe/xe_ggtt.c               | 298 ++++++++++++++----
 drivers/gpu/drm/xe/xe_ggtt.h               |  14 +-
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c |  12 +-
 4 files changed, 599 insertions(+), 61 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/tests/xe_ggtt_test.c

-- 
2.34.1


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

* [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools
  2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
@ 2026-08-17 14:03 ` Piórkowski, Piotr
  2026-08-17 14:18   ` sashiko-bot
  2026-08-17 14:03 ` [PATCH v3 2/3] drm/xe/ggtt: Initialize GGTT pools by SR-IOV mode Piórkowski, Piotr
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 9+ messages in thread
From: Piórkowski, Piotr @ 2026-08-17 14:03 UTC (permalink / raw)
  To: intel-xe
  Cc: Piotr Piórkowski, Michal Wajdeczko, Ville Syrjälä,
	Maarten Lankhorst

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

Driver-owned GGTT allocations and VF provisioning currently use a single
GGTT pool. Split it into a usable pool for driver-owned allocations and a
shareable pool for VF provisioning.

The pools are separate logical ranges and may overlap, but allocations are
limited to the configured size of their corresponding pool. Allocate from
the bottom of the usable pool and from the top of the shareable pool when a
shareable pool is present.

Add separate insertion APIs for the usable and shareable pools, together
with shareable hole-reporting helpers used by SR-IOV PF provisioning.

v2:
 - Rename ggtt->usable_size back to ggtt->size.
 - Remove the ggtt_insert_node_in_range() helper.
v3:
 - Introduce the hw_size struct field instead of the ggtt_accessible_size
   function.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/xe/xe_ggtt.c               | 175 +++++++++++++++++----
 drivers/gpu/drm/xe/xe_ggtt.h               |  14 +-
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c |  12 +-
 3 files changed, 168 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 8ec23862477f..c7e1cb1b1ccb 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -113,8 +113,10 @@ struct xe_ggtt {
 	struct xe_tile *tile;
 	/** @start: Start offset of GGTT */
 	u64 start;
-	/** @size: Total usable size of this GGTT */
+	/** @size: Size of the usable allocation range */
 	u64 size;
+	/** @hw_size: Size of the GGTT range assigned to device */
+	u64 hw_size;
 	/**
 	 * @flags: Flags for this GGTT.
 	 * Acceptable flags:
@@ -141,6 +143,15 @@ struct xe_ggtt {
 	unsigned int access_count;
 	/** @wq: Dedicated unordered work queue to process node removals */
 	struct workqueue_struct *wq;
+#ifdef CONFIG_PCI_IOV
+	/** @shareable: Shareable range within GGTT */
+	struct {
+		/** @start: Shareable range start relative to @mm start */
+		u64 start;
+		/** @size: Shareable range size */
+		u64 size;
+	} shareable;
+#endif
 };
 
 static u64 xelp_ggtt_pte_flags(struct xe_bo *bo, u16 pat_index)
@@ -238,7 +249,7 @@ u64 xe_ggtt_size(struct xe_ggtt *ggtt)
 static void xe_ggtt_set_pte(struct xe_ggtt *ggtt, u64 addr, u64 pte)
 {
 	xe_tile_assert(ggtt->tile, !(addr & XE_PTE_MASK));
-	xe_tile_assert(ggtt->tile, addr < ggtt->start + ggtt->size);
+	xe_tile_assert(ggtt->tile, addr < ggtt->start + ggtt->hw_size);
 
 	writeq(pte, &ggtt->gsm[addr >> XE_PTE_SHIFT]);
 }
@@ -252,7 +263,7 @@ static void xe_ggtt_set_pte_and_flush(struct xe_ggtt *ggtt, u64 addr, u64 pte)
 static u64 xe_ggtt_get_pte(struct xe_ggtt *ggtt, u64 addr)
 {
 	xe_tile_assert(ggtt->tile, !(addr & XE_PTE_MASK));
-	xe_tile_assert(ggtt->tile, addr < ggtt->start + ggtt->size);
+	xe_tile_assert(ggtt->tile, addr < ggtt->start + ggtt->hw_size);
 
 	return readq(&ggtt->gsm[addr >> XE_PTE_SHIFT]);
 }
@@ -354,16 +365,31 @@ static const struct xe_ggtt_pt_ops xelpg_pt_wa_ops = {
 	.ggtt_get_pte = xe_ggtt_get_pte,
 };
 
-static void __xe_ggtt_init_early(struct xe_ggtt *ggtt, u64 start, u64 size)
+static void __xe_ggtt_init_early(struct xe_ggtt *ggtt, u64 start, u64 usable_size,
+				 u64 shareable_size)
 {
+	struct xe_gt *gt = ggtt->tile->primary_gt;
+
+	xe_gt_assert(gt, usable_size);
+	xe_gt_assert(gt, usable_size <= ggtt->hw_size);
+	xe_gt_assert(gt, shareable_size <= ggtt->hw_size);
+
 	ggtt->start = start;
-	ggtt->size = size;
-	drm_mm_init(&ggtt->mm, 0, size);
+	ggtt->size = usable_size;
+
+#ifdef CONFIG_PCI_IOV
+	if (shareable_size) {
+		ggtt->shareable.start = ggtt->hw_size - shareable_size;
+		ggtt->shareable.size = shareable_size;
+	}
+#endif
+	drm_mm_init(&ggtt->mm, 0, ggtt->hw_size);
 }
 
 int xe_ggtt_init_kunit(struct xe_ggtt *ggtt, u32 start, u32 size)
 {
-	__xe_ggtt_init_early(ggtt, start, size);
+	ggtt->hw_size = size;
+	__xe_ggtt_init_early(ggtt, start, size, 0);
 	return 0;
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_ggtt_init_kunit);
@@ -426,6 +452,8 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
 	if (ggtt_size + ggtt_start > GUC_GGTT_TOP)
 		ggtt_size = GUC_GGTT_TOP - ggtt_start;
 
+	ggtt->hw_size = ggtt_size;
+
 	if (GRAPHICS_VERx100(xe) >= 1270)
 		ggtt->pt_ops =
 			(ggtt->tile->media_gt && XE_GT_WA(ggtt->tile->media_gt, 22019338487)) ||
@@ -438,7 +466,7 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
 	if (!ggtt->wq)
 		return -ENOMEM;
 
-	__xe_ggtt_init_early(ggtt, ggtt_start, ggtt_size);
+	__xe_ggtt_init_early(ggtt, ggtt_start, ggtt_size, ggtt_size);
 
 	err = drmm_add_action_or_reset(&xe->drm, ggtt_fini_early, ggtt);
 	if (err)
@@ -610,16 +638,55 @@ void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, u64 new_start)
 
 	xe_tile_assert(ggtt->tile, new_start >= xe_wopcm_size(tile_to_xe(ggtt->tile)));
 	xe_tile_assert(ggtt->tile, new_start + ggtt->size <= GUC_GGTT_TOP);
+#ifdef CONFIG_PCI_IOV
+	xe_tile_assert(ggtt->tile, ggtt->shareable.size == 0);
+#endif
 
 	/* pairs with READ_ONCE in xe_ggtt_node_addr() */
 	WRITE_ONCE(ggtt->start, new_start);
 }
 
-static int xe_ggtt_insert_node_locked(struct xe_ggtt_node *node,
-				      u32 size, u32 align, u32 mm_flags)
+static int ggtt_insert_node_in_range_locked(struct xe_ggtt_node *node, u32 size,
+					    u32 align, u64 range_start,
+					    u64 range_size, u32 mm_flags)
 {
-	return drm_mm_insert_node_generic(&node->ggtt->mm, &node->base, size, align, 0,
-					  mm_flags);
+	struct xe_ggtt *ggtt = node->ggtt;
+	u64 range_end = range_start + range_size;
+
+	lockdep_assert_held(&ggtt->lock);
+
+	if (!range_size || range_end <= range_start)
+		return -EINVAL;
+
+	if (range_end > ggtt->hw_size)
+		return -ERANGE;
+
+	if (size > range_size)
+		return -ENOSPC;
+
+	return drm_mm_insert_node_in_range(&ggtt->mm, &node->base, size, align, 0,
+					  range_start, range_end, mm_flags);
+}
+
+/*
+ * When the shareable range is present, allocations start from the bottom
+ * to leave space at the top; otherwise they start from the top.
+ */
+static u32 ggtt_usable_insert_flags(struct xe_ggtt *ggtt)
+{
+#ifdef CONFIG_PCI_IOV
+	if (ggtt->shareable.size > 0)
+		return DRM_MM_INSERT_LOW;
+#endif
+	return DRM_MM_INSERT_HIGH;
+}
+
+static int xe_ggtt_insert_node_locked(struct xe_ggtt_node *node, u32 size, u32 align)
+{
+	struct xe_ggtt *ggtt = node->ggtt;
+
+	return ggtt_insert_node_in_range_locked(node, size, align, 0,
+						ggtt->size, ggtt_usable_insert_flags(ggtt));
 }
 
 static struct xe_ggtt_node *ggtt_node_init(struct xe_ggtt *ggtt)
@@ -641,7 +708,7 @@ static struct xe_ggtt_node *ggtt_node_init(struct xe_ggtt *ggtt)
  * @size: size of the node
  * @align: alignment constrain of the node
  *
- * Return: &xe_ggtt_node on success or a ERR_PTR on failure.
+ * Return: &xe_ggtt_node on success or an error on failure.
  */
 struct xe_ggtt_node *xe_ggtt_insert_node(struct xe_ggtt *ggtt, u32 size, u32 align)
 {
@@ -653,8 +720,46 @@ struct xe_ggtt_node *xe_ggtt_insert_node(struct xe_ggtt *ggtt, u32 size, u32 ali
 		return node;
 
 	guard(mutex)(&ggtt->lock);
-	ret = xe_ggtt_insert_node_locked(node, size, align,
-					 DRM_MM_INSERT_HIGH);
+
+	ret = xe_ggtt_insert_node_locked(node, size, align);
+	if (ret) {
+		ggtt_node_fini(node);
+		return ERR_PTR(ret);
+	}
+
+	return node;
+}
+
+#ifdef CONFIG_PCI_IOV
+/**
+ * xe_ggtt_insert_node_shareable - Insert a &xe_ggtt_node into shareable range
+ * @ggtt: the &xe_ggtt into which the node should be inserted.
+ * @size: size of the node
+ * @align: alignment constrain of the node
+ *
+ * Inserts a node into the shareable GGTT range.
+ * Allocations always start from the top (DRM_MM_INSERT_HIGH).
+ *
+ * Return: &xe_ggtt_node on success or an error on failure.
+ */
+struct xe_ggtt_node *xe_ggtt_insert_node_shareable(struct xe_ggtt *ggtt, u32 size, u32 align)
+{
+	struct xe_ggtt_node *node;
+	int ret;
+
+	if (!ggtt->shareable.size)
+		return ERR_PTR(-ENOSPC);
+
+	node = ggtt_node_init(ggtt);
+	if (IS_ERR(node))
+		return node;
+
+	guard(mutex)(&ggtt->lock);
+
+	ret = ggtt_insert_node_in_range_locked(node, size, align,
+					       ggtt->shareable.start,
+					       ggtt->shareable.size,
+					       DRM_MM_INSERT_HIGH);
 	if (ret) {
 		ggtt_node_fini(node);
 		return ERR_PTR(ret);
@@ -662,6 +767,7 @@ struct xe_ggtt_node *xe_ggtt_insert_node(struct xe_ggtt *ggtt, u32 size, u32 ali
 
 	return node;
 }
+#endif
 
 /**
  * xe_ggtt_node_pt_size() - Get the size of page table entries needed to map a GGTT node.
@@ -745,6 +851,7 @@ void xe_ggtt_map_bo_unlocked(struct xe_ggtt *ggtt, struct xe_bo *bo)
  *
  * This function allows inserting a GGTT node with a custom transformation function.
  * This is useful for display to allow inserting rotated framebuffers to GGTT.
+ * Allocates from the usable range only.
  *
  * Return: A pointer to %xe_ggtt_node struct on success. An ERR_PTR otherwise.
  */
@@ -765,7 +872,7 @@ struct xe_ggtt_node *xe_ggtt_insert_node_transform(struct xe_ggtt *ggtt,
 		goto err;
 	}
 
-	ret = xe_ggtt_insert_node_locked(node, size, align, 0);
+	ret = xe_ggtt_insert_node_locked(node, size, align);
 	if (ret)
 		goto err_unlock;
 
@@ -832,10 +939,13 @@ static int __xe_ggtt_insert_bo_at(struct xe_ggtt *ggtt, struct xe_bo *bo,
 	else
 		end = 0;
 
+	end = min(end, ggtt->size);
+
 	xe_tile_assert(ggtt->tile, end >= start + xe_bo_size(bo));
 
 	err = drm_mm_insert_node_in_range(&ggtt->mm, &bo->ggtt_node[tile_id]->base,
-					  xe_bo_size(bo), alignment, 0, start, end, 0);
+					  xe_bo_size(bo), alignment, 0, start, end,
+					  ggtt_usable_insert_flags(ggtt));
 	if (err) {
 		ggtt_node_fini(bo->ggtt_node[tile_id]);
 		bo->ggtt_node[tile_id] = NULL;
@@ -906,24 +1016,30 @@ void xe_ggtt_remove_bo(struct xe_ggtt *ggtt, struct xe_bo *bo)
 			    bo->flags & XE_BO_FLAG_GGTT_INVALIDATE);
 }
 
+#ifdef CONFIG_PCI_IOV
 /**
- * xe_ggtt_largest_hole - Largest GGTT hole
+ * xe_ggtt_largest_shareable_hole - Largest hole within the shareable range
  * @ggtt: the &xe_ggtt that will be inspected
  * @alignment: minimum alignment
  * @spare: If not NULL: in: desired memory size to be spared / out: Adjusted possible spare
  *
- * Return: size of the largest continuous GGTT region
+ * Only holes within the shareable range are considered.
+ *
+ * Return: size of the largest continuous shareable GGTT region
  */
-u64 xe_ggtt_largest_hole(struct xe_ggtt *ggtt, u64 alignment, u64 *spare)
+u64 xe_ggtt_largest_shareable_hole(struct xe_ggtt *ggtt, u64 alignment, u64 *spare)
 {
 	const struct drm_mm *mm = &ggtt->mm;
 	const struct drm_mm_node *entry;
 	u64 hole_start, hole_end, hole_size;
+	u64 shareable_start = ggtt->shareable.start;
+	u64 shareable_end = ggtt->shareable.start + ggtt->shareable.size;
 	u64 max_hole = 0;
 
 	mutex_lock(&ggtt->lock);
 	drm_mm_for_each_hole(entry, mm, hole_start, hole_end) {
-		hole_start = max(hole_start, ggtt->start);
+		hole_start = max(hole_start, shareable_start);
+		hole_end = min(hole_end, shareable_end);
 		hole_start = ALIGN(hole_start, alignment);
 		hole_end = ALIGN_DOWN(hole_end, alignment);
 		if (hole_start >= hole_end)
@@ -939,7 +1055,6 @@ u64 xe_ggtt_largest_hole(struct xe_ggtt *ggtt, u64 alignment, u64 *spare)
 	return max_hole;
 }
 
-#ifdef CONFIG_PCI_IOV
 static u64 xe_encode_vfid_pte(u16 vfid)
 {
 	return FIELD_PREP(GGTT_PTE_VFID, vfid) | XE_PAGE_PRESENT;
@@ -1078,27 +1193,32 @@ int xe_ggtt_dump(struct xe_ggtt *ggtt, struct drm_printer *p)
 	return err;
 }
 
+#ifdef CONFIG_PCI_IOV
 /**
- * xe_ggtt_print_holes - Print holes
+ * xe_ggtt_print_shareable_holes - Print holes within the shareable range
  * @ggtt: the &xe_ggtt to be inspected
  * @alignment: min alignment
  * @p: the &drm_printer
  *
- * Print GGTT ranges that are available and return total size available.
+ * Print GGTT ranges that are available within the shareable range and return
+ * total size available.
  *
- * Return: Total available size.
+ * Return: Total available shareable size.
  */
-u64 xe_ggtt_print_holes(struct xe_ggtt *ggtt, u64 alignment, struct drm_printer *p)
+u64 xe_ggtt_print_shareable_holes(struct xe_ggtt *ggtt, u64 alignment, struct drm_printer *p)
 {
 	const struct drm_mm *mm = &ggtt->mm;
 	const struct drm_mm_node *entry;
 	u64 hole_start, hole_end, hole_size;
+	u64 shareable_start = ggtt->shareable.start;
+	u64 shareable_end = ggtt->shareable.start + ggtt->shareable.size;
 	u64 total = 0;
 	char buf[10];
 
 	mutex_lock(&ggtt->lock);
 	drm_mm_for_each_hole(entry, mm, hole_start, hole_end) {
-		hole_start = max(hole_start, ggtt->start);
+		hole_start = max(hole_start, shareable_start);
+		hole_end = min(hole_end, shareable_end);
 		hole_start = ALIGN(hole_start, alignment);
 		hole_end = ALIGN_DOWN(hole_end, alignment);
 		if (hole_start >= hole_end)
@@ -1115,6 +1235,7 @@ u64 xe_ggtt_print_holes(struct xe_ggtt *ggtt, u64 alignment, struct drm_printer
 
 	return total;
 }
+#endif
 
 /**
  * xe_ggtt_encode_pte_flags - Get PTE encoding flags for BO
diff --git a/drivers/gpu/drm/xe/xe_ggtt.h b/drivers/gpu/drm/xe/xe_ggtt.h
index c864cc975a69..c441e39fdd47 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.h
+++ b/drivers/gpu/drm/xe/xe_ggtt.h
@@ -24,6 +24,16 @@ u64 xe_ggtt_size(struct xe_ggtt *ggtt);
 
 struct xe_ggtt_node *
 xe_ggtt_insert_node(struct xe_ggtt *ggtt, u32 size, u32 align);
+#ifdef CONFIG_PCI_IOV
+struct xe_ggtt_node *
+xe_ggtt_insert_node_shareable(struct xe_ggtt *ggtt, u32 size, u32 align);
+#else
+static inline struct xe_ggtt_node *
+xe_ggtt_insert_node_shareable(struct xe_ggtt *ggtt, u32 size, u32 align)
+{
+	return ERR_PTR(-ENODEV);
+}
+#endif
 struct xe_ggtt_node *
 xe_ggtt_insert_node_transform(struct xe_ggtt *ggtt,
 			      struct xe_bo *bo, u64 pte,
@@ -36,12 +46,12 @@ int xe_ggtt_insert_bo(struct xe_ggtt *ggtt, struct xe_bo *bo, struct drm_exec *e
 int xe_ggtt_insert_bo_at(struct xe_ggtt *ggtt, struct xe_bo *bo,
 			 u64 start, u64 end, struct drm_exec *exec);
 void xe_ggtt_remove_bo(struct xe_ggtt *ggtt, struct xe_bo *bo);
-u64 xe_ggtt_largest_hole(struct xe_ggtt *ggtt, u64 alignment, u64 *spare);
 
 int xe_ggtt_dump(struct xe_ggtt *ggtt, struct drm_printer *p);
-u64 xe_ggtt_print_holes(struct xe_ggtt *ggtt, u64 alignment, struct drm_printer *p);
 
 #ifdef CONFIG_PCI_IOV
+u64 xe_ggtt_largest_shareable_hole(struct xe_ggtt *ggtt, u64 alignment, u64 *spare);
+u64 xe_ggtt_print_shareable_holes(struct xe_ggtt *ggtt, u64 alignment, struct drm_printer *p);
 void xe_ggtt_assign(const struct xe_ggtt_node *node, u16 vfid);
 int xe_ggtt_node_save(struct xe_ggtt_node *node, void *dst, size_t size, u16 vfid);
 int xe_ggtt_node_load(struct xe_ggtt_node *node, const void *src, size_t size, u16 vfid);
diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c b/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
index be0a413ee17c..a5f4a3d27c3e 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
@@ -531,9 +531,13 @@ static int pf_provision_vf_ggtt(struct xe_gt *gt, unsigned int vfid, u64 size)
 	if (!size)
 		return 0;
 
-	node = xe_ggtt_insert_node(ggtt, size, alignment);
-	if (IS_ERR(node))
+	node = xe_ggtt_insert_node_shareable(ggtt, size, alignment);
+	if (IS_ERR(node)) {
+		xe_gt_sriov_dbg_verbose(gt,
+					"VF%u GGTT provisioning failed: no shareable range\n",
+					vfid);
 		return PTR_ERR(node);
+	}
 
 	xe_ggtt_assign(node, vfid);
 	xe_gt_sriov_dbg_verbose(gt, "VF%u assigned GGTT %llx-%llx\n",
@@ -729,7 +733,7 @@ static u64 pf_get_max_ggtt(struct xe_gt *gt)
 	u64 spare = pf_get_spare_ggtt(gt);
 	u64 max_hole;
 
-	max_hole = xe_ggtt_largest_hole(ggtt, alignment, &spare);
+	max_hole = xe_ggtt_largest_shareable_hole(ggtt, alignment, &spare);
 
 	xe_gt_sriov_dbg_verbose(gt, "HOLE max %lluK reserved %lluK\n",
 				max_hole / SZ_1K, spare / SZ_1K);
@@ -3549,7 +3553,7 @@ int xe_gt_sriov_pf_config_print_available_ggtt(struct xe_gt *gt, struct drm_prin
 	mutex_lock(xe_gt_sriov_pf_master_mutex(gt));
 
 	spare = pf_get_spare_ggtt(gt);
-	total = xe_ggtt_print_holes(ggtt, alignment, p);
+	total = xe_ggtt_print_shareable_holes(ggtt, alignment, p);
 
 	mutex_unlock(xe_gt_sriov_pf_master_mutex(gt));
 
-- 
2.34.1


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

* [PATCH v3 2/3] drm/xe/ggtt: Initialize GGTT pools by SR-IOV mode
  2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
  2026-08-17 14:03 ` [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools Piórkowski, Piotr
@ 2026-08-17 14:03 ` Piórkowski, Piotr
  2026-08-17 14:03 ` [PATCH v3 3/3] drm/xe/ggtt: Add KUnit tests for usable and shareable pools Piórkowski, Piotr
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Piórkowski, Piotr @ 2026-08-17 14:03 UTC (permalink / raw)
  To: intel-xe
  Cc: Piotr Piórkowski, Michal Wajdeczko, Ville Syrjälä,
	Maarten Lankhorst

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

GGTT initialization currently uses the full available range for both the
usable and shareable pools, regardless of the SR-IOV mode. The range is
read from hardware on native and PF devices and assigned by GuC on VFs.

Let's separate range discovery from pool setup and initialize the pools
based on SR-IOV mode. Native and VF modes will use only the usable pool.
Shared PF mode will use both pools over the same full range, so they fully
overlap.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/xe/xe_ggtt.c | 131 ++++++++++++++++++++++++++---------
 1 file changed, 97 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index c7e1cb1b1ccb..84fcc62b1798 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -365,8 +365,8 @@ static const struct xe_ggtt_pt_ops xelpg_pt_wa_ops = {
 	.ggtt_get_pte = xe_ggtt_get_pte,
 };
 
-static void __xe_ggtt_init_early(struct xe_ggtt *ggtt, u64 start, u64 usable_size,
-				 u64 shareable_size)
+static void ggtt_init_ranges(struct xe_ggtt *ggtt, u64 start, u64 usable_size,
+			     u64 shareable_size)
 {
 	struct xe_gt *gt = ggtt->tile->primary_gt;
 
@@ -386,10 +386,87 @@ static void __xe_ggtt_init_early(struct xe_ggtt *ggtt, u64 start, u64 usable_siz
 	drm_mm_init(&ggtt->mm, 0, ggtt->hw_size);
 }
 
+static int ggtt_get_range_from_hw(struct xe_ggtt *ggtt, u64 *start, u64 *size)
+{
+	struct xe_device *xe = tile_to_xe(ggtt->tile);
+	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
+	unsigned int gsm_size;
+
+	if (GRAPHICS_VERx100(xe) >= 1250)
+		gsm_size = SZ_8M; /* GGTT is expected to be 4GiB */
+	else
+		gsm_size = probe_gsm_size(pdev);
+
+	if (!gsm_size) {
+		xe_tile_err(ggtt->tile, "Hardware reported no preallocated GSM\n");
+		return -ENOMEM;
+	}
+
+	*start = xe_wopcm_size(xe);
+	*size = (gsm_size / 8) * (u64)XE_PAGE_SIZE - *start;
+
+	return 0;
+}
+
+static int ggtt_get_range_from_guc(struct xe_ggtt *ggtt, u64 *start, u64 *size)
+{
+	struct xe_device *xe = tile_to_xe(ggtt->tile);
+	u64 wopcm = xe_wopcm_size(xe);
+
+	*start = xe_tile_sriov_vf_ggtt_base(ggtt->tile);
+	*size = xe_tile_sriov_vf_ggtt(ggtt->tile);
+
+	if (*start < wopcm || *start + *size > GUC_GGTT_TOP) {
+		xe_tile_err(ggtt->tile, "Invalid GGTT configuration: %#llx-%#llx\n",
+			    *start, *start + *size - 1);
+		return -ERANGE;
+	}
+
+	return 0;
+}
+
+static int ggtt_read_available_range(struct xe_ggtt *ggtt, u64 *start, u64 *size)
+{
+	struct xe_device *xe = tile_to_xe(ggtt->tile);
+	int err;
+
+	if (IS_SRIOV_VF(xe))
+		err = ggtt_get_range_from_guc(ggtt, start, size);
+	else
+		err = ggtt_get_range_from_hw(ggtt, start, size);
+	if (err)
+		return err;
+
+	if (*start + *size > GUC_GGTT_TOP)
+		*size = GUC_GGTT_TOP - *start;
+
+	return 0;
+}
+
+static void ggtt_init_native(struct xe_ggtt *ggtt, u64 start, u64 size)
+{
+	ggtt_init_ranges(ggtt, start, size, 0);
+}
+
+static void ggtt_init_shared(struct xe_ggtt *ggtt, u64 start, u64 size)
+{
+	ggtt_init_ranges(ggtt, start, size, size);
+}
+
+static void ggtt_init_generic(struct xe_ggtt *ggtt, u64 start, u64 size)
+{
+	struct xe_device *xe = tile_to_xe(ggtt->tile);
+
+	if (!IS_SRIOV_PF(xe))
+		ggtt_init_native(ggtt, start, size);
+	else
+		ggtt_init_shared(ggtt, start, size);
+}
+
 int xe_ggtt_init_kunit(struct xe_ggtt *ggtt, u32 start, u32 size)
 {
 	ggtt->hw_size = size;
-	__xe_ggtt_init_early(ggtt, start, size, 0);
+	ggtt_init_ranges(ggtt, start, size, 0);
 	return 0;
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_ggtt_init_kunit);
@@ -417,43 +494,19 @@ static void dev_fini_ggtt(void *arg)
 int xe_ggtt_init_early(struct xe_ggtt *ggtt)
 {
 	struct xe_device *xe = tile_to_xe(ggtt->tile);
-	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
-	unsigned int gsm_size;
-	u64 ggtt_start, wopcm = xe_wopcm_size(xe), ggtt_size;
+	u64 ggtt_start, ggtt_size;
 	int err;
 
-	if (!IS_SRIOV_VF(xe)) {
-		if (GRAPHICS_VERx100(xe) >= 1250)
-			gsm_size = SZ_8M; /* GGTT is expected to be 4GiB */
-		else
-			gsm_size = probe_gsm_size(pdev);
-		if (gsm_size == 0) {
-			xe_tile_err(ggtt->tile, "Hardware reported no preallocated GSM\n");
-			return -ENOMEM;
-		}
-		ggtt_start = wopcm;
-		ggtt_size = (gsm_size / 8) * (u64)XE_PAGE_SIZE - ggtt_start;
-	} else {
-		ggtt_start = xe_tile_sriov_vf_ggtt_base(ggtt->tile);
-		ggtt_size = xe_tile_sriov_vf_ggtt(ggtt->tile);
-
-		if (ggtt_start < wopcm ||
-		    ggtt_start + ggtt_size > GUC_GGTT_TOP) {
-			xe_tile_err(ggtt->tile, "Invalid GGTT configuration: %#llx-%#llx\n",
-				    ggtt_start, ggtt_start + ggtt_size - 1);
-			return -ERANGE;
-		}
-	}
+	err = ggtt_read_available_range(ggtt, &ggtt_start, &ggtt_size);
+	if (err)
+		return err;
+
+	ggtt->hw_size = ggtt_size;
 
 	ggtt->gsm = ggtt->tile->mmio.regs + SZ_8M;
 	if (IS_DGFX(xe) && xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K)
 		ggtt->flags |= XE_GGTT_FLAGS_64K;
 
-	if (ggtt_size + ggtt_start > GUC_GGTT_TOP)
-		ggtt_size = GUC_GGTT_TOP - ggtt_start;
-
-	ggtt->hw_size = ggtt_size;
-
 	if (GRAPHICS_VERx100(xe) >= 1270)
 		ggtt->pt_ops =
 			(ggtt->tile->media_gt && XE_GT_WA(ggtt->tile->media_gt, 22019338487)) ||
@@ -466,7 +519,17 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
 	if (!ggtt->wq)
 		return -ENOMEM;
 
-	__xe_ggtt_init_early(ggtt, ggtt_start, ggtt_size, ggtt_size);
+	ggtt_init_generic(ggtt, ggtt_start, ggtt_size);
+	xe_tile_info(ggtt->tile, "GGTT usable %#llx-%#llx = %lluK\n",
+		     ggtt->start, ggtt->start + ggtt->size - 1,
+		     ggtt->size / SZ_1K);
+#ifdef CONFIG_PCI_IOV
+	if (IS_SRIOV_PF(xe))
+		xe_tile_info(ggtt->tile, "GGTT shareable %#llx-%#llx = %lluK\n",
+			     ggtt->start + ggtt->shareable.start,
+			     ggtt->start + ggtt->shareable.start + ggtt->shareable.size - 1,
+			     ggtt->shareable.size / SZ_1K);
+#endif
 
 	err = drmm_add_action_or_reset(&xe->drm, ggtt_fini_early, ggtt);
 	if (err)
-- 
2.34.1


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

* [PATCH v3 3/3] drm/xe/ggtt: Add KUnit tests for usable and shareable pools
  2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
  2026-08-17 14:03 ` [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools Piórkowski, Piotr
  2026-08-17 14:03 ` [PATCH v3 2/3] drm/xe/ggtt: Initialize GGTT pools by SR-IOV mode Piórkowski, Piotr
@ 2026-08-17 14:03 ` Piórkowski, Piotr
  2026-08-17 14:15 ` ✗ CI.checkpatch: warning for Separate GGTT pools for submissions and VFs provisioning (rev3) Patchwork
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Piórkowski, Piotr @ 2026-08-17 14:03 UTC (permalink / raw)
  To: intel-xe
  Cc: Piotr Piórkowski, Michal Wajdeczko, Ville Syrjälä,
	Maarten Lankhorst

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

Add GGTT KUnit tests focused on the newly introduced usable and
shareable pools.

Cover range initialization for native and PF modes, including partially
overlapping pools. Exercise allocation direction and conflicts between
the pools, as well as the unavailable shareable pool and requests
exceeding pool capacity.

v2:
 - Init ggtt.lock with mutex_init() in each test.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
---
 drivers/gpu/drm/xe/tests/xe_ggtt_test.c | 336 ++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_ggtt.c            |   4 +
 2 files changed, 340 insertions(+)
 create mode 100644 drivers/gpu/drm/xe/tests/xe_ggtt_test.c

diff --git a/drivers/gpu/drm/xe/tests/xe_ggtt_test.c b/drivers/gpu/drm/xe/tests/xe_ggtt_test.c
new file mode 100644
index 000000000000..7d28b97f8afe
--- /dev/null
+++ b/drivers/gpu/drm/xe/tests/xe_ggtt_test.c
@@ -0,0 +1,336 @@
+// SPDX-License-Identifier: GPL-2.0 AND MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <kunit/test.h>
+
+#include "xe_device.h"
+#include "xe_kunit_helpers.h"
+
+#define GGTT_TEST_START		SZ_1M
+
+static int ggtt_test_init(struct kunit *test)
+{
+	xe_kunit_helper_xe_device_test_init(test);
+	return 0;
+}
+
+static void init_native(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = min_t(u64, SZ_1G, accessible);
+
+	ggtt.hw_size = usable;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, 0);
+
+	KUNIT_EXPECT_EQ(test, ggtt.start, GGTT_TEST_START);
+	KUNIT_EXPECT_EQ(test, ggtt.size, usable);
+	KUNIT_EXPECT_EQ(test, ggtt.hw_size, usable);
+
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_usable_pool_high(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *usable_node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = usable;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, 0);
+
+	usable_node = xe_ggtt_insert_node(&ggtt, XE_PAGE_SIZE, XE_PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, usable_node);
+	KUNIT_EXPECT_EQ(test, xe_ggtt_node_addr(usable_node),
+			GGTT_TEST_START + usable - XE_PAGE_SIZE);
+
+	ggtt_node_remove(usable_node);
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_usable_pool_oversized(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+
+	KUNIT_ASSERT_LE(test, usable + XE_PAGE_SIZE, (u64)U32_MAX);
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = usable;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, 0);
+
+	node = xe_ggtt_insert_node(&ggtt, usable + XE_PAGE_SIZE, XE_PAGE_SIZE);
+	KUNIT_ASSERT_TRUE(test, IS_ERR(node));
+	KUNIT_EXPECT_EQ(test, PTR_ERR(node), -ENOSPC);
+
+	drm_mm_takedown(&ggtt.mm);
+}
+
+#if IS_ENABLED(CONFIG_PCI_IOV)
+static void init_shared_pf(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, accessible, accessible);
+
+	KUNIT_EXPECT_EQ(test, ggtt.size, accessible);
+	KUNIT_EXPECT_EQ(test, ggtt.shareable.start, 0);
+	KUNIT_EXPECT_EQ(test, ggtt.shareable.size, accessible);
+	KUNIT_EXPECT_EQ(test, ggtt.hw_size, accessible);
+
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void init_partial_overlap(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+	u64 shareable = accessible / 2;
+
+	KUNIT_ASSERT_GT(test, accessible, 0ULL);
+	KUNIT_ASSERT_GT(test, usable, shareable);
+
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, shareable);
+
+	KUNIT_EXPECT_EQ(test, ggtt.size, usable);
+	KUNIT_EXPECT_EQ(test, ggtt.shareable.start, accessible - shareable);
+	KUNIT_EXPECT_EQ(test, ggtt.shareable.size, shareable);
+	KUNIT_EXPECT_LT(test, ggtt.shareable.start, usable);
+	KUNIT_EXPECT_EQ(test, ggtt.hw_size, accessible);
+
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_usable_pool_low(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *usable_node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+	u64 shareable = accessible / 2;
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, shareable);
+
+	usable_node = xe_ggtt_insert_node(&ggtt, XE_PAGE_SIZE, XE_PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, usable_node);
+	KUNIT_EXPECT_EQ(test, xe_ggtt_node_addr(usable_node), GGTT_TEST_START);
+	KUNIT_EXPECT_EQ(test, xe_ggtt_node_size(usable_node), (u64)XE_PAGE_SIZE);
+
+	ggtt_node_remove(usable_node);
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_shareable_pool_high(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *shareable_node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+	u64 shareable = accessible / 2;
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, shareable);
+
+	shareable_node = xe_ggtt_insert_node_shareable(&ggtt,
+						       XE_PAGE_SIZE,
+						       XE_PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, shareable_node);
+	KUNIT_EXPECT_EQ(test, xe_ggtt_node_addr(shareable_node),
+			GGTT_TEST_START + accessible - XE_PAGE_SIZE);
+	KUNIT_EXPECT_EQ(test, xe_ggtt_node_size(shareable_node),
+			(u64)XE_PAGE_SIZE);
+
+	ggtt_node_remove(shareable_node);
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_partial_overlap(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *usable_node, *shareable_node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+	u64 shareable = accessible / 2;
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, shareable);
+
+	usable_node = xe_ggtt_insert_node(&ggtt, XE_PAGE_SIZE, XE_PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, usable_node);
+	shareable_node = xe_ggtt_insert_node_shareable(&ggtt,
+						       XE_PAGE_SIZE,
+						       XE_PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, shareable_node);
+
+	KUNIT_EXPECT_EQ(test, xe_ggtt_node_addr(usable_node), GGTT_TEST_START);
+	KUNIT_EXPECT_EQ(test, xe_ggtt_node_addr(shareable_node),
+			GGTT_TEST_START + accessible - XE_PAGE_SIZE);
+
+	ggtt_node_remove(shareable_node);
+	ggtt_node_remove(usable_node);
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_partial_overlap_usable_full(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *usable_node, *shareable_node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+	u64 shareable = accessible / 2;
+
+	KUNIT_ASSERT_LE(test, usable, (u64)U32_MAX);
+	KUNIT_ASSERT_LE(test, shareable, (u64)U32_MAX);
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, shareable);
+
+	usable_node = xe_ggtt_insert_node(&ggtt, usable, XE_PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, usable_node);
+	shareable_node = xe_ggtt_insert_node_shareable(&ggtt,
+						       shareable,
+						       XE_PAGE_SIZE);
+	KUNIT_ASSERT_TRUE(test, IS_ERR(shareable_node));
+	KUNIT_EXPECT_EQ(test, PTR_ERR(shareable_node), -ENOSPC);
+
+	ggtt_node_remove(usable_node);
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_partial_overlap_shareable_full(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *usable_node, *shareable_node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+	u64 shareable = accessible / 2;
+
+	KUNIT_ASSERT_LE(test, usable, (u64)U32_MAX);
+	KUNIT_ASSERT_LE(test, shareable, (u64)U32_MAX);
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, shareable);
+
+	shareable_node = xe_ggtt_insert_node_shareable(&ggtt,
+						       shareable,
+						       XE_PAGE_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, shareable_node);
+	usable_node = xe_ggtt_insert_node(&ggtt, usable, XE_PAGE_SIZE);
+	KUNIT_ASSERT_TRUE(test, IS_ERR(usable_node));
+	KUNIT_EXPECT_EQ(test, PTR_ERR(usable_node), -ENOSPC);
+
+	ggtt_node_remove(shareable_node);
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_shareable_pool_unavailable(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = usable;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, 0);
+
+	node = xe_ggtt_insert_node_shareable(&ggtt, XE_PAGE_SIZE, XE_PAGE_SIZE);
+	KUNIT_ASSERT_TRUE(test, IS_ERR(node));
+	KUNIT_EXPECT_EQ(test, PTR_ERR(node), -ENOSPC);
+
+	drm_mm_takedown(&ggtt.mm);
+}
+
+static void alloc_shareable_pool_oversized(struct kunit *test)
+{
+	struct xe_tile *tile = xe_device_get_root_tile(test->priv);
+	struct xe_ggtt ggtt = { .tile = tile };
+	struct xe_ggtt_node *node;
+	u64 accessible = GUC_GGTT_TOP - xe_wopcm_size(tile_to_xe(tile));
+	u64 usable = (accessible * 3) / 4;
+	u64 shareable = accessible / 2;
+
+	KUNIT_ASSERT_LE(test, shareable + XE_PAGE_SIZE, (u64)U32_MAX);
+
+	mutex_init(&ggtt.lock);
+	ggtt.hw_size = accessible;
+	ggtt_init_ranges(&ggtt, GGTT_TEST_START, usable, shareable);
+
+	node = xe_ggtt_insert_node_shareable(&ggtt,
+					     shareable + XE_PAGE_SIZE,
+					     XE_PAGE_SIZE);
+	KUNIT_ASSERT_TRUE(test, IS_ERR(node));
+	KUNIT_EXPECT_EQ(test, PTR_ERR(node), -ENOSPC);
+
+	drm_mm_takedown(&ggtt.mm);
+}
+#else
+#define GGTT_PCI_IOV_TEST_SKIP(_name) \
+	static void _name(struct kunit *test) \
+	{ \
+		kunit_skip(test, "requires CONFIG_PCI_IOV"); \
+	}
+
+GGTT_PCI_IOV_TEST_SKIP(init_shared_pf)
+GGTT_PCI_IOV_TEST_SKIP(init_partial_overlap)
+GGTT_PCI_IOV_TEST_SKIP(alloc_usable_pool_low)
+GGTT_PCI_IOV_TEST_SKIP(alloc_shareable_pool_high)
+GGTT_PCI_IOV_TEST_SKIP(alloc_partial_overlap)
+GGTT_PCI_IOV_TEST_SKIP(alloc_partial_overlap_usable_full)
+GGTT_PCI_IOV_TEST_SKIP(alloc_partial_overlap_shareable_full)
+GGTT_PCI_IOV_TEST_SKIP(alloc_shareable_pool_unavailable)
+GGTT_PCI_IOV_TEST_SKIP(alloc_shareable_pool_oversized)
+
+#undef GGTT_PCI_IOV_TEST_SKIP
+#endif /* CONFIG_PCI_IOV */
+
+static struct kunit_case ggtt_test_cases[] = {
+	KUNIT_CASE(init_native),
+	KUNIT_CASE(alloc_usable_pool_high),
+	KUNIT_CASE(alloc_usable_pool_oversized),
+	KUNIT_CASE(init_shared_pf),
+	KUNIT_CASE(init_partial_overlap),
+	KUNIT_CASE(alloc_usable_pool_low),
+	KUNIT_CASE(alloc_shareable_pool_high),
+	KUNIT_CASE(alloc_partial_overlap),
+	KUNIT_CASE(alloc_partial_overlap_usable_full),
+	KUNIT_CASE(alloc_partial_overlap_shareable_full),
+	KUNIT_CASE(alloc_shareable_pool_unavailable),
+	KUNIT_CASE(alloc_shareable_pool_oversized),
+	{}
+};
+
+static struct kunit_suite ggtt_suite = {
+	.name = "xe_ggtt",
+	.test_cases = ggtt_test_cases,
+	.init = ggtt_test_init,
+};
+
+kunit_test_suites(&ggtt_suite);
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 84fcc62b1798..25632c8e32d0 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -1349,3 +1349,7 @@ u64 xe_ggtt_node_size(const struct xe_ggtt_node *node)
 {
 	return node->base.size;
 }
+
+#if IS_BUILTIN(CONFIG_DRM_XE_KUNIT_TEST)
+#include "tests/xe_ggtt_test.c"
+#endif
-- 
2.34.1


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

* ✗ CI.checkpatch: warning for Separate GGTT pools for submissions and VFs provisioning (rev3)
  2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
                   ` (2 preceding siblings ...)
  2026-08-17 14:03 ` [PATCH v3 3/3] drm/xe/ggtt: Add KUnit tests for usable and shareable pools Piórkowski, Piotr
@ 2026-08-17 14:15 ` Patchwork
  2026-08-17 14:18 ` ✓ CI.KUnit: success " Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-08-17 14:15 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

== Series Details ==

Series: Separate GGTT pools for submissions and VFs provisioning (rev3)
URL   : https://patchwork.freedesktop.org/series/171735/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
061140b9bc586ae7f40abc1249c97e1cc72d1b9d
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 4f1fea07f9bbaf5adeff75e1faae64803008b05c
Author: Piotr Piórkowski <piotr.piorkowski@intel.com>
Date:   Mon Aug 17 16:03:42 2026 +0200

    drm/xe/ggtt: Add KUnit tests for usable and shareable pools
    
    Add GGTT KUnit tests focused on the newly introduced usable and
    shareable pools.
    
    Cover range initialization for native and PF modes, including partially
    overlapping pools. Exercise allocation direction and conflicts between
    the pools, as well as the unavailable shareable pool and requests
    exceeding pool capacity.
    
    v2:
     - Init ggtt.lock with mutex_init() in each test.
    
    Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
    Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Maarten Lankhorst <dev@lankhorst.se>
+ /mt/dim checkpatch 24a2127c5f2bce93dbb33cbbee84666272a5e716 drm-intel
f18303cc3f83 drm/xe/ggtt: Split GGTT into usable and shareable pools
68163701ba43 drm/xe/ggtt: Initialize GGTT pools by SR-IOV mode
4f1fea07f9bb drm/xe/ggtt: Add KUnit tests for usable and shareable pools
-:26: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#26: 
new file mode 100644

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



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

* Re: [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools
  2026-08-17 14:03 ` [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools Piórkowski, Piotr
@ 2026-08-17 14:18   ` sashiko-bot
  0 siblings, 0 replies; 9+ messages in thread
From: sashiko-bot @ 2026-08-17 14:18 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Unconditional initialization of the shareable pool size causes guaranteed assertion failures on VFs and incorrectly alters the native allocation strategy.
- [Medium] Clamping `end` to `ggtt->size` turns a graceful `-ENOSPC` failure into a kernel WARNING for oversized BOs.
--

--- Patch [1]: [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools ---
commit 1bffe9ae3d9e5639133437250d4cd685f998d972
Author: Piotr Piórkowski <piotr.piorkowski@intel.com>
Subject: drm/xe/ggtt: Split GGTT into usable and shareable pools

This commit splits the driver-owned GGTT allocations and VF provisioning into
a usable pool for driver-owned allocations and a shareable pool for VF
provisioning. Separate insertion APIs are added for both pools.

> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 8ec23862477fc..c7e1cb1b1ccbf 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
[ ... ]
> @@ -438,7 +466,7 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
>  	if (!ggtt->wq)
>  		return -ENOMEM;
>  
> -	__xe_ggtt_init_early(ggtt, ggtt_start, ggtt_size);
> +	__xe_ggtt_init_early(ggtt, ggtt_start, ggtt_size, ggtt_size);

[Severity: High]
Does this unconditionally initialize the shareable pool size on all
configurations?

By passing ggtt_size as the shareable_size here, ggtt->shareable.size will
always be greater than 0. This seems to alter the default allocation behavior
on bare-metal setups, as ggtt_usable_insert_flags() will incorrectly return
DRM_MM_INSERT_LOW.

This also seems to cause an assertion failure later on VFs:

[ ... ]
> @@ -610,16 +638,55 @@ void xe_ggtt_shift_nodes(struct xe_ggtt *ggtt, u64 new_start)
>  
>  	xe_tile_assert(ggtt->tile, new_start >= xe_wopcm_size(tile_to_xe(ggtt->tile)));
>  	xe_tile_assert(ggtt->tile, new_start + ggtt->size <= GUC_GGTT_TOP);
> +#ifdef CONFIG_PCI_IOV
> +	xe_tile_assert(ggtt->tile, ggtt->shareable.size == 0);
> +#endif

Will this assertion unconditionally trip on VFs during driver initialization
or recovery?

Since xe_ggtt_init_early() initializes shareable.size to ggtt_size, it is
never 0.

>  
>  	/* pairs with READ_ONCE in xe_ggtt_node_addr() */
>  	WRITE_ONCE(ggtt->start, new_start);
[ ... ]
> @@ -832,10 +939,13 @@ static int __xe_ggtt_insert_bo_at(struct xe_ggtt *ggtt, struct xe_bo *bo,
>  	else
>  		end = 0;
>  
> +	end = min(end, ggtt->size);
> +
>  	xe_tile_assert(ggtt->tile, end >= start + xe_bo_size(bo));

[Severity: Medium]
Does clamping end to ggtt->size here convert a graceful allocation failure
into a kernel warning?

If an oversized buffer object is submitted for mapping, clamping end will
force this assertion to fail. Could this be triggered by userspace submitting
a large framebuffer, resulting in a kernel warning instead of gracefully
returning -ENOSPC from the subsequent drm_mm_insert_node_in_range() call?

>  	err = drm_mm_insert_node_in_range(&ggtt->mm, &bo->ggtt_node[tile_id]->base,
> -					  xe_bo_size(bo), alignment, 0, start, end, 0);
> +					  xe_bo_size(bo), alignment, 0, start, end,
> +					  ggtt_usable_insert_flags(ggtt));

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260817140342.415803-1-piotr.piorkowski@intel.com?part=1

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

* ✓ CI.KUnit: success for Separate GGTT pools for submissions and VFs provisioning (rev3)
  2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
                   ` (3 preceding siblings ...)
  2026-08-17 14:15 ` ✗ CI.checkpatch: warning for Separate GGTT pools for submissions and VFs provisioning (rev3) Patchwork
@ 2026-08-17 14:18 ` Patchwork
  2026-08-17 15:18 ` ✓ Xe.CI.BAT: " Patchwork
  2026-08-17 17:37 ` ✗ Xe.CI.FULL: failure " Patchwork
  6 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-08-17 14:18 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

== Series Details ==

Series: Separate GGTT pools for submissions and VFs provisioning (rev3)
URL   : https://patchwork.freedesktop.org/series/171735/
State : success

== Summary ==

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

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

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

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

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



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

* ✓ Xe.CI.BAT: success for Separate GGTT pools for submissions and VFs provisioning (rev3)
  2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
                   ` (4 preceding siblings ...)
  2026-08-17 14:18 ` ✓ CI.KUnit: success " Patchwork
@ 2026-08-17 15:18 ` Patchwork
  2026-08-17 17:37 ` ✗ Xe.CI.FULL: failure " Patchwork
  6 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-08-17 15:18 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

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

== Series Details ==

Series: Separate GGTT pools for submissions and VFs provisioning (rev3)
URL   : https://patchwork.freedesktop.org/series/171735/
State : success

== Summary ==

CI Bug Log - changes from xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983_BAT -> xe-pw-171735v3_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (13 -> 13)
------------------------------

  No changes in participating hosts

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

  Here are the changes found in xe-pw-171735v3_BAT that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - bat-nvls-1:         [DMESG-WARN][1] ([Intel XE#8762]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/bat-nvls-1/igt@core_hotunplug@unbind-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/bat-nvls-1/igt@core_hotunplug@unbind-rebind.html

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


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

  * Linux: xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983 -> xe-pw-171735v3

  IGT_9057: 8f7d5198bdb1c5af7c97b967a0bcbe77b653e8a0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983: b801f94c49ffdb0f65e37baf31d68570356d4983
  xe-pw-171735v3: 171735v3

== Logs ==

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

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

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

* ✗ Xe.CI.FULL: failure for Separate GGTT pools for submissions and VFs provisioning (rev3)
  2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
                   ` (5 preceding siblings ...)
  2026-08-17 15:18 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-08-17 17:37 ` Patchwork
  6 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2026-08-17 17:37 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

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

== Series Details ==

Series: Separate GGTT pools for submissions and VFs provisioning (rev3)
URL   : https://patchwork.freedesktop.org/series/171735/
State : failure

== Summary ==

CI Bug Log - changes from xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983_FULL -> xe-pw-171735v3_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-171735v3_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-171735v3_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

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

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in xe-pw-171735v3_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_legacy@forked-bo:
    - shard-bmg:          [PASS][1] -> [ABORT][2] +1 other test abort
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-bmg-10/igt@kms_cursor_legacy@forked-bo.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-3/igt@kms_cursor_legacy@forked-bo.html

  * igt@xe_wedged@wedged-at-any-timeout:
    - shard-bmg:          NOTRUN -> [DMESG-WARN][3]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@xe_wedged@wedged-at-any-timeout.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@hotreplug-lateclose:
    - shard-bmg:          [PASS][4] -> [ABORT][5] ([Intel XE#8007])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-bmg-5/igt@core_hotunplug@hotreplug-lateclose.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-1/igt@core_hotunplug@hotreplug-lateclose.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#2327])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#7059] / [Intel XE#7085])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-270:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#1124]) +4 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html

  * igt@kms_bw@linear-tiling-3-displays-target-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#367])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_bw@linear-tiling-3-displays-target-2560x1440p.html

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

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs@pipe-d-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#2652]) +8 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html

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

  * igt@kms_chamelium_color_pipeline@plane-lut1d:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#7358])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_chamelium_color_pipeline@plane-lut1d.html

  * igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][14] ([Intel XE#3304] / [Intel XE#7374]) +1 other test fail
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2.html

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

  * igt@kms_cursor_crc@cursor-onscreen-64x21:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2320]) +2 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_cursor_crc@cursor-onscreen-64x21.html

  * igt@kms_cursor_legacy@forked-bo@pipe-c:
    - shard-bmg:          [PASS][17] -> [INCOMPLETE][18] ([Intel XE#8151])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-bmg-10/igt@kms_cursor_legacy@forked-bo@pipe-c.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-3/igt@kms_cursor_legacy@forked-bo@pipe-c.html

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

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#1508])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dsc@dsc-with-output-formats-bigjoiner:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#8265])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_dsc@dsc-with-output-formats-bigjoiner.html

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

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [PASS][23] -> [FAIL][24] ([Intel XE#301]) +1 other test fail
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#7178] / [Intel XE#7351]) +2 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

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

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#4141]) +6 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#2311]) +32 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2313]) +29 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#7061] / [Intel XE#7356]) +5 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#7308])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#3374] / [Intel XE#3544])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#7283]) +4 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier.html

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

  * igt@kms_pm_backlight@bad-brightness:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@package-g7:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#6814] / [Intel XE#7428])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@kms_pm_rpm@package-g7.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#1489]) +6 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr@fbc-pr-cursor-plane-onoff:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#2234] / [Intel XE#2850]) +6 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@kms_psr@fbc-pr-cursor-plane-onoff.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_sharpness_filter@invalid-filter-with-nearest-neighbor:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#6503]) +1 other test skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-7/igt@kms_sharpness_filter@invalid-filter-with-nearest-neighbor.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#2509] / [Intel XE#7437])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@flipline:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#1499])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@kms_vrr@flipline.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          NOTRUN -> [SKIP][44] ([Intel XE#2168] / [Intel XE#7444])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@kms_vrr@lobf.html

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

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

  * igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#8364]) +16 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem.html

  * igt@xe_exec_reset@cm-multi-queue-cat-error:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#8369]) +2 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@xe_exec_reset@cm-multi-queue-cat-error.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#8378]) +4 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-rebind.html

  * igt@xe_gpgpu_fill@offset-4x4:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#7954])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@xe_gpgpu_fill@offset-4x4.html

  * igt@xe_media_fill@media-fill:
    - shard-bmg:          NOTRUN -> [SKIP][51] ([Intel XE#2459] / [Intel XE#2596] / [Intel XE#7321] / [Intel XE#7453])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@xe_media_fill@media-fill.html

  * igt@xe_multigpu_svm@mgpu-migration-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#6964]) +1 other test skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-6/igt@xe_multigpu_svm@mgpu-migration-prefetch.html

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

  * igt@xe_pxp@pxp-stale-queue-post-termination-irq:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#4733] / [Intel XE#7417]) +2 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@xe_pxp@pxp-stale-queue-post-termination-irq.html

  
#### Possible fixes ####

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank:
    - shard-bmg:          [INCOMPLETE][55] ([Intel XE#2597] / [Intel XE#8155]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-bmg-7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-1/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank@ac-dp2-hdmi-a3:
    - shard-bmg:          [INCOMPLETE][57] ([Intel XE#8155]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-bmg-7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank@ac-dp2-hdmi-a3.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-1/igt@kms_flip@2x-flip-vs-absolute-wf_vblank@ac-dp2-hdmi-a3.html

  * igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc:
    - shard-bmg:          [ABORT][59] ([Intel XE#8007]) -> [PASS][60] +2 other tests pass
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-bmg-2/igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-4/igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc.html

  * igt@xe_pmu@engine-activity-accuracy-50:
    - shard-bmg:          [FAIL][61] ([Intel XE#8555]) -> [PASS][62] +1 other test pass
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983/shard-bmg-5/igt@xe_pmu@engine-activity-accuracy-50.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-171735v3/shard-bmg-9/igt@xe_pmu@engine-activity-accuracy-50.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [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#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#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#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
  [Intel XE#2459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2459
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2596
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#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#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6814
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [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#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308
  [Intel XE#7321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7321
  [Intel XE#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [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#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
  [Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7428
  [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
  [Intel XE#7444]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7444
  [Intel XE#7453]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7453
  [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
  [Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
  [Intel XE#7954]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7954
  [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
  [Intel XE#8151]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8151
  [Intel XE#8155]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8155
  [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
  [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
  [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
  [Intel XE#8555]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8555
  [Intel XE#8680]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8680
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870


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

  * Linux: xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983 -> xe-pw-171735v3

  IGT_9057: 8f7d5198bdb1c5af7c97b967a0bcbe77b653e8a0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-5606-b801f94c49ffdb0f65e37baf31d68570356d4983: b801f94c49ffdb0f65e37baf31d68570356d4983
  xe-pw-171735v3: 171735v3

== Logs ==

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

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

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

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

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-17 14:03 [PATCH v3 0/3] Separate GGTT pools for submissions and VFs provisioning Piórkowski, Piotr
2026-08-17 14:03 ` [PATCH v3 1/3] drm/xe/ggtt: Split GGTT into usable and shareable pools Piórkowski, Piotr
2026-08-17 14:18   ` sashiko-bot
2026-08-17 14:03 ` [PATCH v3 2/3] drm/xe/ggtt: Initialize GGTT pools by SR-IOV mode Piórkowski, Piotr
2026-08-17 14:03 ` [PATCH v3 3/3] drm/xe/ggtt: Add KUnit tests for usable and shareable pools Piórkowski, Piotr
2026-08-17 14:15 ` ✗ CI.checkpatch: warning for Separate GGTT pools for submissions and VFs provisioning (rev3) Patchwork
2026-08-17 14:18 ` ✓ CI.KUnit: success " Patchwork
2026-08-17 15:18 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-17 17:37 ` ✗ Xe.CI.FULL: failure " Patchwork

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