* [PATCH v1 0/4] Introduce PF-mem VRAM regions
@ 2026-08-13 10:25 Piórkowski, Piotr
2026-08-13 10:25 ` [PATCH v1 1/4] drm/xe/vram: Add binding information to " Piórkowski, Piotr
` (7 more replies)
0 siblings, 8 replies; 12+ messages in thread
From: Piórkowski, Piotr @ 2026-08-13 10:25 UTC (permalink / raw)
To: intel-xe; +Cc: Piotr Piórkowski
From: Piotr Piórkowski <piotr.piorkowski@intel.com>
This series lays the groundwork for PF-mem regions: VRAM regions
dedicated to kernel-only allocations, where buffers are allocated
exclusively by the kernel driver and are never exposed to userspace
workloads.
Today a tile exposes a single VRAM region shared by both kernel and
userspace allocations. Some use cases need a separate VRAM region
carved out of a tile and reserved for the kernel driver only. For
example, on an SR-IOV PF most of the tile VRAM is provisioned to VFs;
the kernel driver still needs its own allocations, which must come from
a region reserved for the kernel and kept apart from the VRAM handed
out to VFs. That reserved kernel region is what PF-mem provides.
To support this, the VRAM region abstraction needs a way to distinguish
regions by purpose, dedicated TTM placements so the BO paths can route
and evict such buffers correctly, and helpers to create a region from a
caller-provided parent, offset, and size.
Piotr Piórkowski (4):
drm/xe/vram: Add binding information to VRAM regions
drm/xe/ttm: Add PF-mem VRAM placement types for TTM
drm/xe/vram: Add initial support for PF-mem regions
drm/xe/kunit: Add tests for PF-mem regions
drivers/gpu/drm/xe/tests/xe_vram.c | 115 +++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_bo.c | 16 +++-
drivers/gpu/drm/xe/xe_bo.h | 17 ++++
drivers/gpu/drm/xe/xe_bo_evict.c | 2 +-
drivers/gpu/drm/xe/xe_pm.c | 4 +-
drivers/gpu/drm/xe/xe_res_cursor.h | 9 ++-
drivers/gpu/drm/xe/xe_tile.c | 10 ++-
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 6 +-
drivers/gpu/drm/xe/xe_vram.c | 85 ++++++++++++++++++--
drivers/gpu/drm/xe/xe_vram.h | 11 ++-
drivers/gpu/drm/xe/xe_vram_types.h | 14 +++-
11 files changed, 266 insertions(+), 23 deletions(-)
create mode 100644 drivers/gpu/drm/xe/tests/xe_vram.c
--
2.34.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v1 1/4] drm/xe/vram: Add binding information to VRAM regions
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
@ 2026-08-13 10:25 ` Piórkowski, Piotr
2026-08-13 10:25 ` [PATCH v1 2/4] drm/xe/ttm: Add PF-mem VRAM placement types for TTM Piórkowski, Piotr
` (6 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Piórkowski, Piotr @ 2026-08-13 10:25 UTC (permalink / raw)
To: intel-xe; +Cc: Piotr Piórkowski
From: Piotr Piórkowski <piotr.piorkowski@intel.com>
Add a binding field to VRAM regions and pass it at allocation time.
This allows distinguishing VRAM regions serving different purposes. It is
needed for future patches where different VRAM regions serve different
purposes, such as dedicated VRAM for kernel allocations.
Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
drivers/gpu/drm/xe/xe_tile.c | 2 +-
drivers/gpu/drm/xe/xe_vram.c | 40 ++++++++++++++++++++++++------
drivers/gpu/drm/xe/xe_vram.h | 6 ++---
drivers/gpu/drm/xe/xe_vram_types.h | 12 ++++++++-
4 files changed, 48 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
index 74d925a337b7..fd0c2e4cbdd2 100644
--- a/drivers/gpu/drm/xe/xe_tile.c
+++ b/drivers/gpu/drm/xe/xe_tile.c
@@ -119,7 +119,7 @@ int xe_tile_alloc_vram(struct xe_tile *tile)
if (!IS_DGFX(xe))
return 0;
- vram = xe_vram_region_alloc(xe, tile->id, XE_PL_VRAM0 + tile->id);
+ vram = xe_vram_region_alloc_tile(xe, tile->id);
if (!vram)
return -ENOMEM;
tile->mem.vram = vram;
diff --git a/drivers/gpu/drm/xe/xe_vram.c b/drivers/gpu/drm/xe/xe_vram.c
index 23eb7edbdd57..e5f83df98826 100644
--- a/drivers/gpu/drm/xe/xe_vram.c
+++ b/drivers/gpu/drm/xe/xe_vram.c
@@ -24,6 +24,16 @@
#include "xe_vram.h"
#include "xe_vram_types.h"
+static const char *stringify_vram_binding(enum xe_vram_binding binding)
+{
+ switch (binding) {
+ case XE_VRAM_BINDING_TILE:
+ return "Tile";
+ }
+
+ return "Unknown";
+}
+
static bool resource_is_valid(struct pci_dev *pdev, int bar)
{
if (!pci_resource_flags(pdev, bar))
@@ -189,7 +199,8 @@ static void vram_fini(void *arg)
}
}
-struct xe_vram_region *xe_vram_region_alloc(struct xe_device *xe, u8 id, u32 placement)
+static struct xe_vram_region *vram_region_alloc(struct xe_device *xe, enum xe_vram_binding binding,
+ u8 id, u32 placement)
{
struct xe_vram_region *vram;
struct drm_device *drm = &xe->drm;
@@ -203,12 +214,25 @@ struct xe_vram_region *xe_vram_region_alloc(struct xe_device *xe, u8 id, u32 pla
vram->xe = xe;
vram->id = id;
vram->placement = placement;
+ vram->binding = binding;
#if defined(CONFIG_DRM_XE_PAGEMAP)
vram->migrate = xe->tiles[id].migrate;
#endif
return vram;
}
+/**
+ * xe_vram_region_alloc_tile - Allocate a tile VRAM region
+ * @xe: the &xe_device
+ * @id: tile id
+ *
+ * Return: the allocated VRAM region, or NULL on failure.
+ */
+struct xe_vram_region *xe_vram_region_alloc_tile(struct xe_device *xe, u8 id)
+{
+ return vram_region_alloc(xe, XE_VRAM_BINDING_TILE, id, XE_PL_VRAM0 + id);
+}
+
static void print_vram_region_info(struct xe_device *xe, struct xe_vram_region *vram)
{
struct drm_device *drm = &xe->drm;
@@ -217,11 +241,13 @@ static void print_vram_region_info(struct xe_device *xe, struct xe_vram_region *
drm_info(drm, "Small BAR device\n");
drm_info(drm,
- "VRAM[%u]: Actual physical size %pa, usable size exclude stolen %pa, CPU accessible size %pa\n",
- vram->id, &vram->actual_physical_size, &vram->usable_size, &vram->io_size);
- drm_info(drm, "VRAM[%u]: DPA range: [%pa-%llx], io range: [%pa-%llx]\n",
- vram->id, &vram->dpa_base, vram->dpa_base + (u64)vram->actual_physical_size,
- &vram->io_start, vram->io_start + (u64)vram->io_size);
+ "%s[%u] VRAM region: Actual physical size %pa, usable size exclude stolen %pa, CPU accessible size %pa\n",
+ stringify_vram_binding(vram->binding), vram->id, &vram->actual_physical_size,
+ &vram->usable_size, &vram->io_size);
+ drm_info(drm, "%s[%u] VRAM region: DPA range: [%pa-%llx], io range: [%pa-%llx]\n",
+ stringify_vram_binding(vram->binding), vram->id, &vram->dpa_base,
+ vram->dpa_base + (u64)vram->actual_physical_size, &vram->io_start,
+ vram->io_start + (u64)vram->io_size);
}
static int vram_region_init(struct xe_device *xe, struct xe_vram_region *vram,
@@ -237,7 +263,7 @@ static int vram_region_init(struct xe_device *xe, struct xe_vram_region *vram,
vram->io_size = min_t(u64, usable_size, remain_io_size);
if (!vram->io_size) {
- drm_err(&xe->drm, "Tile without any CPU visible VRAM. Aborting.\n");
+ drm_err(&xe->drm, "VRAM region without any CPU visible memory\n");
return -ENODEV;
}
diff --git a/drivers/gpu/drm/xe/xe_vram.h b/drivers/gpu/drm/xe/xe_vram.h
index dd1c8bf17922..87088ffbfd5e 100644
--- a/drivers/gpu/drm/xe/xe_vram.h
+++ b/drivers/gpu/drm/xe/xe_vram.h
@@ -8,15 +8,15 @@
#include <linux/types.h>
+#include "xe_vram_types.h"
+
struct xe_device;
-struct xe_vram_region;
struct ttm_resource;
struct xe_vram_region *xe_map_resource_to_region(struct ttm_resource *res);
int xe_vram_probe(struct xe_device *xe);
-struct xe_vram_region *xe_vram_region_alloc(struct xe_device *xe, u8 id, u32 placement);
-
+struct xe_vram_region *xe_vram_region_alloc_tile(struct xe_device *xe, u8 id);
resource_size_t xe_vram_region_io_start(const struct xe_vram_region *vram);
resource_size_t xe_vram_region_io_size(const struct xe_vram_region *vram);
resource_size_t xe_vram_region_dpa_base(const struct xe_vram_region *vram);
diff --git a/drivers/gpu/drm/xe/xe_vram_types.h b/drivers/gpu/drm/xe/xe_vram_types.h
index 646e3c12ae9f..51884e7a679d 100644
--- a/drivers/gpu/drm/xe/xe_vram_types.h
+++ b/drivers/gpu/drm/xe/xe_vram_types.h
@@ -15,6 +15,14 @@
struct xe_device;
struct xe_migrate;
+/**
+ * enum xe_vram_binding - VRAM binding types
+ * @XE_VRAM_BINDING_TILE: general-purpose VRAM region bound to a tile
+ */
+enum xe_vram_binding {
+ XE_VRAM_BINDING_TILE = 0,
+};
+
/**
* struct xe_vram_region - memory region structure
* This is used to describe a memory region in xe
@@ -26,9 +34,11 @@ struct xe_vram_region {
/**
* @id: VRAM region instance id
*
- * The value should be unique for VRAM region.
+ * The value should be unique within a given binding.
*/
u8 id;
+ /** @binding: VRAM region instance binding */
+ enum xe_vram_binding binding;
/** @io_start: IO start address of this VRAM instance */
resource_size_t io_start;
/**
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v1 2/4] drm/xe/ttm: Add PF-mem VRAM placement types for TTM
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
2026-08-13 10:25 ` [PATCH v1 1/4] drm/xe/vram: Add binding information to " Piórkowski, Piotr
@ 2026-08-13 10:25 ` Piórkowski, Piotr
2026-08-13 10:39 ` sashiko-bot
2026-08-13 10:25 ` [PATCH v1 3/4] drm/xe/vram: Add initial support for PF-mem regions Piórkowski, Piotr
` (5 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: Piórkowski, Piotr @ 2026-08-13 10:25 UTC (permalink / raw)
To: intel-xe; +Cc: Piotr Piórkowski
From: Piotr Piórkowski <piotr.piorkowski@intel.com>
PF-mem regions are VRAM regions dedicated to kernel-only allocations,
where buffers are allocated exclusively by the kernel driver and are
never exposed to userspace workloads. Representing such regions
requires dedicated TTM placement types so the BO paths can route and
evict them correctly.
Add new PF-mem VRAM placement types and update BO paths to handle these
new VRAM placements.
Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
drivers/gpu/drm/xe/xe_bo.c | 16 ++++++++++++----
drivers/gpu/drm/xe/xe_bo.h | 17 +++++++++++++++++
drivers/gpu/drm/xe/xe_bo_evict.c | 2 +-
drivers/gpu/drm/xe/xe_pm.c | 4 ++--
drivers/gpu/drm/xe/xe_res_cursor.h | 9 ++++++++-
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 6 ++----
6 files changed, 42 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index dde309821237..7b1a82e18faa 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -46,6 +46,8 @@ const char *const xe_mem_type_to_name[TTM_NUM_MEM_TYPES] = {
[XE_PL_TT] = "gtt",
[XE_PL_VRAM0] = "vram0",
[XE_PL_VRAM1] = "vram1",
+ [XE_PL_VRAM0_PFMEM] = "vram0_pfmem",
+ [XE_PL_VRAM1_PFMEM] = "vram1_pfmem",
[XE_PL_STOLEN] = "stolen"
};
@@ -166,11 +168,12 @@ static bool xe_bo_is_user(struct xe_bo *bo)
static struct xe_migrate *
mem_type_to_migrate(struct xe_device *xe, u32 mem_type)
{
- struct xe_tile *tile;
+ u8 tile_id;
xe_assert(xe, mem_type == XE_PL_STOLEN || mem_type_is_vram(mem_type));
- tile = &xe->tiles[mem_type == XE_PL_STOLEN ? 0 : (mem_type - XE_PL_VRAM0)];
- return tile->migrate;
+ tile_id = mem_type == XE_PL_STOLEN ? 0 : xe_vram_pl_to_tile_id(xe, mem_type);
+
+ return xe->tiles[tile_id].migrate;
}
static void try_add_system(struct xe_device *xe, struct xe_bo *bo,
@@ -360,6 +363,8 @@ static void xe_evict_flags(struct ttm_buffer_object *tbo,
switch (tbo->resource->mem_type) {
case XE_PL_VRAM0:
case XE_PL_VRAM1:
+ case XE_PL_VRAM0_PFMEM:
+ case XE_PL_VRAM1_PFMEM:
case XE_PL_STOLEN:
*placement = tt_placement;
break;
@@ -639,7 +644,10 @@ static int xe_ttm_io_mem_reserve(struct ttm_device *bdev,
case XE_PL_TT:
return 0;
case XE_PL_VRAM0:
- case XE_PL_VRAM1: {
+ case XE_PL_VRAM1:
+ case XE_PL_VRAM0_PFMEM:
+ case XE_PL_VRAM1_PFMEM:
+ {
struct xe_vram_region *vram = xe_map_resource_to_region(mem);
if (!xe_ttm_resource_visible(xe, mem))
diff --git a/drivers/gpu/drm/xe/xe_bo.h b/drivers/gpu/drm/xe/xe_bo.h
index e8081af5bfc1..c698f70a3b0c 100644
--- a/drivers/gpu/drm/xe/xe_bo.h
+++ b/drivers/gpu/drm/xe/xe_bo.h
@@ -83,8 +83,13 @@
#define XE_PL_TT TTM_PL_TT
#define XE_PL_VRAM0 TTM_PL_VRAM
#define XE_PL_VRAM1 (XE_PL_VRAM0 + 1)
+#define XE_PL_VRAM0_PFMEM (XE_PL_VRAM1 + 1)
+#define XE_PL_VRAM1_PFMEM (XE_PL_VRAM0_PFMEM + 1)
#define XE_PL_STOLEN (TTM_NUM_MEM_TYPES - 1)
+#define xe_for_each_vram_pl(i) \
+ for (i = XE_PL_VRAM0; i <= XE_PL_VRAM1_PFMEM; i++)
+
#define XE_BO_PROPS_INVALID (-1)
#define XE_PCI_BARRIER_MMAP_OFFSET (0x50 << XE_PTE_SHIFT)
@@ -614,4 +619,16 @@ static inline bool xe_bo_is_mem_type(struct xe_bo *bo, u32 mem_type)
xe_bo_assert_held(bo);
return bo->ttm.resource->mem_type == mem_type;
}
+
+static inline u8 xe_vram_pl_to_tile_id(struct xe_device *xe, u32 mem_type)
+{
+ xe_assert(xe, mem_type_is_vram(mem_type));
+
+ if (mem_type >= XE_PL_VRAM0 && mem_type <= XE_PL_VRAM1)
+ return mem_type - XE_PL_VRAM0;
+
+ xe_assert(xe, mem_type >= XE_PL_VRAM0_PFMEM && mem_type <= XE_PL_VRAM1_PFMEM);
+ return mem_type - XE_PL_VRAM0_PFMEM;
+}
+
#endif
diff --git a/drivers/gpu/drm/xe/xe_bo_evict.c b/drivers/gpu/drm/xe/xe_bo_evict.c
index 7661fca7f278..e2ae97f5c684 100644
--- a/drivers/gpu/drm/xe/xe_bo_evict.c
+++ b/drivers/gpu/drm/xe/xe_bo_evict.c
@@ -303,7 +303,7 @@ void xe_bo_pci_dev_remove_all(struct xe_device *xe)
* Move pagemap bos and exported dma-buf to system, and
* purge everything else.
*/
- for (mem_type = XE_PL_VRAM1; mem_type >= XE_PL_TT; --mem_type) {
+ for (mem_type = XE_PL_VRAM1_PFMEM; mem_type >= XE_PL_TT; --mem_type) {
struct ttm_resource_manager *man =
ttm_manager_type(&xe->ttm, mem_type);
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index a5289a9df8d2..4c1630bdcc0e 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -970,7 +970,7 @@ int xe_pm_set_vram_threshold(struct xe_device *xe, u32 threshold)
u32 vram_total_mb = 0;
int i;
- for (i = XE_PL_VRAM0; i <= XE_PL_VRAM1; ++i) {
+ xe_for_each_vram_pl(i) {
man = ttm_manager_type(&xe->ttm, i);
if (man)
vram_total_mb += DIV_ROUND_UP_ULL(man->size, 1024 * 1024);
@@ -1007,7 +1007,7 @@ void xe_pm_d3cold_allowed_toggle(struct xe_device *xe)
return;
}
- for (i = XE_PL_VRAM0; i <= XE_PL_VRAM1; ++i) {
+ xe_for_each_vram_pl(i) {
man = ttm_manager_type(&xe->ttm, i);
if (man) {
vram_used = ttm_resource_manager_usage(man);
diff --git a/drivers/gpu/drm/xe/xe_res_cursor.h b/drivers/gpu/drm/xe/xe_res_cursor.h
index 0522caafd89d..4603a3356e53 100644
--- a/drivers/gpu/drm/xe/xe_res_cursor.h
+++ b/drivers/gpu/drm/xe/xe_res_cursor.h
@@ -111,7 +111,9 @@ static inline void xe_res_first(struct ttm_resource *res,
break;
}
case XE_PL_VRAM0:
- case XE_PL_VRAM1: {
+ case XE_PL_VRAM1:
+ case XE_PL_VRAM0_PFMEM:
+ case XE_PL_VRAM1_PFMEM: {
struct gpu_buddy_block *block;
struct list_head *head, *next;
struct gpu_buddy *mm = xe_res_get_buddy(res);
@@ -303,6 +305,8 @@ static inline void xe_res_next(struct xe_res_cursor *cur, u64 size)
break;
case XE_PL_VRAM0:
case XE_PL_VRAM1:
+ case XE_PL_VRAM0_PFMEM:
+ case XE_PL_VRAM1_PFMEM: {
start = size - cur->size;
block = cur->node;
@@ -322,6 +326,7 @@ static inline void xe_res_next(struct xe_res_cursor *cur, u64 size)
cur->remaining);
cur->node = block;
break;
+ }
default:
return;
}
@@ -358,6 +363,8 @@ static inline bool xe_res_is_vram(const struct xe_res_cursor *cur)
case XE_PL_STOLEN:
case XE_PL_VRAM0:
case XE_PL_VRAM1:
+ case XE_PL_VRAM0_PFMEM:
+ case XE_PL_VRAM1_PFMEM:
return true;
default:
break;
diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
index 05911904c1f9..4b4ab7db70f0 100644
--- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
@@ -336,7 +336,6 @@ int __xe_ttm_vram_mgr_init(struct xe_device *xe, struct xe_ttm_vram_mgr *mgr,
{
struct ttm_resource_manager *man = &mgr->manager;
struct dmem_cgroup_region *cg;
- const char *name;
int err;
man->func = &xe_ttm_vram_mgr_func;
@@ -365,8 +364,7 @@ int __xe_ttm_vram_mgr_init(struct xe_device *xe, struct xe_ttm_vram_mgr *mgr,
if (err)
return err;
- name = mem_type == XE_PL_VRAM0 ? "vram0" : "vram1";
- cg = drmm_cgroup_register_region(&xe->drm, name,
+ cg = drmm_cgroup_register_region(&xe->drm, xe_mem_type_to_name[mem_type],
&(struct dmem_cgroup_init){
.size = size,
.ops = &xe_ttm_vram_mgr_dmem_ops,
@@ -405,7 +403,7 @@ int xe_ttm_vram_mgr_alloc_sgt(struct xe_device *xe,
enum dma_data_direction dir,
struct sg_table **sgt)
{
- struct xe_tile *tile = &xe->tiles[res->mem_type - XE_PL_VRAM0];
+ struct xe_tile *tile = &xe->tiles[xe_vram_pl_to_tile_id(xe, res->mem_type)];
struct xe_ttm_vram_mgr_resource *vres = to_xe_ttm_vram_mgr_resource(res);
struct xe_res_cursor cursor;
struct scatterlist *sg;
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v1 3/4] drm/xe/vram: Add initial support for PF-mem regions
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
2026-08-13 10:25 ` [PATCH v1 1/4] drm/xe/vram: Add binding information to " Piórkowski, Piotr
2026-08-13 10:25 ` [PATCH v1 2/4] drm/xe/ttm: Add PF-mem VRAM placement types for TTM Piórkowski, Piotr
@ 2026-08-13 10:25 ` Piórkowski, Piotr
2026-08-13 10:38 ` sashiko-bot
2026-08-13 10:25 ` [PATCH v1 4/4] drm/xe/kunit: Add tests " Piórkowski, Piotr
` (4 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: Piórkowski, Piotr @ 2026-08-13 10:25 UTC (permalink / raw)
To: intel-xe; +Cc: Piotr Piórkowski
From: Piotr Piórkowski <piotr.piorkowski@intel.com>
Add helpers to allocate and initialize such a region from a
caller-provided parent, offset, and size, and assign the matching TTM
placement. The helpers do not decide when the region is needed or how
large it should be. A separate TTM VRAM manager is initialized when a
caller installs the region as the tile kernel_vram.
Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
drivers/gpu/drm/xe/xe_tile.c | 8 ++++++
drivers/gpu/drm/xe/xe_vram.c | 41 ++++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_vram.h | 7 +++++
drivers/gpu/drm/xe/xe_vram_types.h | 2 ++
4 files changed, 58 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
index fd0c2e4cbdd2..e196f424fda4 100644
--- a/drivers/gpu/drm/xe/xe_tile.c
+++ b/drivers/gpu/drm/xe/xe_tile.c
@@ -198,6 +198,14 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
xe->info.mem_region_mask |= BIT(tile->mem.vram->id) << 1;
}
+ if (IS_DGFX(xe) && tile->mem.kernel_vram &&
+ tile->mem.kernel_vram != tile->mem.vram &&
+ !ttm_resource_manager_used(&tile->mem.kernel_vram->ttm.manager)) {
+ err = xe_ttm_vram_mgr_init(xe, tile->mem.kernel_vram);
+ if (err)
+ return err;
+ }
+
return xe_tile_sysfs_init(tile);
}
diff --git a/drivers/gpu/drm/xe/xe_vram.c b/drivers/gpu/drm/xe/xe_vram.c
index e5f83df98826..29c93e9aa5a7 100644
--- a/drivers/gpu/drm/xe/xe_vram.c
+++ b/drivers/gpu/drm/xe/xe_vram.c
@@ -29,6 +29,8 @@ static const char *stringify_vram_binding(enum xe_vram_binding binding)
switch (binding) {
case XE_VRAM_BINDING_TILE:
return "Tile";
+ case XE_VRAM_BINDING_PFMEM:
+ return "PF-mem";
}
return "Unknown";
@@ -276,6 +278,45 @@ static int vram_region_init(struct xe_device *xe, struct xe_vram_region *vram,
return 0;
}
+/**
+ * xe_vram_region_alloc_pfmem - Allocate a PF-mem VRAM region
+ * @xe: the &xe_device
+ * @id: tile id the region belongs to
+ *
+ * Return: the allocated VRAM region, or NULL on failure.
+ */
+struct xe_vram_region *xe_vram_region_alloc_pfmem(struct xe_device *xe, u8 id)
+{
+ return vram_region_alloc(xe, XE_VRAM_BINDING_PFMEM, id, XE_PL_VRAM0_PFMEM + id);
+}
+
+/**
+ * xe_vram_region_init_pfmem - Initialize a PF-mem VRAM region
+ * @vram: pre-allocated VRAM region to initialize
+ * @parent: tile VRAM region that provides the address space context
+ * @offset: region offset relative to the parent
+ * @size: region size
+ *
+ * Return: 0 on success, negative error code on failure.
+ */
+int xe_vram_region_init_pfmem(struct xe_vram_region *vram,
+ struct xe_vram_region *parent,
+ u64 offset, u64 size)
+{
+ struct xe_device *xe = parent->xe;
+ resource_size_t remain_io_size;
+
+ if (!size || offset > parent->usable_size ||
+ size > parent->usable_size - offset)
+ return -EINVAL;
+
+ remain_io_size = offset < parent->io_size ? parent->io_size - offset : 0;
+ if (!remain_io_size)
+ return -EINVAL;
+
+ return vram_region_init(xe, vram, parent, offset, size, size, remain_io_size);
+}
+
/**
* xe_map_resource_to_region - Map ttm resource to vram memory region
* @res: The ttm resource
diff --git a/drivers/gpu/drm/xe/xe_vram.h b/drivers/gpu/drm/xe/xe_vram.h
index 87088ffbfd5e..4c77d128e329 100644
--- a/drivers/gpu/drm/xe/xe_vram.h
+++ b/drivers/gpu/drm/xe/xe_vram.h
@@ -16,7 +16,14 @@ struct ttm_resource;
struct xe_vram_region *xe_map_resource_to_region(struct ttm_resource *res);
int xe_vram_probe(struct xe_device *xe);
+struct xe_vram_region *xe_map_resource_to_region(struct ttm_resource *res);
+int xe_vram_probe(struct xe_device *xe);
+
struct xe_vram_region *xe_vram_region_alloc_tile(struct xe_device *xe, u8 id);
+struct xe_vram_region *xe_vram_region_alloc_pfmem(struct xe_device *xe, u8 id);
+int xe_vram_region_init_pfmem(struct xe_vram_region *vram,
+ struct xe_vram_region *parent,
+ u64 offset, u64 size);
resource_size_t xe_vram_region_io_start(const struct xe_vram_region *vram);
resource_size_t xe_vram_region_io_size(const struct xe_vram_region *vram);
resource_size_t xe_vram_region_dpa_base(const struct xe_vram_region *vram);
diff --git a/drivers/gpu/drm/xe/xe_vram_types.h b/drivers/gpu/drm/xe/xe_vram_types.h
index 51884e7a679d..01690bfbcce0 100644
--- a/drivers/gpu/drm/xe/xe_vram_types.h
+++ b/drivers/gpu/drm/xe/xe_vram_types.h
@@ -18,9 +18,11 @@ struct xe_migrate;
/**
* enum xe_vram_binding - VRAM binding types
* @XE_VRAM_BINDING_TILE: general-purpose VRAM region bound to a tile
+ * @XE_VRAM_BINDING_PFMEM: VRAM region reserved solely for PF kernel allocations
*/
enum xe_vram_binding {
XE_VRAM_BINDING_TILE = 0,
+ XE_VRAM_BINDING_PFMEM,
};
/**
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v1 4/4] drm/xe/kunit: Add tests for PF-mem regions
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
` (2 preceding siblings ...)
2026-08-13 10:25 ` [PATCH v1 3/4] drm/xe/vram: Add initial support for PF-mem regions Piórkowski, Piotr
@ 2026-08-13 10:25 ` Piórkowski, Piotr
2026-08-13 10:37 ` sashiko-bot
2026-08-13 10:31 ` ✗ CI.checkpatch: warning for Introduce PF-mem VRAM regions Patchwork
` (3 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: Piórkowski, Piotr @ 2026-08-13 10:25 UTC (permalink / raw)
To: intel-xe; +Cc: Piotr Piórkowski
From: Piotr Piórkowski <piotr.piorkowski@intel.com>
Add coverage for PF-mem VRAM region metadata, bounds checking, and
full, partial, and missing CPU visibility.
Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
---
drivers/gpu/drm/xe/tests/xe_vram.c | 115 +++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_vram.c | 4 +
2 files changed, 119 insertions(+)
create mode 100644 drivers/gpu/drm/xe/tests/xe_vram.c
diff --git a/drivers/gpu/drm/xe/tests/xe_vram.c b/drivers/gpu/drm/xe/tests/xe_vram.c
new file mode 100644
index 000000000000..36a49fbef220
--- /dev/null
+++ b/drivers/gpu/drm/xe/tests/xe_vram.c
@@ -0,0 +1,115 @@
+// SPDX-License-Identifier: GPL-2.0 AND MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <kunit/test.h>
+
+#include "xe_kunit_helpers.h"
+#include "xe_pci_test.h"
+
+static int xe_vram_test_init(struct kunit *test)
+{
+ struct xe_pci_fake_data fake = {
+ .platform = XE_BATTLEMAGE,
+ .graphics_verx100 = 2001,
+ };
+
+ test->priv = &fake;
+ xe_kunit_helper_xe_device_test_init(test);
+
+ return 0;
+}
+
+static struct xe_vram_region pfmem_parent(struct xe_device *xe, u64 io_size)
+{
+ struct xe_vram_region parent = {
+ .xe = xe,
+ .id = 0,
+ .io_start = SZ_1G,
+ .io_size = io_size,
+ .dpa_base = SZ_2G,
+ .mapping = (__force void __iomem *)SZ_4G,
+ .usable_size = SZ_64M,
+ };
+
+ return parent;
+}
+
+static void pfmem_create(struct kunit *test)
+{
+ struct xe_device *xe = test->priv;
+ struct xe_vram_region parent = pfmem_parent(xe, SZ_64M);
+ struct xe_vram_region *vram;
+
+ vram = xe_vram_region_alloc_pfmem(xe, 0);
+ KUNIT_ASSERT_NOT_NULL(test, vram);
+ KUNIT_ASSERT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, SZ_4M, SZ_16M), 0);
+ KUNIT_EXPECT_EQ(test, vram->binding, XE_VRAM_BINDING_PFMEM);
+ KUNIT_EXPECT_EQ(test, vram->placement, (u32)XE_PL_VRAM0_PFMEM);
+ KUNIT_EXPECT_EQ(test, vram->id, (u8)0);
+ KUNIT_EXPECT_EQ(test, vram->actual_physical_size, (resource_size_t)SZ_16M);
+ KUNIT_EXPECT_EQ(test, vram->usable_size, (resource_size_t)SZ_16M);
+ KUNIT_EXPECT_EQ(test, vram->io_start, (resource_size_t)(SZ_1G + SZ_4M));
+ KUNIT_EXPECT_EQ(test, vram->io_size, (resource_size_t)SZ_16M);
+ KUNIT_EXPECT_EQ(test, vram->dpa_base, (resource_size_t)(SZ_2G + SZ_4M));
+ KUNIT_EXPECT_PTR_EQ(test, vram->mapping, parent.mapping + SZ_4M);
+}
+
+static void pfmem_small_bar(struct kunit *test)
+{
+ struct xe_device *xe = test->priv;
+ struct xe_vram_region parent = pfmem_parent(xe, SZ_8M);
+ struct xe_vram_region *vram;
+
+ vram = xe_vram_region_alloc_pfmem(xe, 0);
+ KUNIT_ASSERT_NOT_NULL(test, vram);
+ KUNIT_ASSERT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, SZ_4M, SZ_16M), 0);
+ KUNIT_EXPECT_EQ(test, vram->io_size, (resource_size_t)SZ_4M);
+
+ vram = xe_vram_region_alloc_pfmem(xe, 0);
+ KUNIT_ASSERT_NOT_NULL(test, vram);
+ KUNIT_EXPECT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, SZ_8M, SZ_16M), -EINVAL);
+}
+
+static void pfmem_invalid_range(struct kunit *test)
+{
+ struct xe_device *xe = test->priv;
+ struct xe_vram_region parent = pfmem_parent(xe, SZ_64M);
+ struct xe_vram_region *vram;
+
+ vram = xe_vram_region_alloc_pfmem(xe, 0);
+ KUNIT_ASSERT_NOT_NULL(test, vram);
+ KUNIT_EXPECT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, 0, 0), -EINVAL);
+ KUNIT_EXPECT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, SZ_64M + 1, SZ_4M), -EINVAL);
+ KUNIT_EXPECT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, SZ_64M - SZ_4M, SZ_8M),
+ -EINVAL);
+ KUNIT_EXPECT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, SZ_64M, SZ_4M), -EINVAL);
+}
+
+static void pfmem_no_io(struct kunit *test)
+{
+ struct xe_device *xe = test->priv;
+ struct xe_vram_region parent = pfmem_parent(xe, 0);
+ struct xe_vram_region *vram;
+
+ vram = xe_vram_region_alloc_pfmem(xe, 0);
+ KUNIT_ASSERT_NOT_NULL(test, vram);
+ KUNIT_EXPECT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, 0, SZ_4M), -EINVAL);
+}
+
+static struct kunit_case xe_vram_tests[] = {
+ KUNIT_CASE(pfmem_create),
+ KUNIT_CASE(pfmem_small_bar),
+ KUNIT_CASE(pfmem_invalid_range),
+ KUNIT_CASE(pfmem_no_io),
+ {}
+};
+
+static struct kunit_suite xe_vram_test_suite = {
+ .name = "xe_vram",
+ .test_cases = xe_vram_tests,
+ .init = xe_vram_test_init,
+};
+
+kunit_test_suite(xe_vram_test_suite);
diff --git a/drivers/gpu/drm/xe/xe_vram.c b/drivers/gpu/drm/xe/xe_vram.c
index 29c93e9aa5a7..b62b5645c14c 100644
--- a/drivers/gpu/drm/xe/xe_vram.c
+++ b/drivers/gpu/drm/xe/xe_vram.c
@@ -454,3 +454,7 @@ resource_size_t xe_vram_region_actual_physical_size(const struct xe_vram_region
return vram ? vram->actual_physical_size : 0;
}
EXPORT_SYMBOL_IF_KUNIT(xe_vram_region_actual_physical_size);
+
+#if IS_BUILTIN(CONFIG_DRM_XE_KUNIT_TEST)
+#include "tests/xe_vram.c"
+#endif
--
2.34.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* ✗ CI.checkpatch: warning for Introduce PF-mem VRAM regions
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
` (3 preceding siblings ...)
2026-08-13 10:25 ` [PATCH v1 4/4] drm/xe/kunit: Add tests " Piórkowski, Piotr
@ 2026-08-13 10:31 ` Patchwork
2026-08-13 10:33 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2026-08-13 10:31 UTC (permalink / raw)
To: Piórkowski, Piotr; +Cc: intel-xe
== Series Details ==
Series: Introduce PF-mem VRAM regions
URL : https://patchwork.freedesktop.org/series/172136/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
061140b9bc586ae7f40abc1249c97e1cc72d1b9d
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 4c639c97e6302b704f18efb89e25ab520f037910
Author: Piotr Piórkowski <piotr.piorkowski@intel.com>
Date: Thu Aug 13 12:25:11 2026 +0200
drm/xe/kunit: Add tests for PF-mem regions
Add coverage for PF-mem VRAM region metadata, bounds checking, and
full, partial, and missing CPU visibility.
Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
+ /mt/dim checkpatch ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98 drm-intel
771ebbe773ed drm/xe/vram: Add binding information to VRAM regions
c7e8599170b0 drm/xe/ttm: Add PF-mem VRAM placement types for TTM
-:82: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'i' - possible side-effects?
#82: FILE: drivers/gpu/drm/xe/xe_bo.h:90:
+#define xe_for_each_vram_pl(i) \
+ for (i = XE_PL_VRAM0; i <= XE_PL_VRAM1_PFMEM; i++)
total: 0 errors, 0 warnings, 1 checks, 152 lines checked
28f95be6859a drm/xe/vram: Add initial support for PF-mem regions
4c639c97e630 drm/xe/kunit: Add tests for PF-mem regions
-:15: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#15:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 122 lines checked
^ permalink raw reply [flat|nested] 12+ messages in thread
* ✓ CI.KUnit: success for Introduce PF-mem VRAM regions
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
` (4 preceding siblings ...)
2026-08-13 10:31 ` ✗ CI.checkpatch: warning for Introduce PF-mem VRAM regions Patchwork
@ 2026-08-13 10:33 ` Patchwork
2026-08-13 11:33 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-13 13:33 ` ✗ Xe.CI.FULL: failure " Patchwork
7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2026-08-13 10:33 UTC (permalink / raw)
To: Piórkowski, Piotr; +Cc: intel-xe
== Series Details ==
Series: Introduce PF-mem VRAM regions
URL : https://patchwork.freedesktop.org/series/172136/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[10:32:00] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:32:04] 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
[10:32:25] Starting KUnit Kernel (1/1)...
[10:32:25] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:32:25] ================= gpu_buddy (13 subtests) ==================
[10:32:25] [PASSED] gpu_test_buddy_alloc_limit
[10:32:25] [PASSED] gpu_test_buddy_alloc_optimistic
[10:32:25] [PASSED] gpu_test_buddy_alloc_pessimistic
[10:32:25] [PASSED] gpu_test_buddy_alloc_pathological
[10:32:25] [PASSED] gpu_test_buddy_alloc_contiguous
[10:32:25] [PASSED] gpu_test_buddy_alloc_clear
[10:32:25] [PASSED] gpu_test_buddy_alloc_range
[10:32:25] [PASSED] gpu_test_buddy_alloc_range_bias
[10:32:25] [PASSED] gpu_test_buddy_fragmentation_performance
[10:32:25] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[10:32:25] [PASSED] gpu_test_buddy_offset_aligned_allocation
[10:32:25] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[10:32:25] [PASSED] gpu_test_buddy_addr_to_block
[10:32:25] ==================== [PASSED] gpu_buddy ====================
[10:32:25] ============================================================
[10:32:25] Testing complete. Ran 13 tests: passed: 13
[10:32:25] Elapsed time: 24.963s total, 4.382s configuring, 20.115s building, 0.440s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[10:32:25] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:32:27] 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
[10:33:00] Starting KUnit Kernel (1/1)...
[10:33:00] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:33:01] ================== guc_buf (11 subtests) ===================
[10:33:01] [PASSED] test_smallest
[10:33:01] [PASSED] test_largest
[10:33:01] [PASSED] test_granular
[10:33:01] [PASSED] test_unique
[10:33:01] [PASSED] test_overlap
[10:33:01] [PASSED] test_reusable
[10:33:01] [PASSED] test_too_big
[10:33:01] [PASSED] test_flush
[10:33:01] [PASSED] test_lookup
[10:33:01] [PASSED] test_data
[10:33:01] [PASSED] test_class
[10:33:01] ===================== [PASSED] guc_buf =====================
[10:33:01] =================== guc_dbm (7 subtests) ===================
[10:33:01] [PASSED] test_empty
[10:33:01] [PASSED] test_default
[10:33:01] ======================== test_size ========================
[10:33:01] [PASSED] 4
[10:33:01] [PASSED] 8
[10:33:01] [PASSED] 32
[10:33:01] [PASSED] 256
[10:33:01] ==================== [PASSED] test_size ====================
[10:33:01] ======================= test_reuse ========================
[10:33:01] [PASSED] 4
[10:33:01] [PASSED] 8
[10:33:01] [PASSED] 32
[10:33:01] [PASSED] 256
[10:33:01] =================== [PASSED] test_reuse ====================
[10:33:01] =================== test_range_overlap ====================
[10:33:01] [PASSED] 4
[10:33:01] [PASSED] 8
[10:33:01] [PASSED] 32
[10:33:01] [PASSED] 256
[10:33:01] =============== [PASSED] test_range_overlap ================
[10:33:01] =================== test_range_compact ====================
[10:33:01] [PASSED] 4
[10:33:01] [PASSED] 8
[10:33:01] [PASSED] 32
[10:33:01] [PASSED] 256
[10:33:01] =============== [PASSED] test_range_compact ================
[10:33:01] ==================== test_range_spare =====================
[10:33:01] [PASSED] 4
[10:33:01] [PASSED] 8
[10:33:01] [PASSED] 32
[10:33:01] [PASSED] 256
[10:33:01] ================ [PASSED] test_range_spare =================
[10:33:01] ===================== [PASSED] guc_dbm =====================
[10:33:01] =================== guc_idm (6 subtests) ===================
[10:33:01] [PASSED] bad_init
[10:33:01] [PASSED] no_init
[10:33:01] [PASSED] init_fini
[10:33:01] [PASSED] check_used
[10:33:01] [PASSED] check_quota
[10:33:01] [PASSED] check_all
[10:33:01] ===================== [PASSED] guc_idm =====================
[10:33:01] =============== guc_klv_helpers (9 subtests) ===============
[10:33:01] [PASSED] test_count
[10:33:01] [PASSED] test_encode_u32
[10:33:01] [PASSED] test_encode_u64
[10:33:01] [PASSED] test_encode_string
[10:33:01] [PASSED] test_encode_object_raw
[10:33:01] [PASSED] test_encode_object_klv
[10:33:01] [PASSED] test_encode_object_nested
[10:33:01] [PASSED] test_encode_object_basic
[10:33:01] [PASSED] test_print
[10:33:01] ================= [PASSED] guc_klv_helpers =================
[10:33:01] =================== xe_vram (4 subtests) ===================
[10:33:01] [PASSED] pfmem_create
[10:33:01] [PASSED] pfmem_small_bar
[10:33:01] [PASSED] pfmem_invalid_range
[10:33:01] [PASSED] pfmem_no_io
[10:33:01] ===================== [PASSED] xe_vram =====================
[10:33:01] ================== no_relay (3 subtests) ===================
[10:33:01] [PASSED] xe_drops_guc2pf_if_not_ready
[10:33:01] [PASSED] xe_drops_guc2vf_if_not_ready
[10:33:01] [PASSED] xe_rejects_send_if_not_ready
[10:33:01] ==================== [PASSED] no_relay =====================
[10:33:01] ================== pf_relay (14 subtests) ==================
[10:33:01] [PASSED] pf_rejects_guc2pf_too_short
[10:33:01] [PASSED] pf_rejects_guc2pf_too_long
[10:33:01] [PASSED] pf_rejects_guc2pf_no_payload
[10:33:01] [PASSED] pf_fails_no_payload
[10:33:01] [PASSED] pf_fails_bad_origin
[10:33:01] [PASSED] pf_fails_bad_type
[10:33:01] [PASSED] pf_txn_reports_error
[10:33:01] [PASSED] pf_txn_sends_pf2guc
[10:33:01] [PASSED] pf_sends_pf2guc
[10:33:01] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:33:01] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:33:01] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:33:01] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:33:01] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:33:01] ==================== [PASSED] pf_relay =====================
[10:33:01] ================== vf_relay (3 subtests) ===================
[10:33:01] [PASSED] vf_rejects_guc2vf_too_short
[10:33:01] [PASSED] vf_rejects_guc2vf_too_long
[10:33:01] [PASSED] vf_rejects_guc2vf_no_payload
[10:33:01] ==================== [PASSED] vf_relay =====================
[10:33:01] ================ pf_gt_config (9 subtests) =================
[10:33:01] [PASSED] fair_contexts_1vf
[10:33:01] [PASSED] fair_doorbells_1vf
[10:33:01] [PASSED] fair_ggtt_1vf
[10:33:01] ====================== fair_vram_1vf ======================
[10:33:01] [PASSED] 3.50 GiB
[10:33:01] [PASSED] 11.5 GiB
[10:33:01] [PASSED] 15.5 GiB
[10:33:01] [PASSED] 31.5 GiB
[10:33:01] [PASSED] 63.5 GiB
[10:33:01] [PASSED] 1.91 GiB
[10:33:01] ================== [PASSED] fair_vram_1vf ==================
[10:33:01] ================ fair_vram_1vf_admin_only =================
[10:33:01] [PASSED] 3.50 GiB
[10:33:01] [PASSED] 11.5 GiB
[10:33:01] [PASSED] 15.5 GiB
[10:33:01] [PASSED] 31.5 GiB
[10:33:01] [PASSED] 63.5 GiB
[10:33:01] [PASSED] 1.91 GiB
[10:33:01] ============ [PASSED] fair_vram_1vf_admin_only =============
[10:33:01] ====================== fair_contexts ======================
[10:33:01] [PASSED] 1 VF
[10:33:01] [PASSED] 2 VFs
[10:33:01] [PASSED] 3 VFs
[10:33:01] [PASSED] 4 VFs
[10:33:01] [PASSED] 5 VFs
[10:33:01] [PASSED] 6 VFs
[10:33:01] [PASSED] 7 VFs
[10:33:01] [PASSED] 8 VFs
[10:33:01] [PASSED] 9 VFs
[10:33:01] [PASSED] 10 VFs
[10:33:01] [PASSED] 11 VFs
[10:33:01] [PASSED] 12 VFs
[10:33:01] [PASSED] 13 VFs
[10:33:01] [PASSED] 14 VFs
[10:33:01] [PASSED] 15 VFs
[10:33:01] [PASSED] 16 VFs
[10:33:01] [PASSED] 17 VFs
[10:33:01] [PASSED] 18 VFs
[10:33:01] [PASSED] 19 VFs
[10:33:01] [PASSED] 20 VFs
[10:33:01] [PASSED] 21 VFs
[10:33:01] [PASSED] 22 VFs
[10:33:01] [PASSED] 23 VFs
[10:33:01] [PASSED] 24 VFs
[10:33:01] [PASSED] 25 VFs
[10:33:01] [PASSED] 26 VFs
[10:33:01] [PASSED] 27 VFs
[10:33:01] [PASSED] 28 VFs
[10:33:01] [PASSED] 29 VFs
[10:33:01] [PASSED] 30 VFs
[10:33:01] [PASSED] 31 VFs
[10:33:01] [PASSED] 32 VFs
[10:33:01] [PASSED] 33 VFs
[10:33:01] [PASSED] 34 VFs
[10:33:01] [PASSED] 35 VFs
[10:33:01] [PASSED] 36 VFs
[10:33:01] [PASSED] 37 VFs
[10:33:01] [PASSED] 38 VFs
[10:33:01] [PASSED] 39 VFs
[10:33:01] [PASSED] 40 VFs
[10:33:01] [PASSED] 41 VFs
[10:33:01] [PASSED] 42 VFs
[10:33:01] [PASSED] 43 VFs
[10:33:01] [PASSED] 44 VFs
[10:33:01] [PASSED] 45 VFs
[10:33:01] [PASSED] 46 VFs
[10:33:01] [PASSED] 47 VFs
[10:33:01] [PASSED] 48 VFs
[10:33:01] [PASSED] 49 VFs
[10:33:01] [PASSED] 50 VFs
[10:33:01] [PASSED] 51 VFs
[10:33:01] [PASSED] 52 VFs
[10:33:01] [PASSED] 53 VFs
[10:33:01] [PASSED] 54 VFs
[10:33:01] [PASSED] 55 VFs
[10:33:01] [PASSED] 56 VFs
[10:33:01] [PASSED] 57 VFs
[10:33:01] [PASSED] 58 VFs
[10:33:01] [PASSED] 59 VFs
[10:33:01] [PASSED] 60 VFs
[10:33:01] [PASSED] 61 VFs
[10:33:01] [PASSED] 62 VFs
[10:33:01] [PASSED] 63 VFs
[10:33:01] ================== [PASSED] fair_contexts ==================
[10:33:01] ===================== fair_doorbells ======================
[10:33:01] [PASSED] 1 VF
[10:33:01] [PASSED] 2 VFs
[10:33:01] [PASSED] 3 VFs
[10:33:01] [PASSED] 4 VFs
[10:33:01] [PASSED] 5 VFs
[10:33:01] [PASSED] 6 VFs
[10:33:01] [PASSED] 7 VFs
[10:33:01] [PASSED] 8 VFs
[10:33:01] [PASSED] 9 VFs
[10:33:01] [PASSED] 10 VFs
[10:33:01] [PASSED] 11 VFs
[10:33:01] [PASSED] 12 VFs
[10:33:01] [PASSED] 13 VFs
[10:33:01] [PASSED] 14 VFs
[10:33:01] [PASSED] 15 VFs
[10:33:01] [PASSED] 16 VFs
[10:33:01] [PASSED] 17 VFs
[10:33:01] [PASSED] 18 VFs
[10:33:01] [PASSED] 19 VFs
[10:33:01] [PASSED] 20 VFs
[10:33:01] [PASSED] 21 VFs
[10:33:01] [PASSED] 22 VFs
[10:33:01] [PASSED] 23 VFs
[10:33:01] [PASSED] 24 VFs
[10:33:01] [PASSED] 25 VFs
[10:33:01] [PASSED] 26 VFs
[10:33:01] [PASSED] 27 VFs
[10:33:01] [PASSED] 28 VFs
[10:33:01] [PASSED] 29 VFs
[10:33:01] [PASSED] 30 VFs
[10:33:01] [PASSED] 31 VFs
[10:33:01] [PASSED] 32 VFs
[10:33:01] [PASSED] 33 VFs
[10:33:01] [PASSED] 34 VFs
[10:33:01] [PASSED] 35 VFs
[10:33:01] [PASSED] 36 VFs
[10:33:01] [PASSED] 37 VFs
[10:33:01] [PASSED] 38 VFs
[10:33:01] [PASSED] 39 VFs
[10:33:01] [PASSED] 40 VFs
[10:33:01] [PASSED] 41 VFs
[10:33:01] [PASSED] 42 VFs
[10:33:01] [PASSED] 43 VFs
[10:33:01] [PASSED] 44 VFs
[10:33:01] [PASSED] 45 VFs
[10:33:01] [PASSED] 46 VFs
[10:33:01] [PASSED] 47 VFs
[10:33:01] [PASSED] 48 VFs
[10:33:01] [PASSED] 49 VFs
[10:33:01] [PASSED] 50 VFs
[10:33:01] [PASSED] 51 VFs
[10:33:01] [PASSED] 52 VFs
[10:33:01] [PASSED] 53 VFs
[10:33:01] [PASSED] 54 VFs
[10:33:01] [PASSED] 55 VFs
[10:33:01] [PASSED] 56 VFs
[10:33:01] [PASSED] 57 VFs
[10:33:01] [PASSED] 58 VFs
[10:33:01] [PASSED] 59 VFs
[10:33:01] [PASSED] 60 VFs
[10:33:01] [PASSED] 61 VFs
[10:33:01] [PASSED] 62 VFs
[10:33:01] [PASSED] 63 VFs
[10:33:01] ================= [PASSED] fair_doorbells ==================
[10:33:01] ======================== fair_ggtt ========================
[10:33:01] [PASSED] 1 VF
[10:33:01] [PASSED] 2 VFs
[10:33:01] [PASSED] 3 VFs
[10:33:01] [PASSED] 4 VFs
[10:33:01] [PASSED] 5 VFs
[10:33:01] [PASSED] 6 VFs
[10:33:01] [PASSED] 7 VFs
[10:33:01] [PASSED] 8 VFs
[10:33:01] [PASSED] 9 VFs
[10:33:01] [PASSED] 10 VFs
[10:33:01] [PASSED] 11 VFs
[10:33:01] [PASSED] 12 VFs
[10:33:01] [PASSED] 13 VFs
[10:33:01] [PASSED] 14 VFs
[10:33:01] [PASSED] 15 VFs
[10:33:01] [PASSED] 16 VFs
[10:33:01] [PASSED] 17 VFs
[10:33:01] [PASSED] 18 VFs
[10:33:01] [PASSED] 19 VFs
[10:33:01] [PASSED] 20 VFs
[10:33:01] [PASSED] 21 VFs
[10:33:01] [PASSED] 22 VFs
[10:33:01] [PASSED] 23 VFs
[10:33:01] [PASSED] 24 VFs
[10:33:01] [PASSED] 25 VFs
[10:33:01] [PASSED] 26 VFs
[10:33:01] [PASSED] 27 VFs
[10:33:01] [PASSED] 28 VFs
[10:33:01] [PASSED] 29 VFs
[10:33:01] [PASSED] 30 VFs
[10:33:01] [PASSED] 31 VFs
[10:33:01] [PASSED] 32 VFs
[10:33:01] [PASSED] 33 VFs
[10:33:01] [PASSED] 34 VFs
[10:33:01] [PASSED] 35 VFs
[10:33:01] [PASSED] 36 VFs
[10:33:01] [PASSED] 37 VFs
[10:33:01] [PASSED] 38 VFs
[10:33:01] [PASSED] 39 VFs
[10:33:01] [PASSED] 40 VFs
[10:33:01] [PASSED] 41 VFs
[10:33:01] [PASSED] 42 VFs
[10:33:01] [PASSED] 43 VFs
[10:33:01] [PASSED] 44 VFs
[10:33:01] [PASSED] 45 VFs
[10:33:01] [PASSED] 46 VFs
[10:33:01] [PASSED] 47 VFs
[10:33:01] [PASSED] 48 VFs
[10:33:01] [PASSED] 49 VFs
[10:33:01] [PASSED] 50 VFs
[10:33:01] [PASSED] 51 VFs
[10:33:01] [PASSED] 52 VFs
[10:33:01] [PASSED] 53 VFs
[10:33:01] [PASSED] 54 VFs
[10:33:01] [PASSED] 55 VFs
[10:33:01] [PASSED] 56 VFs
[10:33:01] [PASSED] 57 VFs
[10:33:01] [PASSED] 58 VFs
[10:33:01] [PASSED] 59 VFs
[10:33:01] [PASSED] 60 VFs
[10:33:01] [PASSED] 61 VFs
[10:33:01] [PASSED] 62 VFs
[10:33:01] [PASSED] 63 VFs
[10:33:01] ==================== [PASSED] fair_ggtt ====================
[10:33:01] ======================== fair_vram ========================
[10:33:01] [PASSED] 1 VF
[10:33:01] [PASSED] 2 VFs
[10:33:01] [PASSED] 3 VFs
[10:33:01] [PASSED] 4 VFs
[10:33:01] [PASSED] 5 VFs
[10:33:01] [PASSED] 6 VFs
[10:33:01] [PASSED] 7 VFs
[10:33:01] [PASSED] 8 VFs
[10:33:01] [PASSED] 9 VFs
[10:33:01] [PASSED] 10 VFs
[10:33:01] [PASSED] 11 VFs
[10:33:01] [PASSED] 12 VFs
[10:33:01] [PASSED] 13 VFs
[10:33:01] [PASSED] 14 VFs
[10:33:01] [PASSED] 15 VFs
[10:33:01] [PASSED] 16 VFs
[10:33:01] [PASSED] 17 VFs
[10:33:01] [PASSED] 18 VFs
[10:33:01] [PASSED] 19 VFs
[10:33:01] [PASSED] 20 VFs
[10:33:01] [PASSED] 21 VFs
[10:33:01] [PASSED] 22 VFs
[10:33:01] [PASSED] 23 VFs
[10:33:01] [PASSED] 24 VFs
[10:33:01] [PASSED] 25 VFs
[10:33:01] [PASSED] 26 VFs
[10:33:01] [PASSED] 27 VFs
[10:33:01] [PASSED] 28 VFs
[10:33:01] [PASSED] 29 VFs
[10:33:01] [PASSED] 30 VFs
[10:33:01] [PASSED] 31 VFs
[10:33:01] [PASSED] 32 VFs
[10:33:01] [PASSED] 33 VFs
[10:33:01] [PASSED] 34 VFs
[10:33:01] [PASSED] 35 VFs
[10:33:01] [PASSED] 36 VFs
[10:33:01] [PASSED] 37 VFs
[10:33:01] [PASSED] 38 VFs
[10:33:01] [PASSED] 39 VFs
[10:33:01] [PASSED] 40 VFs
[10:33:01] [PASSED] 41 VFs
[10:33:01] [PASSED] 42 VFs
[10:33:01] [PASSED] 43 VFs
[10:33:01] [PASSED] 44 VFs
[10:33:01] [PASSED] 45 VFs
[10:33:01] [PASSED] 46 VFs
[10:33:01] [PASSED] 47 VFs
[10:33:01] [PASSED] 48 VFs
[10:33:01] [PASSED] 49 VFs
[10:33:01] [PASSED] 50 VFs
[10:33:01] [PASSED] 51 VFs
[10:33:01] [PASSED] 52 VFs
[10:33:01] [PASSED] 53 VFs
[10:33:01] [PASSED] 54 VFs
[10:33:01] [PASSED] 55 VFs
[10:33:01] [PASSED] 56 VFs
[10:33:01] [PASSED] 57 VFs
[10:33:01] [PASSED] 58 VFs
[10:33:01] [PASSED] 59 VFs
[10:33:01] [PASSED] 60 VFs
[10:33:01] [PASSED] 61 VFs
[10:33:01] [PASSED] 62 VFs
[10:33:01] [PASSED] 63 VFs
[10:33:01] ==================== [PASSED] fair_vram ====================
[10:33:01] ================== [PASSED] pf_gt_config ===================
[10:33:01] ===================== lmtt (1 subtest) =====================
[10:33:01] ======================== test_ops =========================
[10:33:01] [PASSED] 2-level
[10:33:01] [PASSED] multi-level
[10:33:01] ==================== [PASSED] test_ops =====================
[10:33:01] ====================== [PASSED] lmtt =======================
[10:33:01] ================= sriov_packet (1 subtest) =================
[10:33:01] [PASSED] test_descriptor_init
[10:33:01] ================== [PASSED] sriov_packet ===================
[10:33:01] ================= pf_service (11 subtests) =================
[10:33:01] [PASSED] pf_negotiate_any
[10:33:01] [PASSED] pf_negotiate_base_match
[10:33:01] [PASSED] pf_negotiate_base_newer
[10:33:01] [PASSED] pf_negotiate_base_next
[10:33:01] [SKIPPED] pf_negotiate_base_older (no older minor)
[10:33:01] [PASSED] pf_negotiate_base_prev
[10:33:01] [PASSED] pf_negotiate_latest_match
[10:33:01] [PASSED] pf_negotiate_latest_newer
[10:33:01] [PASSED] pf_negotiate_latest_next
[10:33:01] [SKIPPED] pf_negotiate_latest_older (no older minor)
[10:33:01] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[10:33:01] =================== [PASSED] pf_service ====================
[10:33:01] ================= xe_guc_g2g (2 subtests) ==================
[10:33:01] ============== xe_live_guc_g2g_kunit_default ==============
[10:33:01] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[10:33:01] ============== xe_live_guc_g2g_kunit_allmem ===============
[10:33:01] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[10:33:01] =================== [SKIPPED] xe_guc_g2g ===================
[10:33:01] =================== xe_mocs (2 subtests) ===================
[10:33:01] ================ xe_live_mocs_kernel_kunit ================
[10:33:01] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[10:33:01] ================ xe_live_mocs_reset_kunit =================
[10:33:01] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[10:33:01] ==================== [SKIPPED] xe_mocs =====================
[10:33:01] ================= xe_migrate (2 subtests) ==================
[10:33:01] ================= xe_migrate_sanity_kunit =================
[10:33:01] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[10:33:01] ================== xe_validate_ccs_kunit ==================
[10:33:01] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[10:33:01] =================== [SKIPPED] xe_migrate ===================
[10:33:01] ================== xe_dma_buf (1 subtest) ==================
[10:33:01] ==================== xe_dma_buf_kunit =====================
[10:33:01] ================ [SKIPPED] xe_dma_buf_kunit ================
[10:33:01] =================== [SKIPPED] xe_dma_buf ===================
[10:33:01] ================= xe_bo_shrink (1 subtest) =================
[10:33:01] =================== xe_bo_shrink_kunit ====================
[10:33:01] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[10:33:01] ================== [SKIPPED] xe_bo_shrink ==================
[10:33:01] ==================== xe_bo (2 subtests) ====================
[10:33:01] ================== xe_ccs_migrate_kunit ===================
[10:33:01] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[10:33:01] ==================== xe_bo_evict_kunit ====================
[10:33:01] =============== [SKIPPED] xe_bo_evict_kunit ================
[10:33:01] ===================== [SKIPPED] xe_bo ======================
[10:33:01] ==================== args (13 subtests) ====================
[10:33:01] [PASSED] count_args_test
[10:33:01] [PASSED] call_args_example
[10:33:01] [PASSED] call_args_test
[10:33:01] [PASSED] drop_first_arg_example
[10:33:01] [PASSED] drop_first_arg_test
[10:33:01] [PASSED] first_arg_example
[10:33:01] [PASSED] first_arg_test
[10:33:01] [PASSED] last_arg_example
[10:33:01] [PASSED] last_arg_test
[10:33:01] [PASSED] pick_arg_example
[10:33:01] [PASSED] if_args_example
[10:33:01] [PASSED] if_args_test
[10:33:01] [PASSED] sep_comma_example
[10:33:01] ====================== [PASSED] args =======================
[10:33:01] =================== xe_pci (3 subtests) ====================
[10:33:01] ==================== check_graphics_ip ====================
[10:33:01] [PASSED] 12.00 Xe_LP
[10:33:01] [PASSED] 12.10 Xe_LP+
[10:33:01] [PASSED] 12.55 Xe_HPG
[10:33:01] [PASSED] 12.60 Xe_HPC
[10:33:01] [PASSED] 12.70 Xe_LPG
[10:33:01] [PASSED] 12.71 Xe_LPG
[10:33:01] [PASSED] 12.74 Xe_LPG+
[10:33:01] [PASSED] 20.01 Xe2_HPG
[10:33:01] [PASSED] 20.02 Xe2_HPG
[10:33:01] [PASSED] 20.04 Xe2_LPG
[10:33:01] [PASSED] 30.00 Xe3_LPG
[10:33:01] [PASSED] 30.01 Xe3_LPG
[10:33:01] [PASSED] 30.03 Xe3_LPG
[10:33:01] [PASSED] 30.04 Xe3_LPG
[10:33:01] [PASSED] 30.05 Xe3_LPG
[10:33:01] [PASSED] 35.10 Xe3p_LPG
[10:33:01] [PASSED] 35.11 Xe3p_XPC
[10:33:01] ================ [PASSED] check_graphics_ip ================
[10:33:01] ===================== check_media_ip ======================
[10:33:01] [PASSED] 12.00 Xe_M
[10:33:01] [PASSED] 12.55 Xe_HPM
[10:33:01] [PASSED] 13.00 Xe_LPM+
[10:33:01] [PASSED] 13.01 Xe2_HPM
[10:33:01] [PASSED] 20.00 Xe2_LPM
[10:33:01] [PASSED] 30.00 Xe3_LPM
[10:33:01] [PASSED] 30.02 Xe3_LPM
[10:33:01] [PASSED] 35.00 Xe3p_LPM
[10:33:01] [PASSED] 35.03 Xe3p_HPM
[10:33:01] ================= [PASSED] check_media_ip ==================
[10:33:01] =================== check_platform_desc ===================
[10:33:01] [PASSED] 0x9A60 (TIGERLAKE)
[10:33:01] [PASSED] 0x9A68 (TIGERLAKE)
[10:33:01] [PASSED] 0x9A70 (TIGERLAKE)
[10:33:01] [PASSED] 0x9A40 (TIGERLAKE)
[10:33:01] [PASSED] 0x9A49 (TIGERLAKE)
[10:33:01] [PASSED] 0x9A59 (TIGERLAKE)
[10:33:01] [PASSED] 0x9A78 (TIGERLAKE)
[10:33:01] [PASSED] 0x9AC0 (TIGERLAKE)
[10:33:01] [PASSED] 0x9AC9 (TIGERLAKE)
[10:33:01] [PASSED] 0x9AD9 (TIGERLAKE)
[10:33:01] [PASSED] 0x9AF8 (TIGERLAKE)
[10:33:01] [PASSED] 0x4C80 (ROCKETLAKE)
[10:33:01] [PASSED] 0x4C8A (ROCKETLAKE)
[10:33:01] [PASSED] 0x4C8B (ROCKETLAKE)
[10:33:01] [PASSED] 0x4C8C (ROCKETLAKE)
[10:33:01] [PASSED] 0x4C90 (ROCKETLAKE)
[10:33:01] [PASSED] 0x4C9A (ROCKETLAKE)
[10:33:01] [PASSED] 0x4680 (ALDERLAKE_S)
[10:33:01] [PASSED] 0x4682 (ALDERLAKE_S)
[10:33:01] [PASSED] 0x4688 (ALDERLAKE_S)
[10:33:01] [PASSED] 0x468A (ALDERLAKE_S)
[10:33:01] [PASSED] 0x468B (ALDERLAKE_S)
[10:33:01] [PASSED] 0x4690 (ALDERLAKE_S)
[10:33:01] [PASSED] 0x4692 (ALDERLAKE_S)
[10:33:01] [PASSED] 0x4693 (ALDERLAKE_S)
[10:33:01] [PASSED] 0x46A0 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46A1 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46A2 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46A3 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46A6 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46A8 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46AA (ALDERLAKE_P)
[10:33:01] [PASSED] 0x462A (ALDERLAKE_P)
[10:33:01] [PASSED] 0x4626 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x4628 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46B0 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46B1 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46B2 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46B3 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46C0 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46C1 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46C2 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46C3 (ALDERLAKE_P)
[10:33:01] [PASSED] 0x46D0 (ALDERLAKE_N)
[10:33:01] [PASSED] 0x46D1 (ALDERLAKE_N)
[10:33:01] [PASSED] 0x46D2 (ALDERLAKE_N)
[10:33:01] [PASSED] 0x46D3 (ALDERLAKE_N)
[10:33:01] [PASSED] 0x46D4 (ALDERLAKE_N)
[10:33:01] [PASSED] 0xA721 (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7A1 (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7A9 (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7AC (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7AD (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA720 (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7A0 (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7A8 (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7AA (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA7AB (ALDERLAKE_P)
[10:33:01] [PASSED] 0xA780 (ALDERLAKE_S)
[10:33:01] [PASSED] 0xA781 (ALDERLAKE_S)
[10:33:01] [PASSED] 0xA782 (ALDERLAKE_S)
[10:33:01] [PASSED] 0xA783 (ALDERLAKE_S)
[10:33:01] [PASSED] 0xA788 (ALDERLAKE_S)
[10:33:01] [PASSED] 0xA789 (ALDERLAKE_S)
[10:33:01] [PASSED] 0xA78A (ALDERLAKE_S)
[10:33:01] [PASSED] 0xA78B (ALDERLAKE_S)
[10:33:01] [PASSED] 0x4905 (DG1)
[10:33:01] [PASSED] 0x4906 (DG1)
[10:33:01] [PASSED] 0x4907 (DG1)
[10:33:01] [PASSED] 0x4908 (DG1)
[10:33:01] [PASSED] 0x4909 (DG1)
[10:33:01] [PASSED] 0x56C0 (DG2)
[10:33:01] [PASSED] 0x56C2 (DG2)
[10:33:01] [PASSED] 0x56C1 (DG2)
[10:33:01] [PASSED] 0x7D51 (METEORLAKE)
[10:33:01] [PASSED] 0x7DD1 (METEORLAKE)
[10:33:01] [PASSED] 0x7D41 (METEORLAKE)
[10:33:01] [PASSED] 0x7D67 (METEORLAKE)
[10:33:01] [PASSED] 0xB640 (METEORLAKE)
[10:33:01] [PASSED] 0x56A0 (DG2)
[10:33:01] [PASSED] 0x56A1 (DG2)
[10:33:01] [PASSED] 0x56A2 (DG2)
[10:33:01] [PASSED] 0x56BE (DG2)
[10:33:01] [PASSED] 0x56BF (DG2)
[10:33:01] [PASSED] 0x5690 (DG2)
[10:33:01] [PASSED] 0x5691 (DG2)
[10:33:01] [PASSED] 0x5692 (DG2)
[10:33:01] [PASSED] 0x56A5 (DG2)
[10:33:01] [PASSED] 0x56A6 (DG2)
[10:33:01] [PASSED] 0x56B0 (DG2)
[10:33:01] [PASSED] 0x56B1 (DG2)
[10:33:01] [PASSED] 0x56BA (DG2)
[10:33:01] [PASSED] 0x56BB (DG2)
[10:33:01] [PASSED] 0x56BC (DG2)
[10:33:01] [PASSED] 0x56BD (DG2)
[10:33:01] [PASSED] 0x5693 (DG2)
[10:33:01] [PASSED] 0x5694 (DG2)
[10:33:01] [PASSED] 0x5695 (DG2)
[10:33:01] [PASSED] 0x56A3 (DG2)
[10:33:01] [PASSED] 0x56A4 (DG2)
[10:33:01] [PASSED] 0x56B2 (DG2)
[10:33:01] [PASSED] 0x56B3 (DG2)
[10:33:01] [PASSED] 0x5696 (DG2)
[10:33:01] [PASSED] 0x5697 (DG2)
[10:33:01] [PASSED] 0xB69 (PVC)
[10:33:01] [PASSED] 0xB6E (PVC)
[10:33:01] [PASSED] 0xBD4 (PVC)
[10:33:01] [PASSED] 0xBD5 (PVC)
[10:33:01] [PASSED] 0xBD6 (PVC)
[10:33:01] [PASSED] 0xBD7 (PVC)
[10:33:01] [PASSED] 0xBD8 (PVC)
[10:33:01] [PASSED] 0xBD9 (PVC)
[10:33:01] [PASSED] 0xBDA (PVC)
[10:33:01] [PASSED] 0xBDB (PVC)
[10:33:01] [PASSED] 0xBE0 (PVC)
[10:33:01] [PASSED] 0xBE1 (PVC)
[10:33:01] [PASSED] 0xBE5 (PVC)
[10:33:01] [PASSED] 0x7D40 (METEORLAKE)
[10:33:01] [PASSED] 0x7D45 (METEORLAKE)
[10:33:01] [PASSED] 0x7D55 (METEORLAKE)
[10:33:01] [PASSED] 0x7D60 (METEORLAKE)
[10:33:01] [PASSED] 0x7DD5 (METEORLAKE)
[10:33:01] [PASSED] 0x6420 (LUNARLAKE)
[10:33:01] [PASSED] 0x64A0 (LUNARLAKE)
[10:33:01] [PASSED] 0x64B0 (LUNARLAKE)
[10:33:01] [PASSED] 0xE202 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE209 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE20B (BATTLEMAGE)
[10:33:01] [PASSED] 0xE20C (BATTLEMAGE)
[10:33:01] [PASSED] 0xE20D (BATTLEMAGE)
[10:33:01] [PASSED] 0xE210 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE211 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE212 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE216 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE220 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE221 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE222 (BATTLEMAGE)
[10:33:01] [PASSED] 0xE223 (BATTLEMAGE)
[10:33:01] [PASSED] 0xB080 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB081 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB082 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB083 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB084 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB085 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB086 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB087 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB08F (PANTHERLAKE)
[10:33:01] [PASSED] 0xB090 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB0A0 (PANTHERLAKE)
[10:33:01] [PASSED] 0xB0B0 (PANTHERLAKE)
[10:33:01] [PASSED] 0xFD80 (PANTHERLAKE)
[10:33:01] [PASSED] 0xFD81 (PANTHERLAKE)
[10:33:01] [PASSED] 0xD740 (NOVALAKE_S)
[10:33:01] [PASSED] 0xD741 (NOVALAKE_S)
[10:33:01] [PASSED] 0xD742 (NOVALAKE_S)
[10:33:01] [PASSED] 0xD743 (NOVALAKE_S)
[10:33:01] [PASSED] 0xD745 (NOVALAKE_S)
[10:33:01] [PASSED] 0xD74A (NOVALAKE_S)
[10:33:01] [PASSED] 0xD74B (NOVALAKE_S)
[10:33:01] [PASSED] 0x674C (CRESCENTISLAND)
[10:33:01] [PASSED] 0x674D (CRESCENTISLAND)
[10:33:01] [PASSED] 0x674E (CRESCENTISLAND)
[10:33:01] [PASSED] 0x674F (CRESCENTISLAND)
[10:33:01] [PASSED] 0x6750 (CRESCENTISLAND)
[10:33:01] [PASSED] 0xD750 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD751 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD752 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD753 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD754 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD755 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD756 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD757 (NOVALAKE_P)
[10:33:01] [PASSED] 0xD75F (NOVALAKE_P)
[10:33:01] =============== [PASSED] check_platform_desc ===============
[10:33:01] ===================== [PASSED] xe_pci ======================
[10:33:01] ============= xe_rtp_tables_test (5 subtests) ==============
[10:33:01] ================== xe_rtp_table_gt_test ===================
[10:33:01] [PASSED] gt_was/14011060649
[10:33:01] [PASSED] gt_was/14011059788
[10:33:01] [PASSED] gt_was/14015795083
[10:33:01] [PASSED] gt_was/16021867713
[10:33:01] [PASSED] gt_was/14019449301
[10:33:01] [PASSED] gt_was/16028005424
[10:33:01] [PASSED] gt_was/14026578760
[10:33:01] [PASSED] gt_was/1409420604
[10:33:01] [PASSED] gt_was/1408615072
[10:33:01] [PASSED] gt_was/22010523718
[10:33:01] [PASSED] gt_was/14011006942
[10:33:01] [PASSED] gt_was/14014830051
[10:33:01] [PASSED] gt_was/18018781329
[10:33:01] [PASSED] gt_was/1509235366
[10:33:01] [PASSED] gt_was/18018781329
[10:33:01] [PASSED] gt_was/16016694945
[10:33:01] [PASSED] gt_was/14018575942
[10:33:01] [PASSED] gt_was/22016670082
[10:33:01] [PASSED] gt_was/22016670082
[10:33:01] [PASSED] gt_was/14017421178
[10:33:01] [PASSED] gt_was/16025250150
[10:33:01] [PASSED] gt_was/14021871409
[10:33:01] [PASSED] gt_was/16021865536
[10:33:01] [PASSED] gt_was/14021486841
[10:33:01] [PASSED] gt_was/14025160223
[10:33:01] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[10:33:01] [PASSED] gt_was/14025635424
[10:33:01] [PASSED] gt_was/16028005424
[10:33:01] ============== [PASSED] xe_rtp_table_gt_test ===============
[10:33:01] ================== xe_rtp_table_gt_test ===================
[10:33:01] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[10:33:01] [PASSED] gt_tunings/Tuning: 32B Access Enable
[10:33:01] [PASSED] gt_tunings/Tuning: L3 cache
[10:33:01] [PASSED] gt_tunings/Tuning: L3 cache - media
[10:33:01] [PASSED] gt_tunings/Tuning: Compression Overfetch
[10:33:01] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[10:33:01] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[10:33:01] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[10:33:01] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[10:33:01] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[10:33:01] [PASSED] gt_tunings/Tuning: Stateless compression control
[10:33:01] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[10:33:01] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[10:33:01] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[10:33:01] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[10:33:01] ============== [PASSED] xe_rtp_table_gt_test ===============
[10:33:01] ================== xe_rtp_table_oob_test ==================
[10:33:01] [PASSED] oob_was/1607983814
[10:33:01] [PASSED] oob_was/16010904313
[10:33:01] [PASSED] oob_was/18022495364
[10:33:01] [PASSED] oob_was/22012773006
[10:33:01] [PASSED] oob_was/14014475959
[10:33:01] [PASSED] oob_was/22011391025
[10:33:01] [PASSED] oob_was/22012727170
[10:33:01] [PASSED] oob_was/22012727685
[10:33:01] [PASSED] oob_was/22016596838
[10:33:01] [PASSED] oob_was/18020744125
[10:33:01] [PASSED] oob_was/1409600907
[10:33:01] [PASSED] oob_was/22014953428
[10:33:01] [PASSED] oob_was/16017236439
[10:33:01] [PASSED] oob_was/14019821291
[10:33:01] [PASSED] oob_was/14015076503
[10:33:01] [PASSED] oob_was/14018913170
[10:33:01] [PASSED] oob_was/14018094691
[10:33:01] [PASSED] oob_was/18024947630
[10:33:01] [PASSED] oob_was/16022287689
[10:33:01] [PASSED] oob_was/13011645652
[10:33:01] [PASSED] oob_was/14022293748
[10:33:01] [PASSED] oob_was/22019794406
[10:33:01] [PASSED] oob_was/22019338487
[10:33:01] [PASSED] oob_was/16023588340
[10:33:01] [PASSED] oob_was/14019789679
[10:33:01] [PASSED] oob_was/14022866841
[10:33:01] [PASSED] oob_was/16021333562
[10:33:01] [PASSED] oob_was/14016712196
[10:33:01] [PASSED] oob_was/14015568240
[10:33:01] [PASSED] oob_was/18013179988
[10:33:01] [PASSED] oob_was/1508761755
[10:33:01] [PASSED] oob_was/16023105232
[10:33:01] [PASSED] oob_was/16026508708
[10:33:01] [PASSED] oob_was/14020001231
[10:33:01] [PASSED] oob_was/16023683509
[10:33:01] [PASSED] oob_was/14025515070
[10:33:01] [PASSED] oob_was/15015404425_disable
[10:33:01] [PASSED] oob_was/16026007364
[10:33:01] [PASSED] oob_was/14020316580
[10:33:01] [PASSED] oob_was/14025883347
[10:33:01] [PASSED] oob_was/16029380221
[10:33:01] [PASSED] oob_was/22022079272
[10:33:01] [PASSED] oob_was/16029897822
[10:33:01] [PASSED] oob_was/14027054324
[10:33:01] ============== [PASSED] xe_rtp_table_oob_test ==============
[10:33:01] ================ xe_rtp_table_dev_oob_test ================
[10:33:01] [PASSED] device_oob_was/22010954014
[10:33:01] [PASSED] device_oob_was/15015404425
[10:33:01] [PASSED] device_oob_was/22019338487_display
[10:33:01] [PASSED] device_oob_was/14022085890
[10:33:01] [PASSED] device_oob_was/14026539277
[10:33:01] [PASSED] device_oob_was/14026633728
[10:33:01] [PASSED] device_oob_was/14026746987
[10:33:01] [PASSED] device_oob_was/14026779378
[10:33:01] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[10:33:01] ========== xe_rtp_table_missing_upper_bound_test ==========
[10:33:01] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[10:33:01] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[10:33:01] [PASSED] register_whitelist/1806527549
[10:33:01] [PASSED] register_whitelist/allow_read_ctx_timestamp
[10:33:01] [PASSED] register_whitelist/allow_read_queue_timestamp
[10:33:01] [PASSED] register_whitelist/16014440446
[10:33:01] [PASSED] register_whitelist/16017236439
[10:33:01] [PASSED] register_whitelist/16020183090
[10:33:01] [PASSED] register_whitelist/14024997852
[10:33:01] [PASSED] register_whitelist/14024997852
[10:33:01] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[10:33:01] =============== [PASSED] xe_rtp_tables_test ================
[10:33:01] =================== xe_rtp (3 subtests) ====================
[10:33:01] =================== xe_rtp_rules_tests ====================
[10:33:01] [PASSED] no
[10:33:01] [PASSED] yes
[10:33:01] [PASSED] no-and-no
[10:33:01] [PASSED] no-and-yes
[10:33:01] [PASSED] yes-and-no
[10:33:01] [PASSED] yes-and-yes
[10:33:01] [PASSED] no-or-no
[10:33:01] [PASSED] no-or-yes
[10:33:01] [PASSED] yes-or-no
[10:33:01] [PASSED] yes-or-yes
[10:33:01] [PASSED] no-yes-or-yes-no
[10:33:01] [PASSED] no-yes-or-yes-yes
[10:33:01] [PASSED] yes-yes-or-no-yes
[10:33:01] [PASSED] yes-yes-or-yes-yes
[10:33:01] [PASSED] no-no-or-yes-or-no
[10:33:01] [PASSED] or
[10:33:01] [PASSED] or-yes
[10:33:01] [PASSED] or-no
[10:33:01] [PASSED] yes-or
[10:33:01] [PASSED] no-or
[10:33:01] [PASSED] no-or-or-yes
[10:33:01] [PASSED] yes-or-or-no
[10:33:01] [PASSED] no-or-or-no
[10:33:01] [PASSED] missing-context-engine-class
[10:33:01] [PASSED] missing-context-engine-class-or-yes
[10:33:01] [PASSED] missing-context-engine-class-or-or-yes
[10:33:01] =============== [PASSED] xe_rtp_rules_tests ================
[10:33:01] =============== xe_rtp_process_to_sr_tests ================
[10:33:01] [PASSED] coalesce-same-reg
[10:33:01] [PASSED] coalesce-same-reg-literal-and-func
[10:33:01] [PASSED] no-match-no-add
[10:33:01] [PASSED] two-regs-two-entries
[10:33:01] [PASSED] clr-one-set-other
[10:33:01] [PASSED] set-field
[10:33:01] [PASSED] conflict-duplicate
[10:33:01] [PASSED] conflict-not-disjoint
[10:33:01] [PASSED] conflict-not-disjoint-literal-and-func
[10:33:01] [PASSED] conflict-reg-type
[10:33:01] [PASSED] bad-mcr-reg-forced-to-regular
[10:33:01] [PASSED] bad-regular-reg-forced-to-mcr
[10:33:01] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[10:33:01] ================== xe_rtp_process_tests ===================
[10:33:01] [PASSED] active1
[10:33:01] [PASSED] active2
[10:33:01] [PASSED] active-inactive
[10:33:01] [PASSED] inactive-active
[10:33:01] [PASSED] inactive-active-inactive
[10:33:01] [PASSED] inactive-inactive-inactive
[10:33:01] ============== [PASSED] xe_rtp_process_tests ===============
[10:33:01] ===================== [PASSED] xe_rtp ======================
[10:33:01] ==================== xe_wa (1 subtest) =====================
[10:33:01] ======================== xe_wa_gt =========================
[10:33:01] [PASSED] TIGERLAKE B0
[10:33:01] [PASSED] DG1 A0
[10:33:01] [PASSED] DG1 B0
[10:33:01] [PASSED] ALDERLAKE_S A0
[10:33:01] [PASSED] ALDERLAKE_S B0
[10:33:01] [PASSED] ALDERLAKE_S C0
[10:33:01] [PASSED] ALDERLAKE_S D0
[10:33:01] [PASSED] ALDERLAKE_P A0
[10:33:01] [PASSED] ALDERLAKE_P B0
[10:33:01] [PASSED] ALDERLAKE_P C0
[10:33:01] [PASSED] ALDERLAKE_S RPLS D0
[10:33:01] [PASSED] ALDERLAKE_P RPLU E0
[10:33:01] [PASSED] DG2 G10 C0
[10:33:01] [PASSED] DG2 G11 B1
[10:33:01] [PASSED] DG2 G12 A1
[10:33:01] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:33:01] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:33:01] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[10:33:01] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[10:33:01] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[10:33:01] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[10:33:01] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[10:33:01] ==================== [PASSED] xe_wa_gt =====================
[10:33:01] ====================== [PASSED] xe_wa ======================
[10:33:01] ============================================================
[10:33:01] Testing complete. Ran 746 tests: passed: 728, skipped: 18
[10:33:01] Elapsed time: 35.884s total, 1.823s configuring, 33.395s building, 0.661s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[10:33:01] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:33:03] 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
[10:33:28] Starting KUnit Kernel (1/1)...
[10:33:28] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:33:28] ============ drm_test_pick_cmdline (2 subtests) ============
[10:33:28] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[10:33:28] =============== drm_test_pick_cmdline_named ===============
[10:33:28] [PASSED] NTSC
[10:33:28] [PASSED] NTSC-J
[10:33:28] [PASSED] PAL
[10:33:28] [PASSED] PAL-M
[10:33:28] =========== [PASSED] drm_test_pick_cmdline_named ===========
[10:33:28] ============== [PASSED] drm_test_pick_cmdline ==============
[10:33:28] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[10:33:28] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[10:33:28] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[10:33:28] =========== drm_validate_clone_mode (2 subtests) ===========
[10:33:28] ============== drm_test_check_in_clone_mode ===============
[10:33:28] [PASSED] in_clone_mode
[10:33:28] [PASSED] not_in_clone_mode
[10:33:28] ========== [PASSED] drm_test_check_in_clone_mode ===========
[10:33:28] =============== drm_test_check_valid_clones ===============
[10:33:28] [PASSED] not_in_clone_mode
[10:33:28] [PASSED] valid_clone
[10:33:28] [PASSED] invalid_clone
[10:33:28] =========== [PASSED] drm_test_check_valid_clones ===========
[10:33:28] ============= [PASSED] drm_validate_clone_mode =============
[10:33:28] ============= drm_validate_modeset (1 subtest) =============
[10:33:28] [PASSED] drm_test_check_connector_changed_modeset
[10:33:28] ============== [PASSED] drm_validate_modeset ===============
[10:33:28] ====== drm_test_bridge_get_current_state (1 subtest) =======
[10:33:28] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[10:33:28] ======== [PASSED] drm_test_bridge_get_current_state ========
[10:33:28] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[10:33:28] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[10:33:28] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[10:33:28] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[10:33:28] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[10:33:28] ============== drm_bridge_alloc (2 subtests) ===============
[10:33:28] [PASSED] drm_test_drm_bridge_alloc_basic
[10:33:28] [PASSED] drm_test_drm_bridge_alloc_get_put
[10:33:28] ================ [PASSED] drm_bridge_alloc =================
[10:33:28] ============= drm_bridge_bus_fmt (5 subtests) ==============
[10:33:28] [PASSED] drm_test_bridge_rgb_yuv_rgb
[10:33:28] [PASSED] drm_test_bridge_must_convert_to_yuv444
[10:33:28] [PASSED] drm_test_bridge_hdmi_auto_rgb
[10:33:28] [PASSED] drm_test_bridge_auto_first
[10:33:28] [PASSED] drm_test_bridge_rgb_yuv_no_path
[10:33:28] =============== [PASSED] drm_bridge_bus_fmt ================
[10:33:28] ============= drm_cmdline_parser (40 subtests) =============
[10:33:28] [PASSED] drm_test_cmdline_force_d_only
[10:33:28] [PASSED] drm_test_cmdline_force_D_only_dvi
[10:33:28] [PASSED] drm_test_cmdline_force_D_only_hdmi
[10:33:28] [PASSED] drm_test_cmdline_force_D_only_not_digital
[10:33:28] [PASSED] drm_test_cmdline_force_e_only
[10:33:28] [PASSED] drm_test_cmdline_res
[10:33:28] [PASSED] drm_test_cmdline_res_vesa
[10:33:28] [PASSED] drm_test_cmdline_res_vesa_rblank
[10:33:28] [PASSED] drm_test_cmdline_res_rblank
[10:33:28] [PASSED] drm_test_cmdline_res_bpp
[10:33:28] [PASSED] drm_test_cmdline_res_refresh
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[10:33:28] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[10:33:28] [PASSED] drm_test_cmdline_res_margins_force_on
[10:33:28] [PASSED] drm_test_cmdline_res_vesa_margins
[10:33:28] [PASSED] drm_test_cmdline_name
[10:33:28] [PASSED] drm_test_cmdline_name_bpp
[10:33:28] [PASSED] drm_test_cmdline_name_option
[10:33:28] [PASSED] drm_test_cmdline_name_bpp_option
[10:33:28] [PASSED] drm_test_cmdline_rotate_0
[10:33:28] [PASSED] drm_test_cmdline_rotate_90
[10:33:28] [PASSED] drm_test_cmdline_rotate_180
[10:33:28] [PASSED] drm_test_cmdline_rotate_270
[10:33:28] [PASSED] drm_test_cmdline_hmirror
[10:33:28] [PASSED] drm_test_cmdline_vmirror
[10:33:28] [PASSED] drm_test_cmdline_margin_options
[10:33:28] [PASSED] drm_test_cmdline_multiple_options
[10:33:28] [PASSED] drm_test_cmdline_bpp_extra_and_option
[10:33:28] [PASSED] drm_test_cmdline_extra_and_option
[10:33:28] [PASSED] drm_test_cmdline_freestanding_options
[10:33:28] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[10:33:28] [PASSED] drm_test_cmdline_panel_orientation
[10:33:28] ================ drm_test_cmdline_invalid =================
[10:33:28] [PASSED] margin_only
[10:33:28] [PASSED] interlace_only
[10:33:28] [PASSED] res_missing_x
[10:33:28] [PASSED] res_missing_y
[10:33:28] [PASSED] res_bad_y
[10:33:28] [PASSED] res_missing_y_bpp
[10:33:28] [PASSED] res_bad_bpp
[10:33:28] [PASSED] res_bad_refresh
[10:33:28] [PASSED] res_bpp_refresh_force_on_off
[10:33:28] [PASSED] res_invalid_mode
[10:33:28] [PASSED] res_bpp_wrong_place_mode
[10:33:28] [PASSED] name_bpp_refresh
[10:33:28] [PASSED] name_refresh
[10:33:28] [PASSED] name_refresh_wrong_mode
[10:33:28] [PASSED] name_refresh_invalid_mode
[10:33:28] [PASSED] rotate_multiple
[10:33:28] [PASSED] rotate_invalid_val
[10:33:28] [PASSED] rotate_truncated
[10:33:28] [PASSED] invalid_option
[10:33:28] [PASSED] invalid_tv_option
[10:33:28] [PASSED] truncated_tv_option
[10:33:28] ============ [PASSED] drm_test_cmdline_invalid =============
[10:33:28] =============== drm_test_cmdline_tv_options ===============
[10:33:28] [PASSED] NTSC
[10:33:28] [PASSED] NTSC_443
[10:33:28] [PASSED] NTSC_J
[10:33:28] [PASSED] PAL
[10:33:28] [PASSED] PAL_M
[10:33:28] [PASSED] PAL_N
[10:33:28] [PASSED] SECAM
[10:33:28] [PASSED] MONO_525
[10:33:28] [PASSED] MONO_625
[10:33:28] =========== [PASSED] drm_test_cmdline_tv_options ===========
[10:33:28] =============== [PASSED] drm_cmdline_parser ================
[10:33:28] ========== drmm_connector_hdmi_init (20 subtests) ==========
[10:33:28] [PASSED] drm_test_connector_hdmi_init_valid
[10:33:28] [PASSED] drm_test_connector_hdmi_init_bpc_8
[10:33:28] [PASSED] drm_test_connector_hdmi_init_bpc_10
[10:33:28] [PASSED] drm_test_connector_hdmi_init_bpc_12
[10:33:28] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[10:33:28] [PASSED] drm_test_connector_hdmi_init_bpc_null
[10:33:28] [PASSED] drm_test_connector_hdmi_init_formats_empty
[10:33:28] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[10:33:28] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:33:28] [PASSED] supported_formats=0x9 yuv420_allowed=1
[10:33:28] [PASSED] supported_formats=0x9 yuv420_allowed=0
[10:33:28] [PASSED] supported_formats=0x5 yuv420_allowed=1
[10:33:28] [PASSED] supported_formats=0x5 yuv420_allowed=0
[10:33:28] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:33:28] [PASSED] drm_test_connector_hdmi_init_null_ddc
[10:33:28] [PASSED] drm_test_connector_hdmi_init_null_product
[10:33:28] [PASSED] drm_test_connector_hdmi_init_null_vendor
[10:33:28] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[10:33:28] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[10:33:28] [PASSED] drm_test_connector_hdmi_init_product_valid
[10:33:28] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[10:33:28] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[10:33:28] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[10:33:28] ========= drm_test_connector_hdmi_init_type_valid =========
[10:33:28] [PASSED] HDMI-A
[10:33:28] [PASSED] HDMI-B
[10:33:28] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[10:33:28] ======== drm_test_connector_hdmi_init_type_invalid ========
[10:33:28] [PASSED] Unknown
[10:33:28] [PASSED] VGA
[10:33:28] [PASSED] DVI-I
[10:33:28] [PASSED] DVI-D
[10:33:28] [PASSED] DVI-A
[10:33:28] [PASSED] Composite
[10:33:28] [PASSED] SVIDEO
[10:33:28] [PASSED] LVDS
[10:33:28] [PASSED] Component
[10:33:28] [PASSED] DIN
[10:33:28] [PASSED] DP
[10:33:28] [PASSED] TV
[10:33:28] [PASSED] eDP
[10:33:28] [PASSED] Virtual
[10:33:28] [PASSED] DSI
[10:33:28] [PASSED] DPI
[10:33:28] [PASSED] Writeback
[10:33:28] [PASSED] SPI
[10:33:28] [PASSED] USB
[10:33:28] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[10:33:28] ============ [PASSED] drmm_connector_hdmi_init =============
[10:33:28] ============= drmm_connector_init (3 subtests) =============
[10:33:28] [PASSED] drm_test_drmm_connector_init
[10:33:28] [PASSED] drm_test_drmm_connector_init_null_ddc
[10:33:28] ========= drm_test_drmm_connector_init_type_valid =========
[10:33:28] [PASSED] Unknown
[10:33:28] [PASSED] VGA
[10:33:28] [PASSED] DVI-I
[10:33:28] [PASSED] DVI-D
[10:33:28] [PASSED] DVI-A
[10:33:28] [PASSED] Composite
[10:33:28] [PASSED] SVIDEO
[10:33:28] [PASSED] LVDS
[10:33:28] [PASSED] Component
[10:33:28] [PASSED] DIN
[10:33:28] [PASSED] DP
[10:33:28] [PASSED] HDMI-A
[10:33:28] [PASSED] HDMI-B
[10:33:28] [PASSED] TV
[10:33:28] [PASSED] eDP
[10:33:28] [PASSED] Virtual
[10:33:28] [PASSED] DSI
[10:33:28] [PASSED] DPI
[10:33:28] [PASSED] Writeback
[10:33:28] [PASSED] SPI
[10:33:28] [PASSED] USB
[10:33:28] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[10:33:28] =============== [PASSED] drmm_connector_init ===============
[10:33:28] ========= drm_connector_dynamic_init (6 subtests) ==========
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_init
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_init_properties
[10:33:28] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[10:33:28] [PASSED] Unknown
[10:33:28] [PASSED] VGA
[10:33:28] [PASSED] DVI-I
[10:33:28] [PASSED] DVI-D
[10:33:28] [PASSED] DVI-A
[10:33:28] [PASSED] Composite
[10:33:28] [PASSED] SVIDEO
[10:33:28] [PASSED] LVDS
[10:33:28] [PASSED] Component
[10:33:28] [PASSED] DIN
[10:33:28] [PASSED] DP
[10:33:28] [PASSED] HDMI-A
[10:33:28] [PASSED] HDMI-B
[10:33:28] [PASSED] TV
[10:33:28] [PASSED] eDP
[10:33:28] [PASSED] Virtual
[10:33:28] [PASSED] DSI
[10:33:28] [PASSED] DPI
[10:33:28] [PASSED] Writeback
[10:33:28] [PASSED] SPI
[10:33:28] [PASSED] USB
[10:33:28] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[10:33:28] ======== drm_test_drm_connector_dynamic_init_name =========
[10:33:28] [PASSED] Unknown
[10:33:28] [PASSED] VGA
[10:33:28] [PASSED] DVI-I
[10:33:28] [PASSED] DVI-D
[10:33:28] [PASSED] DVI-A
[10:33:28] [PASSED] Composite
[10:33:28] [PASSED] SVIDEO
[10:33:28] [PASSED] LVDS
[10:33:28] [PASSED] Component
[10:33:28] [PASSED] DIN
[10:33:28] [PASSED] DP
[10:33:28] [PASSED] HDMI-A
[10:33:28] [PASSED] HDMI-B
[10:33:28] [PASSED] TV
[10:33:28] [PASSED] eDP
[10:33:28] [PASSED] Virtual
[10:33:28] [PASSED] DSI
[10:33:28] [PASSED] DPI
[10:33:28] [PASSED] Writeback
[10:33:28] [PASSED] SPI
[10:33:28] [PASSED] USB
[10:33:28] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[10:33:28] =========== [PASSED] drm_connector_dynamic_init ============
[10:33:28] ==== drm_connector_dynamic_register_early (4 subtests) =====
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[10:33:28] ====== [PASSED] drm_connector_dynamic_register_early =======
[10:33:28] ======= drm_connector_dynamic_register (7 subtests) ========
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[10:33:28] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[10:33:28] ========= [PASSED] drm_connector_dynamic_register ==========
[10:33:28] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[10:33:28] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[10:33:28] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[10:33:28] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[10:33:28] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[10:33:28] ========== drm_test_get_tv_mode_from_name_valid ===========
[10:33:28] [PASSED] NTSC
[10:33:28] [PASSED] NTSC-443
[10:33:28] [PASSED] NTSC-J
[10:33:28] [PASSED] PAL
[10:33:28] [PASSED] PAL-M
[10:33:28] [PASSED] PAL-N
[10:33:28] [PASSED] SECAM
[10:33:28] [PASSED] Mono
[10:33:28] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[10:33:28] [PASSED] drm_test_get_tv_mode_from_name_truncated
[10:33:28] ============ [PASSED] drm_get_tv_mode_from_name ============
[10:33:28] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[10:33:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[10:33:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[10:33:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[10:33:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[10:33:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[10:33:28] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[10:33:28] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[10:33:28] [PASSED] VIC 96
[10:33:28] [PASSED] VIC 97
[10:33:28] [PASSED] VIC 101
[10:33:28] [PASSED] VIC 102
[10:33:28] [PASSED] VIC 106
[10:33:28] [PASSED] VIC 107
[10:33:28] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[10:33:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[10:33:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[10:33:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[10:33:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[10:33:28] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[10:33:28] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[10:33:28] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[10:33:28] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[10:33:28] [PASSED] Automatic
[10:33:28] [PASSED] Full
[10:33:28] [PASSED] Limited 16:235
[10:33:28] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[10:33:28] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[10:33:28] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[10:33:28] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[10:33:28] === drm_test_drm_hdmi_connector_get_output_format_name ====
[10:33:28] [PASSED] RGB
[10:33:28] [PASSED] YUV 4:2:0
[10:33:28] [PASSED] YUV 4:2:2
[10:33:28] [PASSED] YUV 4:4:4
[10:33:28] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[10:33:28] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[10:33:28] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[10:33:28] ============= drm_damage_helper (21 subtests) ==============
[10:33:28] [PASSED] drm_test_damage_iter_no_damage
[10:33:28] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[10:33:28] [PASSED] drm_test_damage_iter_no_damage_src_moved
[10:33:28] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[10:33:28] [PASSED] drm_test_damage_iter_no_damage_not_visible
[10:33:28] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[10:33:28] [PASSED] drm_test_damage_iter_no_damage_no_fb
[10:33:28] [PASSED] drm_test_damage_iter_simple_damage
[10:33:28] [PASSED] drm_test_damage_iter_single_damage
[10:33:28] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[10:33:28] [PASSED] drm_test_damage_iter_single_damage_outside_src
[10:33:28] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[10:33:28] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[10:33:28] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[10:33:28] [PASSED] drm_test_damage_iter_single_damage_src_moved
[10:33:28] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[10:33:28] [PASSED] drm_test_damage_iter_damage
[10:33:28] [PASSED] drm_test_damage_iter_damage_one_intersect
[10:33:28] [PASSED] drm_test_damage_iter_damage_one_outside
[10:33:28] [PASSED] drm_test_damage_iter_damage_src_moved
[10:33:28] [PASSED] drm_test_damage_iter_damage_not_visible
[10:33:28] ================ [PASSED] drm_damage_helper ================
[10:33:28] ============== drm_dp_mst_helper (3 subtests) ==============
[10:33:28] ============== drm_test_dp_mst_calc_pbn_mode ==============
[10:33:28] [PASSED] Clock 154000 BPP 30 DSC disabled
[10:33:28] [PASSED] Clock 234000 BPP 30 DSC disabled
[10:33:28] [PASSED] Clock 297000 BPP 24 DSC disabled
[10:33:28] [PASSED] Clock 332880 BPP 24 DSC enabled
[10:33:28] [PASSED] Clock 324540 BPP 24 DSC enabled
[10:33:28] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[10:33:28] ============== drm_test_dp_mst_calc_pbn_div ===============
[10:33:28] [PASSED] Link rate 2000000 lane count 4
[10:33:28] [PASSED] Link rate 2000000 lane count 2
[10:33:28] [PASSED] Link rate 2000000 lane count 1
[10:33:28] [PASSED] Link rate 1350000 lane count 4
[10:33:28] [PASSED] Link rate 1350000 lane count 2
[10:33:28] [PASSED] Link rate 1350000 lane count 1
[10:33:28] [PASSED] Link rate 1000000 lane count 4
[10:33:28] [PASSED] Link rate 1000000 lane count 2
[10:33:28] [PASSED] Link rate 1000000 lane count 1
[10:33:28] [PASSED] Link rate 810000 lane count 4
[10:33:28] [PASSED] Link rate 810000 lane count 2
[10:33:28] [PASSED] Link rate 810000 lane count 1
[10:33:28] [PASSED] Link rate 540000 lane count 4
[10:33:28] [PASSED] Link rate 540000 lane count 2
[10:33:28] [PASSED] Link rate 540000 lane count 1
[10:33:28] [PASSED] Link rate 270000 lane count 4
[10:33:28] [PASSED] Link rate 270000 lane count 2
[10:33:28] [PASSED] Link rate 270000 lane count 1
[10:33:28] [PASSED] Link rate 162000 lane count 4
[10:33:28] [PASSED] Link rate 162000 lane count 2
[10:33:28] [PASSED] Link rate 162000 lane count 1
[10:33:28] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[10:33:28] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[10:33:28] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[10:33:28] [PASSED] DP_POWER_UP_PHY with port number
[10:33:28] [PASSED] DP_POWER_DOWN_PHY with port number
[10:33:28] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[10:33:28] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[10:33:28] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[10:33:28] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[10:33:28] [PASSED] DP_QUERY_PAYLOAD with port number
[10:33:28] [PASSED] DP_QUERY_PAYLOAD with VCPI
[10:33:28] [PASSED] DP_REMOTE_DPCD_READ with port number
[10:33:28] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[10:33:28] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[10:33:28] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[10:33:28] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[10:33:28] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[10:33:28] [PASSED] DP_REMOTE_I2C_READ with port number
[10:33:28] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[10:33:28] [PASSED] DP_REMOTE_I2C_READ with transactions array
[10:33:28] [PASSED] DP_REMOTE_I2C_WRITE with port number
[10:33:28] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[10:33:28] [PASSED] DP_REMOTE_I2C_WRITE with data array
[10:33:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[10:33:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[10:33:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[10:33:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[10:33:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[10:33:28] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[10:33:28] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[10:33:28] ================ [PASSED] drm_dp_mst_helper ================
[10:33:28] ================== drm_exec (7 subtests) ===================
[10:33:28] [PASSED] sanitycheck
[10:33:28] [PASSED] test_lock
[10:33:28] [PASSED] test_lock_unlock
[10:33:28] [PASSED] test_duplicates
[10:33:28] [PASSED] test_prepare
[10:33:28] [PASSED] test_prepare_array
[10:33:28] [PASSED] test_multiple_loops
[10:33:28] ==================== [PASSED] drm_exec =====================
[10:33:28] =========== drm_format_helper_test (17 subtests) ===========
[10:33:28] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[10:33:28] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[10:33:28] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[10:33:28] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[10:33:28] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[10:33:28] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[10:33:28] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[10:33:28] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[10:33:28] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[10:33:28] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[10:33:28] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[10:33:28] ============== drm_test_fb_xrgb8888_to_mono ===============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[10:33:28] ==================== drm_test_fb_swab =====================
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ================ [PASSED] drm_test_fb_swab =================
[10:33:28] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[10:33:28] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[10:33:28] [PASSED] single_pixel_source_buffer
[10:33:28] [PASSED] single_pixel_clip_rectangle
[10:33:28] [PASSED] well_known_colors
[10:33:28] [PASSED] destination_pitch
[10:33:28] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[10:33:28] ================= drm_test_fb_clip_offset =================
[10:33:28] [PASSED] pass through
[10:33:28] [PASSED] horizontal offset
[10:33:28] [PASSED] vertical offset
[10:33:28] [PASSED] horizontal and vertical offset
[10:33:28] [PASSED] horizontal offset (custom pitch)
[10:33:28] [PASSED] vertical offset (custom pitch)
[10:33:28] [PASSED] horizontal and vertical offset (custom pitch)
[10:33:28] ============= [PASSED] drm_test_fb_clip_offset =============
[10:33:28] =================== drm_test_fb_memcpy ====================
[10:33:28] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[10:33:28] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[10:33:28] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[10:33:28] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[10:33:28] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[10:33:28] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[10:33:28] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[10:33:28] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[10:33:28] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[10:33:28] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[10:33:28] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[10:33:28] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[10:33:28] =============== [PASSED] drm_test_fb_memcpy ================
[10:33:28] ============= [PASSED] drm_format_helper_test ==============
[10:33:28] ================= drm_format (18 subtests) =================
[10:33:28] [PASSED] drm_test_format_block_width_invalid
[10:33:28] [PASSED] drm_test_format_block_width_one_plane
[10:33:28] [PASSED] drm_test_format_block_width_two_plane
[10:33:28] [PASSED] drm_test_format_block_width_three_plane
[10:33:28] [PASSED] drm_test_format_block_width_tiled
[10:33:28] [PASSED] drm_test_format_block_height_invalid
[10:33:28] [PASSED] drm_test_format_block_height_one_plane
[10:33:28] [PASSED] drm_test_format_block_height_two_plane
[10:33:28] [PASSED] drm_test_format_block_height_three_plane
[10:33:28] [PASSED] drm_test_format_block_height_tiled
[10:33:28] [PASSED] drm_test_format_min_pitch_invalid
[10:33:28] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[10:33:28] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[10:33:28] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[10:33:28] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[10:33:28] [PASSED] drm_test_format_min_pitch_two_plane
[10:33:28] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[10:33:28] [PASSED] drm_test_format_min_pitch_tiled
[10:33:28] =================== [PASSED] drm_format ====================
[10:33:28] ============== drm_framebuffer (10 subtests) ===============
[10:33:28] ========== drm_test_framebuffer_check_src_coords ==========
[10:33:28] [PASSED] Success: source fits into fb
[10:33:28] [PASSED] Fail: overflowing fb with x-axis coordinate
[10:33:28] [PASSED] Fail: overflowing fb with y-axis coordinate
[10:33:28] [PASSED] Fail: overflowing fb with source width
[10:33:28] [PASSED] Fail: overflowing fb with source height
[10:33:28] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[10:33:28] [PASSED] drm_test_framebuffer_cleanup
[10:33:28] =============== drm_test_framebuffer_create ===============
[10:33:28] [PASSED] ABGR8888 normal sizes
[10:33:28] [PASSED] ABGR8888 max sizes
[10:33:28] [PASSED] ABGR8888 pitch greater than min required
[10:33:28] [PASSED] ABGR8888 pitch less than min required
[10:33:28] [PASSED] ABGR8888 Invalid width
[10:33:28] [PASSED] ABGR8888 Invalid buffer handle
[10:33:28] [PASSED] No pixel format
[10:33:28] [PASSED] ABGR8888 Width 0
[10:33:28] [PASSED] ABGR8888 Height 0
[10:33:28] [PASSED] ABGR8888 Out of bound height * pitch combination
[10:33:28] [PASSED] ABGR8888 Large buffer offset
[10:33:28] [PASSED] ABGR8888 Buffer offset for inexistent plane
[10:33:28] [PASSED] ABGR8888 Invalid flag
[10:33:28] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[10:33:28] [PASSED] ABGR8888 Valid buffer modifier
[10:33:28] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[10:33:28] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[10:33:28] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[10:33:28] [PASSED] NV12 Normal sizes
[10:33:28] [PASSED] NV12 Max sizes
[10:33:28] [PASSED] NV12 Invalid pitch
[10:33:28] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[10:33:28] [PASSED] NV12 different modifier per-plane
[10:33:28] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[10:33:28] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[10:33:28] [PASSED] NV12 Modifier for inexistent plane
[10:33:28] [PASSED] NV12 Handle for inexistent plane
[10:33:28] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[10:33:28] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[10:33:28] [PASSED] YVU420 Normal sizes
[10:33:28] [PASSED] YVU420 Max sizes
[10:33:28] [PASSED] YVU420 Invalid pitch
[10:33:28] [PASSED] YVU420 Different pitches
[10:33:28] [PASSED] YVU420 Different buffer offsets/pitches
[10:33:28] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[10:33:28] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[10:33:28] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[10:33:28] [PASSED] YVU420 Valid modifier
[10:33:28] [PASSED] YVU420 Different modifiers per plane
[10:33:28] [PASSED] YVU420 Modifier for inexistent plane
[10:33:28] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[10:33:28] [PASSED] X0L2 Normal sizes
[10:33:28] [PASSED] X0L2 Max sizes
[10:33:28] [PASSED] X0L2 Invalid pitch
[10:33:28] [PASSED] X0L2 Pitch greater than minimum required
[10:33:28] [PASSED] X0L2 Handle for inexistent plane
[10:33:28] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[10:33:28] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[10:33:28] [PASSED] X0L2 Valid modifier
[10:33:28] [PASSED] X0L2 Modifier for inexistent plane
[10:33:28] =========== [PASSED] drm_test_framebuffer_create ===========
[10:33:28] [PASSED] drm_test_framebuffer_free
[10:33:28] [PASSED] drm_test_framebuffer_init
[10:33:28] [PASSED] drm_test_framebuffer_init_bad_format
[10:33:28] [PASSED] drm_test_framebuffer_init_dev_mismatch
[10:33:28] [PASSED] drm_test_framebuffer_lookup
[10:33:28] [PASSED] drm_test_framebuffer_lookup_inexistent
[10:33:28] [PASSED] drm_test_framebuffer_modifiers_not_supported
[10:33:28] ================= [PASSED] drm_framebuffer =================
[10:33:28] ================ drm_gem_shmem (8 subtests) ================
[10:33:28] [PASSED] drm_gem_shmem_test_obj_create
[10:33:28] [PASSED] drm_gem_shmem_test_obj_create_private
[10:33:28] [PASSED] drm_gem_shmem_test_pin_pages
[10:33:28] [PASSED] drm_gem_shmem_test_vmap
[10:33:28] [PASSED] drm_gem_shmem_test_get_sg_table
[10:33:28] [PASSED] drm_gem_shmem_test_get_pages_sgt
[10:33:28] [PASSED] drm_gem_shmem_test_madvise
[10:33:28] [PASSED] drm_gem_shmem_test_purge
[10:33:28] ================== [PASSED] drm_gem_shmem ==================
[10:33:28] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[10:33:28] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[10:33:28] [PASSED] Automatic
[10:33:28] [PASSED] Full
[10:33:28] [PASSED] Limited 16:235
[10:33:28] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[10:33:28] [PASSED] drm_test_check_disable_connector
[10:33:28] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[10:33:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[10:33:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[10:33:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[10:33:28] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[10:33:28] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[10:33:28] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[10:33:28] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[10:33:28] [PASSED] drm_test_check_output_bpc_dvi
[10:33:28] [PASSED] drm_test_check_output_bpc_format_vic_1
[10:33:28] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[10:33:28] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[10:33:28] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[10:33:28] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[10:33:28] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[10:33:28] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[10:33:28] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[10:33:28] ============ drm_test_check_hdmi_color_format =============
[10:33:28] [PASSED] AUTO -> RGB
[10:33:28] [PASSED] YCBCR422 -> YUV422
[10:33:28] [PASSED] YCBCR420 -> YUV420
[10:33:28] [PASSED] YCBCR444 -> YUV444
[10:33:28] [PASSED] RGB -> RGB
[10:33:28] ======== [PASSED] drm_test_check_hdmi_color_format =========
[10:33:28] ======== drm_test_check_hdmi_color_format_420_only ========
[10:33:28] [PASSED] RGB should fail
[10:33:28] [PASSED] YUV444 should fail
[10:33:28] [PASSED] YUV422 should fail
[10:33:28] [PASSED] YUV420 should work
[10:33:28] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[10:33:28] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[10:33:28] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[10:33:28] [PASSED] drm_test_check_broadcast_rgb_value
[10:33:28] [PASSED] drm_test_check_bpc_8_value
[10:33:28] [PASSED] drm_test_check_bpc_10_value
[10:33:28] [PASSED] drm_test_check_bpc_12_value
[10:33:28] [PASSED] drm_test_check_format_value
[10:33:28] [PASSED] drm_test_check_tmds_char_value
[10:33:28] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[10:33:28] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[10:33:28] [PASSED] drm_test_check_mode_valid
[10:33:28] [PASSED] drm_test_check_mode_valid_reject
[10:33:28] [PASSED] drm_test_check_mode_valid_reject_rate
[10:33:28] [PASSED] drm_test_check_mode_valid_reject_max_clock
[10:33:28] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[10:33:28] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[10:33:28] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[10:33:28] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[10:33:28] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[10:33:28] [PASSED] drm_test_check_infoframes
[10:33:28] [PASSED] drm_test_check_reject_avi_infoframe
[10:33:28] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[10:33:28] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[10:33:28] [PASSED] drm_test_check_reject_audio_infoframe
[10:33:28] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[10:33:28] ================= drm_managed (2 subtests) =================
[10:33:28] [PASSED] drm_test_managed_release_action
[10:33:28] [PASSED] drm_test_managed_run_action
[10:33:28] =================== [PASSED] drm_managed ===================
[10:33:28] =================== drm_mm (6 subtests) ====================
[10:33:28] [PASSED] drm_test_mm_init
[10:33:28] [PASSED] drm_test_mm_debug
[10:33:28] [PASSED] drm_test_mm_align32
[10:33:28] [PASSED] drm_test_mm_align64
[10:33:28] [PASSED] drm_test_mm_lowest
[10:33:28] [PASSED] drm_test_mm_highest
[10:33:28] ===================== [PASSED] drm_mm ======================
[10:33:28] ============= drm_modes_analog_tv (5 subtests) =============
[10:33:28] [PASSED] drm_test_modes_analog_tv_mono_576i
[10:33:28] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[10:33:28] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[10:33:28] [PASSED] drm_test_modes_analog_tv_pal_576i
[10:33:28] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[10:33:28] =============== [PASSED] drm_modes_analog_tv ===============
[10:33:28] ============== drm_plane_helper (2 subtests) ===============
[10:33:28] =============== drm_test_check_plane_state ================
[10:33:28] [PASSED] clipping_simple
[10:33:28] [PASSED] clipping_rotate_reflect
[10:33:28] [PASSED] positioning_simple
[10:33:28] [PASSED] upscaling
[10:33:28] [PASSED] downscaling
[10:33:28] [PASSED] rounding1
[10:33:28] [PASSED] rounding2
[10:33:28] [PASSED] rounding3
[10:33:28] [PASSED] rounding4
[10:33:28] =========== [PASSED] drm_test_check_plane_state ============
[10:33:28] =========== drm_test_check_invalid_plane_state ============
[10:33:28] [PASSED] positioning_invalid
[10:33:28] [PASSED] upscaling_invalid
[10:33:28] [PASSED] downscaling_invalid
[10:33:28] ======= [PASSED] drm_test_check_invalid_plane_state ========
[10:33:28] ================ [PASSED] drm_plane_helper =================
[10:33:28] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[10:33:28] ====== drm_test_connector_helper_tv_get_modes_check =======
[10:33:28] [PASSED] None
[10:33:28] [PASSED] PAL
[10:33:28] [PASSED] NTSC
[10:33:28] [PASSED] Both, NTSC Default
[10:33:28] [PASSED] Both, PAL Default
[10:33:28] [PASSED] Both, NTSC Default, with PAL on command-line
[10:33:28] [PASSED] Both, PAL Default, with NTSC on command-line
[10:33:28] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[10:33:28] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[10:33:28] ================== drm_rect (9 subtests) ===================
[10:33:28] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[10:33:28] [PASSED] drm_test_rect_clip_scaled_not_clipped
[10:33:28] [PASSED] drm_test_rect_clip_scaled_clipped
[10:33:28] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[10:33:28] ================= drm_test_rect_intersect =================
[10:33:28] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[10:33:28] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[10:33:28] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[10:33:28] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[10:33:28] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[10:33:28] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[10:33:28] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[10:33:28] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[10:33:28] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[10:33:28] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[10:33:28] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[10:33:28] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[10:33:28] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[10:33:28] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[10:33:28] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[10:33:28] ============= [PASSED] drm_test_rect_intersect =============
[10:33:28] ================ drm_test_rect_calc_hscale ================
[10:33:28] [PASSED] normal use
[10:33:28] [PASSED] out of max range
[10:33:28] [PASSED] out of min range
[10:33:28] [PASSED] zero dst
[10:33:28] [PASSED] negative src
[10:33:28] [PASSED] negative dst
[10:33:28] ============ [PASSED] drm_test_rect_calc_hscale ============
[10:33:28] ================ drm_test_rect_calc_vscale ================
[10:33:28] [PASSED] normal use
[10:33:28] [PASSED] out of max range
[10:33:28] [PASSED] out of min range
[10:33:28] [PASSED] zero dst
[10:33:28] [PASSED] negative src
[10:33:28] [PASSED] negative dst
[10:33:28] ============ [PASSED] drm_test_rect_calc_vscale ============
[10:33:28] ================== drm_test_rect_rotate ===================
[10:33:28] [PASSED] reflect-x
[10:33:28] [PASSED] reflect-y
[10:33:28] [PASSED] rotate-0
[10:33:28] [PASSED] rotate-90
[10:33:28] [PASSED] rotate-180
[10:33:28] [PASSED] rotate-270
[10:33:28] ============== [PASSED] drm_test_rect_rotate ===============
[10:33:28] ================ drm_test_rect_rotate_inv =================
[10:33:28] [PASSED] reflect-x
[10:33:28] [PASSED] reflect-y
[10:33:28] [PASSED] rotate-0
[10:33:28] [PASSED] rotate-90
[10:33:28] [PASSED] rotate-180
[10:33:28] [PASSED] rotate-270
[10:33:28] ============ [PASSED] drm_test_rect_rotate_inv =============
[10:33:28] ==================== [PASSED] drm_rect =====================
[10:33:28] ============ drm_sysfb_modeset_test (1 subtest) ============
[10:33:28] ============ drm_test_sysfb_build_fourcc_list =============
[10:33:28] [PASSED] no native formats
[10:33:28] [PASSED] XRGB8888 as native format
[10:33:28] [PASSED] remove duplicates
[10:33:28] [PASSED] convert alpha formats
[10:33:28] [PASSED] random formats
[10:33:28] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[10:33:28] ============= [PASSED] drm_sysfb_modeset_test ==============
[10:33:28] ================== drm_fixp (2 subtests) ===================
[10:33:28] [PASSED] drm_test_int2fixp
[10:33:28] [PASSED] drm_test_sm2fixp
[10:33:28] ==================== [PASSED] drm_fixp =====================
[10:33:28] ============================================================
[10:33:28] Testing complete. Ran 637 tests: passed: 637
[10:33:28] Elapsed time: 26.890s total, 1.847s configuring, 24.877s building, 0.147s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[10:33:28] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:33:30] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:33:40] Starting KUnit Kernel (1/1)...
[10:33:40] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:33:40] ================= ttm_device (5 subtests) ==================
[10:33:40] [PASSED] ttm_device_init_basic
[10:33:40] [PASSED] ttm_device_init_multiple
[10:33:40] [PASSED] ttm_device_fini_basic
[10:33:40] [PASSED] ttm_device_init_no_vma_man
[10:33:40] ================== ttm_device_init_pools ==================
[10:33:40] [PASSED] No DMA allocations, no DMA32 required
[10:33:40] [PASSED] DMA allocations, DMA32 required
[10:33:40] [PASSED] No DMA allocations, DMA32 required
[10:33:40] [PASSED] DMA allocations, no DMA32 required
[10:33:40] ============== [PASSED] ttm_device_init_pools ==============
[10:33:40] =================== [PASSED] ttm_device ====================
[10:33:40] ================== ttm_pool (8 subtests) ===================
[10:33:40] ================== ttm_pool_alloc_basic ===================
[10:33:40] [PASSED] One page
[10:33:40] [PASSED] More than one page
[10:33:40] [PASSED] Above the allocation limit
[10:33:40] [PASSED] One page, with coherent DMA mappings enabled
[10:33:40] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:33:40] ============== [PASSED] ttm_pool_alloc_basic ===============
[10:33:40] ============== ttm_pool_alloc_basic_dma_addr ==============
[10:33:40] [PASSED] One page
[10:33:40] [PASSED] More than one page
[10:33:40] [PASSED] Above the allocation limit
[10:33:40] [PASSED] One page, with coherent DMA mappings enabled
[10:33:40] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:33:40] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[10:33:40] [PASSED] ttm_pool_alloc_order_caching_match
[10:33:40] [PASSED] ttm_pool_alloc_caching_mismatch
[10:33:40] [PASSED] ttm_pool_alloc_order_mismatch
[10:33:40] [PASSED] ttm_pool_free_dma_alloc
[10:33:40] [PASSED] ttm_pool_free_no_dma_alloc
[10:33:40] [PASSED] ttm_pool_fini_basic
[10:33:40] ==================== [PASSED] ttm_pool =====================
[10:33:40] ================ ttm_resource (8 subtests) =================
[10:33:40] ================= ttm_resource_init_basic =================
[10:33:40] [PASSED] Init resource in TTM_PL_SYSTEM
[10:33:40] [PASSED] Init resource in TTM_PL_VRAM
[10:33:40] [PASSED] Init resource in a private placement
[10:33:40] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[10:33:40] ============= [PASSED] ttm_resource_init_basic =============
[10:33:40] [PASSED] ttm_resource_init_pinned
[10:33:40] [PASSED] ttm_resource_fini_basic
[10:33:40] [PASSED] ttm_resource_manager_init_basic
[10:33:40] [PASSED] ttm_resource_manager_usage_basic
[10:33:40] [PASSED] ttm_resource_manager_set_used_basic
[10:33:40] [PASSED] ttm_sys_man_alloc_basic
[10:33:40] [PASSED] ttm_sys_man_free_basic
[10:33:40] ================== [PASSED] ttm_resource ===================
[10:33:40] =================== ttm_tt (15 subtests) ===================
[10:33:40] ==================== ttm_tt_init_basic ====================
[10:33:40] [PASSED] Page-aligned size
[10:33:40] [PASSED] Extra pages requested
[10:33:40] ================ [PASSED] ttm_tt_init_basic ================
[10:33:40] [PASSED] ttm_tt_init_misaligned
[10:33:40] [PASSED] ttm_tt_fini_basic
[10:33:40] [PASSED] ttm_tt_fini_sg
[10:33:40] [PASSED] ttm_tt_fini_shmem
[10:33:40] [PASSED] ttm_tt_create_basic
[10:33:40] [PASSED] ttm_tt_create_invalid_bo_type
[10:33:40] [PASSED] ttm_tt_create_ttm_exists
[10:33:40] [PASSED] ttm_tt_create_failed
[10:33:40] [PASSED] ttm_tt_destroy_basic
[10:33:40] [PASSED] ttm_tt_populate_null_ttm
[10:33:40] [PASSED] ttm_tt_populate_populated_ttm
[10:33:40] [PASSED] ttm_tt_unpopulate_basic
[10:33:40] [PASSED] ttm_tt_unpopulate_empty_ttm
[10:33:40] [PASSED] ttm_tt_swapin_basic
[10:33:40] ===================== [PASSED] ttm_tt ======================
[10:33:40] =================== ttm_bo (14 subtests) ===================
[10:33:40] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[10:33:40] [PASSED] Cannot be interrupted and sleeps
[10:33:40] [PASSED] Cannot be interrupted, locks straight away
[10:33:40] [PASSED] Can be interrupted, sleeps
[10:33:40] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[10:33:40] [PASSED] ttm_bo_reserve_locked_no_sleep
[10:33:40] [PASSED] ttm_bo_reserve_no_wait_ticket
[10:33:40] [PASSED] ttm_bo_reserve_double_resv
[10:33:40] [PASSED] ttm_bo_reserve_interrupted
[10:33:40] [PASSED] ttm_bo_reserve_deadlock
[10:33:40] [PASSED] ttm_bo_unreserve_basic
[10:33:40] [PASSED] ttm_bo_unreserve_pinned
[10:33:40] [PASSED] ttm_bo_unreserve_bulk
[10:33:40] [PASSED] ttm_bo_fini_basic
[10:33:40] [PASSED] ttm_bo_fini_shared_resv
[10:33:40] [PASSED] ttm_bo_pin_basic
[10:33:40] [PASSED] ttm_bo_pin_unpin_resource
[10:33:40] [PASSED] ttm_bo_multiple_pin_one_unpin
[10:33:40] ===================== [PASSED] ttm_bo ======================
[10:33:40] ============== ttm_bo_validate (22 subtests) ===============
[10:33:40] ============== ttm_bo_init_reserved_sys_man ===============
[10:33:40] [PASSED] Buffer object for userspace
[10:33:40] [PASSED] Kernel buffer object
[10:33:40] [PASSED] Shared buffer object
[10:33:40] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[10:33:40] ============== ttm_bo_init_reserved_mock_man ==============
[10:33:40] [PASSED] Buffer object for userspace
[10:33:40] [PASSED] Kernel buffer object
[10:33:40] [PASSED] Shared buffer object
[10:33:40] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[10:33:40] [PASSED] ttm_bo_init_reserved_resv
[10:33:40] ================== ttm_bo_validate_basic ==================
[10:33:40] [PASSED] Buffer object for userspace
[10:33:40] [PASSED] Kernel buffer object
[10:33:40] [PASSED] Shared buffer object
[10:33:40] ============== [PASSED] ttm_bo_validate_basic ==============
[10:33:40] [PASSED] ttm_bo_validate_invalid_placement
[10:33:40] ============= ttm_bo_validate_same_placement ==============
[10:33:40] [PASSED] System manager
[10:33:40] [PASSED] VRAM manager
[10:33:40] ========= [PASSED] ttm_bo_validate_same_placement ==========
[10:33:40] [PASSED] ttm_bo_validate_failed_alloc
[10:33:40] [PASSED] ttm_bo_validate_pinned
[10:33:40] [PASSED] ttm_bo_validate_busy_placement
[10:33:40] ================ ttm_bo_validate_multihop =================
[10:33:40] [PASSED] Buffer object for userspace
[10:33:40] [PASSED] Kernel buffer object
[10:33:40] [PASSED] Shared buffer object
[10:33:40] ============ [PASSED] ttm_bo_validate_multihop =============
[10:33:40] ========== ttm_bo_validate_no_placement_signaled ==========
[10:33:40] [PASSED] Buffer object in system domain, no page vector
[10:33:40] [PASSED] Buffer object in system domain with an existing page vector
[10:33:40] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[10:33:40] ======== ttm_bo_validate_no_placement_not_signaled ========
[10:33:40] [PASSED] Buffer object for userspace
[10:33:40] [PASSED] Kernel buffer object
[10:33:40] [PASSED] Shared buffer object
[10:33:40] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[10:33:40] [PASSED] ttm_bo_validate_move_fence_signaled
[10:33:40] ========= ttm_bo_validate_move_fence_not_signaled =========
[10:33:40] [PASSED] Waits for GPU
[10:33:40] [PASSED] Tries to lock straight away
[10:33:40] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[10:33:40] [PASSED] ttm_bo_validate_swapout
[10:33:40] [PASSED] ttm_bo_validate_happy_evict
[10:33:40] [PASSED] ttm_bo_validate_all_pinned_evict
[10:33:40] [PASSED] ttm_bo_validate_allowed_only_evict
[10:33:40] [PASSED] ttm_bo_validate_deleted_evict
[10:33:40] [PASSED] ttm_bo_validate_busy_domain_evict
[10:33:40] [PASSED] ttm_bo_validate_evict_gutting
[10:33:40] [PASSED] ttm_bo_validate_recrusive_evict
[10:33:40] ================= [PASSED] ttm_bo_validate =================
[10:33:40] ============================================================
[10:33:40] Testing complete. Ran 102 tests: passed: 102
[10:33:40] Elapsed time: 12.131s total, 1.815s configuring, 10.101s building, 0.170s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[10:33:41] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:33: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
[10:33:51] Starting KUnit Kernel (1/1)...
[10:33:51] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:33:51] =============== dma-buf-fence (12 subtests) ================
[10:33:51] [PASSED] test_sanitycheck
[10:33:51] [PASSED] test_signaling
[10:33:51] [PASSED] test_add_callback
[10:33:51] [PASSED] test_late_add_callback
[10:33:51] [PASSED] test_rm_callback
[10:33:51] [PASSED] test_late_rm_callback
[10:33:51] [PASSED] test_status
[10:33:51] [PASSED] test_error
[10:33:51] [PASSED] test_wait
[10:33:51] [PASSED] test_wait_timeout
[10:33:51] [PASSED] test_stub
[10:33:51] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[10:33:51] ================== [PASSED] dma-buf-fence ==================
[10:33:51] ============ dma-buf-fence-chain (11 subtests) =============
[10:33:51] [PASSED] test_sanitycheck
[10:33:51] [PASSED] test_find_seqno
[10:33:51] [PASSED] test_find_signaled
[10:33:51] [PASSED] test_find_out_of_order
[10:33:56] [PASSED] test_find_gap
[10:33:56] [PASSED] test_find_race
[10:33:56] [PASSED] test_signal_forward
[10:33:56] [PASSED] test_signal_backward
[10:33:56] [PASSED] test_wait_forward
[10:33:56] [PASSED] test_wait_backward
[10:33:56] [PASSED] test_wait_random
[10:33:56] =============== [PASSED] dma-buf-fence-chain ===============
[10:33:56] ============ dma-buf-fence-unwrap (10 subtests) ============
[10:33:56] [PASSED] test_sanitycheck
[10:33:56] [PASSED] test_unwrap_array
[10:33:56] [PASSED] test_unwrap_chain
[10:33:56] [PASSED] test_unwrap_chain_array
[10:33:56] [PASSED] test_unwrap_merge
[10:33:56] [PASSED] test_unwrap_merge_duplicate
[10:33:56] [PASSED] test_unwrap_merge_seqno
[10:33:56] [PASSED] test_unwrap_merge_order
[10:33:56] [PASSED] test_unwrap_merge_complex
[10:33:56] [PASSED] test_unwrap_merge_complex_seqno
[10:33:56] ============== [PASSED] dma-buf-fence-unwrap ===============
[10:33:56] ================ dma-buf-resv (5 subtests) =================
[10:33:56] [PASSED] test_sanitycheck
[10:33:56] ===================== test_signaling ======================
[10:33:56] [PASSED] kernel
[10:33:56] [PASSED] write
[10:33:56] [PASSED] read
[10:33:56] [PASSED] bookkeep
[10:33:56] ================= [PASSED] test_signaling ==================
[10:33:56] ====================== test_for_each ======================
[10:33:56] [PASSED] kernel
[10:33:56] [PASSED] write
[10:33:56] [PASSED] read
[10:33:56] [PASSED] bookkeep
[10:33:56] ================== [PASSED] test_for_each ==================
[10:33:56] ================= test_for_each_unlocked ==================
[10:33:56] [PASSED] kernel
[10:33:56] [PASSED] write
[10:33:56] [PASSED] read
[10:33:56] [PASSED] bookkeep
[10:33:56] ============= [PASSED] test_for_each_unlocked ==============
[10:33:56] ===================== test_get_fences =====================
[10:33:56] [PASSED] kernel
[10:33:56] [PASSED] write
[10:33:56] [PASSED] read
[10:33:56] [PASSED] bookkeep
[10:33:56] ================= [PASSED] test_get_fences =================
[10:33:56] ================== [PASSED] dma-buf-resv ===================
[10:33:56] ============================================================
[10:33:56] Testing complete. Ran 50 tests: passed: 49, skipped: 1
[10:33:56] Elapsed time: 15.711s total, 1.779s configuring, 8.609s building, 5.285s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 4/4] drm/xe/kunit: Add tests for PF-mem regions
2026-08-13 10:25 ` [PATCH v1 4/4] drm/xe/kunit: Add tests " Piórkowski, Piotr
@ 2026-08-13 10:37 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-08-13 10:37 UTC (permalink / raw)
To: Piórkowski, Piotr; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] If `devm_ioremap_wc()` fails, `vram->mapping` is incorrectly initialized to an invalid non-NULL pointer when `offset > 0`, leading to downstream kernel panics.
--
--- Patch [4]: [PATCH v1 4/4] drm/xe/kunit: Add tests for PF-mem regions ---
commit e9c2a7426069b7396e0ca724779e07a5d5cec440
Author: Piotr Piórkowski <piotr.piorkowski@intel.com>
drm/xe/kunit: Add tests for PF-mem regions
Add coverage for PF-mem VRAM region metadata, bounds checking, and
full, partial, and missing CPU visibility.
> diff --git a/drivers/gpu/drm/xe/tests/xe_vram.c b/drivers/gpu/drm/xe/tests/xe_vram.c
> new file mode 100644
> index 0000000000000..36a49fbef2206
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/tests/xe_vram.c
> @@ -0,0 +1,115 @@
> +// SPDX-License-Identifier: GPL-2.0 AND MIT
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
[ ... ]
> +static void pfmem_create(struct kunit *test)
> +{
> + struct xe_device *xe = test->priv;
> + struct xe_vram_region parent = pfmem_parent(xe, SZ_64M);
> + struct xe_vram_region *vram;
> +
> + vram = xe_vram_region_alloc_pfmem(xe, 0);
> + KUNIT_ASSERT_NOT_NULL(test, vram);
> + KUNIT_ASSERT_EQ(test, xe_vram_region_init_pfmem(vram, &parent, SZ_4M, SZ_16M), 0);
[Severity: High]
This is a pre-existing issue, but does the underlying initialization logic
have an unchecked mapping issue?
If devm_ioremap_wc() fails in determine_lmem_bar_size(), it returns NULL,
but determine_lmem_bar_size() doesn't check for this and returns 0 (success).
Later, vram_region_init() executes:
vram->mapping = lmem_bar->mapping + offset;
If lmem_bar->mapping is NULL, this pointer arithmetic creates a non-NULL
invalid pointer when offset > 0 (which happens for non-zero tiles or when
initializing a PF-mem region via xe_vram_region_init_pfmem() called here).
Because vram->mapping is no longer NULL, subsequent checks like
if (vram->mapping) evaluate to true, leading to a kernel panic when the
invalid pointer is dereferenced.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260813102511.200690-1-piotr.piorkowski@intel.com?part=4
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 3/4] drm/xe/vram: Add initial support for PF-mem regions
2026-08-13 10:25 ` [PATCH v1 3/4] drm/xe/vram: Add initial support for PF-mem regions Piórkowski, Piotr
@ 2026-08-13 10:38 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-08-13 10:38 UTC (permalink / raw)
To: Piórkowski, Piotr; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
New issues:
- [Medium] `xe_vram_region_init_pfmem` does not enforce page alignment for the caller-provided `offset` and `size`.
- [Medium] Incorrect physical address calculation for PFMEM resources in `xe_ttm_vram_mgr_alloc_sgt` due to hardcoded parent VRAM region.
- [Low] Duplicate function declarations for `xe_map_resource_to_region` and `xe_vram_probe`.
Pre-existing issues:
- [High] If the LMEM BAR mapping fails, `vram_region_init` creates a bogus, non-NULL pointer for `vram->mapping`, leading to a kernel panic.
--
--- Patch [3]: [PATCH v1 3/4] drm/xe/vram: Add initial support for PF-mem regions ---
commit 6301fdec9ffb8a28243957040dadf342236bc7f7
Author: Piotr Piórkowski <piotr.piorkowski@intel.com>
drm/xe/vram: Add initial support for PF-mem regions
This commit adds helpers to allocate and initialize PF-mem VRAM regions from
a caller-provided parent, offset, and size. It also assigns the matching TTM
placement. A separate TTM VRAM manager is initialized when a caller installs
the region as the tile kernel_vram.
> diff --git a/drivers/gpu/drm/xe/xe_vram.c b/drivers/gpu/drm/xe/xe_vram.c
> index e5f83df988263..29c93e9aa5a72 100644
> --- a/drivers/gpu/drm/xe/xe_vram.c
> +++ b/drivers/gpu/drm/xe/xe_vram.c
[ ... ]
> @@ -276,6 +278,45 @@ static int vram_region_init(struct xe_device *xe, struct xe_vram_region *vram,
[ ... ]
> +int xe_vram_region_init_pfmem(struct xe_vram_region *vram,
> + struct xe_vram_region *parent,
> + u64 offset, u64 size)
> +{
> + struct xe_device *xe = parent->xe;
> + resource_size_t remain_io_size;
> +
> + if (!size || offset > parent->usable_size ||
> + size > parent->usable_size - offset)
> + return -EINVAL;
[Severity: Medium]
Does this validation block need to enforce page alignment for the caller-provided
offset and size? Unaligned physical base addresses could propagate to the TTM
buddy allocator and SGL mappings, which might lead to unaligned PTE programming
in the GPU.
Also, when a buffer object allocated in kernel_vram is exported, will
xe_ttm_vram_mgr_alloc_sgt() calculate the correct physical address?
Currently, it calculates the address using the parent tile's VRAM:
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c:xe_ttm_vram_mgr_alloc_sgt() {
...
phys_addr_t phys = cursor.start + xe_vram_region_io_start(tile->mem.vram);
...
}
Should it dynamically resolve the region using xe_map_resource_to_region(res)
to ensure the PFMEM offset is included?
> +
> + remain_io_size = offset < parent->io_size ? parent->io_size - offset : 0;
> + if (!remain_io_size)
> + return -EINVAL;
> +
> + return vram_region_init(xe, vram, parent, offset, size, size, remain_io_size);
[Severity: High]
This is a pre-existing issue, but if the parent LMEM BAR mapping fails, could
this propagate a bogus, non-NULL pointer to the PFMEM region?
In vram_region_init(), if lmem_bar->mapping is NULL, calculating:
vram->mapping = lmem_bar->mapping + offset;
with a non-zero offset yields a poisoned pointer that bypasses safety checks like
if (vram->mapping).
> +}
[ ... ]
> diff --git a/drivers/gpu/drm/xe/xe_vram.h b/drivers/gpu/drm/xe/xe_vram.h
> index 87088ffbfd5e5..4c77d128e3293 100644
> --- a/drivers/gpu/drm/xe/xe_vram.h
> +++ b/drivers/gpu/drm/xe/xe_vram.h
> @@ -16,7 +16,14 @@ struct ttm_resource;
> struct xe_vram_region *xe_map_resource_to_region(struct ttm_resource *res);
> int xe_vram_probe(struct xe_device *xe);
>
> +struct xe_vram_region *xe_map_resource_to_region(struct ttm_resource *res);
> +int xe_vram_probe(struct xe_device *xe);
[Severity: Low]
This isn't a bug, but these function declarations were already present right
above. Were they duplicated by accident?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260813102511.200690-1-piotr.piorkowski@intel.com?part=3
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 2/4] drm/xe/ttm: Add PF-mem VRAM placement types for TTM
2026-08-13 10:25 ` [PATCH v1 2/4] drm/xe/ttm: Add PF-mem VRAM placement types for TTM Piórkowski, Piotr
@ 2026-08-13 10:39 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-08-13 10:39 UTC (permalink / raw)
To: Piórkowski, Piotr; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Critical] Incorrect physical address calculation for PFMEM resources during SG table allocation.
- [High] Unpinned BOs in PF-mem regions will not be evicted during system suspend.
--
--- Patch [2]: [PATCH v1 2/4] drm/xe/ttm: Add PF-mem VRAM placement types for TTM ---
commit f6760ba28a684206d85498b2ae22ad0e9bc13d79
Author: Piotr Piórkowski <piotr.piorkowski@intel.com>
drm/xe/ttm: Add PF-mem VRAM placement types for TTM
This commit adds dedicated TTM placement types for kernel-only PF-mem VRAM
regions. It updates the BO memory iterators and eviction paths to recognize
and route these new VRAM placements.
> diff --git a/drivers/gpu/drm/xe/xe_bo_evict.c b/drivers/gpu/drm/xe/xe_bo_evict.c
> --- a/drivers/gpu/drm/xe/xe_bo_evict.c
> +++ b/drivers/gpu/drm/xe/xe_bo_evict.c
> @@ -303,7 +303,7 @@ void xe_bo_pci_dev_remove_all(struct xe_device *xe)
> * Move pagemap bos and exported dma-buf to system, and
> * purge everything else.
> */
> - for (mem_type = XE_PL_VRAM1; mem_type >= XE_PL_TT; --mem_type) {
> + for (mem_type = XE_PL_VRAM1_PFMEM; mem_type >= XE_PL_TT; --mem_type) {
> struct ttm_resource_manager *man =
[Severity: High]
This updates the eviction loop in xe_bo_pci_dev_remove_all() to include the new
PF-mem regions, but does xe_bo_evict_all_user() in this same file also need to
be updated?
Looking at xe_bo_evict_all_user(), it still uses a hardcoded limit:
for (mem_type = XE_PL_TT; mem_type <= XE_PL_VRAM1; ++mem_type) {
struct ttm_resource_manager *man = ...
If this loop skips the newly added XE_PL_VRAM0_PFMEM and XE_PL_VRAM1_PFMEM
regions, will unpinned BOs in these regions fail to evict during system
suspend or D3cold transitions, potentially causing data loss?
[ ... ]
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> @@ -405,7 +403,7 @@ int xe_ttm_vram_mgr_alloc_sgt(struct xe_device *xe,
> enum dma_data_direction dir,
> struct sg_table **sgt)
> {
> - struct xe_tile *tile = &xe->tiles[res->mem_type - XE_PL_VRAM0];
> + struct xe_tile *tile = &xe->tiles[xe_vram_pl_to_tile_id(xe, res->mem_type)];
> struct xe_ttm_vram_mgr_resource *vres = to_xe_ttm_vram_mgr_resource(res);
[Severity: Critical]
Can this lead to incorrect physical address mapping for PFMEM resources?
While the tile ID is correctly resolved here, later in this same function the
physical address is calculated by unconditionally using the standard VRAM
region:
phys_addr_t phys = cursor.start + xe_vram_region_io_start(tile->mem.vram);
Since PFMEM regions represent distinct memory allocations, will hardcoding
tile->mem.vram (instead of resolving the correct region for the resource) use
the wrong IO start address for PFMEM resources?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260813102511.200690-1-piotr.piorkowski@intel.com?part=2
^ permalink raw reply [flat|nested] 12+ messages in thread
* ✓ Xe.CI.BAT: success for Introduce PF-mem VRAM regions
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
` (5 preceding siblings ...)
2026-08-13 10:33 ` ✓ CI.KUnit: success " Patchwork
@ 2026-08-13 11:33 ` Patchwork
2026-08-13 13:33 ` ✗ Xe.CI.FULL: failure " Patchwork
7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2026-08-13 11:33 UTC (permalink / raw)
To: Piórkowski, Piotr; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 936 bytes --]
== Series Details ==
Series: Introduce PF-mem VRAM regions
URL : https://patchwork.freedesktop.org/series/172136/
State : success
== Summary ==
CI Bug Log - changes from xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98_BAT -> xe-pw-172136v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 12)
------------------------------
Missing (1): bat-bmg-2
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98 -> xe-pw-172136v1
IGT_9054: 3d819a8f511b2bcd844647bcf7e433b9407d058e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98: ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98
xe-pw-172136v1: 172136v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/index.html
[-- Attachment #2: Type: text/html, Size: 1484 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* ✗ Xe.CI.FULL: failure for Introduce PF-mem VRAM regions
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
` (6 preceding siblings ...)
2026-08-13 11:33 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-08-13 13:33 ` Patchwork
7 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2026-08-13 13:33 UTC (permalink / raw)
To: Piórkowski, Piotr; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 22887 bytes --]
== Series Details ==
Series: Introduce PF-mem VRAM regions
URL : https://patchwork.freedesktop.org/series/172136/
State : failure
== Summary ==
CI Bug Log - changes from xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98_FULL -> xe-pw-172136v1_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-172136v1_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-172136v1_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-172136v1_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@runner@aborted:
- shard-lnl: NOTRUN -> [FAIL][1]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-lnl-3/igt@runner@aborted.html
#### Warnings ####
* igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-indfb-msflip-blt:
- shard-bmg: [ABORT][2] ([Intel XE#8906]) -> [ABORT][3]
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-4/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-indfb-msflip-blt.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-indfb-msflip-blt.html
Known issues
------------
Here are the changes found in xe-pw-172136v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2233])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-bmg: [PASS][5] -> [FAIL][6] ([Intel XE#3718] / [Intel XE#6078])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-5/igt@kms_async_flips@alternate-sync-async-flip.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-8/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_async_flips@alternate-sync-async-flip@pipe-b-dp-2:
- shard-bmg: [PASS][7] -> [FAIL][8] ([Intel XE#6078])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-5/igt@kms_async_flips@alternate-sync-async-flip@pipe-b-dp-2.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-8/igt@kms_async_flips@alternate-sync-async-flip@pipe-b-dp-2.html
* igt@kms_big_fb@linear-64bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#2327])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_big_fb@linear-64bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#2328] / [Intel XE#7367])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#1124]) +3 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#7679])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p.html
* igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#2887]) +4 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html
* igt@kms_chamelium_color@ctm-0-25:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2325] / [Intel XE#7358])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_chamelium_color@ctm-0-25.html
* igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2252]) +1 other test skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html
* igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#6974]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html
* igt@kms_content_protection@legacy:
- shard-bmg: NOTRUN -> [FAIL][17] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_content_protection@legacy.html
* igt@kms_cursor_crc@cursor-onscreen-256x85:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#2320]) +2 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_cursor_crc@cursor-onscreen-256x85.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2321] / [Intel XE#7355])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2286] / [Intel XE#6035])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#8265]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_dsc@dsc-fractional-bpp-with-bpc-bigjoiner.html
* igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible:
- shard-bmg: [PASS][22] -> [FAIL][23] ([Intel XE#3149] / [Intel XE#5408] / [Intel XE#6266]) +1 other test fail
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-2/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [PASS][24] -> [FAIL][25] ([Intel XE#301])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#7178] / [Intel XE#7351]) +2 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#7061] / [Intel XE#7356]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2311]) +12 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html
* igt@kms_frontbuffer_tracking@drrshdr-argb161616f-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#7061]) +1 other test skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_frontbuffer_tracking@drrshdr-argb161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#4141]) +3 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2352] / [Intel XE#7399])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#2313]) +19 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [PASS][33] -> [SKIP][34] ([Intel XE#1503])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-7/igt@kms_hdr@invalid-hdr.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-5/igt@kms_hdr@invalid-hdr.html
* igt@kms_mst@mst-suspend-read-crc:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#8348])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_mst@mst-suspend-read-crc.html
* igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#7283]) +1 other test skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier-source-clamping.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#1489]) +1 other test skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2387] / [Intel XE#7429])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@psr-no-drrs:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_psr@psr-no-drrs.html
* igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#3904] / [Intel XE#7342])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-rebind-prefetch:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#8374]) +3 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@xe_exec_fault_mode@many-execqueues-multi-queue-rebind-prefetch.html
* igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#8364]) +8 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority.html
* igt@xe_exec_reset@multi-queue-cat-error-on-secondary:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#8369]) +1 other test skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_exec_reset@multi-queue-cat-error-on-secondary.html
* igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#8378]) +2 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate.html
* igt@xe_fault_injection@exec-queue-create-fail-xe_hw_engine_group_add_exec_queue:
- shard-bmg: [PASS][46] -> [ABORT][47] ([Intel XE#8007])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-10/igt@xe_fault_injection@exec-queue-create-fail-xe_hw_engine_group_add_exec_queue.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-2/igt@xe_fault_injection@exec-queue-create-fail-xe_hw_engine_group_add_exec_queue.html
* igt@xe_page_reclaim@basic-mixed:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#7793])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_page_reclaim@basic-mixed.html
* igt@xe_pat@pat-index-xehpc:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#1420] / [Intel XE#7590])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@xa-app-transient-media-off:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#7590])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@xe_pat@xa-app-transient-media-off.html
* igt@xe_query@multigpu-query-topology-l3-bank-mask:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#944])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_query@multigpu-query-topology-l3-bank-mask.html
* igt@xe_sriov_flr@flr-vf1-clear:
- shard-bmg: NOTRUN -> [FAIL][52] ([Intel XE#7992])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_sriov_flr@flr-vf1-clear.html
#### Possible fixes ####
* igt@kms_atomic_interruptible@atomic-setmode:
- shard-bmg: [INCOMPLETE][53] ([Intel XE#6819]) -> [PASS][54] +1 other test pass
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-3/igt@kms_atomic_interruptible@atomic-setmode.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@kms_atomic_interruptible@atomic-setmode.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [FAIL][55] ([Intel XE#301]) -> [PASS][56] +2 other tests pass
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [INCOMPLETE][57] ([Intel XE#6321] / [Intel XE#8355]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-8/igt@xe_evict@evict-mixed-many-threads-small.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-10/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create:
- shard-bmg: [ABORT][59] ([Intel XE#8007]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-6/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-1/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create.html
#### Warnings ####
* igt@kms_psr@fbc-psr2-primary-blt@edp-1:
- shard-lnl: [SKIP][61] ([Intel XE#1406] / [Intel XE#4609]) -> [SKIP][62] ([Intel XE#1406] / [Intel XE#4609] / [Intel XE#7345]) +11 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-lnl-8/igt@kms_psr@fbc-psr2-primary-blt@edp-1.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-lnl-1/igt@kms_psr@fbc-psr2-primary-blt@edp-1.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [FAIL][63] ([Intel XE#1729] / [Intel XE#7424]) -> [SKIP][64] ([Intel XE#2426] / [Intel XE#5848])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98/shard-bmg-10/igt@kms_tiled_display@basic-test-pattern.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/shard-bmg-9/igt@kms_tiled_display@basic-test-pattern.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[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#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2233]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2233
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[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#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
[Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
[Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#5408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5408
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
[Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[Intel XE#6266]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6266
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6819]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6819
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7345
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8348
[Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
[Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
[Intel XE#8906]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8906
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98 -> xe-pw-172136v1
IGT_9054: 3d819a8f511b2bcd844647bcf7e433b9407d058e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5588-ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98: ce212c90b6b1f5c50c99d1ad8770d4e45ea19c98
xe-pw-172136v1: 172136v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-172136v1/index.html
[-- Attachment #2: Type: text/html, Size: 24946 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-08-13 13:33 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-13 10:25 [PATCH v1 0/4] Introduce PF-mem VRAM regions Piórkowski, Piotr
2026-08-13 10:25 ` [PATCH v1 1/4] drm/xe/vram: Add binding information to " Piórkowski, Piotr
2026-08-13 10:25 ` [PATCH v1 2/4] drm/xe/ttm: Add PF-mem VRAM placement types for TTM Piórkowski, Piotr
2026-08-13 10:39 ` sashiko-bot
2026-08-13 10:25 ` [PATCH v1 3/4] drm/xe/vram: Add initial support for PF-mem regions Piórkowski, Piotr
2026-08-13 10:38 ` sashiko-bot
2026-08-13 10:25 ` [PATCH v1 4/4] drm/xe/kunit: Add tests " Piórkowski, Piotr
2026-08-13 10:37 ` sashiko-bot
2026-08-13 10:31 ` ✗ CI.checkpatch: warning for Introduce PF-mem VRAM regions Patchwork
2026-08-13 10:33 ` ✓ CI.KUnit: success " Patchwork
2026-08-13 11:33 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-13 13:33 ` ✗ Xe.CI.FULL: failure " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.