* [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager
@ 2026-04-10 12:06 Sanjay Yadav
2026-04-10 14:07 ` ✗ CI.checkpatch: warning for " Patchwork
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Sanjay Yadav @ 2026-04-10 12:06 UTC (permalink / raw)
To: intel-xe; +Cc: Maarten Lankhorst, Matthew Brost, Matthew Auld
The stolen memory manager was sharing the gpu_buddy allocator backend
with the VRAM manager. However, stolen memory has fundamentally
different allocation patterns that make the buddy allocator a poor fit.
- Allocation sizes are not power-of-two. Since buddy rounds up to the
next power-of-two block size, a ~17MB request can fail even with
~22MB free, because the free space is fragmented across non-fitting
power-of-two blocks.
- Hardware restrictions prevent using the first 4K page of stolen for
certain allocations (e.g., FBC). The display code sets fpfn=1 to
enforce this, but when fpfn != 0, gpu_buddy enables
GPU_BUDDY_RANGE_ALLOCATION mode which disables the try_harder
coalescing path, further reducing allocation success.
This combination caused FBC compressed framebuffer (CFB) allocation
failures on platforms like NVL/PTL. In case of NVL where stolen memory
is ~56MB and the initial plane framebuffer consumes ~34MB at probe time,
leaving ~22MB for subsequent allocations.
Use ttm_range_man_init_nocheck() to set up a drm_mm-backed TTM resource
manager for stolen memory. This reuses the TTM core's ttm_range_manager
callbacks, avoiding duplicate implementations.
Tested on NVL with a 4K DP display: stolen_mm shows a single ~22MB
contiguous free hole after initial plane framebuffer allocation, and
FBC successfully allocates its CFB from that region. The corresponding
IGT was previously skipped and now passes.
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7631
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Suggested-by: Matthew Auld <matthew.auld@intel.com>
Assisted-by: GitHub Copilot:claude-sonnet-4.6
Signed-off-by: Sanjay Yadav <sanjay.kumar.yadav@intel.com>
---
drivers/gpu/drm/xe/xe_bo.c | 12 +++++-
drivers/gpu/drm/xe/xe_device_types.h | 3 ++
drivers/gpu/drm/xe/xe_res_cursor.h | 14 ++++++-
drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 55 +++++++++++---------------
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 11 +++---
5 files changed, 53 insertions(+), 42 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index a7c2dc7f224c..cf22cf8ff9f0 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -601,9 +601,17 @@ static void xe_ttm_tt_destroy(struct ttm_device *ttm_dev, struct ttm_tt *tt)
static bool xe_ttm_resource_visible(struct ttm_resource *mem)
{
- struct xe_ttm_vram_mgr_resource *vres =
- to_xe_ttm_vram_mgr_resource(mem);
+ struct xe_ttm_vram_mgr_resource *vres;
+ /*
+ * Stolen uses a range allocator (not buddy) and doesn't track
+ * used_visible_size like VRAM. Actual CPU accessibility is
+ * gated by io_base in xe_ttm_stolen_io_mem_reserve().
+ */
+ if (mem->mem_type == XE_PL_STOLEN)
+ return true;
+
+ vres = to_xe_ttm_vram_mgr_resource(mem);
return vres->used_visible_size == mem->size;
}
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 150c76b2acaf..ffb84659c413 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -42,6 +42,7 @@ struct xe_ggtt;
struct xe_i2c;
struct xe_pat_ops;
struct xe_pxp;
+struct xe_ttm_stolen_mgr;
struct xe_vram_region;
/**
@@ -278,6 +279,8 @@ struct xe_device {
struct ttm_resource_manager sys_mgr;
/** @mem.sys_mgr: system memory shrinker. */
struct xe_shrinker *shrinker;
+ /** @mem.stolen_mgr: stolen memory manager. */
+ struct xe_ttm_stolen_mgr *stolen_mgr;
} mem;
/** @sriov: device level virtualization data */
diff --git a/drivers/gpu/drm/xe/xe_res_cursor.h b/drivers/gpu/drm/xe/xe_res_cursor.h
index 5f4ab08c0686..0522caafd89d 100644
--- a/drivers/gpu/drm/xe/xe_res_cursor.h
+++ b/drivers/gpu/drm/xe/xe_res_cursor.h
@@ -101,7 +101,15 @@ static inline void xe_res_first(struct ttm_resource *res,
cur->mem_type = res->mem_type;
switch (cur->mem_type) {
- case XE_PL_STOLEN:
+ case XE_PL_STOLEN: {
+ /* res->start is in pages (ttm_range_manager). */
+ cur->start = (res->start << PAGE_SHIFT) + start;
+ cur->size = size;
+ cur->remaining = size;
+ cur->node = NULL;
+ cur->mm = NULL;
+ break;
+ }
case XE_PL_VRAM0:
case XE_PL_VRAM1: {
struct gpu_buddy_block *block;
@@ -289,6 +297,10 @@ static inline void xe_res_next(struct xe_res_cursor *cur, u64 size)
switch (cur->mem_type) {
case XE_PL_STOLEN:
+ /* Just advance within the contiguous region. */
+ cur->start += size;
+ cur->size = cur->remaining;
+ break;
case XE_PL_VRAM0:
case XE_PL_VRAM1:
start = size - cur->size;
diff --git a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
index 27c9d72222cf..7e204d5e9cbe 100644
--- a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
@@ -19,16 +19,12 @@
#include "xe_device.h"
#include "xe_gt_printk.h"
#include "xe_mmio.h"
-#include "xe_res_cursor.h"
#include "xe_sriov.h"
#include "xe_ttm_stolen_mgr.h"
-#include "xe_ttm_vram_mgr.h"
#include "xe_vram.h"
#include "xe_wa.h"
struct xe_ttm_stolen_mgr {
- struct xe_ttm_vram_mgr base;
-
/* PCI base offset */
resource_size_t io_base;
/* GPU base offset */
@@ -37,12 +33,6 @@ struct xe_ttm_stolen_mgr {
void __iomem *mapping;
};
-static inline struct xe_ttm_stolen_mgr *
-to_stolen_mgr(struct ttm_resource_manager *man)
-{
- return container_of(man, struct xe_ttm_stolen_mgr, base.manager);
-}
-
/**
* xe_ttm_stolen_cpu_access_needs_ggtt() - If we can't directly CPU access
* stolen, can we then fallback to mapping through the GGTT.
@@ -210,12 +200,19 @@ static u64 detect_stolen(struct xe_device *xe, struct xe_ttm_stolen_mgr *mgr)
#endif
}
+static void xe_ttm_stolen_mgr_fini(struct drm_device *dev, void *arg)
+{
+ struct xe_device *xe = to_xe_device(dev);
+
+ ttm_range_man_fini_nocheck(&xe->ttm, XE_PL_STOLEN);
+}
+
int xe_ttm_stolen_mgr_init(struct xe_device *xe)
{
struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
struct xe_ttm_stolen_mgr *mgr;
u64 stolen_size, io_size;
- int err;
+ int ret;
mgr = drmm_kzalloc(&xe->drm, sizeof(*mgr), GFP_KERNEL);
if (!mgr)
@@ -244,12 +241,12 @@ int xe_ttm_stolen_mgr_init(struct xe_device *xe)
if (mgr->io_base && !xe_ttm_stolen_cpu_access_needs_ggtt(xe))
io_size = stolen_size;
- err = __xe_ttm_vram_mgr_init(xe, &mgr->base, XE_PL_STOLEN, stolen_size,
- io_size, PAGE_SIZE);
- if (err) {
- drm_dbg_kms(&xe->drm, "Stolen mgr init failed: %i\n", err);
- return err;
- }
+ ret = ttm_range_man_init_nocheck(&xe->ttm, XE_PL_STOLEN, false,
+ stolen_size >> PAGE_SHIFT);
+ if (ret)
+ return ret;
+
+ xe->mem.stolen_mgr = mgr;
drm_dbg_kms(&xe->drm, "Initialized stolen memory support with %llu bytes\n",
stolen_size);
@@ -257,36 +254,32 @@ int xe_ttm_stolen_mgr_init(struct xe_device *xe)
if (io_size)
mgr->mapping = devm_ioremap_wc(&pdev->dev, mgr->io_base, io_size);
- return 0;
+ return drmm_add_action_or_reset(&xe->drm, xe_ttm_stolen_mgr_fini, mgr);
}
u64 xe_ttm_stolen_io_offset(struct xe_bo *bo, u32 offset)
{
struct xe_device *xe = xe_bo_device(bo);
- struct ttm_resource_manager *ttm_mgr = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
- struct xe_ttm_stolen_mgr *mgr = to_stolen_mgr(ttm_mgr);
- struct xe_res_cursor cur;
+ struct xe_ttm_stolen_mgr *mgr = xe->mem.stolen_mgr;
XE_WARN_ON(!mgr->io_base);
if (xe_ttm_stolen_cpu_access_needs_ggtt(xe))
return mgr->io_base + xe_bo_ggtt_addr(bo) + offset;
- xe_res_first(bo->ttm.resource, offset, 4096, &cur);
- return mgr->io_base + cur.start;
+ /* Range allocator: res->start is in pages. */
+ return mgr->io_base + (bo->ttm.resource->start << PAGE_SHIFT) + offset;
}
static int __xe_ttm_stolen_io_mem_reserve_bar2(struct xe_device *xe,
struct xe_ttm_stolen_mgr *mgr,
struct ttm_resource *mem)
{
- struct xe_res_cursor cur;
-
if (!mgr->io_base)
return -EIO;
- xe_res_first(mem, 0, 4096, &cur);
- mem->bus.offset = cur.start;
+ /* Range allocator always produces contiguous allocations. */
+ mem->bus.offset = mem->start << PAGE_SHIFT;
drm_WARN_ON(&xe->drm, !(mem->placement & TTM_PL_FLAG_CONTIGUOUS));
@@ -329,8 +322,7 @@ static int __xe_ttm_stolen_io_mem_reserve_stolen(struct xe_device *xe,
int xe_ttm_stolen_io_mem_reserve(struct xe_device *xe, struct ttm_resource *mem)
{
- struct ttm_resource_manager *ttm_mgr = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
- struct xe_ttm_stolen_mgr *mgr = ttm_mgr ? to_stolen_mgr(ttm_mgr) : NULL;
+ struct xe_ttm_stolen_mgr *mgr = xe->mem.stolen_mgr;
if (!mgr || !mgr->io_base)
return -EIO;
@@ -343,8 +335,5 @@ int xe_ttm_stolen_io_mem_reserve(struct xe_device *xe, struct ttm_resource *mem)
u64 xe_ttm_stolen_gpu_offset(struct xe_device *xe)
{
- struct xe_ttm_stolen_mgr *mgr =
- to_stolen_mgr(ttm_manager_type(&xe->ttm, XE_PL_STOLEN));
-
- return mgr->stolen_base;
+ return xe->mem.stolen_mgr->stolen_base;
}
diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
index 5fd0d5506a7e..79ef8e1b5e5c 100644
--- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
+++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
@@ -301,14 +301,13 @@ int __xe_ttm_vram_mgr_init(struct xe_device *xe, struct xe_ttm_vram_mgr *mgr,
u64 default_page_size)
{
struct ttm_resource_manager *man = &mgr->manager;
+ const char *name;
int err;
- if (mem_type != XE_PL_STOLEN) {
- const char *name = mem_type == XE_PL_VRAM0 ? "vram0" : "vram1";
- man->cg = drmm_cgroup_register_region(&xe->drm, name, size);
- if (IS_ERR(man->cg))
- return PTR_ERR(man->cg);
- }
+ name = mem_type == XE_PL_VRAM0 ? "vram0" : "vram1";
+ man->cg = drmm_cgroup_register_region(&xe->drm, name, size);
+ if (IS_ERR(man->cg))
+ return PTR_ERR(man->cg);
man->func = &xe_ttm_vram_mgr_func;
mgr->mem_type = mem_type;
--
2.52.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* ✗ CI.checkpatch: warning for drm/xe: Convert stolen memory over to ttm_range_manager
2026-04-10 12:06 [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager Sanjay Yadav
@ 2026-04-10 14:07 ` Patchwork
2026-04-10 14:09 ` ✓ CI.KUnit: success " Patchwork
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-04-10 14:07 UTC (permalink / raw)
To: Sanjay Yadav; +Cc: intel-xe
== Series Details ==
Series: drm/xe: Convert stolen memory over to ttm_range_manager
URL : https://patchwork.freedesktop.org/series/164694/
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
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit d32a45df9a779e467a6842b77e0db2cf3df5b948
Author: Sanjay Yadav <sanjay.kumar.yadav@intel.com>
Date: Fri Apr 10 17:36:02 2026 +0530
drm/xe: Convert stolen memory over to ttm_range_manager
The stolen memory manager was sharing the gpu_buddy allocator backend
with the VRAM manager. However, stolen memory has fundamentally
different allocation patterns that make the buddy allocator a poor fit.
- Allocation sizes are not power-of-two. Since buddy rounds up to the
next power-of-two block size, a ~17MB request can fail even with
~22MB free, because the free space is fragmented across non-fitting
power-of-two blocks.
- Hardware restrictions prevent using the first 4K page of stolen for
certain allocations (e.g., FBC). The display code sets fpfn=1 to
enforce this, but when fpfn != 0, gpu_buddy enables
GPU_BUDDY_RANGE_ALLOCATION mode which disables the try_harder
coalescing path, further reducing allocation success.
This combination caused FBC compressed framebuffer (CFB) allocation
failures on platforms like NVL/PTL. In case of NVL where stolen memory
is ~56MB and the initial plane framebuffer consumes ~34MB at probe time,
leaving ~22MB for subsequent allocations.
Use ttm_range_man_init_nocheck() to set up a drm_mm-backed TTM resource
manager for stolen memory. This reuses the TTM core's ttm_range_manager
callbacks, avoiding duplicate implementations.
Tested on NVL with a 4K DP display: stolen_mm shows a single ~22MB
contiguous free hole after initial plane framebuffer allocation, and
FBC successfully allocates its CFB from that region. The corresponding
IGT was previously skipped and now passes.
Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7631
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Suggested-by: Matthew Auld <matthew.auld@intel.com>
Assisted-by: GitHub Copilot:claude-sonnet-4.6
Signed-off-by: Sanjay Yadav <sanjay.kumar.yadav@intel.com>
+ /mt/dim checkpatch 00494f7cc0daee7d5119d6e86682ab6fa3fdfcb8 drm-intel
d32a45df9a77 drm/xe: Convert stolen memory over to ttm_range_manager
-:38: WARNING:BAD_SIGN_OFF: Non-standard signature: Assisted-by:
#38:
Assisted-by: GitHub Copilot:claude-sonnet-4.6
-:38: ERROR:BAD_SIGN_OFF: Unrecognized email address: 'GitHub Copilot:claude-sonnet-4.6'
#38:
Assisted-by: GitHub Copilot:claude-sonnet-4.6
total: 1 errors, 1 warnings, 0 checks, 205 lines checked
^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ CI.KUnit: success for drm/xe: Convert stolen memory over to ttm_range_manager
2026-04-10 12:06 [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager Sanjay Yadav
2026-04-10 14:07 ` ✗ CI.checkpatch: warning for " Patchwork
@ 2026-04-10 14:09 ` Patchwork
2026-04-10 14:50 ` ✗ Xe.CI.BAT: failure " Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-04-10 14:09 UTC (permalink / raw)
To: Sanjay Yadav; +Cc: intel-xe
== Series Details ==
Series: drm/xe: Convert stolen memory over to ttm_range_manager
URL : https://patchwork.freedesktop.org/series/164694/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[14:07:47] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:07:51] 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=25
[14:08:29] Starting KUnit Kernel (1/1)...
[14:08:29] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:08:29] ================== guc_buf (11 subtests) ===================
[14:08:29] [PASSED] test_smallest
[14:08:29] [PASSED] test_largest
[14:08:29] [PASSED] test_granular
[14:08:29] [PASSED] test_unique
[14:08:29] [PASSED] test_overlap
[14:08:29] [PASSED] test_reusable
[14:08:29] [PASSED] test_too_big
[14:08:29] [PASSED] test_flush
[14:08:29] [PASSED] test_lookup
[14:08:29] [PASSED] test_data
[14:08:29] [PASSED] test_class
[14:08:29] ===================== [PASSED] guc_buf =====================
[14:08:29] =================== guc_dbm (7 subtests) ===================
[14:08:29] [PASSED] test_empty
[14:08:29] [PASSED] test_default
[14:08:29] ======================== test_size ========================
[14:08:29] [PASSED] 4
[14:08:29] [PASSED] 8
[14:08:29] [PASSED] 32
[14:08:29] [PASSED] 256
[14:08:29] ==================== [PASSED] test_size ====================
[14:08:29] ======================= test_reuse ========================
[14:08:29] [PASSED] 4
[14:08:29] [PASSED] 8
[14:08:29] [PASSED] 32
[14:08:29] [PASSED] 256
[14:08:29] =================== [PASSED] test_reuse ====================
[14:08:29] =================== test_range_overlap ====================
[14:08:29] [PASSED] 4
[14:08:29] [PASSED] 8
[14:08:29] [PASSED] 32
[14:08:29] [PASSED] 256
[14:08:29] =============== [PASSED] test_range_overlap ================
[14:08:29] =================== test_range_compact ====================
[14:08:29] [PASSED] 4
[14:08:29] [PASSED] 8
[14:08:29] [PASSED] 32
[14:08:29] [PASSED] 256
[14:08:29] =============== [PASSED] test_range_compact ================
[14:08:29] ==================== test_range_spare =====================
[14:08:29] [PASSED] 4
[14:08:29] [PASSED] 8
[14:08:29] [PASSED] 32
[14:08:29] [PASSED] 256
[14:08:29] ================ [PASSED] test_range_spare =================
[14:08:29] ===================== [PASSED] guc_dbm =====================
[14:08:29] =================== guc_idm (6 subtests) ===================
[14:08:29] [PASSED] bad_init
[14:08:29] [PASSED] no_init
[14:08:29] [PASSED] init_fini
[14:08:29] [PASSED] check_used
[14:08:29] [PASSED] check_quota
[14:08:29] [PASSED] check_all
[14:08:29] ===================== [PASSED] guc_idm =====================
[14:08:29] ================== no_relay (3 subtests) ===================
[14:08:29] [PASSED] xe_drops_guc2pf_if_not_ready
[14:08:29] [PASSED] xe_drops_guc2vf_if_not_ready
[14:08:29] [PASSED] xe_rejects_send_if_not_ready
[14:08:29] ==================== [PASSED] no_relay =====================
[14:08:29] ================== pf_relay (14 subtests) ==================
[14:08:29] [PASSED] pf_rejects_guc2pf_too_short
[14:08:29] [PASSED] pf_rejects_guc2pf_too_long
[14:08:29] [PASSED] pf_rejects_guc2pf_no_payload
[14:08:29] [PASSED] pf_fails_no_payload
[14:08:29] [PASSED] pf_fails_bad_origin
[14:08:29] [PASSED] pf_fails_bad_type
[14:08:29] [PASSED] pf_txn_reports_error
[14:08:29] [PASSED] pf_txn_sends_pf2guc
[14:08:29] [PASSED] pf_sends_pf2guc
[14:08:29] [SKIPPED] pf_loopback_nop
[14:08:29] [SKIPPED] pf_loopback_echo
[14:08:29] [SKIPPED] pf_loopback_fail
[14:08:29] [SKIPPED] pf_loopback_busy
[14:08:29] [SKIPPED] pf_loopback_retry
[14:08:29] ==================== [PASSED] pf_relay =====================
[14:08:29] ================== vf_relay (3 subtests) ===================
[14:08:29] [PASSED] vf_rejects_guc2vf_too_short
[14:08:29] [PASSED] vf_rejects_guc2vf_too_long
[14:08:29] [PASSED] vf_rejects_guc2vf_no_payload
[14:08:29] ==================== [PASSED] vf_relay =====================
[14:08:29] ================ pf_gt_config (9 subtests) =================
[14:08:29] [PASSED] fair_contexts_1vf
[14:08:29] [PASSED] fair_doorbells_1vf
[14:08:29] [PASSED] fair_ggtt_1vf
[14:08:29] ====================== fair_vram_1vf ======================
[14:08:29] [PASSED] 3.50 GiB
[14:08:29] [PASSED] 11.5 GiB
[14:08:29] [PASSED] 15.5 GiB
[14:08:29] [PASSED] 31.5 GiB
[14:08:29] [PASSED] 63.5 GiB
[14:08:29] [PASSED] 1.91 GiB
[14:08:29] ================== [PASSED] fair_vram_1vf ==================
[14:08:29] ================ fair_vram_1vf_admin_only =================
[14:08:29] [PASSED] 3.50 GiB
[14:08:29] [PASSED] 11.5 GiB
[14:08:29] [PASSED] 15.5 GiB
[14:08:29] [PASSED] 31.5 GiB
[14:08:29] [PASSED] 63.5 GiB
[14:08:29] [PASSED] 1.91 GiB
[14:08:29] ============ [PASSED] fair_vram_1vf_admin_only =============
[14:08:29] ====================== fair_contexts ======================
[14:08:29] [PASSED] 1 VF
[14:08:29] [PASSED] 2 VFs
[14:08:29] [PASSED] 3 VFs
[14:08:29] [PASSED] 4 VFs
[14:08:29] [PASSED] 5 VFs
[14:08:29] [PASSED] 6 VFs
[14:08:29] [PASSED] 7 VFs
[14:08:29] [PASSED] 8 VFs
[14:08:29] [PASSED] 9 VFs
[14:08:29] [PASSED] 10 VFs
[14:08:29] [PASSED] 11 VFs
[14:08:29] [PASSED] 12 VFs
[14:08:29] [PASSED] 13 VFs
[14:08:29] [PASSED] 14 VFs
[14:08:29] [PASSED] 15 VFs
[14:08:29] [PASSED] 16 VFs
[14:08:29] [PASSED] 17 VFs
[14:08:29] [PASSED] 18 VFs
[14:08:29] [PASSED] 19 VFs
[14:08:29] [PASSED] 20 VFs
[14:08:29] [PASSED] 21 VFs
[14:08:29] [PASSED] 22 VFs
[14:08:29] [PASSED] 23 VFs
[14:08:29] [PASSED] 24 VFs
[14:08:29] [PASSED] 25 VFs
[14:08:29] [PASSED] 26 VFs
[14:08:29] [PASSED] 27 VFs
[14:08:29] [PASSED] 28 VFs
[14:08:29] [PASSED] 29 VFs
[14:08:29] [PASSED] 30 VFs
[14:08:29] [PASSED] 31 VFs
[14:08:29] [PASSED] 32 VFs
[14:08:29] [PASSED] 33 VFs
[14:08:29] [PASSED] 34 VFs
[14:08:29] [PASSED] 35 VFs
[14:08:29] [PASSED] 36 VFs
[14:08:29] [PASSED] 37 VFs
[14:08:29] [PASSED] 38 VFs
[14:08:29] [PASSED] 39 VFs
[14:08:29] [PASSED] 40 VFs
[14:08:29] [PASSED] 41 VFs
[14:08:29] [PASSED] 42 VFs
[14:08:29] [PASSED] 43 VFs
[14:08:29] [PASSED] 44 VFs
[14:08:29] [PASSED] 45 VFs
[14:08:29] [PASSED] 46 VFs
[14:08:29] [PASSED] 47 VFs
[14:08:29] [PASSED] 48 VFs
[14:08:29] [PASSED] 49 VFs
[14:08:29] [PASSED] 50 VFs
[14:08:29] [PASSED] 51 VFs
[14:08:29] [PASSED] 52 VFs
[14:08:29] [PASSED] 53 VFs
[14:08:29] [PASSED] 54 VFs
[14:08:29] [PASSED] 55 VFs
[14:08:29] [PASSED] 56 VFs
[14:08:29] [PASSED] 57 VFs
[14:08:29] [PASSED] 58 VFs
[14:08:29] [PASSED] 59 VFs
[14:08:29] [PASSED] 60 VFs
[14:08:29] [PASSED] 61 VFs
[14:08:29] [PASSED] 62 VFs
[14:08:29] [PASSED] 63 VFs
[14:08:29] ================== [PASSED] fair_contexts ==================
[14:08:29] ===================== fair_doorbells ======================
[14:08:29] [PASSED] 1 VF
[14:08:29] [PASSED] 2 VFs
[14:08:29] [PASSED] 3 VFs
[14:08:29] [PASSED] 4 VFs
[14:08:29] [PASSED] 5 VFs
[14:08:29] [PASSED] 6 VFs
[14:08:29] [PASSED] 7 VFs
[14:08:29] [PASSED] 8 VFs
[14:08:29] [PASSED] 9 VFs
[14:08:29] [PASSED] 10 VFs
[14:08:29] [PASSED] 11 VFs
[14:08:29] [PASSED] 12 VFs
[14:08:29] [PASSED] 13 VFs
[14:08:29] [PASSED] 14 VFs
[14:08:29] [PASSED] 15 VFs
[14:08:29] [PASSED] 16 VFs
[14:08:29] [PASSED] 17 VFs
[14:08:29] [PASSED] 18 VFs
[14:08:29] [PASSED] 19 VFs
[14:08:29] [PASSED] 20 VFs
[14:08:29] [PASSED] 21 VFs
[14:08:29] [PASSED] 22 VFs
[14:08:29] [PASSED] 23 VFs
[14:08:29] [PASSED] 24 VFs
[14:08:29] [PASSED] 25 VFs
[14:08:29] [PASSED] 26 VFs
[14:08:29] [PASSED] 27 VFs
[14:08:29] [PASSED] 28 VFs
[14:08:29] [PASSED] 29 VFs
[14:08:29] [PASSED] 30 VFs
[14:08:29] [PASSED] 31 VFs
[14:08:29] [PASSED] 32 VFs
[14:08:29] [PASSED] 33 VFs
[14:08:29] [PASSED] 34 VFs
[14:08:29] [PASSED] 35 VFs
[14:08:29] [PASSED] 36 VFs
[14:08:29] [PASSED] 37 VFs
[14:08:29] [PASSED] 38 VFs
[14:08:29] [PASSED] 39 VFs
[14:08:29] [PASSED] 40 VFs
[14:08:29] [PASSED] 41 VFs
[14:08:29] [PASSED] 42 VFs
[14:08:29] [PASSED] 43 VFs
[14:08:29] [PASSED] 44 VFs
[14:08:29] [PASSED] 45 VFs
[14:08:29] [PASSED] 46 VFs
[14:08:29] [PASSED] 47 VFs
[14:08:29] [PASSED] 48 VFs
[14:08:29] [PASSED] 49 VFs
[14:08:29] [PASSED] 50 VFs
[14:08:29] [PASSED] 51 VFs
[14:08:29] [PASSED] 52 VFs
[14:08:29] [PASSED] 53 VFs
[14:08:29] [PASSED] 54 VFs
[14:08:29] [PASSED] 55 VFs
[14:08:29] [PASSED] 56 VFs
[14:08:29] [PASSED] 57 VFs
[14:08:29] [PASSED] 58 VFs
[14:08:29] [PASSED] 59 VFs
[14:08:29] [PASSED] 60 VFs
[14:08:29] [PASSED] 61 VFs
[14:08:29] [PASSED] 62 VFs
[14:08:29] [PASSED] 63 VFs
[14:08:29] ================= [PASSED] fair_doorbells ==================
[14:08:29] ======================== fair_ggtt ========================
[14:08:29] [PASSED] 1 VF
[14:08:29] [PASSED] 2 VFs
[14:08:29] [PASSED] 3 VFs
[14:08:29] [PASSED] 4 VFs
[14:08:29] [PASSED] 5 VFs
[14:08:29] [PASSED] 6 VFs
[14:08:29] [PASSED] 7 VFs
[14:08:29] [PASSED] 8 VFs
[14:08:29] [PASSED] 9 VFs
[14:08:30] [PASSED] 10 VFs
[14:08:30] [PASSED] 11 VFs
[14:08:30] [PASSED] 12 VFs
[14:08:30] [PASSED] 13 VFs
[14:08:30] [PASSED] 14 VFs
[14:08:30] [PASSED] 15 VFs
[14:08:30] [PASSED] 16 VFs
[14:08:30] [PASSED] 17 VFs
[14:08:30] [PASSED] 18 VFs
[14:08:30] [PASSED] 19 VFs
[14:08:30] [PASSED] 20 VFs
[14:08:30] [PASSED] 21 VFs
[14:08:30] [PASSED] 22 VFs
[14:08:30] [PASSED] 23 VFs
[14:08:30] [PASSED] 24 VFs
[14:08:30] [PASSED] 25 VFs
[14:08:30] [PASSED] 26 VFs
[14:08:30] [PASSED] 27 VFs
[14:08:30] [PASSED] 28 VFs
[14:08:30] [PASSED] 29 VFs
[14:08:30] [PASSED] 30 VFs
[14:08:30] [PASSED] 31 VFs
[14:08:30] [PASSED] 32 VFs
[14:08:30] [PASSED] 33 VFs
[14:08:30] [PASSED] 34 VFs
[14:08:30] [PASSED] 35 VFs
[14:08:30] [PASSED] 36 VFs
[14:08:30] [PASSED] 37 VFs
[14:08:30] [PASSED] 38 VFs
[14:08:30] [PASSED] 39 VFs
[14:08:30] [PASSED] 40 VFs
[14:08:30] [PASSED] 41 VFs
[14:08:30] [PASSED] 42 VFs
[14:08:30] [PASSED] 43 VFs
[14:08:30] [PASSED] 44 VFs
[14:08:30] [PASSED] 45 VFs
[14:08:30] [PASSED] 46 VFs
[14:08:30] [PASSED] 47 VFs
[14:08:30] [PASSED] 48 VFs
[14:08:30] [PASSED] 49 VFs
[14:08:30] [PASSED] 50 VFs
[14:08:30] [PASSED] 51 VFs
[14:08:30] [PASSED] 52 VFs
[14:08:30] [PASSED] 53 VFs
[14:08:30] [PASSED] 54 VFs
[14:08:30] [PASSED] 55 VFs
[14:08:30] [PASSED] 56 VFs
[14:08:30] [PASSED] 57 VFs
[14:08:30] [PASSED] 58 VFs
[14:08:30] [PASSED] 59 VFs
[14:08:30] [PASSED] 60 VFs
[14:08:30] [PASSED] 61 VFs
[14:08:30] [PASSED] 62 VFs
[14:08:30] [PASSED] 63 VFs
[14:08:30] ==================== [PASSED] fair_ggtt ====================
[14:08:30] ======================== fair_vram ========================
[14:08:30] [PASSED] 1 VF
[14:08:30] [PASSED] 2 VFs
[14:08:30] [PASSED] 3 VFs
[14:08:30] [PASSED] 4 VFs
[14:08:30] [PASSED] 5 VFs
[14:08:30] [PASSED] 6 VFs
[14:08:30] [PASSED] 7 VFs
[14:08:30] [PASSED] 8 VFs
[14:08:30] [PASSED] 9 VFs
[14:08:30] [PASSED] 10 VFs
[14:08:30] [PASSED] 11 VFs
[14:08:30] [PASSED] 12 VFs
[14:08:30] [PASSED] 13 VFs
[14:08:30] [PASSED] 14 VFs
[14:08:30] [PASSED] 15 VFs
[14:08:30] [PASSED] 16 VFs
[14:08:30] [PASSED] 17 VFs
[14:08:30] [PASSED] 18 VFs
[14:08:30] [PASSED] 19 VFs
[14:08:30] [PASSED] 20 VFs
[14:08:30] [PASSED] 21 VFs
[14:08:30] [PASSED] 22 VFs
[14:08:30] [PASSED] 23 VFs
[14:08:30] [PASSED] 24 VFs
[14:08:30] [PASSED] 25 VFs
[14:08:30] [PASSED] 26 VFs
[14:08:30] [PASSED] 27 VFs
[14:08:30] [PASSED] 28 VFs
[14:08:30] [PASSED] 29 VFs
[14:08:30] [PASSED] 30 VFs
[14:08:30] [PASSED] 31 VFs
[14:08:30] [PASSED] 32 VFs
[14:08:30] [PASSED] 33 VFs
[14:08:30] [PASSED] 34 VFs
[14:08:30] [PASSED] 35 VFs
[14:08:30] [PASSED] 36 VFs
[14:08:30] [PASSED] 37 VFs
[14:08:30] [PASSED] 38 VFs
[14:08:30] [PASSED] 39 VFs
[14:08:30] [PASSED] 40 VFs
[14:08:30] [PASSED] 41 VFs
[14:08:30] [PASSED] 42 VFs
[14:08:30] [PASSED] 43 VFs
[14:08:30] [PASSED] 44 VFs
[14:08:30] [PASSED] 45 VFs
[14:08:30] [PASSED] 46 VFs
[14:08:30] [PASSED] 47 VFs
[14:08:30] [PASSED] 48 VFs
[14:08:30] [PASSED] 49 VFs
[14:08:30] [PASSED] 50 VFs
[14:08:30] [PASSED] 51 VFs
[14:08:30] [PASSED] 52 VFs
[14:08:30] [PASSED] 53 VFs
[14:08:30] [PASSED] 54 VFs
[14:08:30] [PASSED] 55 VFs
[14:08:30] [PASSED] 56 VFs
[14:08:30] [PASSED] 57 VFs
[14:08:30] [PASSED] 58 VFs
[14:08:30] [PASSED] 59 VFs
[14:08:30] [PASSED] 60 VFs
[14:08:30] [PASSED] 61 VFs
[14:08:30] [PASSED] 62 VFs
[14:08:30] [PASSED] 63 VFs
[14:08:30] ==================== [PASSED] fair_vram ====================
[14:08:30] ================== [PASSED] pf_gt_config ===================
[14:08:30] ===================== lmtt (1 subtest) =====================
[14:08:30] ======================== test_ops =========================
[14:08:30] [PASSED] 2-level
[14:08:30] [PASSED] multi-level
[14:08:30] ==================== [PASSED] test_ops =====================
[14:08:30] ====================== [PASSED] lmtt =======================
[14:08:30] ================= pf_service (11 subtests) =================
[14:08:30] [PASSED] pf_negotiate_any
[14:08:30] [PASSED] pf_negotiate_base_match
[14:08:30] [PASSED] pf_negotiate_base_newer
[14:08:30] [PASSED] pf_negotiate_base_next
[14:08:30] [SKIPPED] pf_negotiate_base_older
[14:08:30] [PASSED] pf_negotiate_base_prev
[14:08:30] [PASSED] pf_negotiate_latest_match
[14:08:30] [PASSED] pf_negotiate_latest_newer
[14:08:30] [PASSED] pf_negotiate_latest_next
[14:08:30] [SKIPPED] pf_negotiate_latest_older
[14:08:30] [SKIPPED] pf_negotiate_latest_prev
[14:08:30] =================== [PASSED] pf_service ====================
[14:08:30] ================= xe_guc_g2g (2 subtests) ==================
[14:08:30] ============== xe_live_guc_g2g_kunit_default ==============
[14:08:30] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[14:08:30] ============== xe_live_guc_g2g_kunit_allmem ===============
[14:08:30] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[14:08:30] =================== [SKIPPED] xe_guc_g2g ===================
[14:08:30] =================== xe_mocs (2 subtests) ===================
[14:08:30] ================ xe_live_mocs_kernel_kunit ================
[14:08:30] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[14:08:30] ================ xe_live_mocs_reset_kunit =================
[14:08:30] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[14:08:30] ==================== [SKIPPED] xe_mocs =====================
[14:08:30] ================= xe_migrate (2 subtests) ==================
[14:08:30] ================= xe_migrate_sanity_kunit =================
[14:08:30] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[14:08:30] ================== xe_validate_ccs_kunit ==================
[14:08:30] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[14:08:30] =================== [SKIPPED] xe_migrate ===================
[14:08:30] ================== xe_dma_buf (1 subtest) ==================
[14:08:30] ==================== xe_dma_buf_kunit =====================
[14:08:30] ================ [SKIPPED] xe_dma_buf_kunit ================
[14:08:30] =================== [SKIPPED] xe_dma_buf ===================
[14:08:30] ================= xe_bo_shrink (1 subtest) =================
[14:08:30] =================== xe_bo_shrink_kunit ====================
[14:08:30] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[14:08:30] ================== [SKIPPED] xe_bo_shrink ==================
[14:08:30] ==================== xe_bo (2 subtests) ====================
[14:08:30] ================== xe_ccs_migrate_kunit ===================
[14:08:30] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[14:08:30] ==================== xe_bo_evict_kunit ====================
[14:08:30] =============== [SKIPPED] xe_bo_evict_kunit ================
[14:08:30] ===================== [SKIPPED] xe_bo ======================
[14:08:30] ==================== args (13 subtests) ====================
[14:08:30] [PASSED] count_args_test
[14:08:30] [PASSED] call_args_example
[14:08:30] [PASSED] call_args_test
[14:08:30] [PASSED] drop_first_arg_example
[14:08:30] [PASSED] drop_first_arg_test
[14:08:30] [PASSED] first_arg_example
[14:08:30] [PASSED] first_arg_test
[14:08:30] [PASSED] last_arg_example
[14:08:30] [PASSED] last_arg_test
[14:08:30] [PASSED] pick_arg_example
[14:08:30] [PASSED] if_args_example
[14:08:30] [PASSED] if_args_test
[14:08:30] [PASSED] sep_comma_example
[14:08:30] ====================== [PASSED] args =======================
[14:08:30] =================== xe_pci (3 subtests) ====================
[14:08:30] ==================== check_graphics_ip ====================
[14:08:30] [PASSED] 12.00 Xe_LP
[14:08:30] [PASSED] 12.10 Xe_LP+
[14:08:30] [PASSED] 12.55 Xe_HPG
[14:08:30] [PASSED] 12.60 Xe_HPC
[14:08:30] [PASSED] 12.70 Xe_LPG
[14:08:30] [PASSED] 12.71 Xe_LPG
[14:08:30] [PASSED] 12.74 Xe_LPG+
[14:08:30] [PASSED] 20.01 Xe2_HPG
[14:08:30] [PASSED] 20.02 Xe2_HPG
[14:08:30] [PASSED] 20.04 Xe2_LPG
[14:08:30] [PASSED] 30.00 Xe3_LPG
[14:08:30] [PASSED] 30.01 Xe3_LPG
[14:08:30] [PASSED] 30.03 Xe3_LPG
[14:08:30] [PASSED] 30.04 Xe3_LPG
[14:08:30] [PASSED] 30.05 Xe3_LPG
[14:08:30] [PASSED] 35.10 Xe3p_LPG
[14:08:30] [PASSED] 35.11 Xe3p_XPC
[14:08:30] ================ [PASSED] check_graphics_ip ================
[14:08:30] ===================== check_media_ip ======================
[14:08:30] [PASSED] 12.00 Xe_M
[14:08:30] [PASSED] 12.55 Xe_HPM
[14:08:30] [PASSED] 13.00 Xe_LPM+
[14:08:30] [PASSED] 13.01 Xe2_HPM
[14:08:30] [PASSED] 20.00 Xe2_LPM
[14:08:30] [PASSED] 30.00 Xe3_LPM
[14:08:30] [PASSED] 30.02 Xe3_LPM
[14:08:30] [PASSED] 35.00 Xe3p_LPM
[14:08:30] [PASSED] 35.03 Xe3p_HPM
[14:08:30] ================= [PASSED] check_media_ip ==================
[14:08:30] =================== check_platform_desc ===================
[14:08:30] [PASSED] 0x9A60 (TIGERLAKE)
[14:08:30] [PASSED] 0x9A68 (TIGERLAKE)
[14:08:30] [PASSED] 0x9A70 (TIGERLAKE)
[14:08:30] [PASSED] 0x9A40 (TIGERLAKE)
[14:08:30] [PASSED] 0x9A49 (TIGERLAKE)
[14:08:30] [PASSED] 0x9A59 (TIGERLAKE)
[14:08:30] [PASSED] 0x9A78 (TIGERLAKE)
[14:08:30] [PASSED] 0x9AC0 (TIGERLAKE)
[14:08:30] [PASSED] 0x9AC9 (TIGERLAKE)
[14:08:30] [PASSED] 0x9AD9 (TIGERLAKE)
[14:08:30] [PASSED] 0x9AF8 (TIGERLAKE)
[14:08:30] [PASSED] 0x4C80 (ROCKETLAKE)
[14:08:30] [PASSED] 0x4C8A (ROCKETLAKE)
[14:08:30] [PASSED] 0x4C8B (ROCKETLAKE)
[14:08:30] [PASSED] 0x4C8C (ROCKETLAKE)
[14:08:30] [PASSED] 0x4C90 (ROCKETLAKE)
[14:08:30] [PASSED] 0x4C9A (ROCKETLAKE)
[14:08:30] [PASSED] 0x4680 (ALDERLAKE_S)
[14:08:30] [PASSED] 0x4682 (ALDERLAKE_S)
[14:08:30] [PASSED] 0x4688 (ALDERLAKE_S)
[14:08:30] [PASSED] 0x468A (ALDERLAKE_S)
[14:08:30] [PASSED] 0x468B (ALDERLAKE_S)
[14:08:30] [PASSED] 0x4690 (ALDERLAKE_S)
[14:08:30] [PASSED] 0x4692 (ALDERLAKE_S)
[14:08:30] [PASSED] 0x4693 (ALDERLAKE_S)
[14:08:30] [PASSED] 0x46A0 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46A1 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46A2 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46A3 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46A6 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46A8 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46AA (ALDERLAKE_P)
[14:08:30] [PASSED] 0x462A (ALDERLAKE_P)
[14:08:30] [PASSED] 0x4626 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x4628 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46B0 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46B1 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46B2 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46B3 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46C0 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46C1 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46C2 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46C3 (ALDERLAKE_P)
[14:08:30] [PASSED] 0x46D0 (ALDERLAKE_N)
[14:08:30] [PASSED] 0x46D1 (ALDERLAKE_N)
[14:08:30] [PASSED] 0x46D2 (ALDERLAKE_N)
[14:08:30] [PASSED] 0x46D3 (ALDERLAKE_N)
[14:08:30] [PASSED] 0x46D4 (ALDERLAKE_N)
[14:08:30] [PASSED] 0xA721 (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7A1 (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7A9 (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7AC (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7AD (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA720 (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7A0 (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7A8 (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7AA (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA7AB (ALDERLAKE_P)
[14:08:30] [PASSED] 0xA780 (ALDERLAKE_S)
[14:08:30] [PASSED] 0xA781 (ALDERLAKE_S)
[14:08:30] [PASSED] 0xA782 (ALDERLAKE_S)
[14:08:30] [PASSED] 0xA783 (ALDERLAKE_S)
[14:08:30] [PASSED] 0xA788 (ALDERLAKE_S)
[14:08:30] [PASSED] 0xA789 (ALDERLAKE_S)
[14:08:30] [PASSED] 0xA78A (ALDERLAKE_S)
[14:08:30] [PASSED] 0xA78B (ALDERLAKE_S)
[14:08:30] [PASSED] 0x4905 (DG1)
[14:08:30] [PASSED] 0x4906 (DG1)
[14:08:30] [PASSED] 0x4907 (DG1)
[14:08:30] [PASSED] 0x4908 (DG1)
[14:08:30] [PASSED] 0x4909 (DG1)
[14:08:30] [PASSED] 0x56C0 (DG2)
[14:08:30] [PASSED] 0x56C2 (DG2)
[14:08:30] [PASSED] 0x56C1 (DG2)
[14:08:30] [PASSED] 0x7D51 (METEORLAKE)
[14:08:30] [PASSED] 0x7DD1 (METEORLAKE)
[14:08:30] [PASSED] 0x7D41 (METEORLAKE)
[14:08:30] [PASSED] 0x7D67 (METEORLAKE)
[14:08:30] [PASSED] 0xB640 (METEORLAKE)
[14:08:30] [PASSED] 0x56A0 (DG2)
[14:08:30] [PASSED] 0x56A1 (DG2)
[14:08:30] [PASSED] 0x56A2 (DG2)
[14:08:30] [PASSED] 0x56BE (DG2)
[14:08:30] [PASSED] 0x56BF (DG2)
[14:08:30] [PASSED] 0x5690 (DG2)
[14:08:30] [PASSED] 0x5691 (DG2)
[14:08:30] [PASSED] 0x5692 (DG2)
[14:08:30] [PASSED] 0x56A5 (DG2)
[14:08:30] [PASSED] 0x56A6 (DG2)
[14:08:30] [PASSED] 0x56B0 (DG2)
[14:08:30] [PASSED] 0x56B1 (DG2)
[14:08:30] [PASSED] 0x56BA (DG2)
[14:08:30] [PASSED] 0x56BB (DG2)
[14:08:30] [PASSED] 0x56BC (DG2)
[14:08:30] [PASSED] 0x56BD (DG2)
[14:08:30] [PASSED] 0x5693 (DG2)
[14:08:30] [PASSED] 0x5694 (DG2)
[14:08:30] [PASSED] 0x5695 (DG2)
[14:08:30] [PASSED] 0x56A3 (DG2)
[14:08:30] [PASSED] 0x56A4 (DG2)
[14:08:30] [PASSED] 0x56B2 (DG2)
[14:08:30] [PASSED] 0x56B3 (DG2)
[14:08:30] [PASSED] 0x5696 (DG2)
[14:08:30] [PASSED] 0x5697 (DG2)
[14:08:30] [PASSED] 0xB69 (PVC)
[14:08:30] [PASSED] 0xB6E (PVC)
[14:08:30] [PASSED] 0xBD4 (PVC)
[14:08:30] [PASSED] 0xBD5 (PVC)
[14:08:30] [PASSED] 0xBD6 (PVC)
[14:08:30] [PASSED] 0xBD7 (PVC)
[14:08:30] [PASSED] 0xBD8 (PVC)
[14:08:30] [PASSED] 0xBD9 (PVC)
[14:08:30] [PASSED] 0xBDA (PVC)
[14:08:30] [PASSED] 0xBDB (PVC)
[14:08:30] [PASSED] 0xBE0 (PVC)
[14:08:30] [PASSED] 0xBE1 (PVC)
[14:08:30] [PASSED] 0xBE5 (PVC)
[14:08:30] [PASSED] 0x7D40 (METEORLAKE)
[14:08:30] [PASSED] 0x7D45 (METEORLAKE)
[14:08:30] [PASSED] 0x7D55 (METEORLAKE)
[14:08:30] [PASSED] 0x7D60 (METEORLAKE)
[14:08:30] [PASSED] 0x7DD5 (METEORLAKE)
[14:08:30] [PASSED] 0x6420 (LUNARLAKE)
[14:08:30] [PASSED] 0x64A0 (LUNARLAKE)
[14:08:30] [PASSED] 0x64B0 (LUNARLAKE)
[14:08:30] [PASSED] 0xE202 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE209 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE20B (BATTLEMAGE)
[14:08:30] [PASSED] 0xE20C (BATTLEMAGE)
[14:08:30] [PASSED] 0xE20D (BATTLEMAGE)
[14:08:30] [PASSED] 0xE210 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE211 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE212 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE216 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE220 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE221 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE222 (BATTLEMAGE)
[14:08:30] [PASSED] 0xE223 (BATTLEMAGE)
[14:08:30] [PASSED] 0xB080 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB081 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB082 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB083 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB084 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB085 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB086 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB087 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB08F (PANTHERLAKE)
[14:08:30] [PASSED] 0xB090 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB0A0 (PANTHERLAKE)
[14:08:30] [PASSED] 0xB0B0 (PANTHERLAKE)
[14:08:30] [PASSED] 0xFD80 (PANTHERLAKE)
[14:08:30] [PASSED] 0xFD81 (PANTHERLAKE)
[14:08:30] [PASSED] 0xD740 (NOVALAKE_S)
[14:08:30] [PASSED] 0xD741 (NOVALAKE_S)
[14:08:30] [PASSED] 0xD742 (NOVALAKE_S)
[14:08:30] [PASSED] 0xD743 (NOVALAKE_S)
[14:08:30] [PASSED] 0xD744 (NOVALAKE_S)
[14:08:30] [PASSED] 0xD745 (NOVALAKE_S)
[14:08:30] [PASSED] 0x674C (CRESCENTISLAND)
[14:08:30] [PASSED] 0xD750 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD751 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD752 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD753 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD754 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD755 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD756 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD757 (NOVALAKE_P)
[14:08:30] [PASSED] 0xD75F (NOVALAKE_P)
[14:08:30] =============== [PASSED] check_platform_desc ===============
[14:08:30] ===================== [PASSED] xe_pci ======================
[14:08:30] =================== xe_rtp (2 subtests) ====================
[14:08:30] =============== xe_rtp_process_to_sr_tests ================
[14:08:30] [PASSED] coalesce-same-reg
[14:08:30] [PASSED] no-match-no-add
[14:08:30] [PASSED] match-or
[14:08:30] [PASSED] match-or-xfail
[14:08:30] [PASSED] no-match-no-add-multiple-rules
[14:08:30] [PASSED] two-regs-two-entries
[14:08:30] [PASSED] clr-one-set-other
[14:08:30] [PASSED] set-field
[14:08:30] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[14:08:30] [PASSED] conflict-not-disjoint
[14:08:30] [PASSED] conflict-reg-type
[14:08:30] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[14:08:30] ================== xe_rtp_process_tests ===================
[14:08:30] [PASSED] active1
[14:08:30] [PASSED] active2
[14:08:30] [PASSED] active-inactive
[14:08:30] [PASSED] inactive-active
[14:08:30] [PASSED] inactive-1st_or_active-inactive
[14:08:30] [PASSED] inactive-2nd_or_active-inactive
[14:08:30] [PASSED] inactive-last_or_active-inactive
[14:08:30] [PASSED] inactive-no_or_active-inactive
[14:08:30] ============== [PASSED] xe_rtp_process_tests ===============
[14:08:30] ===================== [PASSED] xe_rtp ======================
[14:08:30] ==================== xe_wa (1 subtest) =====================
[14:08:30] ======================== xe_wa_gt =========================
[14:08:30] [PASSED] TIGERLAKE B0
[14:08:30] [PASSED] DG1 A0
[14:08:30] [PASSED] DG1 B0
[14:08:30] [PASSED] ALDERLAKE_S A0
[14:08:30] [PASSED] ALDERLAKE_S B0
[14:08:30] [PASSED] ALDERLAKE_S C0
[14:08:30] [PASSED] ALDERLAKE_S D0
[14:08:30] [PASSED] ALDERLAKE_P A0
[14:08:30] [PASSED] ALDERLAKE_P B0
[14:08:30] [PASSED] ALDERLAKE_P C0
[14:08:30] [PASSED] ALDERLAKE_S RPLS D0
[14:08:30] [PASSED] ALDERLAKE_P RPLU E0
[14:08:30] [PASSED] DG2 G10 C0
[14:08:30] [PASSED] DG2 G11 B1
[14:08:30] [PASSED] DG2 G12 A1
[14:08:30] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[14:08:30] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[14:08:30] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[14:08:30] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[14:08:30] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[14:08:30] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[14:08:30] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[14:08:30] ==================== [PASSED] xe_wa_gt =====================
[14:08:30] ====================== [PASSED] xe_wa ======================
[14:08:30] ============================================================
[14:08:30] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[14:08:30] Elapsed time: 43.161s total, 4.341s configuring, 38.152s building, 0.611s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[14:08:30] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:08:31] 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=25
[14:09:01] Starting KUnit Kernel (1/1)...
[14:09:01] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:09:01] ============ drm_test_pick_cmdline (2 subtests) ============
[14:09:01] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[14:09:01] =============== drm_test_pick_cmdline_named ===============
[14:09:01] [PASSED] NTSC
[14:09:01] [PASSED] NTSC-J
[14:09:01] [PASSED] PAL
[14:09:01] [PASSED] PAL-M
[14:09:01] =========== [PASSED] drm_test_pick_cmdline_named ===========
[14:09:01] ============== [PASSED] drm_test_pick_cmdline ==============
[14:09:01] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[14:09:01] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[14:09:01] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[14:09:01] =========== drm_validate_clone_mode (2 subtests) ===========
[14:09:01] ============== drm_test_check_in_clone_mode ===============
[14:09:01] [PASSED] in_clone_mode
[14:09:01] [PASSED] not_in_clone_mode
[14:09:01] ========== [PASSED] drm_test_check_in_clone_mode ===========
[14:09:01] =============== drm_test_check_valid_clones ===============
[14:09:01] [PASSED] not_in_clone_mode
[14:09:01] [PASSED] valid_clone
[14:09:01] [PASSED] invalid_clone
[14:09:01] =========== [PASSED] drm_test_check_valid_clones ===========
[14:09:01] ============= [PASSED] drm_validate_clone_mode =============
[14:09:01] ============= drm_validate_modeset (1 subtest) =============
[14:09:01] [PASSED] drm_test_check_connector_changed_modeset
[14:09:01] ============== [PASSED] drm_validate_modeset ===============
[14:09:01] ====== drm_test_bridge_get_current_state (2 subtests) ======
[14:09:01] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[14:09:01] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[14:09:01] ======== [PASSED] drm_test_bridge_get_current_state ========
[14:09:01] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[14:09:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[14:09:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[14:09:01] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[14:09:01] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[14:09:01] ============== drm_bridge_alloc (2 subtests) ===============
[14:09:01] [PASSED] drm_test_drm_bridge_alloc_basic
[14:09:01] [PASSED] drm_test_drm_bridge_alloc_get_put
[14:09:01] ================ [PASSED] drm_bridge_alloc =================
[14:09:01] ============= drm_cmdline_parser (40 subtests) =============
[14:09:01] [PASSED] drm_test_cmdline_force_d_only
[14:09:01] [PASSED] drm_test_cmdline_force_D_only_dvi
[14:09:01] [PASSED] drm_test_cmdline_force_D_only_hdmi
[14:09:01] [PASSED] drm_test_cmdline_force_D_only_not_digital
[14:09:01] [PASSED] drm_test_cmdline_force_e_only
[14:09:01] [PASSED] drm_test_cmdline_res
[14:09:01] [PASSED] drm_test_cmdline_res_vesa
[14:09:01] [PASSED] drm_test_cmdline_res_vesa_rblank
[14:09:01] [PASSED] drm_test_cmdline_res_rblank
[14:09:01] [PASSED] drm_test_cmdline_res_bpp
[14:09:01] [PASSED] drm_test_cmdline_res_refresh
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[14:09:01] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[14:09:01] [PASSED] drm_test_cmdline_res_margins_force_on
[14:09:01] [PASSED] drm_test_cmdline_res_vesa_margins
[14:09:01] [PASSED] drm_test_cmdline_name
[14:09:01] [PASSED] drm_test_cmdline_name_bpp
[14:09:01] [PASSED] drm_test_cmdline_name_option
[14:09:01] [PASSED] drm_test_cmdline_name_bpp_option
[14:09:01] [PASSED] drm_test_cmdline_rotate_0
[14:09:01] [PASSED] drm_test_cmdline_rotate_90
[14:09:01] [PASSED] drm_test_cmdline_rotate_180
[14:09:01] [PASSED] drm_test_cmdline_rotate_270
[14:09:01] [PASSED] drm_test_cmdline_hmirror
[14:09:01] [PASSED] drm_test_cmdline_vmirror
[14:09:01] [PASSED] drm_test_cmdline_margin_options
[14:09:01] [PASSED] drm_test_cmdline_multiple_options
[14:09:01] [PASSED] drm_test_cmdline_bpp_extra_and_option
[14:09:01] [PASSED] drm_test_cmdline_extra_and_option
[14:09:01] [PASSED] drm_test_cmdline_freestanding_options
[14:09:01] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[14:09:01] [PASSED] drm_test_cmdline_panel_orientation
[14:09:01] ================ drm_test_cmdline_invalid =================
[14:09:01] [PASSED] margin_only
[14:09:01] [PASSED] interlace_only
[14:09:01] [PASSED] res_missing_x
[14:09:01] [PASSED] res_missing_y
[14:09:01] [PASSED] res_bad_y
[14:09:01] [PASSED] res_missing_y_bpp
[14:09:01] [PASSED] res_bad_bpp
[14:09:01] [PASSED] res_bad_refresh
[14:09:01] [PASSED] res_bpp_refresh_force_on_off
[14:09:01] [PASSED] res_invalid_mode
[14:09:01] [PASSED] res_bpp_wrong_place_mode
[14:09:01] [PASSED] name_bpp_refresh
[14:09:01] [PASSED] name_refresh
[14:09:01] [PASSED] name_refresh_wrong_mode
[14:09:01] [PASSED] name_refresh_invalid_mode
[14:09:01] [PASSED] rotate_multiple
[14:09:01] [PASSED] rotate_invalid_val
[14:09:01] [PASSED] rotate_truncated
[14:09:01] [PASSED] invalid_option
[14:09:01] [PASSED] invalid_tv_option
[14:09:01] [PASSED] truncated_tv_option
[14:09:01] ============ [PASSED] drm_test_cmdline_invalid =============
[14:09:01] =============== drm_test_cmdline_tv_options ===============
[14:09:01] [PASSED] NTSC
[14:09:01] [PASSED] NTSC_443
[14:09:01] [PASSED] NTSC_J
[14:09:01] [PASSED] PAL
[14:09:01] [PASSED] PAL_M
[14:09:01] [PASSED] PAL_N
[14:09:01] [PASSED] SECAM
[14:09:01] [PASSED] MONO_525
[14:09:01] [PASSED] MONO_625
[14:09:01] =========== [PASSED] drm_test_cmdline_tv_options ===========
[14:09:01] =============== [PASSED] drm_cmdline_parser ================
[14:09:01] ========== drmm_connector_hdmi_init (20 subtests) ==========
[14:09:01] [PASSED] drm_test_connector_hdmi_init_valid
[14:09:01] [PASSED] drm_test_connector_hdmi_init_bpc_8
[14:09:01] [PASSED] drm_test_connector_hdmi_init_bpc_10
[14:09:01] [PASSED] drm_test_connector_hdmi_init_bpc_12
[14:09:01] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[14:09:01] [PASSED] drm_test_connector_hdmi_init_bpc_null
[14:09:01] [PASSED] drm_test_connector_hdmi_init_formats_empty
[14:09:01] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[14:09:01] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:09:01] [PASSED] supported_formats=0x9 yuv420_allowed=1
[14:09:01] [PASSED] supported_formats=0x9 yuv420_allowed=0
[14:09:01] [PASSED] supported_formats=0x5 yuv420_allowed=1
[14:09:01] [PASSED] supported_formats=0x5 yuv420_allowed=0
[14:09:01] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:09:01] [PASSED] drm_test_connector_hdmi_init_null_ddc
[14:09:01] [PASSED] drm_test_connector_hdmi_init_null_product
[14:09:01] [PASSED] drm_test_connector_hdmi_init_null_vendor
[14:09:01] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[14:09:01] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[14:09:01] [PASSED] drm_test_connector_hdmi_init_product_valid
[14:09:01] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[14:09:01] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[14:09:01] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[14:09:01] ========= drm_test_connector_hdmi_init_type_valid =========
[14:09:01] [PASSED] HDMI-A
[14:09:01] [PASSED] HDMI-B
[14:09:01] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[14:09:01] ======== drm_test_connector_hdmi_init_type_invalid ========
[14:09:01] [PASSED] Unknown
[14:09:01] [PASSED] VGA
[14:09:01] [PASSED] DVI-I
[14:09:01] [PASSED] DVI-D
[14:09:01] [PASSED] DVI-A
[14:09:01] [PASSED] Composite
[14:09:01] [PASSED] SVIDEO
[14:09:01] [PASSED] LVDS
[14:09:01] [PASSED] Component
[14:09:01] [PASSED] DIN
[14:09:01] [PASSED] DP
[14:09:01] [PASSED] TV
[14:09:01] [PASSED] eDP
[14:09:01] [PASSED] Virtual
[14:09:01] [PASSED] DSI
[14:09:01] [PASSED] DPI
[14:09:01] [PASSED] Writeback
[14:09:01] [PASSED] SPI
[14:09:01] [PASSED] USB
[14:09:01] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[14:09:01] ============ [PASSED] drmm_connector_hdmi_init =============
[14:09:01] ============= drmm_connector_init (3 subtests) =============
[14:09:01] [PASSED] drm_test_drmm_connector_init
[14:09:01] [PASSED] drm_test_drmm_connector_init_null_ddc
[14:09:01] ========= drm_test_drmm_connector_init_type_valid =========
[14:09:01] [PASSED] Unknown
[14:09:01] [PASSED] VGA
[14:09:01] [PASSED] DVI-I
[14:09:01] [PASSED] DVI-D
[14:09:01] [PASSED] DVI-A
[14:09:01] [PASSED] Composite
[14:09:01] [PASSED] SVIDEO
[14:09:01] [PASSED] LVDS
[14:09:01] [PASSED] Component
[14:09:01] [PASSED] DIN
[14:09:01] [PASSED] DP
[14:09:01] [PASSED] HDMI-A
[14:09:01] [PASSED] HDMI-B
[14:09:01] [PASSED] TV
[14:09:01] [PASSED] eDP
[14:09:01] [PASSED] Virtual
[14:09:01] [PASSED] DSI
[14:09:01] [PASSED] DPI
[14:09:01] [PASSED] Writeback
[14:09:01] [PASSED] SPI
[14:09:01] [PASSED] USB
[14:09:01] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[14:09:01] =============== [PASSED] drmm_connector_init ===============
[14:09:01] ========= drm_connector_dynamic_init (6 subtests) ==========
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_init
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_init_properties
[14:09:01] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[14:09:01] [PASSED] Unknown
[14:09:01] [PASSED] VGA
[14:09:01] [PASSED] DVI-I
[14:09:01] [PASSED] DVI-D
[14:09:01] [PASSED] DVI-A
[14:09:01] [PASSED] Composite
[14:09:01] [PASSED] SVIDEO
[14:09:01] [PASSED] LVDS
[14:09:01] [PASSED] Component
[14:09:01] [PASSED] DIN
[14:09:01] [PASSED] DP
[14:09:01] [PASSED] HDMI-A
[14:09:01] [PASSED] HDMI-B
[14:09:01] [PASSED] TV
[14:09:01] [PASSED] eDP
[14:09:01] [PASSED] Virtual
[14:09:01] [PASSED] DSI
[14:09:01] [PASSED] DPI
[14:09:01] [PASSED] Writeback
[14:09:01] [PASSED] SPI
[14:09:01] [PASSED] USB
[14:09:01] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[14:09:01] ======== drm_test_drm_connector_dynamic_init_name =========
[14:09:01] [PASSED] Unknown
[14:09:01] [PASSED] VGA
[14:09:01] [PASSED] DVI-I
[14:09:01] [PASSED] DVI-D
[14:09:01] [PASSED] DVI-A
[14:09:01] [PASSED] Composite
[14:09:01] [PASSED] SVIDEO
[14:09:01] [PASSED] LVDS
[14:09:01] [PASSED] Component
[14:09:01] [PASSED] DIN
[14:09:01] [PASSED] DP
[14:09:01] [PASSED] HDMI-A
[14:09:01] [PASSED] HDMI-B
[14:09:01] [PASSED] TV
[14:09:01] [PASSED] eDP
[14:09:01] [PASSED] Virtual
[14:09:01] [PASSED] DSI
[14:09:01] [PASSED] DPI
[14:09:01] [PASSED] Writeback
[14:09:01] [PASSED] SPI
[14:09:01] [PASSED] USB
[14:09:01] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[14:09:01] =========== [PASSED] drm_connector_dynamic_init ============
[14:09:01] ==== drm_connector_dynamic_register_early (4 subtests) =====
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[14:09:01] ====== [PASSED] drm_connector_dynamic_register_early =======
[14:09:01] ======= drm_connector_dynamic_register (7 subtests) ========
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[14:09:01] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[14:09:01] ========= [PASSED] drm_connector_dynamic_register ==========
[14:09:01] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[14:09:01] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[14:09:01] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[14:09:01] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[14:09:01] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[14:09:01] ========== drm_test_get_tv_mode_from_name_valid ===========
[14:09:01] [PASSED] NTSC
[14:09:01] [PASSED] NTSC-443
[14:09:01] [PASSED] NTSC-J
[14:09:01] [PASSED] PAL
[14:09:01] [PASSED] PAL-M
[14:09:01] [PASSED] PAL-N
[14:09:01] [PASSED] SECAM
[14:09:01] [PASSED] Mono
[14:09:01] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[14:09:01] [PASSED] drm_test_get_tv_mode_from_name_truncated
[14:09:01] ============ [PASSED] drm_get_tv_mode_from_name ============
[14:09:01] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[14:09:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[14:09:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[14:09:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[14:09:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[14:09:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[14:09:01] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[14:09:01] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[14:09:01] [PASSED] VIC 96
[14:09:01] [PASSED] VIC 97
[14:09:01] [PASSED] VIC 101
[14:09:01] [PASSED] VIC 102
[14:09:01] [PASSED] VIC 106
[14:09:01] [PASSED] VIC 107
[14:09:01] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[14:09:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[14:09:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[14:09:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[14:09:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[14:09:01] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[14:09:01] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[14:09:01] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[14:09:01] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[14:09:01] [PASSED] Automatic
[14:09:01] [PASSED] Full
[14:09:01] [PASSED] Limited 16:235
[14:09:01] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[14:09:01] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[14:09:01] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[14:09:01] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[14:09:01] === drm_test_drm_hdmi_connector_get_output_format_name ====
[14:09:01] [PASSED] RGB
[14:09:01] [PASSED] YUV 4:2:0
[14:09:01] [PASSED] YUV 4:2:2
[14:09:01] [PASSED] YUV 4:4:4
[14:09:01] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[14:09:01] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[14:09:01] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[14:09:01] ============= drm_damage_helper (21 subtests) ==============
[14:09:01] [PASSED] drm_test_damage_iter_no_damage
[14:09:01] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[14:09:01] [PASSED] drm_test_damage_iter_no_damage_src_moved
[14:09:01] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[14:09:01] [PASSED] drm_test_damage_iter_no_damage_not_visible
[14:09:01] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[14:09:01] [PASSED] drm_test_damage_iter_no_damage_no_fb
[14:09:01] [PASSED] drm_test_damage_iter_simple_damage
[14:09:01] [PASSED] drm_test_damage_iter_single_damage
[14:09:01] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[14:09:01] [PASSED] drm_test_damage_iter_single_damage_outside_src
[14:09:01] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[14:09:01] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[14:09:01] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[14:09:01] [PASSED] drm_test_damage_iter_single_damage_src_moved
[14:09:01] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[14:09:01] [PASSED] drm_test_damage_iter_damage
[14:09:01] [PASSED] drm_test_damage_iter_damage_one_intersect
[14:09:01] [PASSED] drm_test_damage_iter_damage_one_outside
[14:09:01] [PASSED] drm_test_damage_iter_damage_src_moved
[14:09:01] [PASSED] drm_test_damage_iter_damage_not_visible
[14:09:01] ================ [PASSED] drm_damage_helper ================
[14:09:01] ============== drm_dp_mst_helper (3 subtests) ==============
[14:09:01] ============== drm_test_dp_mst_calc_pbn_mode ==============
[14:09:01] [PASSED] Clock 154000 BPP 30 DSC disabled
[14:09:01] [PASSED] Clock 234000 BPP 30 DSC disabled
[14:09:01] [PASSED] Clock 297000 BPP 24 DSC disabled
[14:09:01] [PASSED] Clock 332880 BPP 24 DSC enabled
[14:09:01] [PASSED] Clock 324540 BPP 24 DSC enabled
[14:09:01] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[14:09:01] ============== drm_test_dp_mst_calc_pbn_div ===============
[14:09:01] [PASSED] Link rate 2000000 lane count 4
[14:09:01] [PASSED] Link rate 2000000 lane count 2
[14:09:01] [PASSED] Link rate 2000000 lane count 1
[14:09:01] [PASSED] Link rate 1350000 lane count 4
[14:09:01] [PASSED] Link rate 1350000 lane count 2
[14:09:01] [PASSED] Link rate 1350000 lane count 1
[14:09:01] [PASSED] Link rate 1000000 lane count 4
[14:09:01] [PASSED] Link rate 1000000 lane count 2
[14:09:01] [PASSED] Link rate 1000000 lane count 1
[14:09:01] [PASSED] Link rate 810000 lane count 4
[14:09:01] [PASSED] Link rate 810000 lane count 2
[14:09:01] [PASSED] Link rate 810000 lane count 1
[14:09:01] [PASSED] Link rate 540000 lane count 4
[14:09:01] [PASSED] Link rate 540000 lane count 2
[14:09:01] [PASSED] Link rate 540000 lane count 1
[14:09:01] [PASSED] Link rate 270000 lane count 4
[14:09:01] [PASSED] Link rate 270000 lane count 2
[14:09:01] [PASSED] Link rate 270000 lane count 1
[14:09:01] [PASSED] Link rate 162000 lane count 4
[14:09:01] [PASSED] Link rate 162000 lane count 2
[14:09:01] [PASSED] Link rate 162000 lane count 1
[14:09:01] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[14:09:01] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[14:09:01] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[14:09:01] [PASSED] DP_POWER_UP_PHY with port number
[14:09:01] [PASSED] DP_POWER_DOWN_PHY with port number
[14:09:01] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[14:09:01] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[14:09:01] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[14:09:01] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[14:09:01] [PASSED] DP_QUERY_PAYLOAD with port number
[14:09:01] [PASSED] DP_QUERY_PAYLOAD with VCPI
[14:09:01] [PASSED] DP_REMOTE_DPCD_READ with port number
[14:09:01] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[14:09:01] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[14:09:01] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[14:09:01] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[14:09:01] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[14:09:01] [PASSED] DP_REMOTE_I2C_READ with port number
[14:09:01] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[14:09:01] [PASSED] DP_REMOTE_I2C_READ with transactions array
[14:09:01] [PASSED] DP_REMOTE_I2C_WRITE with port number
[14:09:01] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[14:09:01] [PASSED] DP_REMOTE_I2C_WRITE with data array
[14:09:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[14:09:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[14:09:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[14:09:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[14:09:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[14:09:01] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[14:09:01] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[14:09:01] ================ [PASSED] drm_dp_mst_helper ================
[14:09:01] ================== drm_exec (7 subtests) ===================
[14:09:01] [PASSED] sanitycheck
[14:09:01] [PASSED] test_lock
[14:09:01] [PASSED] test_lock_unlock
[14:09:01] [PASSED] test_duplicates
[14:09:01] [PASSED] test_prepare
[14:09:01] [PASSED] test_prepare_array
[14:09:01] [PASSED] test_multiple_loops
[14:09:01] ==================== [PASSED] drm_exec =====================
[14:09:01] =========== drm_format_helper_test (17 subtests) ===========
[14:09:01] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[14:09:01] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[14:09:01] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[14:09:01] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[14:09:01] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[14:09:01] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[14:09:01] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[14:09:01] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[14:09:01] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[14:09:01] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[14:09:01] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[14:09:01] ============== drm_test_fb_xrgb8888_to_mono ===============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[14:09:01] ==================== drm_test_fb_swab =====================
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ================ [PASSED] drm_test_fb_swab =================
[14:09:01] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[14:09:01] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[14:09:01] [PASSED] single_pixel_source_buffer
[14:09:01] [PASSED] single_pixel_clip_rectangle
[14:09:01] [PASSED] well_known_colors
[14:09:01] [PASSED] destination_pitch
[14:09:01] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[14:09:01] ================= drm_test_fb_clip_offset =================
[14:09:01] [PASSED] pass through
[14:09:01] [PASSED] horizontal offset
[14:09:01] [PASSED] vertical offset
[14:09:01] [PASSED] horizontal and vertical offset
[14:09:01] [PASSED] horizontal offset (custom pitch)
[14:09:01] [PASSED] vertical offset (custom pitch)
[14:09:01] [PASSED] horizontal and vertical offset (custom pitch)
[14:09:01] ============= [PASSED] drm_test_fb_clip_offset =============
[14:09:01] =================== drm_test_fb_memcpy ====================
[14:09:01] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[14:09:01] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[14:09:01] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[14:09:01] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[14:09:01] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[14:09:01] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[14:09:01] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[14:09:01] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[14:09:01] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[14:09:01] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[14:09:01] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[14:09:01] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[14:09:01] =============== [PASSED] drm_test_fb_memcpy ================
[14:09:01] ============= [PASSED] drm_format_helper_test ==============
[14:09:01] ================= drm_format (18 subtests) =================
[14:09:01] [PASSED] drm_test_format_block_width_invalid
[14:09:01] [PASSED] drm_test_format_block_width_one_plane
[14:09:01] [PASSED] drm_test_format_block_width_two_plane
[14:09:01] [PASSED] drm_test_format_block_width_three_plane
[14:09:01] [PASSED] drm_test_format_block_width_tiled
[14:09:01] [PASSED] drm_test_format_block_height_invalid
[14:09:01] [PASSED] drm_test_format_block_height_one_plane
[14:09:01] [PASSED] drm_test_format_block_height_two_plane
[14:09:01] [PASSED] drm_test_format_block_height_three_plane
[14:09:01] [PASSED] drm_test_format_block_height_tiled
[14:09:01] [PASSED] drm_test_format_min_pitch_invalid
[14:09:01] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[14:09:01] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[14:09:01] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[14:09:01] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[14:09:01] [PASSED] drm_test_format_min_pitch_two_plane
[14:09:01] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[14:09:01] [PASSED] drm_test_format_min_pitch_tiled
[14:09:01] =================== [PASSED] drm_format ====================
[14:09:01] ============== drm_framebuffer (10 subtests) ===============
[14:09:01] ========== drm_test_framebuffer_check_src_coords ==========
[14:09:01] [PASSED] Success: source fits into fb
[14:09:01] [PASSED] Fail: overflowing fb with x-axis coordinate
[14:09:01] [PASSED] Fail: overflowing fb with y-axis coordinate
[14:09:01] [PASSED] Fail: overflowing fb with source width
[14:09:01] [PASSED] Fail: overflowing fb with source height
[14:09:01] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[14:09:01] [PASSED] drm_test_framebuffer_cleanup
[14:09:01] =============== drm_test_framebuffer_create ===============
[14:09:01] [PASSED] ABGR8888 normal sizes
[14:09:01] [PASSED] ABGR8888 max sizes
[14:09:01] [PASSED] ABGR8888 pitch greater than min required
[14:09:01] [PASSED] ABGR8888 pitch less than min required
[14:09:01] [PASSED] ABGR8888 Invalid width
[14:09:01] [PASSED] ABGR8888 Invalid buffer handle
[14:09:01] [PASSED] No pixel format
[14:09:01] [PASSED] ABGR8888 Width 0
[14:09:01] [PASSED] ABGR8888 Height 0
[14:09:01] [PASSED] ABGR8888 Out of bound height * pitch combination
[14:09:01] [PASSED] ABGR8888 Large buffer offset
[14:09:01] [PASSED] ABGR8888 Buffer offset for inexistent plane
[14:09:01] [PASSED] ABGR8888 Invalid flag
[14:09:01] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[14:09:01] [PASSED] ABGR8888 Valid buffer modifier
[14:09:01] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[14:09:01] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[14:09:01] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[14:09:01] [PASSED] NV12 Normal sizes
[14:09:01] [PASSED] NV12 Max sizes
[14:09:01] [PASSED] NV12 Invalid pitch
[14:09:01] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[14:09:01] [PASSED] NV12 different modifier per-plane
[14:09:01] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[14:09:01] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[14:09:01] [PASSED] NV12 Modifier for inexistent plane
[14:09:01] [PASSED] NV12 Handle for inexistent plane
[14:09:01] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[14:09:01] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[14:09:01] [PASSED] YVU420 Normal sizes
[14:09:01] [PASSED] YVU420 Max sizes
[14:09:01] [PASSED] YVU420 Invalid pitch
[14:09:01] [PASSED] YVU420 Different pitches
[14:09:01] [PASSED] YVU420 Different buffer offsets/pitches
[14:09:01] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[14:09:01] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[14:09:01] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[14:09:01] [PASSED] YVU420 Valid modifier
[14:09:01] [PASSED] YVU420 Different modifiers per plane
[14:09:01] [PASSED] YVU420 Modifier for inexistent plane
[14:09:01] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[14:09:01] [PASSED] X0L2 Normal sizes
[14:09:01] [PASSED] X0L2 Max sizes
[14:09:01] [PASSED] X0L2 Invalid pitch
[14:09:01] [PASSED] X0L2 Pitch greater than minimum required
[14:09:01] [PASSED] X0L2 Handle for inexistent plane
[14:09:01] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[14:09:01] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[14:09:01] [PASSED] X0L2 Valid modifier
[14:09:01] [PASSED] X0L2 Modifier for inexistent plane
[14:09:01] =========== [PASSED] drm_test_framebuffer_create ===========
[14:09:01] [PASSED] drm_test_framebuffer_free
[14:09:01] [PASSED] drm_test_framebuffer_init
[14:09:01] [PASSED] drm_test_framebuffer_init_bad_format
[14:09:01] [PASSED] drm_test_framebuffer_init_dev_mismatch
[14:09:01] [PASSED] drm_test_framebuffer_lookup
[14:09:01] [PASSED] drm_test_framebuffer_lookup_inexistent
[14:09:01] [PASSED] drm_test_framebuffer_modifiers_not_supported
[14:09:01] ================= [PASSED] drm_framebuffer =================
[14:09:01] ================ drm_gem_shmem (8 subtests) ================
[14:09:01] [PASSED] drm_gem_shmem_test_obj_create
[14:09:01] [PASSED] drm_gem_shmem_test_obj_create_private
[14:09:01] [PASSED] drm_gem_shmem_test_pin_pages
[14:09:01] [PASSED] drm_gem_shmem_test_vmap
[14:09:01] [PASSED] drm_gem_shmem_test_get_sg_table
[14:09:01] [PASSED] drm_gem_shmem_test_get_pages_sgt
[14:09:01] [PASSED] drm_gem_shmem_test_madvise
[14:09:01] [PASSED] drm_gem_shmem_test_purge
[14:09:01] ================== [PASSED] drm_gem_shmem ==================
[14:09:01] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[14:09:01] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[14:09:01] [PASSED] Automatic
[14:09:01] [PASSED] Full
[14:09:01] [PASSED] Limited 16:235
[14:09:01] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[14:09:01] [PASSED] drm_test_check_disable_connector
[14:09:01] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[14:09:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[14:09:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[14:09:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[14:09:01] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[14:09:01] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[14:09:01] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[14:09:01] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[14:09:01] [PASSED] drm_test_check_output_bpc_dvi
[14:09:01] [PASSED] drm_test_check_output_bpc_format_vic_1
[14:09:01] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[14:09:01] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[14:09:01] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[14:09:01] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[14:09:01] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[14:09:01] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[14:09:01] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[14:09:01] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[14:09:01] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[14:09:01] [PASSED] drm_test_check_broadcast_rgb_value
[14:09:01] [PASSED] drm_test_check_bpc_8_value
[14:09:01] [PASSED] drm_test_check_bpc_10_value
[14:09:01] [PASSED] drm_test_check_bpc_12_value
[14:09:01] [PASSED] drm_test_check_format_value
[14:09:01] [PASSED] drm_test_check_tmds_char_value
[14:09:01] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[14:09:01] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[14:09:01] [PASSED] drm_test_check_mode_valid
[14:09:01] [PASSED] drm_test_check_mode_valid_reject
[14:09:01] [PASSED] drm_test_check_mode_valid_reject_rate
[14:09:01] [PASSED] drm_test_check_mode_valid_reject_max_clock
[14:09:01] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[14:09:01] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[14:09:01] [PASSED] drm_test_check_infoframes
[14:09:01] [PASSED] drm_test_check_reject_avi_infoframe
[14:09:01] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[14:09:01] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[14:09:01] [PASSED] drm_test_check_reject_audio_infoframe
[14:09:01] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[14:09:01] ================= drm_managed (2 subtests) =================
[14:09:01] [PASSED] drm_test_managed_release_action
[14:09:01] [PASSED] drm_test_managed_run_action
[14:09:01] =================== [PASSED] drm_managed ===================
[14:09:01] =================== drm_mm (6 subtests) ====================
[14:09:01] [PASSED] drm_test_mm_init
[14:09:01] [PASSED] drm_test_mm_debug
[14:09:01] [PASSED] drm_test_mm_align32
[14:09:01] [PASSED] drm_test_mm_align64
[14:09:01] [PASSED] drm_test_mm_lowest
[14:09:01] [PASSED] drm_test_mm_highest
[14:09:01] ===================== [PASSED] drm_mm ======================
[14:09:01] ============= drm_modes_analog_tv (5 subtests) =============
[14:09:01] [PASSED] drm_test_modes_analog_tv_mono_576i
[14:09:01] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[14:09:01] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[14:09:01] [PASSED] drm_test_modes_analog_tv_pal_576i
[14:09:01] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[14:09:01] =============== [PASSED] drm_modes_analog_tv ===============
[14:09:01] ============== drm_plane_helper (2 subtests) ===============
[14:09:01] =============== drm_test_check_plane_state ================
[14:09:01] [PASSED] clipping_simple
[14:09:01] [PASSED] clipping_rotate_reflect
[14:09:01] [PASSED] positioning_simple
[14:09:01] [PASSED] upscaling
[14:09:01] [PASSED] downscaling
[14:09:01] [PASSED] rounding1
[14:09:01] [PASSED] rounding2
[14:09:01] [PASSED] rounding3
[14:09:01] [PASSED] rounding4
[14:09:01] =========== [PASSED] drm_test_check_plane_state ============
[14:09:01] =========== drm_test_check_invalid_plane_state ============
[14:09:01] [PASSED] positioning_invalid
[14:09:01] [PASSED] upscaling_invalid
[14:09:01] [PASSED] downscaling_invalid
[14:09:01] ======= [PASSED] drm_test_check_invalid_plane_state ========
[14:09:01] ================ [PASSED] drm_plane_helper =================
[14:09:01] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[14:09:01] ====== drm_test_connector_helper_tv_get_modes_check =======
[14:09:01] [PASSED] None
[14:09:01] [PASSED] PAL
[14:09:01] [PASSED] NTSC
[14:09:01] [PASSED] Both, NTSC Default
[14:09:01] [PASSED] Both, PAL Default
[14:09:01] [PASSED] Both, NTSC Default, with PAL on command-line
[14:09:01] [PASSED] Both, PAL Default, with NTSC on command-line
[14:09:01] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[14:09:01] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[14:09:01] ================== drm_rect (9 subtests) ===================
[14:09:01] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[14:09:01] [PASSED] drm_test_rect_clip_scaled_not_clipped
[14:09:01] [PASSED] drm_test_rect_clip_scaled_clipped
[14:09:01] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[14:09:01] ================= drm_test_rect_intersect =================
[14:09:01] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[14:09:01] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[14:09:01] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[14:09:01] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[14:09:01] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[14:09:01] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[14:09:01] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[14:09:01] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[14:09:01] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[14:09:01] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[14:09:01] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[14:09:01] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[14:09:01] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[14:09:01] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[14:09:01] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[14:09:01] ============= [PASSED] drm_test_rect_intersect =============
[14:09:01] ================ drm_test_rect_calc_hscale ================
[14:09:01] [PASSED] normal use
[14:09:01] [PASSED] out of max range
[14:09:01] [PASSED] out of min range
[14:09:01] [PASSED] zero dst
[14:09:01] [PASSED] negative src
[14:09:01] [PASSED] negative dst
[14:09:01] ============ [PASSED] drm_test_rect_calc_hscale ============
[14:09:01] ================ drm_test_rect_calc_vscale ================
[14:09:01] [PASSED] normal use
[14:09:01] [PASSED] out of max range
[14:09:01] [PASSED] out of min range
[14:09:01] [PASSED] zero dst
[14:09:01] [PASSED] negative src
[14:09:01] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[14:09:01] ============ [PASSED] drm_test_rect_calc_vscale ============
[14:09:01] ================== drm_test_rect_rotate ===================
[14:09:01] [PASSED] reflect-x
[14:09:01] [PASSED] reflect-y
[14:09:01] [PASSED] rotate-0
[14:09:01] [PASSED] rotate-90
[14:09:01] [PASSED] rotate-180
[14:09:01] [PASSED] rotate-270
[14:09:01] ============== [PASSED] drm_test_rect_rotate ===============
[14:09:01] ================ drm_test_rect_rotate_inv =================
[14:09:01] [PASSED] reflect-x
[14:09:01] [PASSED] reflect-y
[14:09:01] [PASSED] rotate-0
[14:09:01] [PASSED] rotate-90
[14:09:01] [PASSED] rotate-180
[14:09:01] [PASSED] rotate-270
[14:09:01] ============ [PASSED] drm_test_rect_rotate_inv =============
[14:09:01] ==================== [PASSED] drm_rect =====================
[14:09:01] ============ drm_sysfb_modeset_test (1 subtest) ============
[14:09:01] ============ drm_test_sysfb_build_fourcc_list =============
[14:09:01] [PASSED] no native formats
[14:09:01] [PASSED] XRGB8888 as native format
[14:09:01] [PASSED] remove duplicates
[14:09:01] [PASSED] convert alpha formats
[14:09:01] [PASSED] random formats
[14:09:01] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[14:09:01] ============= [PASSED] drm_sysfb_modeset_test ==============
[14:09:01] ================== drm_fixp (2 subtests) ===================
[14:09:01] [PASSED] drm_test_int2fixp
[14:09:01] [PASSED] drm_test_sm2fixp
[14:09:01] ==================== [PASSED] drm_fixp =====================
[14:09:01] ============================================================
[14:09:01] Testing complete. Ran 621 tests: passed: 621
[14:09:01] Elapsed time: 31.399s total, 1.665s configuring, 29.518s building, 0.175s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[14:09:01] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:09: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=25
[14:09:12] Starting KUnit Kernel (1/1)...
[14:09:12] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:09:12] ================= ttm_device (5 subtests) ==================
[14:09:12] [PASSED] ttm_device_init_basic
[14:09:12] [PASSED] ttm_device_init_multiple
[14:09:12] [PASSED] ttm_device_fini_basic
[14:09:12] [PASSED] ttm_device_init_no_vma_man
[14:09:12] ================== ttm_device_init_pools ==================
[14:09:12] [PASSED] No DMA allocations, no DMA32 required
[14:09:12] [PASSED] DMA allocations, DMA32 required
[14:09:12] [PASSED] No DMA allocations, DMA32 required
[14:09:12] [PASSED] DMA allocations, no DMA32 required
[14:09:12] ============== [PASSED] ttm_device_init_pools ==============
[14:09:12] =================== [PASSED] ttm_device ====================
[14:09:12] ================== ttm_pool (8 subtests) ===================
[14:09:12] ================== ttm_pool_alloc_basic ===================
[14:09:12] [PASSED] One page
[14:09:12] [PASSED] More than one page
[14:09:12] [PASSED] Above the allocation limit
[14:09:12] [PASSED] One page, with coherent DMA mappings enabled
[14:09:12] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:09:12] ============== [PASSED] ttm_pool_alloc_basic ===============
[14:09:12] ============== ttm_pool_alloc_basic_dma_addr ==============
[14:09:12] [PASSED] One page
[14:09:12] [PASSED] More than one page
[14:09:12] [PASSED] Above the allocation limit
[14:09:12] [PASSED] One page, with coherent DMA mappings enabled
[14:09:12] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:09:12] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[14:09:12] [PASSED] ttm_pool_alloc_order_caching_match
[14:09:12] [PASSED] ttm_pool_alloc_caching_mismatch
[14:09:12] [PASSED] ttm_pool_alloc_order_mismatch
[14:09:12] [PASSED] ttm_pool_free_dma_alloc
[14:09:12] [PASSED] ttm_pool_free_no_dma_alloc
[14:09:12] [PASSED] ttm_pool_fini_basic
[14:09:12] ==================== [PASSED] ttm_pool =====================
[14:09:12] ================ ttm_resource (8 subtests) =================
[14:09:12] ================= ttm_resource_init_basic =================
[14:09:12] [PASSED] Init resource in TTM_PL_SYSTEM
[14:09:12] [PASSED] Init resource in TTM_PL_VRAM
[14:09:12] [PASSED] Init resource in a private placement
[14:09:12] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[14:09:12] ============= [PASSED] ttm_resource_init_basic =============
[14:09:12] [PASSED] ttm_resource_init_pinned
[14:09:12] [PASSED] ttm_resource_fini_basic
[14:09:12] [PASSED] ttm_resource_manager_init_basic
[14:09:12] [PASSED] ttm_resource_manager_usage_basic
[14:09:12] [PASSED] ttm_resource_manager_set_used_basic
[14:09:12] [PASSED] ttm_sys_man_alloc_basic
[14:09:12] [PASSED] ttm_sys_man_free_basic
[14:09:12] ================== [PASSED] ttm_resource ===================
[14:09:12] =================== ttm_tt (15 subtests) ===================
[14:09:12] ==================== ttm_tt_init_basic ====================
[14:09:12] [PASSED] Page-aligned size
[14:09:12] [PASSED] Extra pages requested
[14:09:12] ================ [PASSED] ttm_tt_init_basic ================
[14:09:12] [PASSED] ttm_tt_init_misaligned
[14:09:12] [PASSED] ttm_tt_fini_basic
[14:09:12] [PASSED] ttm_tt_fini_sg
[14:09:12] [PASSED] ttm_tt_fini_shmem
[14:09:12] [PASSED] ttm_tt_create_basic
[14:09:12] [PASSED] ttm_tt_create_invalid_bo_type
[14:09:12] [PASSED] ttm_tt_create_ttm_exists
[14:09:12] [PASSED] ttm_tt_create_failed
[14:09:12] [PASSED] ttm_tt_destroy_basic
[14:09:12] [PASSED] ttm_tt_populate_null_ttm
[14:09:12] [PASSED] ttm_tt_populate_populated_ttm
[14:09:12] [PASSED] ttm_tt_unpopulate_basic
[14:09:12] [PASSED] ttm_tt_unpopulate_empty_ttm
[14:09:12] [PASSED] ttm_tt_swapin_basic
[14:09:12] ===================== [PASSED] ttm_tt ======================
[14:09:12] =================== ttm_bo (14 subtests) ===================
[14:09:12] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[14:09:12] [PASSED] Cannot be interrupted and sleeps
[14:09:12] [PASSED] Cannot be interrupted, locks straight away
[14:09:12] [PASSED] Can be interrupted, sleeps
[14:09:12] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[14:09:12] [PASSED] ttm_bo_reserve_locked_no_sleep
[14:09:12] [PASSED] ttm_bo_reserve_no_wait_ticket
[14:09:12] [PASSED] ttm_bo_reserve_double_resv
[14:09:12] [PASSED] ttm_bo_reserve_interrupted
[14:09:12] [PASSED] ttm_bo_reserve_deadlock
[14:09:12] [PASSED] ttm_bo_unreserve_basic
[14:09:12] [PASSED] ttm_bo_unreserve_pinned
[14:09:12] [PASSED] ttm_bo_unreserve_bulk
[14:09:12] [PASSED] ttm_bo_fini_basic
[14:09:12] [PASSED] ttm_bo_fini_shared_resv
[14:09:12] [PASSED] ttm_bo_pin_basic
[14:09:12] [PASSED] ttm_bo_pin_unpin_resource
[14:09:12] [PASSED] ttm_bo_multiple_pin_one_unpin
[14:09:12] ===================== [PASSED] ttm_bo ======================
[14:09:12] ============== ttm_bo_validate (22 subtests) ===============
[14:09:12] ============== ttm_bo_init_reserved_sys_man ===============
[14:09:12] [PASSED] Buffer object for userspace
[14:09:12] [PASSED] Kernel buffer object
[14:09:12] [PASSED] Shared buffer object
[14:09:12] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[14:09:12] ============== ttm_bo_init_reserved_mock_man ==============
[14:09:12] [PASSED] Buffer object for userspace
[14:09:12] [PASSED] Kernel buffer object
[14:09:12] [PASSED] Shared buffer object
[14:09:12] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[14:09:12] [PASSED] ttm_bo_init_reserved_resv
[14:09:12] ================== ttm_bo_validate_basic ==================
[14:09:12] [PASSED] Buffer object for userspace
[14:09:12] [PASSED] Kernel buffer object
[14:09:12] [PASSED] Shared buffer object
[14:09:12] ============== [PASSED] ttm_bo_validate_basic ==============
[14:09:12] [PASSED] ttm_bo_validate_invalid_placement
[14:09:12] ============= ttm_bo_validate_same_placement ==============
[14:09:12] [PASSED] System manager
[14:09:12] [PASSED] VRAM manager
[14:09:12] ========= [PASSED] ttm_bo_validate_same_placement ==========
[14:09:12] [PASSED] ttm_bo_validate_failed_alloc
[14:09:12] [PASSED] ttm_bo_validate_pinned
[14:09:12] [PASSED] ttm_bo_validate_busy_placement
[14:09:12] ================ ttm_bo_validate_multihop =================
[14:09:12] [PASSED] Buffer object for userspace
[14:09:12] [PASSED] Kernel buffer object
[14:09:12] [PASSED] Shared buffer object
[14:09:12] ============ [PASSED] ttm_bo_validate_multihop =============
[14:09:12] ========== ttm_bo_validate_no_placement_signaled ==========
[14:09:12] [PASSED] Buffer object in system domain, no page vector
[14:09:12] [PASSED] Buffer object in system domain with an existing page vector
[14:09:12] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[14:09:12] ======== ttm_bo_validate_no_placement_not_signaled ========
[14:09:12] [PASSED] Buffer object for userspace
[14:09:12] [PASSED] Kernel buffer object
[14:09:12] [PASSED] Shared buffer object
[14:09:12] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[14:09:12] [PASSED] ttm_bo_validate_move_fence_signaled
[14:09:12] ========= ttm_bo_validate_move_fence_not_signaled =========
[14:09:12] [PASSED] Waits for GPU
[14:09:12] [PASSED] Tries to lock straight away
[14:09:12] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[14:09:12] [PASSED] ttm_bo_validate_swapout
[14:09:12] [PASSED] ttm_bo_validate_happy_evict
[14:09:12] [PASSED] ttm_bo_validate_all_pinned_evict
[14:09:12] [PASSED] ttm_bo_validate_allowed_only_evict
[14:09:12] [PASSED] ttm_bo_validate_deleted_evict
[14:09:12] [PASSED] ttm_bo_validate_busy_domain_evict
[14:09:12] [PASSED] ttm_bo_validate_evict_gutting
[14:09:12] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[14:09:12] ================= [PASSED] ttm_bo_validate =================
[14:09:12] ============================================================
[14:09:12] Testing complete. Ran 102 tests: passed: 102
[14:09:13] Elapsed time: 11.203s total, 1.645s configuring, 9.292s building, 0.225s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* ✗ Xe.CI.BAT: failure for drm/xe: Convert stolen memory over to ttm_range_manager
2026-04-10 12:06 [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager Sanjay Yadav
2026-04-10 14:07 ` ✗ CI.checkpatch: warning for " Patchwork
2026-04-10 14:09 ` ✓ CI.KUnit: success " Patchwork
@ 2026-04-10 14:50 ` Patchwork
2026-04-11 0:59 ` ✓ Xe.CI.FULL: success " Patchwork
2026-04-11 1:19 ` [PATCH] " Matthew Brost
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-04-10 14:50 UTC (permalink / raw)
To: Sanjay Yadav; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 2882 bytes --]
== Series Details ==
Series: drm/xe: Convert stolen memory over to ttm_range_manager
URL : https://patchwork.freedesktop.org/series/164694/
State : failure
== Summary ==
CI Bug Log - changes from xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db_BAT -> xe-pw-164694v1_BAT
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-164694v1_BAT absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-164694v1_BAT, 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 (14 -> 14)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-164694v1_BAT:
### IGT changes ###
#### Possible regressions ####
* igt@xe_gt_freq@freq_fixed_idle:
- bat-dg2-oem2: [PASS][1] -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/bat-dg2-oem2/igt@xe_gt_freq@freq_fixed_idle.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/bat-dg2-oem2/igt@xe_gt_freq@freq_fixed_idle.html
Known issues
------------
Here are the changes found in xe-pw-164694v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@xe_waitfence@reltime:
- bat-dg2-oem2: [PASS][3] -> [FAIL][4] ([Intel XE#6520])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/bat-dg2-oem2/igt@xe_waitfence@reltime.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/bat-dg2-oem2/igt@xe_waitfence@reltime.html
#### Possible fixes ####
* igt@kms_flip@basic-flip-vs-dpms:
- bat-adlp-7: [DMESG-WARN][5] ([Intel XE#7483]) -> [PASS][6] +12 other tests pass
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/bat-adlp-7/igt@kms_flip@basic-flip-vs-dpms.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/bat-adlp-7/igt@kms_flip@basic-flip-vs-dpms.html
[Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520
[Intel XE#7483]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7483
Build changes
-------------
* Linux: xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db -> xe-pw-164694v1
IGT_8853: b52b42b0c987404a8cbf80c77a41e37705e32779 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db: 56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db
xe-pw-164694v1: 164694v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/index.html
[-- Attachment #2: Type: text/html, Size: 3510 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ Xe.CI.FULL: success for drm/xe: Convert stolen memory over to ttm_range_manager
2026-04-10 12:06 [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager Sanjay Yadav
` (2 preceding siblings ...)
2026-04-10 14:50 ` ✗ Xe.CI.BAT: failure " Patchwork
@ 2026-04-11 0:59 ` Patchwork
2026-04-11 1:19 ` [PATCH] " Matthew Brost
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-04-11 0:59 UTC (permalink / raw)
To: Sanjay Yadav; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 30225 bytes --]
== Series Details ==
Series: drm/xe: Convert stolen memory over to ttm_range_manager
URL : https://patchwork.freedesktop.org/series/164694/
State : success
== Summary ==
CI Bug Log - changes from xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db_FULL -> xe-pw-164694v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-164694v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@x-tiled-16bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][1] ([Intel XE#1407])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-lnl: NOTRUN -> [SKIP][2] ([Intel XE#1124])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_bw@linear-tiling-4-displays-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#367] / [Intel XE#7354])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@kms_bw@linear-tiling-4-displays-2560x1440p.html
* igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][4] ([Intel XE#2887]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_chamelium_edid@hdmi-edid-read:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2252])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@kms_chamelium_edid@hdmi-edid-read.html
* igt@kms_chamelium_frames@dp-frame-dump:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#373]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_chamelium_frames@dp-frame-dump.html
* igt@kms_content_protection@atomic-dpms@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][7] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_content_protection@atomic-dpms@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-random-32x10:
- shard-lnl: NOTRUN -> [SKIP][8] ([Intel XE#1424])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_cursor_crc@cursor-random-32x10.html
* igt@kms_cursor_crc@cursor-random-64x21:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#2320])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@kms_cursor_crc@cursor-random-64x21.html
* igt@kms_cursor_crc@cursor-tearing-framebuffer-change:
- shard-bmg: NOTRUN -> [INCOMPLETE][10] ([Intel XE#2594])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@kms_cursor_crc@cursor-tearing-framebuffer-change.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
- shard-lnl: NOTRUN -> [SKIP][11] ([Intel XE#309] / [Intel XE#7343])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [PASS][12] -> [FAIL][13] ([Intel XE#301]) +1 other test fail
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-lnl: NOTRUN -> [SKIP][14] ([Intel XE#7178] / [Intel XE#7349])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#6312] / [Intel XE#651])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#4141])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#656]) +6 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][18] ([Intel XE#7061] / [Intel XE#7356])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcpsr-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2313])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [PASS][20] -> [SKIP][21] ([Intel XE#1503])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-7/igt@kms_hdr@invalid-hdr.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane@pixel-format-y-tiled-modifier-source-clamping:
- shard-lnl: NOTRUN -> [SKIP][22] ([Intel XE#7283])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_plane@pixel-format-y-tiled-modifier-source-clamping.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf:
- shard-lnl: NOTRUN -> [SKIP][23] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#4608])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][25] ([Intel XE#4608] / [Intel XE#7304])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-b-edp-1.html
* igt@kms_psr@fbc-pr-primary-render:
- shard-lnl: NOTRUN -> [SKIP][26] ([Intel XE#1406])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@kms_psr@fbc-pr-primary-render.html
* igt@xe_eudebug@basic-vm-access-userptr-faultable:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#7636]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_eudebug@basic-vm-access-userptr-faultable.html
* igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-sram:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#7636])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@xe_eudebug_online@writes-caching-vram-bb-vram-target-sram.html
* igt@xe_evict@evict-cm-threads-small:
- shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#6540] / [Intel XE#688])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_evict@evict-cm-threads-small.html
* igt@xe_exec_balancer@once-cm-parallel-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#7482]) +2 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_exec_balancer@once-cm-parallel-userptr-invalidate-race.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind:
- shard-lnl: NOTRUN -> [SKIP][32] ([Intel XE#1392])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind.html
* igt@xe_exec_fault_mode@twice-multi-queue-userptr-imm:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#7136]) +1 other test skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_exec_fault_mode@twice-multi-queue-userptr-imm.html
* igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-basic:
- shard-lnl: NOTRUN -> [SKIP][34] ([Intel XE#6874]) +4 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-basic.html
* igt@xe_exec_multi_queue@two-queues-userptr:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#6874]) +2 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@xe_exec_multi_queue@two-queues-userptr.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma:
- shard-lnl: [PASS][36] -> [FAIL][37] ([Intel XE#5625])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-lnl-4/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-8/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-multi-vma.html
* igt@xe_exec_threads@threads-multi-queue-cm-rebind:
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#7138]) +1 other test skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_exec_threads@threads-multi-queue-cm-rebind.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-bmg: [PASS][39] -> [ABORT][40] ([Intel XE#7578]) +1 other test abort
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-5/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-10/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
* igt@xe_mmap@pci-membarrier-parallel:
- shard-lnl: NOTRUN -> [SKIP][41] ([Intel XE#5100] / [Intel XE#7322] / [Intel XE#7408])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_mmap@pci-membarrier-parallel.html
* igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#4130] / [Intel XE#7366])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-5/igt@xe_sriov_auto_provisioning@selfconfig-reprovision-increase-numvfs.html
#### Possible fixes ####
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [FAIL][43] ([Intel XE#301]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
- shard-lnl: [FAIL][45] ([Intel XE#301] / [Intel XE#3149]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
* igt@kms_flip@flip-vs-rmfb-interruptible:
- shard-bmg: [DMESG-FAIL][47] ([Intel XE#5545]) -> [PASS][48] +1 other test pass
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@kms_flip@flip-vs-rmfb-interruptible.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_flip@flip-vs-rmfb-interruptible.html
* igt@kms_vrr@cmrr@pipe-a-edp-1:
- shard-lnl: [FAIL][49] ([Intel XE#4459]) -> [PASS][50] +1 other test pass
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-lnl-4/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-8/igt@kms_vrr@cmrr@pipe-a-edp-1.html
* igt@xe_exec_balancer@many-cm-parallel-basic:
- shard-bmg: [SKIP][51] ([Intel XE#6703]) -> [PASS][52] +6 other tests pass
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@xe_exec_balancer@many-cm-parallel-basic.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@xe_exec_balancer@many-cm-parallel-basic.html
#### Warnings ####
* igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
- shard-bmg: [SKIP][53] ([Intel XE#6703]) -> [SKIP][54] ([Intel XE#2252])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html
* igt@kms_content_protection@atomic-dpms:
- shard-bmg: [SKIP][55] ([Intel XE#6703]) -> [FAIL][56] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@kms_content_protection@atomic-dpms.html
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_content_protection@atomic-dpms.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: [FAIL][57] ([Intel XE#301] / [Intel XE#3149]) -> [FAIL][58] ([Intel XE#301])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-wc:
- shard-bmg: [SKIP][59] ([Intel XE#6703]) -> [SKIP][60] ([Intel XE#2311])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-wc.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-mmap-wc.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][61] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][62] ([Intel XE#3544])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-7/igt@kms_hdr@brightness-with-hdr.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier:
- shard-bmg: [SKIP][63] ([Intel XE#6703]) -> [SKIP][64] ([Intel XE#7283])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier.html
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
- shard-bmg: [SKIP][65] ([Intel XE#6703]) -> [SKIP][66] ([Intel XE#1489])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
* igt@xe_eudebug@basic-exec-queues-enable:
- shard-bmg: [SKIP][67] ([Intel XE#6703]) -> [SKIP][68] ([Intel XE#7636])
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@xe_eudebug@basic-exec-queues-enable.html
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@xe_eudebug@basic-exec-queues-enable.html
* igt@xe_exec_multi_queue@two-queues-preempt-mode-userptr-invalidate:
- shard-bmg: [SKIP][69] ([Intel XE#6703]) -> [SKIP][70] ([Intel XE#6874]) +3 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@xe_exec_multi_queue@two-queues-preempt-mode-userptr-invalidate.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@xe_exec_multi_queue@two-queues-preempt-mode-userptr-invalidate.html
* igt@xe_module_load@load:
- shard-bmg: ([PASS][71], [PASS][72], [PASS][73], [PASS][74], [PASS][75], [PASS][76], [PASS][77], [PASS][78], [PASS][79], [PASS][80], [PASS][81], [PASS][82], [PASS][83], [PASS][84], [PASS][85], [PASS][86], [PASS][87], [PASS][88], [PASS][89], [SKIP][90], [PASS][91], [PASS][92], [PASS][93], [PASS][94], [PASS][95], [PASS][96]) ([Intel XE#2457] / [Intel XE#7405]) -> ([SKIP][97], [PASS][98], [PASS][99], [PASS][100], [PASS][101], [PASS][102], [PASS][103], [PASS][104], [PASS][105], [PASS][106], [PASS][107], [PASS][108], [PASS][109], [PASS][110], [PASS][111], [PASS][112], [PASS][113], [PASS][114], [PASS][115], [PASS][116], [PASS][117], [PASS][118], [PASS][119], [DMESG-WARN][120], [PASS][121], [PASS][122]) ([Intel XE#2457] / [Intel XE#7405] / [Intel XE#7725])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-3/igt@xe_module_load@load.html
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-5/igt@xe_module_load@load.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-5/igt@xe_module_load@load.html
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-5/igt@xe_module_load@load.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-4/igt@xe_module_load@load.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-4/igt@xe_module_load@load.html
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-8/igt@xe_module_load@load.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-3/igt@xe_module_load@load.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-8/igt@xe_module_load@load.html
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-6/igt@xe_module_load@load.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@xe_module_load@load.html
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@xe_module_load@load.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-7/igt@xe_module_load@load.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-8/igt@xe_module_load@load.html
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-7/igt@xe_module_load@load.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-1/igt@xe_module_load@load.html
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-9/igt@xe_module_load@load.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-7/igt@xe_module_load@load.html
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-9/igt@xe_module_load@load.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@xe_module_load@load.html
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-9/igt@xe_module_load@load.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-1/igt@xe_module_load@load.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-10/igt@xe_module_load@load.html
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-6/igt@xe_module_load@load.html
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-10/igt@xe_module_load@load.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db/shard-bmg-2/igt@xe_module_load@load.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-10/igt@xe_module_load@load.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-8/igt@xe_module_load@load.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-10/igt@xe_module_load@load.html
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-9/igt@xe_module_load@load.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-3/igt@xe_module_load@load.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-5/igt@xe_module_load@load.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-10/igt@xe_module_load@load.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-1/igt@xe_module_load@load.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-8/igt@xe_module_load@load.html
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-8/igt@xe_module_load@load.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-9/igt@xe_module_load@load.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-2/igt@xe_module_load@load.html
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-9/igt@xe_module_load@load.html
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-2/igt@xe_module_load@load.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@xe_module_load@load.html
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-7/igt@xe_module_load@load.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-1/igt@xe_module_load@load.html
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-5/igt@xe_module_load@load.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@xe_module_load@load.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@xe_module_load@load.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@xe_module_load@load.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-10/igt@xe_module_load@load.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-3/igt@xe_module_load@load.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-6/igt@xe_module_load@load.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-2/igt@xe_module_load@load.html
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/shard-bmg-3/igt@xe_module_load@load.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#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[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#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
[Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
[Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
[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#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7322
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
[Intel XE#7354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7354
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7366
[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#7405]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7405
[Intel XE#7408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7408
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7578]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7578
[Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
[Intel XE#7725]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7725
Build changes
-------------
* Linux: xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db -> xe-pw-164694v1
IGT_8853: b52b42b0c987404a8cbf80c77a41e37705e32779 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-4883-56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db: 56a9321dbb8dd1a1d5e85fc86bd30c4a0d5147db
xe-pw-164694v1: 164694v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164694v1/index.html
[-- Attachment #2: Type: text/html, Size: 34049 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager
2026-04-10 12:06 [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager Sanjay Yadav
` (3 preceding siblings ...)
2026-04-11 0:59 ` ✓ Xe.CI.FULL: success " Patchwork
@ 2026-04-11 1:19 ` Matthew Brost
2026-04-11 1:57 ` Matthew Brost
4 siblings, 1 reply; 7+ messages in thread
From: Matthew Brost @ 2026-04-11 1:19 UTC (permalink / raw)
To: Sanjay Yadav; +Cc: intel-xe, Maarten Lankhorst, Matthew Auld
On Fri, Apr 10, 2026 at 05:36:02PM +0530, Sanjay Yadav wrote:
> The stolen memory manager was sharing the gpu_buddy allocator backend
> with the VRAM manager. However, stolen memory has fundamentally
> different allocation patterns that make the buddy allocator a poor fit.
>
> - Allocation sizes are not power-of-two. Since buddy rounds up to the
> next power-of-two block size, a ~17MB request can fail even with
> ~22MB free, because the free space is fragmented across non-fitting
> power-of-two blocks.
This sounds like a problem in the buddy allocator, right?
Shouldn’t the buddy, in this case, try to find enough blocks for 16MB
and then 1MB?
Regardless of fragmentation, the buddy allocator should always be able
to construct the blocks in your example—unless I’m completely missing
something.
Matt Auld is an expert; maybe he can chime in.
> - Hardware restrictions prevent using the first 4K page of stolen for
> certain allocations (e.g., FBC). The display code sets fpfn=1 to
> enforce this, but when fpfn != 0, gpu_buddy enables
> GPU_BUDDY_RANGE_ALLOCATION mode which disables the try_harder
> coalescing path, further reducing allocation success.
Can we not just allocate a dummy allocation on stolen manager init which
reserves fpfn=0? Then release it on fini? Then display can safely pass in
fpfn=0?
>
> This combination caused FBC compressed framebuffer (CFB) allocation
> failures on platforms like NVL/PTL. In case of NVL where stolen memory
> is ~56MB and the initial plane framebuffer consumes ~34MB at probe time,
> leaving ~22MB for subsequent allocations.
>
> Use ttm_range_man_init_nocheck() to set up a drm_mm-backed TTM resource
Wouldn't drm_mm just have different set of fragmentation problems?
Simple example: We have 20M.
node[0] = alloc(5M); /* this lands on 0-5M) */
node[1] = alloc(5M); /* this lands on 5-10M) */
node[2] = alloc(5M); /* this lands on 10M-15M) */
node[3] = alloc(5M); /* this lands on 15M-20M) */
free(node[1]);
free(node[3]);
/* Now we have 10M free at 5-10M, 15M-20M */
node[4] = alloc(6M); /* We fail as no 6M hole */
Matt
> manager for stolen memory. This reuses the TTM core's ttm_range_manager
> callbacks, avoiding duplicate implementations.
>
> Tested on NVL with a 4K DP display: stolen_mm shows a single ~22MB
> contiguous free hole after initial plane framebuffer allocation, and
> FBC successfully allocates its CFB from that region. The corresponding
> IGT was previously skipped and now passes.
>
> Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7631
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Suggested-by: Matthew Auld <matthew.auld@intel.com>
> Assisted-by: GitHub Copilot:claude-sonnet-4.6
> Signed-off-by: Sanjay Yadav <sanjay.kumar.yadav@intel.com>
> ---
> drivers/gpu/drm/xe/xe_bo.c | 12 +++++-
> drivers/gpu/drm/xe/xe_device_types.h | 3 ++
> drivers/gpu/drm/xe/xe_res_cursor.h | 14 ++++++-
> drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 55 +++++++++++---------------
> drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 11 +++---
> 5 files changed, 53 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index a7c2dc7f224c..cf22cf8ff9f0 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -601,9 +601,17 @@ static void xe_ttm_tt_destroy(struct ttm_device *ttm_dev, struct ttm_tt *tt)
>
> static bool xe_ttm_resource_visible(struct ttm_resource *mem)
> {
> - struct xe_ttm_vram_mgr_resource *vres =
> - to_xe_ttm_vram_mgr_resource(mem);
> + struct xe_ttm_vram_mgr_resource *vres;
>
> + /*
> + * Stolen uses a range allocator (not buddy) and doesn't track
> + * used_visible_size like VRAM. Actual CPU accessibility is
> + * gated by io_base in xe_ttm_stolen_io_mem_reserve().
> + */
> + if (mem->mem_type == XE_PL_STOLEN)
> + return true;
> +
> + vres = to_xe_ttm_vram_mgr_resource(mem);
> return vres->used_visible_size == mem->size;
> }
>
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 150c76b2acaf..ffb84659c413 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -42,6 +42,7 @@ struct xe_ggtt;
> struct xe_i2c;
> struct xe_pat_ops;
> struct xe_pxp;
> +struct xe_ttm_stolen_mgr;
> struct xe_vram_region;
>
> /**
> @@ -278,6 +279,8 @@ struct xe_device {
> struct ttm_resource_manager sys_mgr;
> /** @mem.sys_mgr: system memory shrinker. */
> struct xe_shrinker *shrinker;
> + /** @mem.stolen_mgr: stolen memory manager. */
> + struct xe_ttm_stolen_mgr *stolen_mgr;
> } mem;
>
> /** @sriov: device level virtualization data */
> diff --git a/drivers/gpu/drm/xe/xe_res_cursor.h b/drivers/gpu/drm/xe/xe_res_cursor.h
> index 5f4ab08c0686..0522caafd89d 100644
> --- a/drivers/gpu/drm/xe/xe_res_cursor.h
> +++ b/drivers/gpu/drm/xe/xe_res_cursor.h
> @@ -101,7 +101,15 @@ static inline void xe_res_first(struct ttm_resource *res,
> cur->mem_type = res->mem_type;
>
> switch (cur->mem_type) {
> - case XE_PL_STOLEN:
> + case XE_PL_STOLEN: {
> + /* res->start is in pages (ttm_range_manager). */
> + cur->start = (res->start << PAGE_SHIFT) + start;
> + cur->size = size;
> + cur->remaining = size;
> + cur->node = NULL;
> + cur->mm = NULL;
> + break;
> + }
> case XE_PL_VRAM0:
> case XE_PL_VRAM1: {
> struct gpu_buddy_block *block;
> @@ -289,6 +297,10 @@ static inline void xe_res_next(struct xe_res_cursor *cur, u64 size)
>
> switch (cur->mem_type) {
> case XE_PL_STOLEN:
> + /* Just advance within the contiguous region. */
> + cur->start += size;
> + cur->size = cur->remaining;
> + break;
> case XE_PL_VRAM0:
> case XE_PL_VRAM1:
> start = size - cur->size;
> diff --git a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> index 27c9d72222cf..7e204d5e9cbe 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> @@ -19,16 +19,12 @@
> #include "xe_device.h"
> #include "xe_gt_printk.h"
> #include "xe_mmio.h"
> -#include "xe_res_cursor.h"
> #include "xe_sriov.h"
> #include "xe_ttm_stolen_mgr.h"
> -#include "xe_ttm_vram_mgr.h"
> #include "xe_vram.h"
> #include "xe_wa.h"
>
> struct xe_ttm_stolen_mgr {
> - struct xe_ttm_vram_mgr base;
> -
> /* PCI base offset */
> resource_size_t io_base;
> /* GPU base offset */
> @@ -37,12 +33,6 @@ struct xe_ttm_stolen_mgr {
> void __iomem *mapping;
> };
>
> -static inline struct xe_ttm_stolen_mgr *
> -to_stolen_mgr(struct ttm_resource_manager *man)
> -{
> - return container_of(man, struct xe_ttm_stolen_mgr, base.manager);
> -}
> -
> /**
> * xe_ttm_stolen_cpu_access_needs_ggtt() - If we can't directly CPU access
> * stolen, can we then fallback to mapping through the GGTT.
> @@ -210,12 +200,19 @@ static u64 detect_stolen(struct xe_device *xe, struct xe_ttm_stolen_mgr *mgr)
> #endif
> }
>
> +static void xe_ttm_stolen_mgr_fini(struct drm_device *dev, void *arg)
> +{
> + struct xe_device *xe = to_xe_device(dev);
> +
> + ttm_range_man_fini_nocheck(&xe->ttm, XE_PL_STOLEN);
> +}
> +
> int xe_ttm_stolen_mgr_init(struct xe_device *xe)
> {
> struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> struct xe_ttm_stolen_mgr *mgr;
> u64 stolen_size, io_size;
> - int err;
> + int ret;
>
> mgr = drmm_kzalloc(&xe->drm, sizeof(*mgr), GFP_KERNEL);
> if (!mgr)
> @@ -244,12 +241,12 @@ int xe_ttm_stolen_mgr_init(struct xe_device *xe)
> if (mgr->io_base && !xe_ttm_stolen_cpu_access_needs_ggtt(xe))
> io_size = stolen_size;
>
> - err = __xe_ttm_vram_mgr_init(xe, &mgr->base, XE_PL_STOLEN, stolen_size,
> - io_size, PAGE_SIZE);
> - if (err) {
> - drm_dbg_kms(&xe->drm, "Stolen mgr init failed: %i\n", err);
> - return err;
> - }
> + ret = ttm_range_man_init_nocheck(&xe->ttm, XE_PL_STOLEN, false,
> + stolen_size >> PAGE_SHIFT);
> + if (ret)
> + return ret;
> +
> + xe->mem.stolen_mgr = mgr;
>
> drm_dbg_kms(&xe->drm, "Initialized stolen memory support with %llu bytes\n",
> stolen_size);
> @@ -257,36 +254,32 @@ int xe_ttm_stolen_mgr_init(struct xe_device *xe)
> if (io_size)
> mgr->mapping = devm_ioremap_wc(&pdev->dev, mgr->io_base, io_size);
>
> - return 0;
> + return drmm_add_action_or_reset(&xe->drm, xe_ttm_stolen_mgr_fini, mgr);
> }
>
> u64 xe_ttm_stolen_io_offset(struct xe_bo *bo, u32 offset)
> {
> struct xe_device *xe = xe_bo_device(bo);
> - struct ttm_resource_manager *ttm_mgr = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
> - struct xe_ttm_stolen_mgr *mgr = to_stolen_mgr(ttm_mgr);
> - struct xe_res_cursor cur;
> + struct xe_ttm_stolen_mgr *mgr = xe->mem.stolen_mgr;
>
> XE_WARN_ON(!mgr->io_base);
>
> if (xe_ttm_stolen_cpu_access_needs_ggtt(xe))
> return mgr->io_base + xe_bo_ggtt_addr(bo) + offset;
>
> - xe_res_first(bo->ttm.resource, offset, 4096, &cur);
> - return mgr->io_base + cur.start;
> + /* Range allocator: res->start is in pages. */
> + return mgr->io_base + (bo->ttm.resource->start << PAGE_SHIFT) + offset;
> }
>
> static int __xe_ttm_stolen_io_mem_reserve_bar2(struct xe_device *xe,
> struct xe_ttm_stolen_mgr *mgr,
> struct ttm_resource *mem)
> {
> - struct xe_res_cursor cur;
> -
> if (!mgr->io_base)
> return -EIO;
>
> - xe_res_first(mem, 0, 4096, &cur);
> - mem->bus.offset = cur.start;
> + /* Range allocator always produces contiguous allocations. */
> + mem->bus.offset = mem->start << PAGE_SHIFT;
>
> drm_WARN_ON(&xe->drm, !(mem->placement & TTM_PL_FLAG_CONTIGUOUS));
>
> @@ -329,8 +322,7 @@ static int __xe_ttm_stolen_io_mem_reserve_stolen(struct xe_device *xe,
>
> int xe_ttm_stolen_io_mem_reserve(struct xe_device *xe, struct ttm_resource *mem)
> {
> - struct ttm_resource_manager *ttm_mgr = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
> - struct xe_ttm_stolen_mgr *mgr = ttm_mgr ? to_stolen_mgr(ttm_mgr) : NULL;
> + struct xe_ttm_stolen_mgr *mgr = xe->mem.stolen_mgr;
>
> if (!mgr || !mgr->io_base)
> return -EIO;
> @@ -343,8 +335,5 @@ int xe_ttm_stolen_io_mem_reserve(struct xe_device *xe, struct ttm_resource *mem)
>
> u64 xe_ttm_stolen_gpu_offset(struct xe_device *xe)
> {
> - struct xe_ttm_stolen_mgr *mgr =
> - to_stolen_mgr(ttm_manager_type(&xe->ttm, XE_PL_STOLEN));
> -
> - return mgr->stolen_base;
> + return xe->mem.stolen_mgr->stolen_base;
> }
> diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> index 5fd0d5506a7e..79ef8e1b5e5c 100644
> --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> @@ -301,14 +301,13 @@ int __xe_ttm_vram_mgr_init(struct xe_device *xe, struct xe_ttm_vram_mgr *mgr,
> u64 default_page_size)
> {
> struct ttm_resource_manager *man = &mgr->manager;
> + const char *name;
> int err;
>
> - if (mem_type != XE_PL_STOLEN) {
> - const char *name = mem_type == XE_PL_VRAM0 ? "vram0" : "vram1";
> - man->cg = drmm_cgroup_register_region(&xe->drm, name, size);
> - if (IS_ERR(man->cg))
> - return PTR_ERR(man->cg);
> - }
> + name = mem_type == XE_PL_VRAM0 ? "vram0" : "vram1";
> + man->cg = drmm_cgroup_register_region(&xe->drm, name, size);
> + if (IS_ERR(man->cg))
> + return PTR_ERR(man->cg);
>
> man->func = &xe_ttm_vram_mgr_func;
> mgr->mem_type = mem_type;
> --
> 2.52.0
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager
2026-04-11 1:19 ` [PATCH] " Matthew Brost
@ 2026-04-11 1:57 ` Matthew Brost
0 siblings, 0 replies; 7+ messages in thread
From: Matthew Brost @ 2026-04-11 1:57 UTC (permalink / raw)
To: Sanjay Yadav; +Cc: intel-xe, Maarten Lankhorst, Matthew Auld
On Fri, Apr 10, 2026 at 06:19:29PM -0700, Matthew Brost wrote:
> On Fri, Apr 10, 2026 at 05:36:02PM +0530, Sanjay Yadav wrote:
> > The stolen memory manager was sharing the gpu_buddy allocator backend
> > with the VRAM manager. However, stolen memory has fundamentally
> > different allocation patterns that make the buddy allocator a poor fit.
> >
> > - Allocation sizes are not power-of-two. Since buddy rounds up to the
> > next power-of-two block size, a ~17MB request can fail even with
> > ~22MB free, because the free space is fragmented across non-fitting
> > power-of-two blocks.
>
>
> This sounds like a problem in the buddy allocator, right?
>
> Shouldn’t the buddy, in this case, try to find enough blocks for 16MB
> and then 1MB?
>
> Regardless of fragmentation, the buddy allocator should always be able
> to construct the blocks in your example—unless I’m completely missing
> something.
>
> Matt Auld is an expert; maybe he can chime in.
>
> > - Hardware restrictions prevent using the first 4K page of stolen for
> > certain allocations (e.g., FBC). The display code sets fpfn=1 to
> > enforce this, but when fpfn != 0, gpu_buddy enables
> > GPU_BUDDY_RANGE_ALLOCATION mode which disables the try_harder
> > coalescing path, further reducing allocation success.
>
> Can we not just allocate a dummy allocation on stolen manager init which
> reserves fpfn=0? Then release it on fini? Then display can safely pass in
> fpfn=0?
>
> >
> > This combination caused FBC compressed framebuffer (CFB) allocation
> > failures on platforms like NVL/PTL. In case of NVL where stolen memory
> > is ~56MB and the initial plane framebuffer consumes ~34MB at probe time,
> > leaving ~22MB for subsequent allocations.
> >
> > Use ttm_range_man_init_nocheck() to set up a drm_mm-backed TTM resource
>
> Wouldn't drm_mm just have different set of fragmentation problems?
>
> Simple example: We have 20M.
>
> node[0] = alloc(5M); /* this lands on 0-5M) */
> node[1] = alloc(5M); /* this lands on 5-10M) */
> node[2] = alloc(5M); /* this lands on 10M-15M) */
> node[3] = alloc(5M); /* this lands on 15M-20M) */
>
> free(node[1]);
> free(node[3]);
>
> /* Now we have 10M free at 5-10M, 15M-20M */
>
> node[4] = alloc(6M); /* We fail as no 6M hole */
>
> Matt
>
> > manager for stolen memory. This reuses the TTM core's ttm_range_manager
> > callbacks, avoiding duplicate implementations.
> >
> > Tested on NVL with a 4K DP display: stolen_mm shows a single ~22MB
> > contiguous free hole after initial plane framebuffer allocation, and
> > FBC successfully allocates its CFB from that region. The corresponding
> > IGT was previously skipped and now passes.
> >
> > Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7631
I just read the above link. My initial response was based on a
misunderstanding: I did not realize that stolen memory generally
requires contiguous allocations, as this was not mentioned in the commit
message. Please add this clarification.
Assuming stolen memory does indeed require contiguous allocations, then
the buddy allocator is, in fact, a very poor fit.
I glanced at the code itself, and it looks sane enough. However, we
should first align on the requirements for the stolen memory manager.
Matt
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Matthew Brost <matthew.brost@intel.com>
> > Suggested-by: Matthew Auld <matthew.auld@intel.com>
> > Assisted-by: GitHub Copilot:claude-sonnet-4.6
> > Signed-off-by: Sanjay Yadav <sanjay.kumar.yadav@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_bo.c | 12 +++++-
> > drivers/gpu/drm/xe/xe_device_types.h | 3 ++
> > drivers/gpu/drm/xe/xe_res_cursor.h | 14 ++++++-
> > drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 55 +++++++++++---------------
> > drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 11 +++---
> > 5 files changed, 53 insertions(+), 42 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> > index a7c2dc7f224c..cf22cf8ff9f0 100644
> > --- a/drivers/gpu/drm/xe/xe_bo.c
> > +++ b/drivers/gpu/drm/xe/xe_bo.c
> > @@ -601,9 +601,17 @@ static void xe_ttm_tt_destroy(struct ttm_device *ttm_dev, struct ttm_tt *tt)
> >
> > static bool xe_ttm_resource_visible(struct ttm_resource *mem)
> > {
> > - struct xe_ttm_vram_mgr_resource *vres =
> > - to_xe_ttm_vram_mgr_resource(mem);
> > + struct xe_ttm_vram_mgr_resource *vres;
> >
> > + /*
> > + * Stolen uses a range allocator (not buddy) and doesn't track
> > + * used_visible_size like VRAM. Actual CPU accessibility is
> > + * gated by io_base in xe_ttm_stolen_io_mem_reserve().
> > + */
> > + if (mem->mem_type == XE_PL_STOLEN)
> > + return true;
> > +
> > + vres = to_xe_ttm_vram_mgr_resource(mem);
> > return vres->used_visible_size == mem->size;
> > }
> >
> > diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> > index 150c76b2acaf..ffb84659c413 100644
> > --- a/drivers/gpu/drm/xe/xe_device_types.h
> > +++ b/drivers/gpu/drm/xe/xe_device_types.h
> > @@ -42,6 +42,7 @@ struct xe_ggtt;
> > struct xe_i2c;
> > struct xe_pat_ops;
> > struct xe_pxp;
> > +struct xe_ttm_stolen_mgr;
> > struct xe_vram_region;
> >
> > /**
> > @@ -278,6 +279,8 @@ struct xe_device {
> > struct ttm_resource_manager sys_mgr;
> > /** @mem.sys_mgr: system memory shrinker. */
> > struct xe_shrinker *shrinker;
> > + /** @mem.stolen_mgr: stolen memory manager. */
> > + struct xe_ttm_stolen_mgr *stolen_mgr;
> > } mem;
> >
> > /** @sriov: device level virtualization data */
> > diff --git a/drivers/gpu/drm/xe/xe_res_cursor.h b/drivers/gpu/drm/xe/xe_res_cursor.h
> > index 5f4ab08c0686..0522caafd89d 100644
> > --- a/drivers/gpu/drm/xe/xe_res_cursor.h
> > +++ b/drivers/gpu/drm/xe/xe_res_cursor.h
> > @@ -101,7 +101,15 @@ static inline void xe_res_first(struct ttm_resource *res,
> > cur->mem_type = res->mem_type;
> >
> > switch (cur->mem_type) {
> > - case XE_PL_STOLEN:
> > + case XE_PL_STOLEN: {
> > + /* res->start is in pages (ttm_range_manager). */
> > + cur->start = (res->start << PAGE_SHIFT) + start;
> > + cur->size = size;
> > + cur->remaining = size;
> > + cur->node = NULL;
> > + cur->mm = NULL;
> > + break;
> > + }
> > case XE_PL_VRAM0:
> > case XE_PL_VRAM1: {
> > struct gpu_buddy_block *block;
> > @@ -289,6 +297,10 @@ static inline void xe_res_next(struct xe_res_cursor *cur, u64 size)
> >
> > switch (cur->mem_type) {
> > case XE_PL_STOLEN:
> > + /* Just advance within the contiguous region. */
> > + cur->start += size;
> > + cur->size = cur->remaining;
> > + break;
> > case XE_PL_VRAM0:
> > case XE_PL_VRAM1:
> > start = size - cur->size;
> > diff --git a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> > index 27c9d72222cf..7e204d5e9cbe 100644
> > --- a/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> > +++ b/drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c
> > @@ -19,16 +19,12 @@
> > #include "xe_device.h"
> > #include "xe_gt_printk.h"
> > #include "xe_mmio.h"
> > -#include "xe_res_cursor.h"
> > #include "xe_sriov.h"
> > #include "xe_ttm_stolen_mgr.h"
> > -#include "xe_ttm_vram_mgr.h"
> > #include "xe_vram.h"
> > #include "xe_wa.h"
> >
> > struct xe_ttm_stolen_mgr {
> > - struct xe_ttm_vram_mgr base;
> > -
> > /* PCI base offset */
> > resource_size_t io_base;
> > /* GPU base offset */
> > @@ -37,12 +33,6 @@ struct xe_ttm_stolen_mgr {
> > void __iomem *mapping;
> > };
> >
> > -static inline struct xe_ttm_stolen_mgr *
> > -to_stolen_mgr(struct ttm_resource_manager *man)
> > -{
> > - return container_of(man, struct xe_ttm_stolen_mgr, base.manager);
> > -}
> > -
> > /**
> > * xe_ttm_stolen_cpu_access_needs_ggtt() - If we can't directly CPU access
> > * stolen, can we then fallback to mapping through the GGTT.
> > @@ -210,12 +200,19 @@ static u64 detect_stolen(struct xe_device *xe, struct xe_ttm_stolen_mgr *mgr)
> > #endif
> > }
> >
> > +static void xe_ttm_stolen_mgr_fini(struct drm_device *dev, void *arg)
> > +{
> > + struct xe_device *xe = to_xe_device(dev);
> > +
> > + ttm_range_man_fini_nocheck(&xe->ttm, XE_PL_STOLEN);
> > +}
> > +
> > int xe_ttm_stolen_mgr_init(struct xe_device *xe)
> > {
> > struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> > struct xe_ttm_stolen_mgr *mgr;
> > u64 stolen_size, io_size;
> > - int err;
> > + int ret;
> >
> > mgr = drmm_kzalloc(&xe->drm, sizeof(*mgr), GFP_KERNEL);
> > if (!mgr)
> > @@ -244,12 +241,12 @@ int xe_ttm_stolen_mgr_init(struct xe_device *xe)
> > if (mgr->io_base && !xe_ttm_stolen_cpu_access_needs_ggtt(xe))
> > io_size = stolen_size;
> >
> > - err = __xe_ttm_vram_mgr_init(xe, &mgr->base, XE_PL_STOLEN, stolen_size,
> > - io_size, PAGE_SIZE);
> > - if (err) {
> > - drm_dbg_kms(&xe->drm, "Stolen mgr init failed: %i\n", err);
> > - return err;
> > - }
> > + ret = ttm_range_man_init_nocheck(&xe->ttm, XE_PL_STOLEN, false,
> > + stolen_size >> PAGE_SHIFT);
> > + if (ret)
> > + return ret;
> > +
> > + xe->mem.stolen_mgr = mgr;
> >
> > drm_dbg_kms(&xe->drm, "Initialized stolen memory support with %llu bytes\n",
> > stolen_size);
> > @@ -257,36 +254,32 @@ int xe_ttm_stolen_mgr_init(struct xe_device *xe)
> > if (io_size)
> > mgr->mapping = devm_ioremap_wc(&pdev->dev, mgr->io_base, io_size);
> >
> > - return 0;
> > + return drmm_add_action_or_reset(&xe->drm, xe_ttm_stolen_mgr_fini, mgr);
> > }
> >
> > u64 xe_ttm_stolen_io_offset(struct xe_bo *bo, u32 offset)
> > {
> > struct xe_device *xe = xe_bo_device(bo);
> > - struct ttm_resource_manager *ttm_mgr = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
> > - struct xe_ttm_stolen_mgr *mgr = to_stolen_mgr(ttm_mgr);
> > - struct xe_res_cursor cur;
> > + struct xe_ttm_stolen_mgr *mgr = xe->mem.stolen_mgr;
> >
> > XE_WARN_ON(!mgr->io_base);
> >
> > if (xe_ttm_stolen_cpu_access_needs_ggtt(xe))
> > return mgr->io_base + xe_bo_ggtt_addr(bo) + offset;
> >
> > - xe_res_first(bo->ttm.resource, offset, 4096, &cur);
> > - return mgr->io_base + cur.start;
> > + /* Range allocator: res->start is in pages. */
> > + return mgr->io_base + (bo->ttm.resource->start << PAGE_SHIFT) + offset;
> > }
> >
> > static int __xe_ttm_stolen_io_mem_reserve_bar2(struct xe_device *xe,
> > struct xe_ttm_stolen_mgr *mgr,
> > struct ttm_resource *mem)
> > {
> > - struct xe_res_cursor cur;
> > -
> > if (!mgr->io_base)
> > return -EIO;
> >
> > - xe_res_first(mem, 0, 4096, &cur);
> > - mem->bus.offset = cur.start;
> > + /* Range allocator always produces contiguous allocations. */
> > + mem->bus.offset = mem->start << PAGE_SHIFT;
> >
> > drm_WARN_ON(&xe->drm, !(mem->placement & TTM_PL_FLAG_CONTIGUOUS));
> >
> > @@ -329,8 +322,7 @@ static int __xe_ttm_stolen_io_mem_reserve_stolen(struct xe_device *xe,
> >
> > int xe_ttm_stolen_io_mem_reserve(struct xe_device *xe, struct ttm_resource *mem)
> > {
> > - struct ttm_resource_manager *ttm_mgr = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
> > - struct xe_ttm_stolen_mgr *mgr = ttm_mgr ? to_stolen_mgr(ttm_mgr) : NULL;
> > + struct xe_ttm_stolen_mgr *mgr = xe->mem.stolen_mgr;
> >
> > if (!mgr || !mgr->io_base)
> > return -EIO;
> > @@ -343,8 +335,5 @@ int xe_ttm_stolen_io_mem_reserve(struct xe_device *xe, struct ttm_resource *mem)
> >
> > u64 xe_ttm_stolen_gpu_offset(struct xe_device *xe)
> > {
> > - struct xe_ttm_stolen_mgr *mgr =
> > - to_stolen_mgr(ttm_manager_type(&xe->ttm, XE_PL_STOLEN));
> > -
> > - return mgr->stolen_base;
> > + return xe->mem.stolen_mgr->stolen_base;
> > }
> > diff --git a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> > index 5fd0d5506a7e..79ef8e1b5e5c 100644
> > --- a/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> > +++ b/drivers/gpu/drm/xe/xe_ttm_vram_mgr.c
> > @@ -301,14 +301,13 @@ int __xe_ttm_vram_mgr_init(struct xe_device *xe, struct xe_ttm_vram_mgr *mgr,
> > u64 default_page_size)
> > {
> > struct ttm_resource_manager *man = &mgr->manager;
> > + const char *name;
> > int err;
> >
> > - if (mem_type != XE_PL_STOLEN) {
> > - const char *name = mem_type == XE_PL_VRAM0 ? "vram0" : "vram1";
> > - man->cg = drmm_cgroup_register_region(&xe->drm, name, size);
> > - if (IS_ERR(man->cg))
> > - return PTR_ERR(man->cg);
> > - }
> > + name = mem_type == XE_PL_VRAM0 ? "vram0" : "vram1";
> > + man->cg = drmm_cgroup_register_region(&xe->drm, name, size);
> > + if (IS_ERR(man->cg))
> > + return PTR_ERR(man->cg);
> >
> > man->func = &xe_ttm_vram_mgr_func;
> > mgr->mem_type = mem_type;
> > --
> > 2.52.0
> >
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-04-11 1:57 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-10 12:06 [PATCH] drm/xe: Convert stolen memory over to ttm_range_manager Sanjay Yadav
2026-04-10 14:07 ` ✗ CI.checkpatch: warning for " Patchwork
2026-04-10 14:09 ` ✓ CI.KUnit: success " Patchwork
2026-04-10 14:50 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-04-11 0:59 ` ✓ Xe.CI.FULL: success " Patchwork
2026-04-11 1:19 ` [PATCH] " Matthew Brost
2026-04-11 1:57 ` Matthew Brost
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox