intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles
@ 2025-07-18  8:17 Piórkowski, Piotr
  2025-07-18  8:17 ` [PATCH v1 1/4] drm/xe: Add initial support for separate kernel VRAM region on the tile Piórkowski, Piotr
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Piórkowski, Piotr @ 2025-07-18  8:17 UTC (permalink / raw)
  To: intel-xe; +Cc: Piotr Piórkowski

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

Until now, all VRAM BO allocations, whether from userspace or the kernel,
were placed in the same VRAM region assigned to a tile. However, in some
scenarios, it may be necessary to separate these allocations and place
kernel BOs in a dedicated VRAM region.

This series introduces initial support for such separation by allowing
an additional VRAM region for kernel BOs to be assigned to tiles. In this
implementation, such BOs are identified by the ttm_bo_type_kernel flag.

To maintain flexibility, this series introduces a new BO flag:
XE_BO_FLAG_FORCE_USER_VRAM. It forces BO allocations into the
general-purpose VRAM region, overriding the new default behavior.
This override currently applies to BOs associated with user contexts
and BOs used for VF memory.

To preserve backward compatibility on platforms that do not have a
dedicated kernel VRAM region, the kernel_vram pointer will fall back
to the general-purpose VRAM region.

Piotr Piórkowski (4):
  drm/xe: Add initial support for separate kernel VRAM region on the
    tile
  drm/xe: Introduce new BO flag XE_BO_FLAG_FORCE_USER_VRAM
  drm/xe: Force user context allocations in user VRAM
  drm/xe/pf: Force use user VRAM for LMEM provisioning

 drivers/gpu/drm/xe/xe_bo.c                 | 88 ++++++++++++++++------
 drivers/gpu/drm/xe/xe_bo.h                 |  7 +-
 drivers/gpu/drm/xe/xe_device_types.h       | 10 ++-
 drivers/gpu/drm/xe/xe_exec_queue.c         |  7 +-
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c |  3 +-
 drivers/gpu/drm/xe/xe_lrc.c                |  3 +
 drivers/gpu/drm/xe/xe_lrc.h                |  5 +-
 drivers/gpu/drm/xe/xe_pt.c                 |  2 +-
 drivers/gpu/drm/xe/xe_tile.c               |  8 ++
 drivers/gpu/drm/xe/xe_tile.h               |  5 ++
 drivers/gpu/drm/xe/xe_vram.c               |  6 +-
 11 files changed, 110 insertions(+), 34 deletions(-)

-- 
2.34.1


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

* [PATCH v1 1/4] drm/xe: Add initial support for separate kernel VRAM region on the tile
  2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
@ 2025-07-18  8:17 ` Piórkowski, Piotr
  2025-08-13 16:53   ` Matthew Auld
  2025-07-18  8:17 ` [PATCH v1 2/4] drm/xe: Introduce new BO flag XE_BO_FLAG_FORCE_USER_VRAM Piórkowski, Piotr
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Piórkowski, Piotr @ 2025-07-18  8:17 UTC (permalink / raw)
  To: intel-xe; +Cc: Piotr Piórkowski

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

So far, kernel and userspace allocations have shared the same VRAM region.
However, in some scenarios, it may be necessary to reserve a separate
VRAM area exclusively for kernel allocations.
Let's add preliminary support for such a configuration.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.c           | 87 ++++++++++++++++++++--------
 drivers/gpu/drm/xe/xe_bo.h           |  6 +-
 drivers/gpu/drm/xe/xe_device_types.h | 10 +++-
 drivers/gpu/drm/xe/xe_tile.c         |  8 +++
 drivers/gpu/drm/xe/xe_tile.h         |  5 ++
 drivers/gpu/drm/xe/xe_vram.c         |  6 +-
 6 files changed, 94 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 00ce067d5fd3..12e899726534 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -33,6 +33,7 @@
 #include "xe_pxp.h"
 #include "xe_res_cursor.h"
 #include "xe_shrinker.h"
+#include "xe_tile.h"
 #include "xe_trace_bo.h"
 #include "xe_ttm_stolen_mgr.h"
 #include "xe_vm.h"
@@ -208,6 +209,27 @@ static bool force_contiguous(u32 bo_flags)
 	       bo_flags & XE_BO_FLAG_PINNED;
 }
 
+static u8 vram_bo_flag_to_tile_id(struct xe_device *xe, u32 vram_bo_flag)
+{
+	xe_assert(xe, vram_bo_flag & XE_BO_FLAG_VRAM_MASK);
+	xe_assert(xe, (vram_bo_flag & (vram_bo_flag - 1)) == 0);
+
+	return __ffs(vram_bo_flag >> (__ffs(XE_BO_FLAG_VRAM0) - 1)) - 1;
+}
+
+static u32 bo_vram_flags_to_vram_placement(struct xe_device *xe, u32 bo_flags, u32 vram_flag,
+					   enum ttm_bo_type type)
+{
+	u8 tile_id = vram_bo_flag_to_tile_id(xe, vram_flag);
+
+	xe_assert(xe, tile_id < xe->info.tile_count);
+
+	if (type == ttm_bo_type_kernel)
+		return xe->tiles[tile_id].mem.kernel_vram->placement;
+	else
+		return xe->tiles[tile_id].mem.vram->placement;
+}
+
 static void add_vram(struct xe_device *xe, struct xe_bo *bo,
 		     struct ttm_place *places, u32 bo_flags, u32 mem_type, u32 *c)
 {
@@ -240,12 +262,17 @@ static void add_vram(struct xe_device *xe, struct xe_bo *bo,
 }
 
 static void try_add_vram(struct xe_device *xe, struct xe_bo *bo,
-			 u32 bo_flags, u32 *c)
+			 u32 bo_flags, enum ttm_bo_type type, u32 *c)
 {
-	if (bo_flags & XE_BO_FLAG_VRAM0)
-		add_vram(xe, bo, bo->placements, bo_flags, XE_PL_VRAM0, c);
-	if (bo_flags & XE_BO_FLAG_VRAM1)
-		add_vram(xe, bo, bo->placements, bo_flags, XE_PL_VRAM1, c);
+	u32 vram_flag;
+
+	for_each_bo_flag_vram(vram_flag) {
+		if (bo_flags & vram_flag) {
+			u32 pl = bo_vram_flags_to_vram_placement(xe, bo_flags, vram_flag, type);
+
+			add_vram(xe, bo, bo->placements, bo_flags, pl, c);
+		}
+	}
 }
 
 static void try_add_stolen(struct xe_device *xe, struct xe_bo *bo,
@@ -264,11 +291,11 @@ static void try_add_stolen(struct xe_device *xe, struct xe_bo *bo,
 }
 
 static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
-				       u32 bo_flags)
+				       u32 bo_flags, enum ttm_bo_type type)
 {
 	u32 c = 0;
 
-	try_add_vram(xe, bo, bo_flags, &c);
+	try_add_vram(xe, bo, bo_flags, type, &c);
 	try_add_system(xe, bo, bo_flags, &c);
 	try_add_stolen(xe, bo, bo_flags, &c);
 
@@ -284,10 +311,10 @@ static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
 }
 
 int xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
-			      u32 bo_flags)
+			      u32 bo_flags, enum ttm_bo_type type)
 {
 	xe_bo_assert_held(bo);
-	return __xe_bo_placement_for_flags(xe, bo, bo_flags);
+	return __xe_bo_placement_for_flags(xe, bo, bo_flags, type);
 }
 
 static void xe_evict_flags(struct ttm_buffer_object *tbo,
@@ -1895,7 +1922,7 @@ struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
 	}
 
 	if (!(flags & XE_BO_FLAG_FIXED_PLACEMENT)) {
-		err = __xe_bo_placement_for_flags(xe, bo, bo->flags);
+		err = __xe_bo_placement_for_flags(xe, bo, bo->flags, type);
 		if (WARN_ON(err)) {
 			xe_ttm_bo_destroy(&bo->ttm);
 			return ERR_PTR(err);
@@ -1953,34 +1980,33 @@ struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
 }
 
 static int __xe_bo_fixed_placement(struct xe_device *xe,
-				   struct xe_bo *bo,
+				   struct xe_bo *bo, enum ttm_bo_type type,
 				   u32 flags,
 				   u64 start, u64 end, u64 size)
 {
 	struct ttm_place *place = bo->placements;
+	u32 vram_flag, vram_stolen_flags;
 
 	if (flags & (XE_BO_FLAG_USER | XE_BO_FLAG_SYSTEM))
 		return -EINVAL;
 
+	vram_flag = flags & XE_BO_FLAG_VRAM_MASK;
+	vram_stolen_flags = (flags & (XE_BO_FLAG_STOLEN)) | vram_flag;
+
+	/* check if more than one VRAM/STOLEN flag is set */
+	if ((vram_stolen_flags & (vram_stolen_flags - 1)) != 0)
+		return -EINVAL;
+
 	place->flags = TTM_PL_FLAG_CONTIGUOUS;
 	place->fpfn = start >> PAGE_SHIFT;
 	place->lpfn = end >> PAGE_SHIFT;
 
-	switch (flags & (XE_BO_FLAG_STOLEN | XE_BO_FLAG_VRAM_MASK)) {
-	case XE_BO_FLAG_VRAM0:
-		place->mem_type = XE_PL_VRAM0;
-		break;
-	case XE_BO_FLAG_VRAM1:
-		place->mem_type = XE_PL_VRAM1;
-		break;
-	case XE_BO_FLAG_STOLEN:
+	if (flags & XE_BO_FLAG_STOLEN)
 		place->mem_type = XE_PL_STOLEN;
-		break;
-
-	default:
-		/* 0 or multiple of the above set */
+	else if (vram_flag)
+		place->mem_type = bo_vram_flags_to_vram_placement(xe, flags, vram_flag, type);
+	else
 		return -EINVAL;
-	}
 
 	bo->placement = (struct ttm_placement) {
 		.num_placement = 1,
@@ -2003,13 +2029,24 @@ __xe_bo_create_locked(struct xe_device *xe,
 	if (vm)
 		xe_vm_assert_held(vm);
 
+	/*
+	 * In the case of kernel allocations, if the tile has dedicated kernel
+	 * VRAM region, and tile->id does not match to tile->vram_id, it means
+	 * that we are using unified VRAM and we need fix VRAM BO flags.
+	 */
+	if (tile && type == ttm_bo_type_kernel && xe_tile_has_separate_kernel_vram(tile) &&
+	    (flags & XE_BO_FLAG_VRAM_MASK) && tile->mem.vram->id != tile->mem.kernel_vram->id) {
+		flags &= ~XE_BO_FLAG_VRAM_MASK;
+		flags |= (XE_BO_FLAG_VRAM0 << tile->mem.kernel_vram->id);
+	}
+
 	if (start || end != ~0ULL) {
 		bo = xe_bo_alloc();
 		if (IS_ERR(bo))
 			return bo;
 
 		flags |= XE_BO_FLAG_FIXED_PLACEMENT;
-		err = __xe_bo_fixed_placement(xe, bo, flags, start, end, size);
+		err = __xe_bo_fixed_placement(xe, bo, type, flags, start, end, size);
 		if (err) {
 			xe_bo_free(bo);
 			return ERR_PTR(err);
diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index 8cce413b5235..dde8e0274ff2 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -61,6 +61,10 @@
 #define XE_BO_FLAG_GGTTx(tile) \
 	(XE_BO_FLAG_GGTT0 << (tile)->id)
 
+#define for_each_bo_flag_vram(bit__) \
+	for (unsigned int __bit_tmp = BIT(0); __bit_tmp <= XE_BO_FLAG_VRAM_MASK; __bit_tmp <<= 1) \
+		for_each_if(((bit__) = __bit_tmp) & XE_BO_FLAG_VRAM_MASK)
+
 #define XE_PTE_SHIFT			12
 #define XE_PAGE_SIZE			(1 << XE_PTE_SHIFT)
 #define XE_PTE_MASK			(XE_PAGE_SIZE - 1)
@@ -127,7 +131,7 @@ struct xe_bo *xe_managed_bo_create_from_data(struct xe_device *xe, struct xe_til
 int xe_managed_bo_reinit_in_vram(struct xe_device *xe, struct xe_tile *tile, struct xe_bo **src);
 
 int xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
-			      u32 bo_flags);
+			      u32 bo_flags, enum ttm_bo_type type);
 
 static inline struct xe_bo *ttm_to_xe_bo(const struct ttm_buffer_object *bo)
 {
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index eb6105523f23..3a417305c1b8 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -155,7 +155,15 @@ struct xe_tile {
 	/** @mem: memory management info for tile */
 	struct {
 		/**
-		 * @mem.vram: VRAM info for tile.
+		 * @mem.kernel_vram: kernel-dedicated VRAM info for tile.
+		 *
+		 * Although VRAM is associated with a specific tile, it can
+		 * still be accessed by all tiles' GTs.
+		 */
+		struct xe_vram_region *kernel_vram;
+
+		/**
+		 * @mem.vram: general purpose VRAM info for tile.
 		 *
 		 * Although VRAM is associated with a specific tile, it can
 		 * still be accessed by all tiles' GTs.
diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
index 0be0a5c57ef4..a14f549effdd 100644
--- a/drivers/gpu/drm/xe/xe_tile.c
+++ b/drivers/gpu/drm/xe/xe_tile.c
@@ -124,6 +124,14 @@ int xe_tile_alloc_vram(struct xe_tile *tile)
 		return PTR_ERR(vram);
 	tile->mem.vram = vram;
 
+	/*
+	 * If the kernel_vram is not already allocated,
+	 * it means that tile has common VRAM region for
+	 * kernel and user space.
+	 */
+	if (!tile->mem.kernel_vram)
+		tile->mem.kernel_vram = tile->mem.vram;
+
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/xe/xe_tile.h b/drivers/gpu/drm/xe/xe_tile.h
index dceb6297aa01..5d834378b354 100644
--- a/drivers/gpu/drm/xe/xe_tile.h
+++ b/drivers/gpu/drm/xe/xe_tile.h
@@ -23,4 +23,9 @@ static inline bool xe_tile_is_root(struct xe_tile *tile)
 	return tile->id == 0;
 }
 
+static inline bool xe_tile_has_separate_kernel_vram(const struct xe_tile *tile)
+{
+	return tile->mem.vram != tile->mem.kernel_vram;
+}
+
 #endif
diff --git a/drivers/gpu/drm/xe/xe_vram.c b/drivers/gpu/drm/xe/xe_vram.c
index b44ebf50fedb..7adfccf68e4c 100644
--- a/drivers/gpu/drm/xe/xe_vram.c
+++ b/drivers/gpu/drm/xe/xe_vram.c
@@ -13,6 +13,7 @@
 #include "regs/xe_gt_regs.h"
 #include "regs/xe_regs.h"
 #include "xe_assert.h"
+#include "xe_bo.h"
 #include "xe_device.h"
 #include "xe_force_wake.h"
 #include "xe_gt_mcr.h"
@@ -283,8 +284,11 @@ static void vram_fini(void *arg)
 
 	xe->mem.vram->mapping = NULL;
 
-	for_each_tile(tile, xe, id)
+	for_each_tile(tile, xe, id) {
 		tile->mem.vram->mapping = NULL;
+		if (tile->mem.kernel_vram)
+			tile->mem.kernel_vram->mapping = NULL;
+	}
 }
 
 struct xe_vram_region *xe_vram_region_alloc(struct xe_device *xe, u8 id, u32 placement)
-- 
2.34.1


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

* [PATCH v1 2/4] drm/xe: Introduce new BO flag XE_BO_FLAG_FORCE_USER_VRAM
  2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
  2025-07-18  8:17 ` [PATCH v1 1/4] drm/xe: Add initial support for separate kernel VRAM region on the tile Piórkowski, Piotr
@ 2025-07-18  8:17 ` Piórkowski, Piotr
  2025-08-13 16:38   ` Matthew Auld
  2025-07-18  8:17 ` [PATCH v1 3/4] drm/xe: Force user context allocations in user VRAM Piórkowski, Piotr
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Piórkowski, Piotr @ 2025-07-18  8:17 UTC (permalink / raw)
  To: intel-xe; +Cc: Piotr Piórkowski

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

When using a separate VRAM region for kernel allocations,
some kernel structures, such as context userspace data,
should not reside in the VRAM region dedicated to the kernel.
To support this, we need a mechanism to explicitly force such
allocations.
Let's add a new BO flag that forces BO allocation in
the general-purpose VRAM region accessible to userspace.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
 drivers/gpu/drm/xe/xe_bo.c | 5 +++--
 drivers/gpu/drm/xe/xe_bo.h | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 12e899726534..997ebb6fdfaa 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -224,7 +224,7 @@ static u32 bo_vram_flags_to_vram_placement(struct xe_device *xe, u32 bo_flags, u
 
 	xe_assert(xe, tile_id < xe->info.tile_count);
 
-	if (type == ttm_bo_type_kernel)
+	if (type == ttm_bo_type_kernel && !(bo_flags & XE_BO_FLAG_FORCE_USER_VRAM))
 		return xe->tiles[tile_id].mem.kernel_vram->placement;
 	else
 		return xe->tiles[tile_id].mem.vram->placement;
@@ -2035,7 +2035,8 @@ __xe_bo_create_locked(struct xe_device *xe,
 	 * that we are using unified VRAM and we need fix VRAM BO flags.
 	 */
 	if (tile && type == ttm_bo_type_kernel && xe_tile_has_separate_kernel_vram(tile) &&
-	    (flags & XE_BO_FLAG_VRAM_MASK) && tile->mem.vram->id != tile->mem.kernel_vram->id) {
+	    (flags & XE_BO_FLAG_VRAM_MASK) && tile->mem.vram->id != tile->mem.kernel_vram->id &&
+	    !(flags & XE_BO_FLAG_FORCE_USER_VRAM)) {
 		flags &= ~XE_BO_FLAG_VRAM_MASK;
 		flags |= (XE_BO_FLAG_VRAM0 << tile->mem.kernel_vram->id);
 	}
diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index dde8e0274ff2..46c36f656ad7 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -48,6 +48,7 @@
 #define XE_BO_FLAG_GGTT2		BIT(22)
 #define XE_BO_FLAG_GGTT3		BIT(23)
 #define XE_BO_FLAG_CPU_ADDR_MIRROR	BIT(24)
+#define XE_BO_FLAG_FORCE_USER_VRAM	BIT(25)
 
 /* this one is trigger internally only */
 #define XE_BO_FLAG_INTERNAL_TEST	BIT(30)
-- 
2.34.1


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

* [PATCH v1 3/4] drm/xe: Force user context allocations in user VRAM
  2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
  2025-07-18  8:17 ` [PATCH v1 1/4] drm/xe: Add initial support for separate kernel VRAM region on the tile Piórkowski, Piotr
  2025-07-18  8:17 ` [PATCH v1 2/4] drm/xe: Introduce new BO flag XE_BO_FLAG_FORCE_USER_VRAM Piórkowski, Piotr
@ 2025-07-18  8:17 ` Piórkowski, Piotr
  2025-08-13 16:42   ` Matthew Auld
  2025-07-18  8:17 ` [PATCH v1 4/4] drm/xe/pf: Force use user VRAM for LMEM provisioning Piórkowski, Piotr
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Piórkowski, Piotr @ 2025-07-18  8:17 UTC (permalink / raw)
  To: intel-xe; +Cc: Piotr Piórkowski

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

In general, kernel structures should be allocated in the kernel-dedicated
VRAM region. However, userspace context data - while used by the kernel -
does not need to reside there.
Let's force the allocation of such data in the general-purpose VRAM region
accessible to userspace.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c | 7 +++++--
 drivers/gpu/drm/xe/xe_lrc.c        | 3 +++
 drivers/gpu/drm/xe/xe_lrc.h        | 5 +++--
 drivers/gpu/drm/xe/xe_pt.c         | 2 +-
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index 8991b4aed440..abd29191186e 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -112,7 +112,7 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
 	return q;
 }
 
-static int __xe_exec_queue_init(struct xe_exec_queue *q)
+static int __xe_exec_queue_init(struct xe_exec_queue *q, u32 exec_queue_flags)
 {
 	int i, err;
 	u32 flags = 0;
@@ -131,6 +131,9 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
 			flags |= XE_LRC_CREATE_RUNALONE;
 	}
 
+	if (!(exec_queue_flags & EXEC_QUEUE_FLAG_KERNEL))
+		flags |= XE_LRC_CREATE_USER_CTX;
+
 	for (i = 0; i < q->width; ++i) {
 		q->lrc[i] = xe_lrc_create(q->hwe, q->vm, SZ_16K, q->msix_vec, flags);
 		if (IS_ERR(q->lrc[i])) {
@@ -167,7 +170,7 @@ struct xe_exec_queue *xe_exec_queue_create(struct xe_device *xe, struct xe_vm *v
 	if (IS_ERR(q))
 		return q;
 
-	err = __xe_exec_queue_init(q);
+	err = __xe_exec_queue_init(q, flags);
 	if (err)
 		goto err_post_alloc;
 
diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
index 6d38411bdeba..ed53f8e2448b 100644
--- a/drivers/gpu/drm/xe/xe_lrc.c
+++ b/drivers/gpu/drm/xe/xe_lrc.c
@@ -1203,6 +1203,9 @@ static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
 	if (vm && vm->xef) /* userspace */
 		bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE;
 
+	if (init_flags & XE_LRC_CREATE_USER_CTX)
+		bo_flags |= XE_BO_FLAG_FORCE_USER_VRAM;
+
 	lrc->bo = xe_bo_create_pin_map(xe, tile, NULL, bo_size,
 				       ttm_bo_type_kernel,
 				       bo_flags);
diff --git a/drivers/gpu/drm/xe/xe_lrc.h b/drivers/gpu/drm/xe/xe_lrc.h
index b6c8053c581b..57f661aa9b1c 100644
--- a/drivers/gpu/drm/xe/xe_lrc.h
+++ b/drivers/gpu/drm/xe/xe_lrc.h
@@ -42,8 +42,9 @@ struct xe_lrc_snapshot {
 #define LRC_PPHWSP_FLUSH_INVAL_SCRATCH_ADDR (0x34 * 4)
 #define LRC_PPHWSP_PXP_INVAL_SCRATCH_ADDR (0x40 * 4)
 
-#define XE_LRC_CREATE_RUNALONE 0x1
-#define XE_LRC_CREATE_PXP 0x2
+#define XE_LRC_CREATE_RUNALONE		BIT(0)
+#define XE_LRC_CREATE_PXP		BIT(1)
+#define XE_LRC_CREATE_USER_CTX		BIT(2)
 struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
 			     u32 ring_size, u16 msix_vec, u32 flags);
 void xe_lrc_destroy(struct kref *ref);
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index c8e63bd23300..a6c5f810c815 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -120,7 +120,7 @@ struct xe_pt *xe_pt_create(struct xe_vm *vm, struct xe_tile *tile,
 		   XE_BO_FLAG_IGNORE_MIN_PAGE_SIZE |
 		   XE_BO_FLAG_NO_RESV_EVICT | XE_BO_FLAG_PAGETABLE;
 	if (vm->xef) /* userspace */
-		bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE;
+		bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE | XE_BO_FLAG_FORCE_USER_VRAM;
 
 	pt->level = level;
 	bo = xe_bo_create_pin_map(vm->xe, tile, vm, SZ_4K,
-- 
2.34.1


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

* [PATCH v1 4/4] drm/xe/pf: Force use user VRAM for LMEM provisioning
  2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
                   ` (2 preceding siblings ...)
  2025-07-18  8:17 ` [PATCH v1 3/4] drm/xe: Force user context allocations in user VRAM Piórkowski, Piotr
@ 2025-07-18  8:17 ` Piórkowski, Piotr
  2025-07-18  8:24 ` ✓ CI.KUnit: success for Preliminary support for separate VRAM region for kernel allocations on tiles Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Piórkowski, Piotr @ 2025-07-18  8:17 UTC (permalink / raw)
  To: intel-xe; +Cc: Piotr Piórkowski

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

The LMEM assigned to VFs should be allocated from the general-purpose
VRAM pool, not from the kernel-reserved region.
Let's force the use of general-purpose VRAM for BOs intended for VFs.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
 drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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 f00cce81f1ff..38be18777658 100644
--- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
+++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c
@@ -1481,7 +1481,8 @@ static int pf_provision_vf_lmem(struct xe_gt *gt, unsigned int vfid, u64 size)
 				 XE_BO_FLAG_VRAM_IF_DGFX(tile) |
 				 XE_BO_FLAG_NEEDS_2M |
 				 XE_BO_FLAG_PINNED |
-				 XE_BO_FLAG_PINNED_LATE_RESTORE);
+				 XE_BO_FLAG_PINNED_LATE_RESTORE |
+				 XE_BO_FLAG_FORCE_USER_VRAM);
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
 
-- 
2.34.1


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

* ✓ CI.KUnit: success for Preliminary support for separate VRAM region for kernel allocations on tiles
  2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
                   ` (3 preceding siblings ...)
  2025-07-18  8:17 ` [PATCH v1 4/4] drm/xe/pf: Force use user VRAM for LMEM provisioning Piórkowski, Piotr
@ 2025-07-18  8:24 ` Patchwork
  2025-07-18  9:00 ` ✓ Xe.CI.BAT: " Patchwork
  2025-07-21  8:15 ` ✗ Xe.CI.Full: failure " Patchwork
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2025-07-18  8:24 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

== Series Details ==

Series: Preliminary support for separate VRAM region for kernel allocations on tiles
URL   : https://patchwork.freedesktop.org/series/151796/
State : success

== Summary ==

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

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

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

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



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

* ✓ Xe.CI.BAT: success for Preliminary support for separate VRAM region for kernel allocations on tiles
  2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
                   ` (4 preceding siblings ...)
  2025-07-18  8:24 ` ✓ CI.KUnit: success for Preliminary support for separate VRAM region for kernel allocations on tiles Patchwork
@ 2025-07-18  9:00 ` Patchwork
  2025-07-21  8:15 ` ✗ Xe.CI.Full: failure " Patchwork
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2025-07-18  9:00 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

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

== Series Details ==

Series: Preliminary support for separate VRAM region for kernel allocations on tiles
URL   : https://patchwork.freedesktop.org/series/151796/
State : success

== Summary ==

CI Bug Log - changes from xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4_BAT -> xe-pw-151796v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  Missing    (1): bat-adlp-vm 

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

  Here are the changes found in xe-pw-151796v1_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - bat-adlp-7:         [PASS][1] -> [DMESG-WARN][2] ([Intel XE#4543]) +1 other test dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank.html

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


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

  * Linux: xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4 -> xe-pw-151796v1

  IGT_8466: 8d119c2b43d4d3660bef3bd68864be94a60bc0c3 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4: 9bd392e02e4551dbbf1bc109640e30e0d674acd4
  xe-pw-151796v1: 151796v1

== Logs ==

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

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

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

* ✗ Xe.CI.Full: failure for Preliminary support for separate VRAM region for kernel allocations on tiles
  2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
                   ` (5 preceding siblings ...)
  2025-07-18  9:00 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-07-21  8:15 ` Patchwork
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2025-07-21  8:15 UTC (permalink / raw)
  To: Piórkowski, Piotr; +Cc: intel-xe

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

== Series Details ==

Series: Preliminary support for separate VRAM region for kernel allocations on tiles
URL   : https://patchwork.freedesktop.org/series/151796/
State : failure

== Summary ==

CI Bug Log - changes from xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4_FULL -> xe-pw-151796v1_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-151796v1_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-151796v1_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 (4 -> 4)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-151796v1_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@core_hotunplug@hotreplug-lateclose:
    - shard-dg2-set2:     [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-432/igt@core_hotunplug@hotreplug-lateclose.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-464/igt@core_hotunplug@hotreplug-lateclose.html

  * igt@xe_module_load@reload:
    - shard-dg2-set2:     [PASS][3] -> [ABORT][4]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-432/igt@xe_module_load@reload.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-464/igt@xe_module_load@reload.html

  * igt@xe_pm@s3-d3hot-basic-exec:
    - shard-bmg:          [PASS][5] -> [ABORT][6]
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-6/igt@xe_pm@s3-d3hot-basic-exec.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@xe_pm@s3-d3hot-basic-exec.html

  
#### Warnings ####

  * igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_video_decode0:
    - shard-adlp:         [FAIL][7] ([Intel XE#5584]) -> [FAIL][8] +1 other test fail
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-1/igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_video_decode0.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-1/igt@xe_pmu@engine-activity-single-load@engine-drm_xe_engine_class_video_decode0.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-dg2-set2:     NOTRUN -> [SKIP][9] ([Intel XE#455]) +3 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-433/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2327]) +1 other test skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

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

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#1124]) +2 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][13] ([Intel XE#1124]) +2 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-434/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
    - shard-bmg:          [PASS][14] -> [SKIP][15] ([Intel XE#2314] / [Intel XE#2894])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-2/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html

  * igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2314] / [Intel XE#2894])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-1-displays-2160x1440p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][17] ([Intel XE#367])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-433/igt@kms_bw@linear-tiling-1-displays-2160x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#367]) +1 other test skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html

  * igt@kms_ccs@bad-pixel-format-y-tiled-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2887]) +6 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_ccs@bad-pixel-format-y-tiled-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][20] ([Intel XE#787]) +174 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-433/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][21] ([Intel XE#455] / [Intel XE#787]) +30 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-436/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-dp-4.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs@pipe-b-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs@pipe-b-dp-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
    - shard-dg2-set2:     [PASS][23] -> [INCOMPLETE][24] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-6:
    - shard-dg2-set2:     [PASS][25] -> [INCOMPLETE][26] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-6.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-6.html

  * igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][27] ([Intel XE#4416]) +3 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-436/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html

  * igt@kms_chamelium_color@ctm-green-to-red:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#2325])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_chamelium_color@ctm-green-to-red.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][29] ([Intel XE#306]) +1 other test skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_chamelium_color@ctm-green-to-red.html

  * igt@kms_chamelium_hpd@dp-hpd-after-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2252]) +6 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][31] ([Intel XE#373]) +2 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-dg2-set2:     NOTRUN -> [SKIP][32] ([Intel XE#307])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-433/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#2390])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@lic-type-0@pipe-a-dp-4:
    - shard-dg2-set2:     NOTRUN -> [FAIL][34] ([Intel XE#3304])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-463/igt@kms_content_protection@lic-type-0@pipe-a-dp-4.html

  * igt@kms_content_protection@type1:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#2341])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_content_protection@type1.html

  * igt@kms_cursor_crc@cursor-rapid-movement-max-size:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#2320]) +1 other test skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
    - shard-bmg:          [PASS][37] -> [SKIP][38] ([Intel XE#2291]) +2 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-bmg:          [PASS][39] -> [SKIP][40] ([Intel XE#1340])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-4/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][41] ([Intel XE#4494] / [i915#3804])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-436/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#2244]) +1 other test skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#4422])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][44] ([Intel XE#4422])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html

  * igt@kms_fbcon_fbt@fbc:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#5425])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_fbcon_fbt@fbc.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible:
    - shard-bmg:          [PASS][46] -> [SKIP][47] ([Intel XE#2316])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-7/igt@kms_flip@2x-flip-vs-suspend-interruptible.html
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_flip@2x-flip-vs-suspend-interruptible.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#2316])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-rmfb-interruptible@d-hdmi-a1:
    - shard-adlp:         [PASS][49] -> [DMESG-WARN][50] ([Intel XE#4543])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-8/igt@kms_flip@flip-vs-rmfb-interruptible@d-hdmi-a1.html
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-3/igt@kms_flip@flip-vs-rmfb-interruptible@d-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend@c-dp4:
    - shard-dg2-set2:     [PASS][51] -> [INCOMPLETE][52] ([Intel XE#2049] / [Intel XE#2597]) +2 other tests incomplete
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-435/igt@kms_flip@flip-vs-suspend@c-dp4.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-466/igt@kms_flip@flip-vs-suspend@c-dp4.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#2293] / [Intel XE#2380])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#2293])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][55] ([Intel XE#651]) +9 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#2311]) +13 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][57] ([Intel XE#5390]) +5 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#2352])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][59] ([Intel XE#2312]) +3 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#2313]) +12 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][61] ([Intel XE#653]) +9 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-bmg:          NOTRUN -> [SKIP][62] ([Intel XE#2350])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#2501])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_plane_cursor@primary@pipe-a-hdmi-a-2-size-256:
    - shard-dg2-set2:     NOTRUN -> [FAIL][64] ([Intel XE#616]) +2 other tests fail
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-432/igt@kms_plane_cursor@primary@pipe-a-hdmi-a-2-size-256.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#2392])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#2499])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@universal-planes-dpms:
    - shard-adlp:         [PASS][67] -> [DMESG-WARN][68] ([Intel XE#2953] / [Intel XE#4173])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-6/igt@kms_pm_rpm@universal-planes-dpms.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-6/igt@kms_pm_rpm@universal-planes-dpms.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
    - shard-dg2-set2:     NOTRUN -> [SKIP][69] ([Intel XE#1489])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html

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

  * igt@kms_psr@fbc-pr-cursor-blt:
    - shard-bmg:          NOTRUN -> [SKIP][71] ([Intel XE#2234] / [Intel XE#2850]) +8 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@kms_psr@fbc-pr-cursor-blt.html

  * igt@kms_psr@pr-dpms:
    - shard-dg2-set2:     NOTRUN -> [SKIP][72] ([Intel XE#2850] / [Intel XE#929]) +6 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_psr@pr-dpms.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_rotation_crc@primary-rotation-270.html

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

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-dg2-set2:     NOTRUN -> [SKIP][75] ([Intel XE#3414])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-bmg:          NOTRUN -> [SKIP][76] ([Intel XE#1435])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_setmode@invalid-clone-single-crtc:
    - shard-bmg:          [PASS][77] -> [SKIP][78] ([Intel XE#1435])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-4/igt@kms_setmode@invalid-clone-single-crtc.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          NOTRUN -> [SKIP][79] ([Intel XE#2426])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-bmg:          NOTRUN -> [SKIP][80] ([Intel XE#1091] / [Intel XE#2849])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@sriov_basic@enable-vfs-autoprobe-off.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][81] ([Intel XE#1091] / [Intel XE#2849])
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@xe_copy_basic@mem-copy-linear-0x3fff:
    - shard-dg2-set2:     NOTRUN -> [SKIP][82] ([Intel XE#1123])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0x3fff.html

  * igt@xe_eudebug@basic-vm-access-userptr-faultable:
    - shard-dg2-set2:     NOTRUN -> [SKIP][83] ([Intel XE#4837]) +4 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_eudebug@basic-vm-access-userptr-faultable.html

  * igt@xe_eudebug_online@interrupt-other:
    - shard-bmg:          NOTRUN -> [SKIP][84] ([Intel XE#4837]) +5 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@xe_eudebug_online@interrupt-other.html

  * igt@xe_eudebug_sriov@deny-eudebug:
    - shard-dg2-set2:     NOTRUN -> [SKIP][85] ([Intel XE#4518])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-434/igt@xe_eudebug_sriov@deny-eudebug.html
    - shard-bmg:          NOTRUN -> [SKIP][86] ([Intel XE#4518])
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@xe_eudebug_sriov@deny-eudebug.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind:
    - shard-dg2-set2:     [PASS][87] -> [SKIP][88] ([Intel XE#1392]) +7 other tests skip
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-435/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-432/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind.html

  * igt@xe_exec_basic@multigpu-once-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][89] ([Intel XE#2322]) +1 other test skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@xe_exec_basic@multigpu-once-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-invalidate:
    - shard-dg2-set2:     NOTRUN -> [SKIP][90] ([Intel XE#288]) +7 other tests skip
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_exec_fault_mode@many-execqueues-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map:
    - shard-dg2-set2:     NOTRUN -> [SKIP][91] ([Intel XE#4915]) +78 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset:
    - shard-lnl:          [PASS][92] -> [FAIL][93] ([Intel XE#5018])
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-lnl-6/igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-lnl-8/igt@xe_exec_system_allocator@threads-shared-vm-many-large-new-bo-map-nomemset.html

  * igt@xe_exec_system_allocator@threads-shared-vm-many-mmap-new-huge:
    - shard-bmg:          NOTRUN -> [SKIP][94] ([Intel XE#4943]) +14 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@xe_exec_system_allocator@threads-shared-vm-many-mmap-new-huge.html

  * igt@xe_oa@map-oa-buffer:
    - shard-dg2-set2:     NOTRUN -> [SKIP][95] ([Intel XE#2541] / [Intel XE#3573])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_oa@map-oa-buffer.html

  * igt@xe_oa@syncs-syncobj-wait-cfg:
    - shard-dg2-set2:     NOTRUN -> [SKIP][96] ([Intel XE#2541] / [Intel XE#3573] / [Intel XE#4501])
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_oa@syncs-syncobj-wait-cfg.html

  * igt@xe_peer2peer@write:
    - shard-bmg:          NOTRUN -> [SKIP][97] ([Intel XE#2427])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@xe_peer2peer@write.html

  * igt@xe_pm@d3cold-multiple-execs:
    - shard-bmg:          NOTRUN -> [SKIP][98] ([Intel XE#2284])
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@xe_pm@d3cold-multiple-execs.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][99] ([Intel XE#2284] / [Intel XE#366])
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_pm@d3cold-multiple-execs.html

  * igt@xe_pm@s3-d3hot-basic-exec:
    - shard-adlp:         [PASS][100] -> [DMESG-WARN][101] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#569])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-6/igt@xe_pm@s3-d3hot-basic-exec.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-6/igt@xe_pm@s3-d3hot-basic-exec.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq:
    - shard-bmg:          NOTRUN -> [SKIP][102] ([Intel XE#4733]) +1 other test skip
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][103] ([Intel XE#4733]) +1 other test skip
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html

  * igt@xe_query@multigpu-query-hwconfig:
    - shard-bmg:          NOTRUN -> [SKIP][104] ([Intel XE#944]) +2 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@xe_query@multigpu-query-hwconfig.html

  * igt@xe_query@multigpu-query-mem-usage:
    - shard-dg2-set2:     NOTRUN -> [SKIP][105] ([Intel XE#944]) +1 other test skip
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-433/igt@xe_query@multigpu-query-mem-usage.html

  * igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs:
    - shard-bmg:          NOTRUN -> [SKIP][106] ([Intel XE#4130])
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs.html

  * igt@xe_sriov_flr@flr-vf1-clear:
    - shard-dg2-set2:     NOTRUN -> [SKIP][107] ([Intel XE#3342])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@xe_sriov_flr@flr-vf1-clear.html
    - shard-bmg:          NOTRUN -> [SKIP][108] ([Intel XE#3342])
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-5/igt@xe_sriov_flr@flr-vf1-clear.html

  
#### Possible fixes ####

  * igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1:
    - shard-lnl:          [FAIL][109] ([Intel XE#911]) -> [PASS][110] +1 other test pass
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-lnl-2/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic@pipe-c-edp-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-dg2-set2:     [INCOMPLETE][111] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522]) -> [PASS][112] +1 other test pass
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
    - shard-adlp:         [DMESG-WARN][113] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][114] +3 other tests pass
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-3/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-8/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-dg2-set2:     [INCOMPLETE][115] -> [PASS][116] +1 other test pass
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-464/igt@kms_fbcon_fbt@fbc-suspend.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-435/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@basic-flip-vs-modeset@b-hdmi-a1:
    - shard-adlp:         [DMESG-WARN][117] ([Intel XE#4543]) -> [PASS][118] +2 other tests pass
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-3/igt@kms_flip@basic-flip-vs-modeset@b-hdmi-a1.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-9/igt@kms_flip@basic-flip-vs-modeset@b-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-bmg:          [INCOMPLETE][119] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][120] +1 other test pass
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-5/igt@kms_flip@flip-vs-suspend-interruptible.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-bmg:          [SKIP][121] ([Intel XE#1503]) -> [PASS][122]
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-6/igt@kms_hdr@static-toggle-dpms.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_hdr@static-toggle-dpms.html

  * igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap:
    - shard-dg2-set2:     [SKIP][123] ([Intel XE#1392]) -> [PASS][124] +3 other tests pass
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-436/igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap.html

  * igt@xe_pmu@gt-frequency:
    - shard-dg2-set2:     [FAIL][125] ([Intel XE#5166]) -> [PASS][126] +1 other test pass
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-432/igt@xe_pmu@gt-frequency.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-464/igt@xe_pmu@gt-frequency.html

  
#### Warnings ####

  * igt@kms_content_protection@atomic:
    - shard-bmg:          [FAIL][127] ([Intel XE#1178]) -> [SKIP][128] ([Intel XE#2341])
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-7/igt@kms_content_protection@atomic.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_content_protection@atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-bmg:          [DMESG-WARN][129] ([Intel XE#5354]) -> [SKIP][130] ([Intel XE#2291])
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_flip@flip-vs-rmfb-interruptible:
    - shard-adlp:         [DMESG-WARN][131] ([Intel XE#4543] / [Intel XE#5208]) -> [DMESG-WARN][132] ([Intel XE#5208])
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-8/igt@kms_flip@flip-vs-rmfb-interruptible.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-3/igt@kms_flip@flip-vs-rmfb-interruptible.html

  * igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw:
    - shard-bmg:          [SKIP][133] ([Intel XE#2312]) -> [SKIP][134] ([Intel XE#2311]) +3 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][135] ([Intel XE#2311]) -> [SKIP][136] ([Intel XE#2312]) +12 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw:
    - shard-bmg:          [SKIP][137] ([Intel XE#2312]) -> [SKIP][138] ([Intel XE#5390]) +1 other test skip
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][139] ([Intel XE#5390]) -> [SKIP][140] ([Intel XE#2312]) +6 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff:
    - shard-bmg:          [SKIP][141] ([Intel XE#2313]) -> [SKIP][142] ([Intel XE#2312]) +8 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move:
    - shard-bmg:          [SKIP][143] ([Intel XE#2312]) -> [SKIP][144] ([Intel XE#2313]) +1 other test skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-adlp:         [SKIP][145] ([Intel XE#734]) -> [FAIL][146] ([Intel XE#3325])
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-adlp-9/igt@kms_pm_dc@dc9-dpms.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-adlp-8/igt@kms_pm_dc@dc9-dpms.html

  * igt@xe_peer2peer@read:
    - shard-dg2-set2:     [FAIL][147] ([Intel XE#1173]) -> [SKIP][148] ([Intel XE#1061])
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4/shard-dg2-435/igt@xe_peer2peer@read.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-151796v1/shard-dg2-432/igt@xe_peer2peer@read.html

  
  [Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
  [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
  [Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499
  [Intel XE#2501]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2501
  [Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3325
  [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
  [Intel XE#4416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4416
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [Intel XE#4494]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4494
  [Intel XE#4501]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4501
  [Intel XE#4518]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4518
  [Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
  [Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
  [Intel XE#5166]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5166
  [Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
  [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
  [Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
  [Intel XE#5425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5425
  [Intel XE#5584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5584
  [Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#734]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/734
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/911
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804


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

  * Linux: xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4 -> xe-pw-151796v1

  IGT_8466: 8d119c2b43d4d3660bef3bd68864be94a60bc0c3 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-3437-9bd392e02e4551dbbf1bc109640e30e0d674acd4: 9bd392e02e4551dbbf1bc109640e30e0d674acd4
  xe-pw-151796v1: 151796v1

== Logs ==

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

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

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

* Re: [PATCH v1 2/4] drm/xe: Introduce new BO flag XE_BO_FLAG_FORCE_USER_VRAM
  2025-07-18  8:17 ` [PATCH v1 2/4] drm/xe: Introduce new BO flag XE_BO_FLAG_FORCE_USER_VRAM Piórkowski, Piotr
@ 2025-08-13 16:38   ` Matthew Auld
  0 siblings, 0 replies; 11+ messages in thread
From: Matthew Auld @ 2025-08-13 16:38 UTC (permalink / raw)
  To: Piórkowski, Piotr, intel-xe

On 18/07/2025 09:17, Piórkowski, Piotr wrote:
> From: Piotr Piórkowski <piotr.piorkowski@intel.com>
> 
> When using a separate VRAM region for kernel allocations,
> some kernel structures, such as context userspace data,
> should not reside in the VRAM region dedicated to the kernel.
> To support this, we need a mechanism to explicitly force such
> allocations.

Maybe add a bit more commentary here for the why? IIRC we don't want 
anything long term allocatable via an ioctl filling up the kernel VRAM 
region, since it's not really evictable plus there might not be a 
fallback if we run out.

> Let's add a new BO flag that forces BO allocation in
> the general-purpose VRAM region accessible to userspace.
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> ---
>   drivers/gpu/drm/xe/xe_bo.c | 5 +++--
>   drivers/gpu/drm/xe/xe_bo.h | 1 +
>   2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 12e899726534..997ebb6fdfaa 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -224,7 +224,7 @@ static u32 bo_vram_flags_to_vram_placement(struct xe_device *xe, u32 bo_flags, u
>   
>   	xe_assert(xe, tile_id < xe->info.tile_count);
>   
> -	if (type == ttm_bo_type_kernel)
> +	if (type == ttm_bo_type_kernel && !(bo_flags & XE_BO_FLAG_FORCE_USER_VRAM))
>   		return xe->tiles[tile_id].mem.kernel_vram->placement;
>   	else
>   		return xe->tiles[tile_id].mem.vram->placement;
> @@ -2035,7 +2035,8 @@ __xe_bo_create_locked(struct xe_device *xe,
>   	 * that we are using unified VRAM and we need fix VRAM BO flags.
>   	 */
>   	if (tile && type == ttm_bo_type_kernel && xe_tile_has_separate_kernel_vram(tile) &&
> -	    (flags & XE_BO_FLAG_VRAM_MASK) && tile->mem.vram->id != tile->mem.kernel_vram->id) {
> +	    (flags & XE_BO_FLAG_VRAM_MASK) && tile->mem.vram->id != tile->mem.kernel_vram->id &&
> +	    !(flags & XE_BO_FLAG_FORCE_USER_VRAM)) {
>   		flags &= ~XE_BO_FLAG_VRAM_MASK;
>   		flags |= (XE_BO_FLAG_VRAM0 << tile->mem.kernel_vram->id);
>   	}
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index dde8e0274ff2..46c36f656ad7 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -48,6 +48,7 @@
>   #define XE_BO_FLAG_GGTT2		BIT(22)
>   #define XE_BO_FLAG_GGTT3		BIT(23)
>   #define XE_BO_FLAG_CPU_ADDR_MIRROR	BIT(24)
> +#define XE_BO_FLAG_FORCE_USER_VRAM	BIT(25)
>   
>   /* this one is trigger internally only */
>   #define XE_BO_FLAG_INTERNAL_TEST	BIT(30)


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

* Re: [PATCH v1 3/4] drm/xe: Force user context allocations in user VRAM
  2025-07-18  8:17 ` [PATCH v1 3/4] drm/xe: Force user context allocations in user VRAM Piórkowski, Piotr
@ 2025-08-13 16:42   ` Matthew Auld
  0 siblings, 0 replies; 11+ messages in thread
From: Matthew Auld @ 2025-08-13 16:42 UTC (permalink / raw)
  To: Piórkowski, Piotr, intel-xe

On 18/07/2025 09:17, Piórkowski, Piotr wrote:
> From: Piotr Piórkowski <piotr.piorkowski@intel.com>
> 
> In general, kernel structures should be allocated in the kernel-dedicated
> VRAM region. However, userspace context data - while used by the kernel -
> does not need to reside there.
> Let's force the allocation of such data in the general-purpose VRAM region
> accessible to userspace.
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> ---
>   drivers/gpu/drm/xe/xe_exec_queue.c | 7 +++++--
>   drivers/gpu/drm/xe/xe_lrc.c        | 3 +++
>   drivers/gpu/drm/xe/xe_lrc.h        | 5 +++--
>   drivers/gpu/drm/xe/xe_pt.c         | 2 +-
>   4 files changed, 12 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
> index 8991b4aed440..abd29191186e 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -112,7 +112,7 @@ static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe,
>   	return q;
>   }
>   
> -static int __xe_exec_queue_init(struct xe_exec_queue *q)
> +static int __xe_exec_queue_init(struct xe_exec_queue *q, u32 exec_queue_flags)
>   {
>   	int i, err;
>   	u32 flags = 0;
> @@ -131,6 +131,9 @@ static int __xe_exec_queue_init(struct xe_exec_queue *q)
>   			flags |= XE_LRC_CREATE_RUNALONE;
>   	}
>   
> +	if (!(exec_queue_flags & EXEC_QUEUE_FLAG_KERNEL))
> +		flags |= XE_LRC_CREATE_USER_CTX;
> +
>   	for (i = 0; i < q->width; ++i) {
>   		q->lrc[i] = xe_lrc_create(q->hwe, q->vm, SZ_16K, q->msix_vec, flags);
>   		if (IS_ERR(q->lrc[i])) {
> @@ -167,7 +170,7 @@ struct xe_exec_queue *xe_exec_queue_create(struct xe_device *xe, struct xe_vm *v
>   	if (IS_ERR(q))
>   		return q;
>   
> -	err = __xe_exec_queue_init(q);
> +	err = __xe_exec_queue_init(q, flags);
>   	if (err)
>   		goto err_post_alloc;
>   
> diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
> index 6d38411bdeba..ed53f8e2448b 100644
> --- a/drivers/gpu/drm/xe/xe_lrc.c
> +++ b/drivers/gpu/drm/xe/xe_lrc.c
> @@ -1203,6 +1203,9 @@ static int xe_lrc_init(struct xe_lrc *lrc, struct xe_hw_engine *hwe,
>   	if (vm && vm->xef) /* userspace */
>   		bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE;
>   
> +	if (init_flags & XE_LRC_CREATE_USER_CTX)
> +		bo_flags |= XE_BO_FLAG_FORCE_USER_VRAM;

We can't use the xef check above?

> +
>   	lrc->bo = xe_bo_create_pin_map(xe, tile, NULL, bo_size,
>   				       ttm_bo_type_kernel,
>   				       bo_flags);
> diff --git a/drivers/gpu/drm/xe/xe_lrc.h b/drivers/gpu/drm/xe/xe_lrc.h
> index b6c8053c581b..57f661aa9b1c 100644
> --- a/drivers/gpu/drm/xe/xe_lrc.h
> +++ b/drivers/gpu/drm/xe/xe_lrc.h
> @@ -42,8 +42,9 @@ struct xe_lrc_snapshot {
>   #define LRC_PPHWSP_FLUSH_INVAL_SCRATCH_ADDR (0x34 * 4)
>   #define LRC_PPHWSP_PXP_INVAL_SCRATCH_ADDR (0x40 * 4)
>   
> -#define XE_LRC_CREATE_RUNALONE 0x1
> -#define XE_LRC_CREATE_PXP 0x2
> +#define XE_LRC_CREATE_RUNALONE		BIT(0)
> +#define XE_LRC_CREATE_PXP		BIT(1)
> +#define XE_LRC_CREATE_USER_CTX		BIT(2)
>   struct xe_lrc *xe_lrc_create(struct xe_hw_engine *hwe, struct xe_vm *vm,
>   			     u32 ring_size, u16 msix_vec, u32 flags);
>   void xe_lrc_destroy(struct kref *ref);
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index c8e63bd23300..a6c5f810c815 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -120,7 +120,7 @@ struct xe_pt *xe_pt_create(struct xe_vm *vm, struct xe_tile *tile,
>   		   XE_BO_FLAG_IGNORE_MIN_PAGE_SIZE |
>   		   XE_BO_FLAG_NO_RESV_EVICT | XE_BO_FLAG_PAGETABLE;
>   	if (vm->xef) /* userspace */
> -		bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE;
> +		bo_flags |= XE_BO_FLAG_PINNED_LATE_RESTORE | XE_BO_FLAG_FORCE_USER_VRAM;
>   
>   	pt->level = level;
>   	bo = xe_bo_create_pin_map(vm->xe, tile, vm, SZ_4K,


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

* Re: [PATCH v1 1/4] drm/xe: Add initial support for separate kernel VRAM region on the tile
  2025-07-18  8:17 ` [PATCH v1 1/4] drm/xe: Add initial support for separate kernel VRAM region on the tile Piórkowski, Piotr
@ 2025-08-13 16:53   ` Matthew Auld
  0 siblings, 0 replies; 11+ messages in thread
From: Matthew Auld @ 2025-08-13 16:53 UTC (permalink / raw)
  To: Piórkowski, Piotr, intel-xe

On 18/07/2025 09:17, Piórkowski, Piotr wrote:
> From: Piotr Piórkowski <piotr.piorkowski@intel.com>
> 
> So far, kernel and userspace allocations have shared the same VRAM region.
> However, in some scenarios, it may be necessary to reserve a separate
> VRAM area exclusively for kernel allocations.
> Let's add preliminary support for such a configuration.
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> ---
>   drivers/gpu/drm/xe/xe_bo.c           | 87 ++++++++++++++++++++--------
>   drivers/gpu/drm/xe/xe_bo.h           |  6 +-
>   drivers/gpu/drm/xe/xe_device_types.h | 10 +++-
>   drivers/gpu/drm/xe/xe_tile.c         |  8 +++
>   drivers/gpu/drm/xe/xe_tile.h         |  5 ++
>   drivers/gpu/drm/xe/xe_vram.c         |  6 +-
>   6 files changed, 94 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 00ce067d5fd3..12e899726534 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -33,6 +33,7 @@
>   #include "xe_pxp.h"
>   #include "xe_res_cursor.h"
>   #include "xe_shrinker.h"
> +#include "xe_tile.h"
>   #include "xe_trace_bo.h"
>   #include "xe_ttm_stolen_mgr.h"
>   #include "xe_vm.h"
> @@ -208,6 +209,27 @@ static bool force_contiguous(u32 bo_flags)
>   	       bo_flags & XE_BO_FLAG_PINNED;
>   }
>   
> +static u8 vram_bo_flag_to_tile_id(struct xe_device *xe, u32 vram_bo_flag)
> +{
> +	xe_assert(xe, vram_bo_flag & XE_BO_FLAG_VRAM_MASK);
> +	xe_assert(xe, (vram_bo_flag & (vram_bo_flag - 1)) == 0);
> +
> +	return __ffs(vram_bo_flag >> (__ffs(XE_BO_FLAG_VRAM0) - 1)) - 1;
> +}
> +
> +static u32 bo_vram_flags_to_vram_placement(struct xe_device *xe, u32 bo_flags, u32 vram_flag,

Do you need bo_flags?

> +					   enum ttm_bo_type type)
> +{
> +	u8 tile_id = vram_bo_flag_to_tile_id(xe, vram_flag);
> +
> +	xe_assert(xe, tile_id < xe->info.tile_count);
> +
> +	if (type == ttm_bo_type_kernel)
> +		return xe->tiles[tile_id].mem.kernel_vram->placement;
> +	else
> +		return xe->tiles[tile_id].mem.vram->placement;
> +}
> +
>   static void add_vram(struct xe_device *xe, struct xe_bo *bo,
>   		     struct ttm_place *places, u32 bo_flags, u32 mem_type, u32 *c)
>   {
> @@ -240,12 +262,17 @@ static void add_vram(struct xe_device *xe, struct xe_bo *bo,
>   }
>   
>   static void try_add_vram(struct xe_device *xe, struct xe_bo *bo,
> -			 u32 bo_flags, u32 *c)
> +			 u32 bo_flags, enum ttm_bo_type type, u32 *c)
>   {
> -	if (bo_flags & XE_BO_FLAG_VRAM0)
> -		add_vram(xe, bo, bo->placements, bo_flags, XE_PL_VRAM0, c);
> -	if (bo_flags & XE_BO_FLAG_VRAM1)
> -		add_vram(xe, bo, bo->placements, bo_flags, XE_PL_VRAM1, c);
> +	u32 vram_flag;
> +
> +	for_each_bo_flag_vram(vram_flag) {
> +		if (bo_flags & vram_flag) {

Would it be more natural to fold this into the macro somehow?

for_each_set_bo_vram_flag(vram_flag, bo_flags)
       bo_vram_flags_to_vram_placement(xe, vram_flag, type);

> +			u32 pl = bo_vram_flags_to_vram_placement(xe, bo_flags, vram_flag, type);
> +
> +			add_vram(xe, bo, bo->placements, bo_flags, pl, c);
> +		}
> +	}
>   }
>   
>   static void try_add_stolen(struct xe_device *xe, struct xe_bo *bo,
> @@ -264,11 +291,11 @@ static void try_add_stolen(struct xe_device *xe, struct xe_bo *bo,
>   }
>   
>   static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
> -				       u32 bo_flags)
> +				       u32 bo_flags, enum ttm_bo_type type)
>   {
>   	u32 c = 0;
>   
> -	try_add_vram(xe, bo, bo_flags, &c);
> +	try_add_vram(xe, bo, bo_flags, type, &c);
>   	try_add_system(xe, bo, bo_flags, &c);
>   	try_add_stolen(xe, bo, bo_flags, &c);
>   
> @@ -284,10 +311,10 @@ static int __xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
>   }
>   
>   int xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
> -			      u32 bo_flags)
> +			      u32 bo_flags, enum ttm_bo_type type)
>   {
>   	xe_bo_assert_held(bo);
> -	return __xe_bo_placement_for_flags(xe, bo, bo_flags);
> +	return __xe_bo_placement_for_flags(xe, bo, bo_flags, type);
>   }
>   
>   static void xe_evict_flags(struct ttm_buffer_object *tbo,
> @@ -1895,7 +1922,7 @@ struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>   	}
>   
>   	if (!(flags & XE_BO_FLAG_FIXED_PLACEMENT)) {
> -		err = __xe_bo_placement_for_flags(xe, bo, bo->flags);
> +		err = __xe_bo_placement_for_flags(xe, bo, bo->flags, type);
>   		if (WARN_ON(err)) {
>   			xe_ttm_bo_destroy(&bo->ttm);
>   			return ERR_PTR(err);
> @@ -1953,34 +1980,33 @@ struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
>   }
>   
>   static int __xe_bo_fixed_placement(struct xe_device *xe,
> -				   struct xe_bo *bo,
> +				   struct xe_bo *bo, enum ttm_bo_type type,
>   				   u32 flags,
>   				   u64 start, u64 end, u64 size)
>   {
>   	struct ttm_place *place = bo->placements;
> +	u32 vram_flag, vram_stolen_flags;
>   
>   	if (flags & (XE_BO_FLAG_USER | XE_BO_FLAG_SYSTEM))
>   		return -EINVAL;
>   
> +	vram_flag = flags & XE_BO_FLAG_VRAM_MASK;
> +	vram_stolen_flags = (flags & (XE_BO_FLAG_STOLEN)) | vram_flag;
> +
> +	/* check if more than one VRAM/STOLEN flag is set */
> +	if ((vram_stolen_flags & (vram_stolen_flags - 1)) != 0)

hweight32() > 1 is more readable here?

> +		return -EINVAL;
> +
>   	place->flags = TTM_PL_FLAG_CONTIGUOUS;
>   	place->fpfn = start >> PAGE_SHIFT;
>   	place->lpfn = end >> PAGE_SHIFT;
>   
> -	switch (flags & (XE_BO_FLAG_STOLEN | XE_BO_FLAG_VRAM_MASK)) {
> -	case XE_BO_FLAG_VRAM0:
> -		place->mem_type = XE_PL_VRAM0;
> -		break;
> -	case XE_BO_FLAG_VRAM1:
> -		place->mem_type = XE_PL_VRAM1;
> -		break;
> -	case XE_BO_FLAG_STOLEN:
> +	if (flags & XE_BO_FLAG_STOLEN)
>   		place->mem_type = XE_PL_STOLEN;
> -		break;
> -
> -	default:
> -		/* 0 or multiple of the above set */
> +	else if (vram_flag)
> +		place->mem_type = bo_vram_flags_to_vram_placement(xe, flags, vram_flag, type);
> +	else
>   		return -EINVAL;
> -	}
>   
>   	bo->placement = (struct ttm_placement) {
>   		.num_placement = 1,
> @@ -2003,13 +2029,24 @@ __xe_bo_create_locked(struct xe_device *xe,
>   	if (vm)
>   		xe_vm_assert_held(vm);
>   
> +	/*
> +	 * In the case of kernel allocations, if the tile has dedicated kernel
> +	 * VRAM region, and tile->id does not match to tile->vram_id, it means
> +	 * that we are using unified VRAM and we need fix VRAM BO flags.
> +	 */
> +	if (tile && type == ttm_bo_type_kernel && xe_tile_has_separate_kernel_vram(tile) &&
> +	    (flags & XE_BO_FLAG_VRAM_MASK) && tile->mem.vram->id != tile->mem.kernel_vram->id) {
> +		flags &= ~XE_BO_FLAG_VRAM_MASK;
> +		flags |= (XE_BO_FLAG_VRAM0 << tile->mem.kernel_vram->id);
> +	}
> +
>   	if (start || end != ~0ULL) {
>   		bo = xe_bo_alloc();
>   		if (IS_ERR(bo))
>   			return bo;
>   
>   		flags |= XE_BO_FLAG_FIXED_PLACEMENT;
> -		err = __xe_bo_fixed_placement(xe, bo, flags, start, end, size);
> +		err = __xe_bo_fixed_placement(xe, bo, type, flags, start, end, size);
>   		if (err) {
>   			xe_bo_free(bo);
>   			return ERR_PTR(err);
> diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
> index 8cce413b5235..dde8e0274ff2 100644
> --- a/drivers/gpu/drm/xe/xe_bo.h
> +++ b/drivers/gpu/drm/xe/xe_bo.h
> @@ -61,6 +61,10 @@
>   #define XE_BO_FLAG_GGTTx(tile) \
>   	(XE_BO_FLAG_GGTT0 << (tile)->id)
>   
> +#define for_each_bo_flag_vram(bit__) \
> +	for (unsigned int __bit_tmp = BIT(0); __bit_tmp <= XE_BO_FLAG_VRAM_MASK; __bit_tmp <<= 1) \
> +		for_each_if(((bit__) = __bit_tmp) & XE_BO_FLAG_VRAM_MASK)

Should this be exported or can it be moved to .c?

> +
>   #define XE_PTE_SHIFT			12
>   #define XE_PAGE_SIZE			(1 << XE_PTE_SHIFT)
>   #define XE_PTE_MASK			(XE_PAGE_SIZE - 1)
> @@ -127,7 +131,7 @@ struct xe_bo *xe_managed_bo_create_from_data(struct xe_device *xe, struct xe_til
>   int xe_managed_bo_reinit_in_vram(struct xe_device *xe, struct xe_tile *tile, struct xe_bo **src);
>   
>   int xe_bo_placement_for_flags(struct xe_device *xe, struct xe_bo *bo,
> -			      u32 bo_flags);
> +			      u32 bo_flags, enum ttm_bo_type type);
>   
>   static inline struct xe_bo *ttm_to_xe_bo(const struct ttm_buffer_object *bo)
>   {
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index eb6105523f23..3a417305c1b8 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -155,7 +155,15 @@ struct xe_tile {
>   	/** @mem: memory management info for tile */
>   	struct {
>   		/**
> -		 * @mem.vram: VRAM info for tile.
> +		 * @mem.kernel_vram: kernel-dedicated VRAM info for tile.
> +		 *
> +		 * Although VRAM is associated with a specific tile, it can
> +		 * still be accessed by all tiles' GTs.
> +		 */
> +		struct xe_vram_region *kernel_vram;
> +
> +		/**
> +		 * @mem.vram: general purpose VRAM info for tile.
>   		 *
>   		 * Although VRAM is associated with a specific tile, it can
>   		 * still be accessed by all tiles' GTs.
> diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
> index 0be0a5c57ef4..a14f549effdd 100644
> --- a/drivers/gpu/drm/xe/xe_tile.c
> +++ b/drivers/gpu/drm/xe/xe_tile.c
> @@ -124,6 +124,14 @@ int xe_tile_alloc_vram(struct xe_tile *tile)
>   		return PTR_ERR(vram);
>   	tile->mem.vram = vram;
>   
> +	/*
> +	 * If the kernel_vram is not already allocated,
> +	 * it means that tile has common VRAM region for
> +	 * kernel and user space.
> +	 */
> +	if (!tile->mem.kernel_vram)
> +		tile->mem.kernel_vram = tile->mem.vram;
> +
>   	return 0;
>   }
>   
> diff --git a/drivers/gpu/drm/xe/xe_tile.h b/drivers/gpu/drm/xe/xe_tile.h
> index dceb6297aa01..5d834378b354 100644
> --- a/drivers/gpu/drm/xe/xe_tile.h
> +++ b/drivers/gpu/drm/xe/xe_tile.h
> @@ -23,4 +23,9 @@ static inline bool xe_tile_is_root(struct xe_tile *tile)
>   	return tile->id == 0;
>   }
>   
> +static inline bool xe_tile_has_separate_kernel_vram(const struct xe_tile *tile)
> +{
> +	return tile->mem.vram != tile->mem.kernel_vram;
> +}
> +
>   #endif
> diff --git a/drivers/gpu/drm/xe/xe_vram.c b/drivers/gpu/drm/xe/xe_vram.c
> index b44ebf50fedb..7adfccf68e4c 100644
> --- a/drivers/gpu/drm/xe/xe_vram.c
> +++ b/drivers/gpu/drm/xe/xe_vram.c
> @@ -13,6 +13,7 @@
>   #include "regs/xe_gt_regs.h"
>   #include "regs/xe_regs.h"
>   #include "xe_assert.h"
> +#include "xe_bo.h"
>   #include "xe_device.h"
>   #include "xe_force_wake.h"
>   #include "xe_gt_mcr.h"
> @@ -283,8 +284,11 @@ static void vram_fini(void *arg)
>   
>   	xe->mem.vram->mapping = NULL;
>   
> -	for_each_tile(tile, xe, id)
> +	for_each_tile(tile, xe, id) {
>   		tile->mem.vram->mapping = NULL;
> +		if (tile->mem.kernel_vram)
> +			tile->mem.kernel_vram->mapping = NULL;
> +	}
>   }
>   
>   struct xe_vram_region *xe_vram_region_alloc(struct xe_device *xe, u8 id, u32 placement)


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

end of thread, other threads:[~2025-08-13 16:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-18  8:17 [PATCH v1 0/4] Preliminary support for separate VRAM region for kernel allocations on tiles Piórkowski, Piotr
2025-07-18  8:17 ` [PATCH v1 1/4] drm/xe: Add initial support for separate kernel VRAM region on the tile Piórkowski, Piotr
2025-08-13 16:53   ` Matthew Auld
2025-07-18  8:17 ` [PATCH v1 2/4] drm/xe: Introduce new BO flag XE_BO_FLAG_FORCE_USER_VRAM Piórkowski, Piotr
2025-08-13 16:38   ` Matthew Auld
2025-07-18  8:17 ` [PATCH v1 3/4] drm/xe: Force user context allocations in user VRAM Piórkowski, Piotr
2025-08-13 16:42   ` Matthew Auld
2025-07-18  8:17 ` [PATCH v1 4/4] drm/xe/pf: Force use user VRAM for LMEM provisioning Piórkowski, Piotr
2025-07-18  8:24 ` ✓ CI.KUnit: success for Preliminary support for separate VRAM region for kernel allocations on tiles Patchwork
2025-07-18  9:00 ` ✓ Xe.CI.BAT: " Patchwork
2025-07-21  8:15 ` ✗ Xe.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).