* [PATCH 0/3] Scan all holes when fences are disabled in SA
@ 2026-03-11 15:52 Satyanarayana K V P
2026-03-11 15:52 ` [PATCH 1/3] drm/sa: Scan all holes when fences are disabled Satyanarayana K V P
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Satyanarayana K V P @ 2026-03-11 15:52 UTC (permalink / raw)
To: intel-xe; +Cc: Satyanarayana K V P
The suballocator algorithm tracks a hole cursor at the last allocation
and tries to allocate after it. This is optimized for fence-ordered
progress, where older allocations are expected to become reusable first.
In fence-enabled mode, that ordering assumption holds. In fence-disabled
mode, allocations may be freed in arbitrary order, so limiting allocation
to the current hole window can miss valid free space and fail allocations
despite sufficient total space.
Update the fence-disabled path to walk through all holes and select any
fitting range, while keeping the existing fence-based behavior unchanged.
Satyanarayana K V P (3):
drm/sa: Scan all holes when fences are disabled
drm/xe/vf: Disable fences while initializing CCS read/write sub-allocs
drm/tests: Add KUnit test for suballocator allocation
drivers/gpu/drm/Kconfig.debug | 1 +
drivers/gpu/drm/drm_suballoc.c | 90 +++++++++++++++++++++++
drivers/gpu/drm/tests/.kunitconfig | 1 +
drivers/gpu/drm/tests/Makefile | 1 +
drivers/gpu/drm/tests/drm_suballoc_test.c | 79 ++++++++++++++++++++
drivers/gpu/drm/xe/xe_sa.c | 20 +++++
drivers/gpu/drm/xe/xe_sa.h | 1 +
drivers/gpu/drm/xe/xe_sriov_vf_ccs.c | 3 +-
include/drm/drm_suballoc.h | 5 ++
9 files changed, 200 insertions(+), 1 deletion(-)
create mode 100644 drivers/gpu/drm/tests/drm_suballoc_test.c
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/3] drm/sa: Scan all holes when fences are disabled
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
@ 2026-03-11 15:52 ` Satyanarayana K V P
2026-03-11 19:02 ` Thomas Hellström
2026-03-12 7:56 ` Christian König
2026-03-11 15:52 ` [PATCH 2/3] drm/xe/vf: Disable fences while initializing CCS read/write sub-allocs Satyanarayana K V P
` (5 subsequent siblings)
6 siblings, 2 replies; 11+ messages in thread
From: Satyanarayana K V P @ 2026-03-11 15:52 UTC (permalink / raw)
To: intel-xe
Cc: Satyanarayana K V P, Matthew Brost, Thomas Hellström,
Maarten Lankhorst, Michal Wajdeczko, Christian König,
dri-devel
The suballocator algorithm tracks a hole cursor at the last allocation
and tries to allocate after it. This is optimized for fence-ordered
progress, where older allocations are expected to become reusable first.
In fence-enabled mode, that ordering assumption holds. In fence-disabled
mode, allocations may be freed in arbitrary order, so limiting allocation
to the current hole window can miss valid free space and fail allocations
despite sufficient total space.
Update the fence-disabled path to walk through all holes and select any
fitting range, while keeping the existing fence-based behavior unchanged.
Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/drm_suballoc.c | 90 ++++++++++++++++++++++++++++++++++
include/drm/drm_suballoc.h | 5 ++
2 files changed, 95 insertions(+)
diff --git a/drivers/gpu/drm/drm_suballoc.c b/drivers/gpu/drm/drm_suballoc.c
index b74277bbc14b..307da191a855 100644
--- a/drivers/gpu/drm/drm_suballoc.c
+++ b/drivers/gpu/drm/drm_suballoc.c
@@ -78,12 +78,33 @@ void drm_suballoc_manager_init(struct drm_suballoc_manager *sa_manager,
sa_manager->size = size;
sa_manager->align = align;
sa_manager->hole = &sa_manager->olist;
+ sa_manager->fence_disable = false;
INIT_LIST_HEAD(&sa_manager->olist);
for (i = 0; i < DRM_SUBALLOC_MAX_QUEUES; ++i)
INIT_LIST_HEAD(&sa_manager->flist[i]);
}
EXPORT_SYMBOL(drm_suballoc_manager_init);
+/**
+ * drm_suballoc_manager_fence_disable() - Enable or disable fence tracking.
+ * @sa_manager: Pointer to the suballocation manager.
+ * @fence_disable: Whether to disable fence tracking for free suballocations.
+ *
+ * When @fence_disable is true allocation scans all holes without waiting on
+ * fences. When false, the manager tracks free suballocations behind fences and
+ * reuses them only after the fence signals.
+ *
+ * This should be called immediately after creating the suballocator and before
+ * any allocations are made. The behaviour is undefined if this is called after
+ * allocations have been made.
+ */
+void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager *sa_manager,
+ bool fence_disable)
+{
+ sa_manager->fence_disable = fence_disable;
+}
+EXPORT_SYMBOL(drm_suballoc_manager_fence_disable);
+
/**
* drm_suballoc_manager_fini() - Destroy the drm_suballoc_manager
* @sa_manager: pointer to the sa_manager
@@ -110,6 +131,7 @@ void drm_suballoc_manager_fini(struct drm_suballoc_manager *sa_manager)
}
sa_manager->size = 0;
+ sa_manager->fence_disable = false;
}
EXPORT_SYMBOL(drm_suballoc_manager_fini);
@@ -161,6 +183,69 @@ static size_t drm_suballoc_hole_eoffset(struct drm_suballoc_manager *sa_manager)
return sa_manager->size;
}
+/**
+ * drm_suballoc_hole_soffset_eoffset() - Find a hole fitting size and alignment.
+ * @sa_manager: Suballocator manager.
+ * @soffset: Start offset of the selected hole.
+ * @eoffset: End offset of the selected hole.
+ * @size: Size to be allocated.
+ * @align: Allocation alignment.
+ *
+ * This function is used when fences are disabled. It scans the holes starting
+ * at the current hole pointer and selects the first one that can satisfy @size
+ * once @align padding is applied. We may need to scan the entire list of holes
+ * and update soffset and eoffset for each hole to find a suitable one, as the
+ * current hole pointer may not be the same as sa_manager->hole.
+ *
+ * Return: true if a suitable hole is found, false otherwise.
+ */
+static bool drm_suballoc_hole_soffset_eoffset(struct drm_suballoc_manager *sa_manager,
+ size_t *soffset, size_t *eoffset,
+ size_t size, size_t align)
+{
+ struct list_head *start, *hole;
+
+ if (!sa_manager->fence_disable)
+ return true;
+
+ start = sa_manager->hole;
+ hole = start;
+
+ do {
+ size_t s, e, wasted;
+
+ /*
+ * We can't use drm_suballoc_hole_soffset() and
+ * drm_suballoc_hole_eoffset() here as the hole may not be same
+ * as sa_manager->hole.
+ */
+ if (hole != &sa_manager->olist)
+ s = list_entry(hole, struct drm_suballoc, olist)->eoffset;
+ else
+ s = 0;
+
+ if (hole->next != &sa_manager->olist)
+ e = list_entry(hole->next, struct drm_suballoc, olist)->soffset;
+ else
+ e = sa_manager->size;
+
+ if (e < s || e == s || (e - s) < size) {
+ hole = hole->next;
+ continue;
+ }
+
+ wasted = round_up(s, align) - s;
+ if ((e - s) >= (size + wasted)) {
+ *soffset = s;
+ *eoffset = e;
+ sa_manager->hole = hole;
+ return true;
+ }
+ } while (hole != start);
+
+ return false;
+}
+
static bool drm_suballoc_try_alloc(struct drm_suballoc_manager *sa_manager,
struct drm_suballoc *sa,
size_t size, size_t align)
@@ -169,6 +254,11 @@ static bool drm_suballoc_try_alloc(struct drm_suballoc_manager *sa_manager,
soffset = drm_suballoc_hole_soffset(sa_manager);
eoffset = drm_suballoc_hole_eoffset(sa_manager);
+
+ if (!drm_suballoc_hole_soffset_eoffset(sa_manager, &soffset,
+ &eoffset, size, align))
+ return false;
+
wasted = round_up(soffset, align) - soffset;
if ((eoffset - soffset) >= (size + wasted)) {
diff --git a/include/drm/drm_suballoc.h b/include/drm/drm_suballoc.h
index 29befdda35d2..066412196f8a 100644
--- a/include/drm/drm_suballoc.h
+++ b/include/drm/drm_suballoc.h
@@ -20,6 +20,7 @@
* @flist: Array[fence context hash] of queues of fenced allocated ranges.
* @size: Size of the managed range.
* @align: Default alignment for the managed range.
+ * @fence_disable: Fences are disabled for this SA manager.
*/
struct drm_suballoc_manager {
wait_queue_head_t wq;
@@ -28,6 +29,7 @@ struct drm_suballoc_manager {
struct list_head flist[DRM_SUBALLOC_MAX_QUEUES];
size_t size;
size_t align;
+ bool fence_disable;
};
/**
@@ -51,6 +53,9 @@ struct drm_suballoc {
void drm_suballoc_manager_init(struct drm_suballoc_manager *sa_manager,
size_t size, size_t align);
+void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager
+ *sa_manager, bool fence_disable);
+
void drm_suballoc_manager_fini(struct drm_suballoc_manager *sa_manager);
struct drm_suballoc *drm_suballoc_alloc(gfp_t gfp);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/3] drm/xe/vf: Disable fences while initializing CCS read/write sub-allocs
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
2026-03-11 15:52 ` [PATCH 1/3] drm/sa: Scan all holes when fences are disabled Satyanarayana K V P
@ 2026-03-11 15:52 ` Satyanarayana K V P
2026-03-11 15:52 ` [PATCH 3/3] drm/tests: Add KUnit test for suballocator allocation Satyanarayana K V P
` (4 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Satyanarayana K V P @ 2026-03-11 15:52 UTC (permalink / raw)
To: intel-xe
Cc: Satyanarayana K V P, Matthew Brost, Thomas Hellström,
Maarten Lankhorst, Michal Wajdeczko, Christian König,
dri-devel
The current sub-allocator default assumes that fences are enabled and
while finding a hole during buffer allocation, it checks only till
first hole.
Disable fences immediately initalizing the SA manager so that, holes can be
searched through out the sub-allocator while allocating buffer.
Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/xe/xe_sa.c | 20 ++++++++++++++++++++
drivers/gpu/drm/xe/xe_sa.h | 1 +
drivers/gpu/drm/xe/xe_sriov_vf_ccs.c | 3 ++-
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_sa.c b/drivers/gpu/drm/xe/xe_sa.c
index f32045f40b7a..13f47db662a6 100644
--- a/drivers/gpu/drm/xe/xe_sa.c
+++ b/drivers/gpu/drm/xe/xe_sa.c
@@ -117,6 +117,26 @@ struct xe_sa_manager *__xe_sa_bo_manager_init(struct xe_tile *tile, u32 size,
return sa_manager;
}
+/**
+ * xe_sa_bo_manager_fence_disable() - Set the suballocator to disable fencing.
+ * @sa_manager: the XE sub allocator manager
+ * @disable: Disable fences
+ *
+ * When @fence_disabled is true allocation scans all holes without waiting on
+ * fences. When false, the manager tracks free suballocations behind fences
+ * and reuses them only after the fence signals.
+ *
+ * This should be called immediately after creating the suballocator and before
+ * any allocations are made. The behaviour is undefined if this is called after
+ * allocations have been made.
+ *
+ * Return: None.
+ */
+void xe_sa_bo_manager_fence_disable(struct xe_sa_manager *sa_manager, bool disable)
+{
+ drm_suballoc_manager_fence_disable(&sa_manager->base, disable);
+}
+
/**
* xe_sa_bo_swap_shadow() - Swap the SA BO with shadow BO.
* @sa_manager: the XE sub allocator manager
diff --git a/drivers/gpu/drm/xe/xe_sa.h b/drivers/gpu/drm/xe/xe_sa.h
index 50218b0d1404..77b5520b04e8 100644
--- a/drivers/gpu/drm/xe/xe_sa.h
+++ b/drivers/gpu/drm/xe/xe_sa.h
@@ -17,6 +17,7 @@ struct xe_tile;
#define XE_SA_BO_MANAGER_FLAG_SHADOW BIT(0)
struct xe_sa_manager *__xe_sa_bo_manager_init(struct xe_tile *tile, u32 size,
u32 guard, u32 align, u32 flags);
+void xe_sa_bo_manager_fence_disable(struct xe_sa_manager *sa_manager, bool disable);
struct drm_suballoc *__xe_sa_bo_new(struct xe_sa_manager *sa_manager, u32 size, gfp_t gfp);
static inline struct xe_sa_manager *xe_sa_bo_manager_init(struct xe_tile *tile, u32 size, u32 align)
diff --git a/drivers/gpu/drm/xe/xe_sriov_vf_ccs.c b/drivers/gpu/drm/xe/xe_sriov_vf_ccs.c
index db023fb66a27..0508847da468 100644
--- a/drivers/gpu/drm/xe/xe_sriov_vf_ccs.c
+++ b/drivers/gpu/drm/xe/xe_sriov_vf_ccs.c
@@ -152,7 +152,6 @@ static int alloc_bb_pool(struct xe_tile *tile, struct xe_sriov_vf_ccs_ctx *ctx)
sa_manager = __xe_sa_bo_manager_init(tile, bb_pool_size, SZ_4K, SZ_16,
XE_SA_BO_MANAGER_FLAG_SHADOW);
-
if (IS_ERR(sa_manager)) {
xe_sriov_err(xe, "Suballocator init failed with error: %pe\n",
sa_manager);
@@ -160,6 +159,8 @@ static int alloc_bb_pool(struct xe_tile *tile, struct xe_sriov_vf_ccs_ctx *ctx)
return err;
}
+ xe_sa_bo_manager_fence_disable(sa_manager, true);
+
offset = 0;
xe_map_memset(xe, &sa_manager->bo->vmap, offset, MI_NOOP,
bb_pool_size);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/3] drm/tests: Add KUnit test for suballocator allocation
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
2026-03-11 15:52 ` [PATCH 1/3] drm/sa: Scan all holes when fences are disabled Satyanarayana K V P
2026-03-11 15:52 ` [PATCH 2/3] drm/xe/vf: Disable fences while initializing CCS read/write sub-allocs Satyanarayana K V P
@ 2026-03-11 15:52 ` Satyanarayana K V P
2026-03-11 17:08 ` ✗ CI.checkpatch: warning for Scan all holes when fences are disabled in SA Patchwork
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Satyanarayana K V P @ 2026-03-11 15:52 UTC (permalink / raw)
To: intel-xe
Cc: Satyanarayana K V P, Matthew Brost, Thomas Hellström,
Maarten Lankhorst, Michal Wajdeczko, Christian König,
dri-devel
Add KUnit test to verify DRM suballocator allocation and insertion over
multiple iterations with randomized sizes. Tests both successful
allocations and allocation-free cycles to exercise fragmentation handling.
Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: dri-devel@lists.freedesktop.org
---
drivers/gpu/drm/Kconfig.debug | 1 +
drivers/gpu/drm/tests/.kunitconfig | 1 +
drivers/gpu/drm/tests/Makefile | 1 +
drivers/gpu/drm/tests/drm_suballoc_test.c | 79 +++++++++++++++++++++++
4 files changed, 82 insertions(+)
create mode 100644 drivers/gpu/drm/tests/drm_suballoc_test.c
diff --git a/drivers/gpu/drm/Kconfig.debug b/drivers/gpu/drm/Kconfig.debug
index 3b7886865335..ea18d9399d5c 100644
--- a/drivers/gpu/drm/Kconfig.debug
+++ b/drivers/gpu/drm/Kconfig.debug
@@ -69,6 +69,7 @@ config DRM_KUNIT_TEST
select DRM_EXPORT_FOR_TESTS if m
select DRM_GEM_SHMEM_HELPER
select DRM_KUNIT_TEST_HELPERS
+ select DRM_SUBALLOC_HELPER
select DRM_SYSFB_HELPER
select PRIME_NUMBERS
default KUNIT_ALL_TESTS
diff --git a/drivers/gpu/drm/tests/.kunitconfig b/drivers/gpu/drm/tests/.kunitconfig
index 5be8e71f45d5..67758bb211d2 100644
--- a/drivers/gpu/drm/tests/.kunitconfig
+++ b/drivers/gpu/drm/tests/.kunitconfig
@@ -3,3 +3,4 @@ CONFIG_DRM=y
CONFIG_DRM_VKMS=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_KUNIT_TEST=y
+CONFIG_DRM_SUBALLOC_HELPER=y
diff --git a/drivers/gpu/drm/tests/Makefile b/drivers/gpu/drm/tests/Makefile
index d2e2e3d8349a..7f8aa03c5a6d 100644
--- a/drivers/gpu/drm/tests/Makefile
+++ b/drivers/gpu/drm/tests/Makefile
@@ -23,6 +23,7 @@ obj-$(CONFIG_DRM_KUNIT_TEST) += \
drm_plane_helper_test.o \
drm_probe_helper_test.o \
drm_rect_test.o \
+ drm_suballoc_test.o \
drm_sysfb_modeset_test.o \
drm_fixp_test.o
diff --git a/drivers/gpu/drm/tests/drm_suballoc_test.c b/drivers/gpu/drm/tests/drm_suballoc_test.c
new file mode 100644
index 000000000000..f03327e1c8af
--- /dev/null
+++ b/drivers/gpu/drm/tests/drm_suballoc_test.c
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: GPL-2.0 AND MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <drm/drm_suballoc.h>
+
+#include <kunit/test.h>
+#include <linux/errno.h>
+#include <linux/module.h>
+#include <linux/sizes.h>
+
+#define DRM_SUBALLOC_TEST_ITERATIONS 128
+#define DRM_SUBALLOC_TEST_MANAGER_ALIGN SZ_16
+#define DRM_SUBALLOC_TEST_MANAGER_SIZE SZ_16K
+#define DRM_SUBALLOC_TEST_MAX_ALLOCS 16
+#define DRM_SUBALLOC_TEST_MAX_ALLOC_SIZE SZ_512
+
+static bool fence_disable = true;
+module_param_named(fence_disable, fence_disable, bool, 0644);
+MODULE_PARM_DESC(fence_disable, "Disable suballoc fence tracking in test");
+
+static void drm_test_suballoc_alloc_insert(struct kunit *test)
+{
+ struct drm_suballoc_manager manager;
+ struct drm_suballoc *sa_arr[DRM_SUBALLOC_TEST_MAX_ALLOCS], *sa;
+ struct drm_suballoc
+ *sa_alloc_arr[DRM_SUBALLOC_TEST_ITERATIONS / DRM_SUBALLOC_TEST_MAX_ALLOCS] = {0};
+ int i, size, sa_index, sa_alloc_arr_index;
+
+ drm_suballoc_manager_init(&manager,
+ DRM_SUBALLOC_TEST_MANAGER_SIZE,
+ DRM_SUBALLOC_TEST_MANAGER_ALIGN);
+ drm_suballoc_manager_fence_disable(&manager, fence_disable);
+
+ kunit_info(test, "Starting suballoc test with %d iterations with fence %s\n",
+ DRM_SUBALLOC_TEST_ITERATIONS, fence_disable ? "disabled" : "enabled");
+
+ for (i = 0, sa_index = 0, sa_alloc_arr_index = 0;
+ i < DRM_SUBALLOC_TEST_ITERATIONS; i++) {
+ size = get_random_u32_below(DRM_SUBALLOC_TEST_MAX_ALLOC_SIZE) + 1;
+ size = ALIGN(size, 16);
+
+ sa = drm_suballoc_new(&manager, size, GFP_KERNEL, true, 0);
+ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, sa);
+ KUNIT_ASSERT_EQ(test, drm_suballoc_size(sa), size);
+ sa_arr[sa_index++] = sa;
+
+ if (sa_index == DRM_SUBALLOC_TEST_MAX_ALLOCS) {
+ for (int free_iter = 0; free_iter < DRM_SUBALLOC_TEST_MAX_ALLOCS - 1;
+ free_iter++) {
+ drm_suballoc_free(sa_arr[free_iter], NULL);
+ }
+ sa_alloc_arr[sa_alloc_arr_index++] =
+ sa_arr[DRM_SUBALLOC_TEST_MAX_ALLOCS - 1];
+ sa_index = 0;
+ }
+ }
+
+ for (i = 0; i < sa_alloc_arr_index; i++)
+ drm_suballoc_free(sa_alloc_arr[i], NULL);
+
+ drm_suballoc_manager_fini(&manager);
+}
+
+static struct kunit_case drm_suballoc_tests[] = {
+ KUNIT_CASE(drm_test_suballoc_alloc_insert),
+ {}
+};
+
+static struct kunit_suite drm_suballoc_test = {
+ .name = "drm_suballoc",
+ .test_cases = drm_suballoc_tests,
+};
+
+kunit_test_suite(drm_suballoc_test);
+
+MODULE_DESCRIPTION("KUnit DRM suballoc test suite");
+MODULE_LICENSE("GPL");
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* ✗ CI.checkpatch: warning for Scan all holes when fences are disabled in SA
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
` (2 preceding siblings ...)
2026-03-11 15:52 ` [PATCH 3/3] drm/tests: Add KUnit test for suballocator allocation Satyanarayana K V P
@ 2026-03-11 17:08 ` Patchwork
2026-03-11 17:09 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-03-11 17:08 UTC (permalink / raw)
To: Satyanarayana K V P; +Cc: intel-xe
== Series Details ==
Series: Scan all holes when fences are disabled in SA
URL : https://patchwork.freedesktop.org/series/163042/
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 ef1edeac724533711bdb4aff50ad535812fb712c
Author: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Date: Wed Mar 11 15:52:37 2026 +0000
drm/tests: Add KUnit test for suballocator allocation
Add KUnit test to verify DRM suballocator allocation and insertion over
multiple iterations with randomized sizes. Tests both successful
allocations and allocation-free cycles to exercise fragmentation handling.
Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: dri-devel@lists.freedesktop.org
+ /mt/dim checkpatch 4a30f5fa0fe382b3915a8208a483d0044c40b9eb drm-intel
8c1ec15e0c45 drm/sa: Scan all holes when fences are disabled
6fa1ab55c100 drm/xe/vf: Disable fences while initializing CCS read/write sub-allocs
ef1edeac7245 drm/tests: Add KUnit test for suballocator allocation
-:55: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#55:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 97 lines checked
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ CI.KUnit: success for Scan all holes when fences are disabled in SA
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
` (3 preceding siblings ...)
2026-03-11 17:08 ` ✗ CI.checkpatch: warning for Scan all holes when fences are disabled in SA Patchwork
@ 2026-03-11 17:09 ` Patchwork
2026-03-11 18:14 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-12 9:21 ` ✓ Xe.CI.FULL: " Patchwork
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-03-11 17:09 UTC (permalink / raw)
To: Satyanarayana K V P; +Cc: intel-xe
== Series Details ==
Series: Scan all holes when fences are disabled in SA
URL : https://patchwork.freedesktop.org/series/163042/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[17:08:07] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:08:12] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[17:08:42] Starting KUnit Kernel (1/1)...
[17:08:42] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:08:42] ================== guc_buf (11 subtests) ===================
[17:08:42] [PASSED] test_smallest
[17:08:42] [PASSED] test_largest
[17:08:42] [PASSED] test_granular
[17:08:42] [PASSED] test_unique
[17:08:42] [PASSED] test_overlap
[17:08:42] [PASSED] test_reusable
[17:08:42] [PASSED] test_too_big
[17:08:42] [PASSED] test_flush
[17:08:42] [PASSED] test_lookup
[17:08:42] [PASSED] test_data
[17:08:42] [PASSED] test_class
[17:08:42] ===================== [PASSED] guc_buf =====================
[17:08:42] =================== guc_dbm (7 subtests) ===================
[17:08:42] [PASSED] test_empty
[17:08:42] [PASSED] test_default
[17:08:42] ======================== test_size ========================
[17:08:42] [PASSED] 4
[17:08:42] [PASSED] 8
[17:08:42] [PASSED] 32
[17:08:42] [PASSED] 256
[17:08:42] ==================== [PASSED] test_size ====================
[17:08:42] ======================= test_reuse ========================
[17:08:42] [PASSED] 4
[17:08:42] [PASSED] 8
[17:08:42] [PASSED] 32
[17:08:42] [PASSED] 256
[17:08:42] =================== [PASSED] test_reuse ====================
[17:08:42] =================== test_range_overlap ====================
[17:08:42] [PASSED] 4
[17:08:42] [PASSED] 8
[17:08:42] [PASSED] 32
[17:08:42] [PASSED] 256
[17:08:42] =============== [PASSED] test_range_overlap ================
[17:08:42] =================== test_range_compact ====================
[17:08:42] [PASSED] 4
[17:08:42] [PASSED] 8
[17:08:42] [PASSED] 32
[17:08:42] [PASSED] 256
[17:08:42] =============== [PASSED] test_range_compact ================
[17:08:42] ==================== test_range_spare =====================
[17:08:42] [PASSED] 4
[17:08:42] [PASSED] 8
[17:08:42] [PASSED] 32
[17:08:42] [PASSED] 256
[17:08:42] ================ [PASSED] test_range_spare =================
[17:08:42] ===================== [PASSED] guc_dbm =====================
[17:08:42] =================== guc_idm (6 subtests) ===================
[17:08:42] [PASSED] bad_init
[17:08:42] [PASSED] no_init
[17:08:42] [PASSED] init_fini
[17:08:42] [PASSED] check_used
[17:08:42] [PASSED] check_quota
[17:08:42] [PASSED] check_all
[17:08:42] ===================== [PASSED] guc_idm =====================
[17:08:42] ================== no_relay (3 subtests) ===================
[17:08:42] [PASSED] xe_drops_guc2pf_if_not_ready
[17:08:42] [PASSED] xe_drops_guc2vf_if_not_ready
[17:08:42] [PASSED] xe_rejects_send_if_not_ready
[17:08:42] ==================== [PASSED] no_relay =====================
[17:08:42] ================== pf_relay (14 subtests) ==================
[17:08:42] [PASSED] pf_rejects_guc2pf_too_short
[17:08:42] [PASSED] pf_rejects_guc2pf_too_long
[17:08:42] [PASSED] pf_rejects_guc2pf_no_payload
[17:08:42] [PASSED] pf_fails_no_payload
[17:08:42] [PASSED] pf_fails_bad_origin
[17:08:42] [PASSED] pf_fails_bad_type
[17:08:42] [PASSED] pf_txn_reports_error
[17:08:42] [PASSED] pf_txn_sends_pf2guc
[17:08:42] [PASSED] pf_sends_pf2guc
[17:08:42] [SKIPPED] pf_loopback_nop
[17:08:42] [SKIPPED] pf_loopback_echo
[17:08:42] [SKIPPED] pf_loopback_fail
[17:08:42] [SKIPPED] pf_loopback_busy
[17:08:42] [SKIPPED] pf_loopback_retry
[17:08:42] ==================== [PASSED] pf_relay =====================
[17:08:42] ================== vf_relay (3 subtests) ===================
[17:08:42] [PASSED] vf_rejects_guc2vf_too_short
[17:08:42] [PASSED] vf_rejects_guc2vf_too_long
[17:08:42] [PASSED] vf_rejects_guc2vf_no_payload
[17:08:42] ==================== [PASSED] vf_relay =====================
[17:08:42] ================ pf_gt_config (9 subtests) =================
[17:08:42] [PASSED] fair_contexts_1vf
[17:08:42] [PASSED] fair_doorbells_1vf
[17:08:42] [PASSED] fair_ggtt_1vf
[17:08:42] ====================== fair_vram_1vf ======================
[17:08:42] [PASSED] 3.50 GiB
[17:08:42] [PASSED] 11.5 GiB
[17:08:42] [PASSED] 15.5 GiB
[17:08:42] [PASSED] 31.5 GiB
[17:08:42] [PASSED] 63.5 GiB
[17:08:42] [PASSED] 1.91 GiB
[17:08:42] ================== [PASSED] fair_vram_1vf ==================
[17:08:42] ================ fair_vram_1vf_admin_only =================
[17:08:42] [PASSED] 3.50 GiB
[17:08:42] [PASSED] 11.5 GiB
[17:08:42] [PASSED] 15.5 GiB
[17:08:42] [PASSED] 31.5 GiB
[17:08:42] [PASSED] 63.5 GiB
[17:08:42] [PASSED] 1.91 GiB
[17:08:42] ============ [PASSED] fair_vram_1vf_admin_only =============
[17:08:42] ====================== fair_contexts ======================
[17:08:42] [PASSED] 1 VF
[17:08:42] [PASSED] 2 VFs
[17:08:42] [PASSED] 3 VFs
[17:08:42] [PASSED] 4 VFs
[17:08:42] [PASSED] 5 VFs
[17:08:42] [PASSED] 6 VFs
[17:08:42] [PASSED] 7 VFs
[17:08:42] [PASSED] 8 VFs
[17:08:42] [PASSED] 9 VFs
[17:08:42] [PASSED] 10 VFs
[17:08:42] [PASSED] 11 VFs
[17:08:42] [PASSED] 12 VFs
[17:08:42] [PASSED] 13 VFs
[17:08:42] [PASSED] 14 VFs
[17:08:42] [PASSED] 15 VFs
[17:08:42] [PASSED] 16 VFs
[17:08:42] [PASSED] 17 VFs
[17:08:42] [PASSED] 18 VFs
[17:08:42] [PASSED] 19 VFs
[17:08:42] [PASSED] 20 VFs
[17:08:42] [PASSED] 21 VFs
[17:08:42] [PASSED] 22 VFs
[17:08:42] [PASSED] 23 VFs
[17:08:42] [PASSED] 24 VFs
[17:08:42] [PASSED] 25 VFs
[17:08:42] [PASSED] 26 VFs
[17:08:42] [PASSED] 27 VFs
[17:08:42] [PASSED] 28 VFs
[17:08:42] [PASSED] 29 VFs
[17:08:42] [PASSED] 30 VFs
[17:08:42] [PASSED] 31 VFs
[17:08:42] [PASSED] 32 VFs
[17:08:42] [PASSED] 33 VFs
[17:08:42] [PASSED] 34 VFs
[17:08:42] [PASSED] 35 VFs
[17:08:42] [PASSED] 36 VFs
[17:08:42] [PASSED] 37 VFs
[17:08:42] [PASSED] 38 VFs
[17:08:42] [PASSED] 39 VFs
[17:08:42] [PASSED] 40 VFs
[17:08:42] [PASSED] 41 VFs
[17:08:42] [PASSED] 42 VFs
[17:08:42] [PASSED] 43 VFs
[17:08:42] [PASSED] 44 VFs
[17:08:42] [PASSED] 45 VFs
[17:08:42] [PASSED] 46 VFs
[17:08:42] [PASSED] 47 VFs
[17:08:42] [PASSED] 48 VFs
[17:08:42] [PASSED] 49 VFs
[17:08:42] [PASSED] 50 VFs
[17:08:42] [PASSED] 51 VFs
[17:08:42] [PASSED] 52 VFs
[17:08:42] [PASSED] 53 VFs
[17:08:42] [PASSED] 54 VFs
[17:08:42] [PASSED] 55 VFs
[17:08:42] [PASSED] 56 VFs
[17:08:42] [PASSED] 57 VFs
[17:08:42] [PASSED] 58 VFs
[17:08:42] [PASSED] 59 VFs
[17:08:42] [PASSED] 60 VFs
[17:08:42] [PASSED] 61 VFs
[17:08:42] [PASSED] 62 VFs
[17:08:42] [PASSED] 63 VFs
[17:08:42] ================== [PASSED] fair_contexts ==================
[17:08:42] ===================== fair_doorbells ======================
[17:08:42] [PASSED] 1 VF
[17:08:42] [PASSED] 2 VFs
[17:08:42] [PASSED] 3 VFs
[17:08:42] [PASSED] 4 VFs
[17:08:42] [PASSED] 5 VFs
[17:08:42] [PASSED] 6 VFs
[17:08:42] [PASSED] 7 VFs
[17:08:42] [PASSED] 8 VFs
[17:08:42] [PASSED] 9 VFs
[17:08:42] [PASSED] 10 VFs
[17:08:42] [PASSED] 11 VFs
[17:08:42] [PASSED] 12 VFs
[17:08:42] [PASSED] 13 VFs
[17:08:42] [PASSED] 14 VFs
[17:08:42] [PASSED] 15 VFs
[17:08:42] [PASSED] 16 VFs
[17:08:42] [PASSED] 17 VFs
[17:08:42] [PASSED] 18 VFs
[17:08:42] [PASSED] 19 VFs
[17:08:42] [PASSED] 20 VFs
[17:08:42] [PASSED] 21 VFs
[17:08:42] [PASSED] 22 VFs
[17:08:42] [PASSED] 23 VFs
[17:08:42] [PASSED] 24 VFs
[17:08:42] [PASSED] 25 VFs
[17:08:42] [PASSED] 26 VFs
[17:08:42] [PASSED] 27 VFs
[17:08:42] [PASSED] 28 VFs
[17:08:42] [PASSED] 29 VFs
[17:08:42] [PASSED] 30 VFs
[17:08:42] [PASSED] 31 VFs
[17:08:42] [PASSED] 32 VFs
[17:08:42] [PASSED] 33 VFs
[17:08:42] [PASSED] 34 VFs
[17:08:42] [PASSED] 35 VFs
[17:08:42] [PASSED] 36 VFs
[17:08:42] [PASSED] 37 VFs
[17:08:42] [PASSED] 38 VFs
[17:08:42] [PASSED] 39 VFs
[17:08:42] [PASSED] 40 VFs
[17:08:42] [PASSED] 41 VFs
[17:08:42] [PASSED] 42 VFs
[17:08:42] [PASSED] 43 VFs
[17:08:42] [PASSED] 44 VFs
[17:08:42] [PASSED] 45 VFs
[17:08:42] [PASSED] 46 VFs
[17:08:42] [PASSED] 47 VFs
[17:08:42] [PASSED] 48 VFs
[17:08:42] [PASSED] 49 VFs
[17:08:42] [PASSED] 50 VFs
[17:08:42] [PASSED] 51 VFs
[17:08:42] [PASSED] 52 VFs
[17:08:42] [PASSED] 53 VFs
[17:08:42] [PASSED] 54 VFs
[17:08:42] [PASSED] 55 VFs
[17:08:42] [PASSED] 56 VFs
[17:08:42] [PASSED] 57 VFs
[17:08:42] [PASSED] 58 VFs
[17:08:42] [PASSED] 59 VFs
[17:08:42] [PASSED] 60 VFs
[17:08:42] [PASSED] 61 VFs
[17:08:42] [PASSED] 62 VFs
[17:08:42] [PASSED] 63 VFs
[17:08:42] ================= [PASSED] fair_doorbells ==================
[17:08:42] ======================== fair_ggtt ========================
[17:08:42] [PASSED] 1 VF
[17:08:42] [PASSED] 2 VFs
[17:08:42] [PASSED] 3 VFs
[17:08:42] [PASSED] 4 VFs
[17:08:42] [PASSED] 5 VFs
[17:08:42] [PASSED] 6 VFs
[17:08:42] [PASSED] 7 VFs
[17:08:42] [PASSED] 8 VFs
[17:08:42] [PASSED] 9 VFs
[17:08:42] [PASSED] 10 VFs
[17:08:42] [PASSED] 11 VFs
[17:08:42] [PASSED] 12 VFs
[17:08:42] [PASSED] 13 VFs
[17:08:42] [PASSED] 14 VFs
[17:08:42] [PASSED] 15 VFs
[17:08:42] [PASSED] 16 VFs
[17:08:42] [PASSED] 17 VFs
[17:08:42] [PASSED] 18 VFs
[17:08:42] [PASSED] 19 VFs
[17:08:42] [PASSED] 20 VFs
[17:08:42] [PASSED] 21 VFs
[17:08:42] [PASSED] 22 VFs
[17:08:42] [PASSED] 23 VFs
[17:08:42] [PASSED] 24 VFs
[17:08:42] [PASSED] 25 VFs
[17:08:42] [PASSED] 26 VFs
[17:08:42] [PASSED] 27 VFs
[17:08:42] [PASSED] 28 VFs
[17:08:42] [PASSED] 29 VFs
[17:08:42] [PASSED] 30 VFs
[17:08:42] [PASSED] 31 VFs
[17:08:42] [PASSED] 32 VFs
[17:08:42] [PASSED] 33 VFs
[17:08:42] [PASSED] 34 VFs
[17:08:42] [PASSED] 35 VFs
[17:08:42] [PASSED] 36 VFs
[17:08:42] [PASSED] 37 VFs
[17:08:42] [PASSED] 38 VFs
[17:08:42] [PASSED] 39 VFs
[17:08:42] [PASSED] 40 VFs
[17:08:42] [PASSED] 41 VFs
[17:08:42] [PASSED] 42 VFs
[17:08:42] [PASSED] 43 VFs
[17:08:42] [PASSED] 44 VFs
[17:08:42] [PASSED] 45 VFs
[17:08:42] [PASSED] 46 VFs
[17:08:42] [PASSED] 47 VFs
[17:08:42] [PASSED] 48 VFs
[17:08:42] [PASSED] 49 VFs
[17:08:42] [PASSED] 50 VFs
[17:08:42] [PASSED] 51 VFs
[17:08:42] [PASSED] 52 VFs
[17:08:42] [PASSED] 53 VFs
[17:08:42] [PASSED] 54 VFs
[17:08:42] [PASSED] 55 VFs
[17:08:42] [PASSED] 56 VFs
[17:08:42] [PASSED] 57 VFs
[17:08:42] [PASSED] 58 VFs
[17:08:42] [PASSED] 59 VFs
[17:08:42] [PASSED] 60 VFs
[17:08:42] [PASSED] 61 VFs
[17:08:42] [PASSED] 62 VFs
[17:08:42] [PASSED] 63 VFs
[17:08:42] ==================== [PASSED] fair_ggtt ====================
[17:08:42] ======================== fair_vram ========================
[17:08:42] [PASSED] 1 VF
[17:08:42] [PASSED] 2 VFs
[17:08:42] [PASSED] 3 VFs
[17:08:42] [PASSED] 4 VFs
[17:08:42] [PASSED] 5 VFs
[17:08:42] [PASSED] 6 VFs
[17:08:42] [PASSED] 7 VFs
[17:08:42] [PASSED] 8 VFs
[17:08:42] [PASSED] 9 VFs
[17:08:42] [PASSED] 10 VFs
[17:08:42] [PASSED] 11 VFs
[17:08:42] [PASSED] 12 VFs
[17:08:42] [PASSED] 13 VFs
[17:08:42] [PASSED] 14 VFs
[17:08:42] [PASSED] 15 VFs
[17:08:42] [PASSED] 16 VFs
[17:08:42] [PASSED] 17 VFs
[17:08:42] [PASSED] 18 VFs
[17:08:42] [PASSED] 19 VFs
[17:08:42] [PASSED] 20 VFs
[17:08:42] [PASSED] 21 VFs
[17:08:42] [PASSED] 22 VFs
[17:08:42] [PASSED] 23 VFs
[17:08:42] [PASSED] 24 VFs
[17:08:42] [PASSED] 25 VFs
[17:08:43] [PASSED] 26 VFs
[17:08:43] [PASSED] 27 VFs
[17:08:43] [PASSED] 28 VFs
[17:08:43] [PASSED] 29 VFs
[17:08:43] [PASSED] 30 VFs
[17:08:43] [PASSED] 31 VFs
[17:08:43] [PASSED] 32 VFs
[17:08:43] [PASSED] 33 VFs
[17:08:43] [PASSED] 34 VFs
[17:08:43] [PASSED] 35 VFs
[17:08:43] [PASSED] 36 VFs
[17:08:43] [PASSED] 37 VFs
[17:08:43] [PASSED] 38 VFs
[17:08:43] [PASSED] 39 VFs
[17:08:43] [PASSED] 40 VFs
[17:08:43] [PASSED] 41 VFs
[17:08:43] [PASSED] 42 VFs
[17:08:43] [PASSED] 43 VFs
[17:08:43] [PASSED] 44 VFs
[17:08:43] [PASSED] 45 VFs
[17:08:43] [PASSED] 46 VFs
[17:08:43] [PASSED] 47 VFs
[17:08:43] [PASSED] 48 VFs
[17:08:43] [PASSED] 49 VFs
[17:08:43] [PASSED] 50 VFs
[17:08:43] [PASSED] 51 VFs
[17:08:43] [PASSED] 52 VFs
[17:08:43] [PASSED] 53 VFs
[17:08:43] [PASSED] 54 VFs
[17:08:43] [PASSED] 55 VFs
[17:08:43] [PASSED] 56 VFs
[17:08:43] [PASSED] 57 VFs
[17:08:43] [PASSED] 58 VFs
[17:08:43] [PASSED] 59 VFs
[17:08:43] [PASSED] 60 VFs
[17:08:43] [PASSED] 61 VFs
[17:08:43] [PASSED] 62 VFs
[17:08:43] [PASSED] 63 VFs
[17:08:43] ==================== [PASSED] fair_vram ====================
[17:08:43] ================== [PASSED] pf_gt_config ===================
[17:08:43] ===================== lmtt (1 subtest) =====================
[17:08:43] ======================== test_ops =========================
[17:08:43] [PASSED] 2-level
[17:08:43] [PASSED] multi-level
[17:08:43] ==================== [PASSED] test_ops =====================
[17:08:43] ====================== [PASSED] lmtt =======================
[17:08:43] ================= pf_service (11 subtests) =================
[17:08:43] [PASSED] pf_negotiate_any
[17:08:43] [PASSED] pf_negotiate_base_match
[17:08:43] [PASSED] pf_negotiate_base_newer
[17:08:43] [PASSED] pf_negotiate_base_next
[17:08:43] [SKIPPED] pf_negotiate_base_older
[17:08:43] [PASSED] pf_negotiate_base_prev
[17:08:43] [PASSED] pf_negotiate_latest_match
[17:08:43] [PASSED] pf_negotiate_latest_newer
[17:08:43] [PASSED] pf_negotiate_latest_next
[17:08:43] [SKIPPED] pf_negotiate_latest_older
[17:08:43] [SKIPPED] pf_negotiate_latest_prev
[17:08:43] =================== [PASSED] pf_service ====================
[17:08:43] ================= xe_guc_g2g (2 subtests) ==================
[17:08:43] ============== xe_live_guc_g2g_kunit_default ==============
[17:08:43] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[17:08:43] ============== xe_live_guc_g2g_kunit_allmem ===============
[17:08:43] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[17:08:43] =================== [SKIPPED] xe_guc_g2g ===================
[17:08:43] =================== xe_mocs (2 subtests) ===================
[17:08:43] ================ xe_live_mocs_kernel_kunit ================
[17:08:43] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[17:08:43] ================ xe_live_mocs_reset_kunit =================
[17:08:43] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[17:08:43] ==================== [SKIPPED] xe_mocs =====================
[17:08:43] ================= xe_migrate (2 subtests) ==================
[17:08:43] ================= xe_migrate_sanity_kunit =================
[17:08:43] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[17:08:43] ================== xe_validate_ccs_kunit ==================
[17:08:43] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[17:08:43] =================== [SKIPPED] xe_migrate ===================
[17:08:43] ================== xe_dma_buf (1 subtest) ==================
[17:08:43] ==================== xe_dma_buf_kunit =====================
[17:08:43] ================ [SKIPPED] xe_dma_buf_kunit ================
[17:08:43] =================== [SKIPPED] xe_dma_buf ===================
[17:08:43] ================= xe_bo_shrink (1 subtest) =================
[17:08:43] =================== xe_bo_shrink_kunit ====================
[17:08:43] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[17:08:43] ================== [SKIPPED] xe_bo_shrink ==================
[17:08:43] ==================== xe_bo (2 subtests) ====================
[17:08:43] ================== xe_ccs_migrate_kunit ===================
[17:08:43] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[17:08:43] ==================== xe_bo_evict_kunit ====================
[17:08:43] =============== [SKIPPED] xe_bo_evict_kunit ================
[17:08:43] ===================== [SKIPPED] xe_bo ======================
[17:08:43] ==================== args (13 subtests) ====================
[17:08:43] [PASSED] count_args_test
[17:08:43] [PASSED] call_args_example
[17:08:43] [PASSED] call_args_test
[17:08:43] [PASSED] drop_first_arg_example
[17:08:43] [PASSED] drop_first_arg_test
[17:08:43] [PASSED] first_arg_example
[17:08:43] [PASSED] first_arg_test
[17:08:43] [PASSED] last_arg_example
[17:08:43] [PASSED] last_arg_test
[17:08:43] [PASSED] pick_arg_example
[17:08:43] [PASSED] if_args_example
[17:08:43] [PASSED] if_args_test
[17:08:43] [PASSED] sep_comma_example
[17:08:43] ====================== [PASSED] args =======================
[17:08:43] =================== xe_pci (3 subtests) ====================
[17:08:43] ==================== check_graphics_ip ====================
[17:08:43] [PASSED] 12.00 Xe_LP
[17:08:43] [PASSED] 12.10 Xe_LP+
[17:08:43] [PASSED] 12.55 Xe_HPG
[17:08:43] [PASSED] 12.60 Xe_HPC
[17:08:43] [PASSED] 12.70 Xe_LPG
[17:08:43] [PASSED] 12.71 Xe_LPG
[17:08:43] [PASSED] 12.74 Xe_LPG+
[17:08:43] [PASSED] 20.01 Xe2_HPG
[17:08:43] [PASSED] 20.02 Xe2_HPG
[17:08:43] [PASSED] 20.04 Xe2_LPG
[17:08:43] [PASSED] 30.00 Xe3_LPG
[17:08:43] [PASSED] 30.01 Xe3_LPG
[17:08:43] [PASSED] 30.03 Xe3_LPG
[17:08:43] [PASSED] 30.04 Xe3_LPG
[17:08:43] [PASSED] 30.05 Xe3_LPG
[17:08:43] [PASSED] 35.10 Xe3p_LPG
[17:08:43] [PASSED] 35.11 Xe3p_XPC
[17:08:43] ================ [PASSED] check_graphics_ip ================
[17:08:43] ===================== check_media_ip ======================
[17:08:43] [PASSED] 12.00 Xe_M
[17:08:43] [PASSED] 12.55 Xe_HPM
[17:08:43] [PASSED] 13.00 Xe_LPM+
[17:08:43] [PASSED] 13.01 Xe2_HPM
[17:08:43] [PASSED] 20.00 Xe2_LPM
[17:08:43] [PASSED] 30.00 Xe3_LPM
[17:08:43] [PASSED] 30.02 Xe3_LPM
[17:08:43] [PASSED] 35.00 Xe3p_LPM
[17:08:43] [PASSED] 35.03 Xe3p_HPM
[17:08:43] ================= [PASSED] check_media_ip ==================
[17:08:43] =================== check_platform_desc ===================
[17:08:43] [PASSED] 0x9A60 (TIGERLAKE)
[17:08:43] [PASSED] 0x9A68 (TIGERLAKE)
[17:08:43] [PASSED] 0x9A70 (TIGERLAKE)
[17:08:43] [PASSED] 0x9A40 (TIGERLAKE)
[17:08:43] [PASSED] 0x9A49 (TIGERLAKE)
[17:08:43] [PASSED] 0x9A59 (TIGERLAKE)
[17:08:43] [PASSED] 0x9A78 (TIGERLAKE)
[17:08:43] [PASSED] 0x9AC0 (TIGERLAKE)
[17:08:43] [PASSED] 0x9AC9 (TIGERLAKE)
[17:08:43] [PASSED] 0x9AD9 (TIGERLAKE)
[17:08:43] [PASSED] 0x9AF8 (TIGERLAKE)
[17:08:43] [PASSED] 0x4C80 (ROCKETLAKE)
[17:08:43] [PASSED] 0x4C8A (ROCKETLAKE)
[17:08:43] [PASSED] 0x4C8B (ROCKETLAKE)
[17:08:43] [PASSED] 0x4C8C (ROCKETLAKE)
[17:08:43] [PASSED] 0x4C90 (ROCKETLAKE)
[17:08:43] [PASSED] 0x4C9A (ROCKETLAKE)
[17:08:43] [PASSED] 0x4680 (ALDERLAKE_S)
[17:08:43] [PASSED] 0x4682 (ALDERLAKE_S)
[17:08:43] [PASSED] 0x4688 (ALDERLAKE_S)
[17:08:43] [PASSED] 0x468A (ALDERLAKE_S)
[17:08:43] [PASSED] 0x468B (ALDERLAKE_S)
[17:08:43] [PASSED] 0x4690 (ALDERLAKE_S)
[17:08:43] [PASSED] 0x4692 (ALDERLAKE_S)
[17:08:43] [PASSED] 0x4693 (ALDERLAKE_S)
[17:08:43] [PASSED] 0x46A0 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46A1 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46A2 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46A3 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46A6 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46A8 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46AA (ALDERLAKE_P)
[17:08:43] [PASSED] 0x462A (ALDERLAKE_P)
[17:08:43] [PASSED] 0x4626 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x4628 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46B0 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46B1 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46B2 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46B3 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46C0 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46C1 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46C2 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46C3 (ALDERLAKE_P)
[17:08:43] [PASSED] 0x46D0 (ALDERLAKE_N)
[17:08:43] [PASSED] 0x46D1 (ALDERLAKE_N)
[17:08:43] [PASSED] 0x46D2 (ALDERLAKE_N)
[17:08:43] [PASSED] 0x46D3 (ALDERLAKE_N)
[17:08:43] [PASSED] 0x46D4 (ALDERLAKE_N)
[17:08:43] [PASSED] 0xA721 (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7A1 (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7A9 (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7AC (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7AD (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA720 (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7A0 (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7A8 (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7AA (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA7AB (ALDERLAKE_P)
[17:08:43] [PASSED] 0xA780 (ALDERLAKE_S)
[17:08:43] [PASSED] 0xA781 (ALDERLAKE_S)
[17:08:43] [PASSED] 0xA782 (ALDERLAKE_S)
[17:08:43] [PASSED] 0xA783 (ALDERLAKE_S)
[17:08:43] [PASSED] 0xA788 (ALDERLAKE_S)
[17:08:43] [PASSED] 0xA789 (ALDERLAKE_S)
[17:08:43] [PASSED] 0xA78A (ALDERLAKE_S)
[17:08:43] [PASSED] 0xA78B (ALDERLAKE_S)
[17:08:43] [PASSED] 0x4905 (DG1)
[17:08:43] [PASSED] 0x4906 (DG1)
[17:08:43] [PASSED] 0x4907 (DG1)
[17:08:43] [PASSED] 0x4908 (DG1)
[17:08:43] [PASSED] 0x4909 (DG1)
[17:08:43] [PASSED] 0x56C0 (DG2)
[17:08:43] [PASSED] 0x56C2 (DG2)
[17:08:43] [PASSED] 0x56C1 (DG2)
[17:08:43] [PASSED] 0x7D51 (METEORLAKE)
[17:08:43] [PASSED] 0x7DD1 (METEORLAKE)
[17:08:43] [PASSED] 0x7D41 (METEORLAKE)
[17:08:43] [PASSED] 0x7D67 (METEORLAKE)
[17:08:43] [PASSED] 0xB640 (METEORLAKE)
[17:08:43] [PASSED] 0x56A0 (DG2)
[17:08:43] [PASSED] 0x56A1 (DG2)
[17:08:43] [PASSED] 0x56A2 (DG2)
[17:08:43] [PASSED] 0x56BE (DG2)
[17:08:43] [PASSED] 0x56BF (DG2)
[17:08:43] [PASSED] 0x5690 (DG2)
[17:08:43] [PASSED] 0x5691 (DG2)
[17:08:43] [PASSED] 0x5692 (DG2)
[17:08:43] [PASSED] 0x56A5 (DG2)
[17:08:43] [PASSED] 0x56A6 (DG2)
[17:08:43] [PASSED] 0x56B0 (DG2)
[17:08:43] [PASSED] 0x56B1 (DG2)
[17:08:43] [PASSED] 0x56BA (DG2)
[17:08:43] [PASSED] 0x56BB (DG2)
[17:08:43] [PASSED] 0x56BC (DG2)
[17:08:43] [PASSED] 0x56BD (DG2)
[17:08:43] [PASSED] 0x5693 (DG2)
[17:08:43] [PASSED] 0x5694 (DG2)
[17:08:43] [PASSED] 0x5695 (DG2)
[17:08:43] [PASSED] 0x56A3 (DG2)
[17:08:43] [PASSED] 0x56A4 (DG2)
[17:08:43] [PASSED] 0x56B2 (DG2)
[17:08:43] [PASSED] 0x56B3 (DG2)
[17:08:43] [PASSED] 0x5696 (DG2)
[17:08:43] [PASSED] 0x5697 (DG2)
[17:08:43] [PASSED] 0xB69 (PVC)
[17:08:43] [PASSED] 0xB6E (PVC)
[17:08:43] [PASSED] 0xBD4 (PVC)
[17:08:43] [PASSED] 0xBD5 (PVC)
[17:08:43] [PASSED] 0xBD6 (PVC)
[17:08:43] [PASSED] 0xBD7 (PVC)
[17:08:43] [PASSED] 0xBD8 (PVC)
[17:08:43] [PASSED] 0xBD9 (PVC)
[17:08:43] [PASSED] 0xBDA (PVC)
[17:08:43] [PASSED] 0xBDB (PVC)
[17:08:43] [PASSED] 0xBE0 (PVC)
[17:08:43] [PASSED] 0xBE1 (PVC)
[17:08:43] [PASSED] 0xBE5 (PVC)
[17:08:43] [PASSED] 0x7D40 (METEORLAKE)
[17:08:43] [PASSED] 0x7D45 (METEORLAKE)
[17:08:43] [PASSED] 0x7D55 (METEORLAKE)
[17:08:43] [PASSED] 0x7D60 (METEORLAKE)
[17:08:43] [PASSED] 0x7DD5 (METEORLAKE)
[17:08:43] [PASSED] 0x6420 (LUNARLAKE)
[17:08:43] [PASSED] 0x64A0 (LUNARLAKE)
[17:08:43] [PASSED] 0x64B0 (LUNARLAKE)
[17:08:43] [PASSED] 0xE202 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE209 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE20B (BATTLEMAGE)
[17:08:43] [PASSED] 0xE20C (BATTLEMAGE)
[17:08:43] [PASSED] 0xE20D (BATTLEMAGE)
[17:08:43] [PASSED] 0xE210 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE211 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE212 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE216 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE220 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE221 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE222 (BATTLEMAGE)
[17:08:43] [PASSED] 0xE223 (BATTLEMAGE)
[17:08:43] [PASSED] 0xB080 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB081 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB082 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB083 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB084 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB085 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB086 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB087 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB08F (PANTHERLAKE)
[17:08:43] [PASSED] 0xB090 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB0A0 (PANTHERLAKE)
[17:08:43] [PASSED] 0xB0B0 (PANTHERLAKE)
[17:08:43] [PASSED] 0xFD80 (PANTHERLAKE)
[17:08:43] [PASSED] 0xFD81 (PANTHERLAKE)
[17:08:43] [PASSED] 0xD740 (NOVALAKE_S)
[17:08:43] [PASSED] 0xD741 (NOVALAKE_S)
[17:08:43] [PASSED] 0xD742 (NOVALAKE_S)
[17:08:43] [PASSED] 0xD743 (NOVALAKE_S)
[17:08:43] [PASSED] 0xD744 (NOVALAKE_S)
[17:08:43] [PASSED] 0xD745 (NOVALAKE_S)
[17:08:43] [PASSED] 0x674C (CRESCENTISLAND)
[17:08:43] [PASSED] 0xD750 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD751 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD752 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD753 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD754 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD755 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD756 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD757 (NOVALAKE_P)
[17:08:43] [PASSED] 0xD75F (NOVALAKE_P)
[17:08:43] =============== [PASSED] check_platform_desc ===============
[17:08:43] ===================== [PASSED] xe_pci ======================
[17:08:43] =================== xe_rtp (2 subtests) ====================
[17:08:43] =============== xe_rtp_process_to_sr_tests ================
[17:08:43] [PASSED] coalesce-same-reg
[17:08:43] [PASSED] no-match-no-add
[17:08:43] [PASSED] match-or
[17:08:43] [PASSED] match-or-xfail
[17:08:43] [PASSED] no-match-no-add-multiple-rules
[17:08:43] [PASSED] two-regs-two-entries
[17:08:43] [PASSED] clr-one-set-other
[17:08:43] [PASSED] set-field
[17:08:43] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[17:08:43] [PASSED] conflict-not-disjoint
[17:08:43] [PASSED] conflict-reg-type
[17:08:43] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[17:08:43] ================== xe_rtp_process_tests ===================
[17:08:43] [PASSED] active1
[17:08:43] [PASSED] active2
[17:08:43] [PASSED] active-inactive
[17:08:43] [PASSED] inactive-active
[17:08:43] [PASSED] inactive-1st_or_active-inactive
[17:08:43] [PASSED] inactive-2nd_or_active-inactive
[17:08:43] [PASSED] inactive-last_or_active-inactive
[17:08:43] [PASSED] inactive-no_or_active-inactive
[17:08:43] ============== [PASSED] xe_rtp_process_tests ===============
[17:08:43] ===================== [PASSED] xe_rtp ======================
[17:08:43] ==================== xe_wa (1 subtest) =====================
[17:08:43] ======================== xe_wa_gt =========================
[17:08:43] [PASSED] TIGERLAKE B0
[17:08:43] [PASSED] DG1 A0
[17:08:43] [PASSED] DG1 B0
[17:08:43] [PASSED] ALDERLAKE_S A0
[17:08:43] [PASSED] ALDERLAKE_S B0
[17:08:43] [PASSED] ALDERLAKE_S C0
[17:08:43] [PASSED] ALDERLAKE_S D0
[17:08:43] [PASSED] ALDERLAKE_P A0
[17:08:43] [PASSED] ALDERLAKE_P B0
[17:08:43] [PASSED] ALDERLAKE_P C0
[17:08:43] [PASSED] ALDERLAKE_S RPLS D0
[17:08:43] [PASSED] ALDERLAKE_P RPLU E0
[17:08:43] [PASSED] DG2 G10 C0
[17:08:43] [PASSED] DG2 G11 B1
[17:08:43] [PASSED] DG2 G12 A1
[17:08:43] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:08:43] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:08:43] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[17:08:43] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[17:08:43] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[17:08:43] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[17:08:43] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[17:08:43] ==================== [PASSED] xe_wa_gt =====================
[17:08:43] ====================== [PASSED] xe_wa ======================
[17:08:43] ============================================================
[17:08:43] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[17:08:43] Elapsed time: 35.374s total, 4.232s configuring, 30.476s building, 0.618s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[17:08:43] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:08:44] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[17:09:08] Starting KUnit Kernel (1/1)...
[17:09:08] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:09:09] ============ drm_test_pick_cmdline (2 subtests) ============
[17:09:09] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[17:09:09] =============== drm_test_pick_cmdline_named ===============
[17:09:09] [PASSED] NTSC
[17:09:09] [PASSED] NTSC-J
[17:09:09] [PASSED] PAL
[17:09:09] [PASSED] PAL-M
[17:09:09] =========== [PASSED] drm_test_pick_cmdline_named ===========
[17:09:09] ============== [PASSED] drm_test_pick_cmdline ==============
[17:09:09] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[17:09:09] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[17:09:09] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[17:09:09] =========== drm_validate_clone_mode (2 subtests) ===========
[17:09:09] ============== drm_test_check_in_clone_mode ===============
[17:09:09] [PASSED] in_clone_mode
[17:09:09] [PASSED] not_in_clone_mode
[17:09:09] ========== [PASSED] drm_test_check_in_clone_mode ===========
[17:09:09] =============== drm_test_check_valid_clones ===============
[17:09:09] [PASSED] not_in_clone_mode
[17:09:09] [PASSED] valid_clone
[17:09:09] [PASSED] invalid_clone
[17:09:09] =========== [PASSED] drm_test_check_valid_clones ===========
[17:09:09] ============= [PASSED] drm_validate_clone_mode =============
[17:09:09] ============= drm_validate_modeset (1 subtest) =============
[17:09:09] [PASSED] drm_test_check_connector_changed_modeset
[17:09:09] ============== [PASSED] drm_validate_modeset ===============
[17:09:09] ====== drm_test_bridge_get_current_state (2 subtests) ======
[17:09:09] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[17:09:09] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[17:09:09] ======== [PASSED] drm_test_bridge_get_current_state ========
[17:09:09] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[17:09:09] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[17:09:09] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[17:09:09] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[17:09:09] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[17:09:09] ============== drm_bridge_alloc (2 subtests) ===============
[17:09:09] [PASSED] drm_test_drm_bridge_alloc_basic
[17:09:09] [PASSED] drm_test_drm_bridge_alloc_get_put
[17:09:09] ================ [PASSED] drm_bridge_alloc =================
[17:09:09] ============= drm_cmdline_parser (40 subtests) =============
[17:09:09] [PASSED] drm_test_cmdline_force_d_only
[17:09:09] [PASSED] drm_test_cmdline_force_D_only_dvi
[17:09:09] [PASSED] drm_test_cmdline_force_D_only_hdmi
[17:09:09] [PASSED] drm_test_cmdline_force_D_only_not_digital
[17:09:09] [PASSED] drm_test_cmdline_force_e_only
[17:09:09] [PASSED] drm_test_cmdline_res
[17:09:09] [PASSED] drm_test_cmdline_res_vesa
[17:09:09] [PASSED] drm_test_cmdline_res_vesa_rblank
[17:09:09] [PASSED] drm_test_cmdline_res_rblank
[17:09:09] [PASSED] drm_test_cmdline_res_bpp
[17:09:09] [PASSED] drm_test_cmdline_res_refresh
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[17:09:09] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[17:09:09] [PASSED] drm_test_cmdline_res_margins_force_on
[17:09:09] [PASSED] drm_test_cmdline_res_vesa_margins
[17:09:09] [PASSED] drm_test_cmdline_name
[17:09:09] [PASSED] drm_test_cmdline_name_bpp
[17:09:09] [PASSED] drm_test_cmdline_name_option
[17:09:09] [PASSED] drm_test_cmdline_name_bpp_option
[17:09:09] [PASSED] drm_test_cmdline_rotate_0
[17:09:09] [PASSED] drm_test_cmdline_rotate_90
[17:09:09] [PASSED] drm_test_cmdline_rotate_180
[17:09:09] [PASSED] drm_test_cmdline_rotate_270
[17:09:09] [PASSED] drm_test_cmdline_hmirror
[17:09:09] [PASSED] drm_test_cmdline_vmirror
[17:09:09] [PASSED] drm_test_cmdline_margin_options
[17:09:09] [PASSED] drm_test_cmdline_multiple_options
[17:09:09] [PASSED] drm_test_cmdline_bpp_extra_and_option
[17:09:09] [PASSED] drm_test_cmdline_extra_and_option
[17:09:09] [PASSED] drm_test_cmdline_freestanding_options
[17:09:09] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[17:09:09] [PASSED] drm_test_cmdline_panel_orientation
[17:09:09] ================ drm_test_cmdline_invalid =================
[17:09:09] [PASSED] margin_only
[17:09:09] [PASSED] interlace_only
[17:09:09] [PASSED] res_missing_x
[17:09:09] [PASSED] res_missing_y
[17:09:09] [PASSED] res_bad_y
[17:09:09] [PASSED] res_missing_y_bpp
[17:09:09] [PASSED] res_bad_bpp
[17:09:09] [PASSED] res_bad_refresh
[17:09:09] [PASSED] res_bpp_refresh_force_on_off
[17:09:09] [PASSED] res_invalid_mode
[17:09:09] [PASSED] res_bpp_wrong_place_mode
[17:09:09] [PASSED] name_bpp_refresh
[17:09:09] [PASSED] name_refresh
[17:09:09] [PASSED] name_refresh_wrong_mode
[17:09:09] [PASSED] name_refresh_invalid_mode
[17:09:09] [PASSED] rotate_multiple
[17:09:09] [PASSED] rotate_invalid_val
[17:09:09] [PASSED] rotate_truncated
[17:09:09] [PASSED] invalid_option
[17:09:09] [PASSED] invalid_tv_option
[17:09:09] [PASSED] truncated_tv_option
[17:09:09] ============ [PASSED] drm_test_cmdline_invalid =============
[17:09:09] =============== drm_test_cmdline_tv_options ===============
[17:09:09] [PASSED] NTSC
[17:09:09] [PASSED] NTSC_443
[17:09:09] [PASSED] NTSC_J
[17:09:09] [PASSED] PAL
[17:09:09] [PASSED] PAL_M
[17:09:09] [PASSED] PAL_N
[17:09:09] [PASSED] SECAM
[17:09:09] [PASSED] MONO_525
[17:09:09] [PASSED] MONO_625
[17:09:09] =========== [PASSED] drm_test_cmdline_tv_options ===========
[17:09:09] =============== [PASSED] drm_cmdline_parser ================
[17:09:09] ========== drmm_connector_hdmi_init (20 subtests) ==========
[17:09:09] [PASSED] drm_test_connector_hdmi_init_valid
[17:09:09] [PASSED] drm_test_connector_hdmi_init_bpc_8
[17:09:09] [PASSED] drm_test_connector_hdmi_init_bpc_10
[17:09:09] [PASSED] drm_test_connector_hdmi_init_bpc_12
[17:09:09] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[17:09:09] [PASSED] drm_test_connector_hdmi_init_bpc_null
[17:09:09] [PASSED] drm_test_connector_hdmi_init_formats_empty
[17:09:09] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[17:09:09] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:09:09] [PASSED] supported_formats=0x9 yuv420_allowed=1
[17:09:09] [PASSED] supported_formats=0x9 yuv420_allowed=0
[17:09:09] [PASSED] supported_formats=0x3 yuv420_allowed=1
[17:09:09] [PASSED] supported_formats=0x3 yuv420_allowed=0
[17:09:09] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:09:09] [PASSED] drm_test_connector_hdmi_init_null_ddc
[17:09:09] [PASSED] drm_test_connector_hdmi_init_null_product
[17:09:09] [PASSED] drm_test_connector_hdmi_init_null_vendor
[17:09:09] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[17:09:09] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[17:09:09] [PASSED] drm_test_connector_hdmi_init_product_valid
[17:09:09] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[17:09:09] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[17:09:09] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[17:09:09] ========= drm_test_connector_hdmi_init_type_valid =========
[17:09:09] [PASSED] HDMI-A
[17:09:09] [PASSED] HDMI-B
[17:09:09] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[17:09:09] ======== drm_test_connector_hdmi_init_type_invalid ========
[17:09:09] [PASSED] Unknown
[17:09:09] [PASSED] VGA
[17:09:09] [PASSED] DVI-I
[17:09:09] [PASSED] DVI-D
[17:09:09] [PASSED] DVI-A
[17:09:09] [PASSED] Composite
[17:09:09] [PASSED] SVIDEO
[17:09:09] [PASSED] LVDS
[17:09:09] [PASSED] Component
[17:09:09] [PASSED] DIN
[17:09:09] [PASSED] DP
[17:09:09] [PASSED] TV
[17:09:09] [PASSED] eDP
[17:09:09] [PASSED] Virtual
[17:09:09] [PASSED] DSI
[17:09:09] [PASSED] DPI
[17:09:09] [PASSED] Writeback
[17:09:09] [PASSED] SPI
[17:09:09] [PASSED] USB
[17:09:09] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[17:09:09] ============ [PASSED] drmm_connector_hdmi_init =============
[17:09:09] ============= drmm_connector_init (3 subtests) =============
[17:09:09] [PASSED] drm_test_drmm_connector_init
[17:09:09] [PASSED] drm_test_drmm_connector_init_null_ddc
[17:09:09] ========= drm_test_drmm_connector_init_type_valid =========
[17:09:09] [PASSED] Unknown
[17:09:09] [PASSED] VGA
[17:09:09] [PASSED] DVI-I
[17:09:09] [PASSED] DVI-D
[17:09:09] [PASSED] DVI-A
[17:09:09] [PASSED] Composite
[17:09:09] [PASSED] SVIDEO
[17:09:09] [PASSED] LVDS
[17:09:09] [PASSED] Component
[17:09:09] [PASSED] DIN
[17:09:09] [PASSED] DP
[17:09:09] [PASSED] HDMI-A
[17:09:09] [PASSED] HDMI-B
[17:09:09] [PASSED] TV
[17:09:09] [PASSED] eDP
[17:09:09] [PASSED] Virtual
[17:09:09] [PASSED] DSI
[17:09:09] [PASSED] DPI
[17:09:09] [PASSED] Writeback
[17:09:09] [PASSED] SPI
[17:09:09] [PASSED] USB
[17:09:09] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[17:09:09] =============== [PASSED] drmm_connector_init ===============
[17:09:09] ========= drm_connector_dynamic_init (6 subtests) ==========
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_init
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_init_properties
[17:09:09] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[17:09:09] [PASSED] Unknown
[17:09:09] [PASSED] VGA
[17:09:09] [PASSED] DVI-I
[17:09:09] [PASSED] DVI-D
[17:09:09] [PASSED] DVI-A
[17:09:09] [PASSED] Composite
[17:09:09] [PASSED] SVIDEO
[17:09:09] [PASSED] LVDS
[17:09:09] [PASSED] Component
[17:09:09] [PASSED] DIN
[17:09:09] [PASSED] DP
[17:09:09] [PASSED] HDMI-A
[17:09:09] [PASSED] HDMI-B
[17:09:09] [PASSED] TV
[17:09:09] [PASSED] eDP
[17:09:09] [PASSED] Virtual
[17:09:09] [PASSED] DSI
[17:09:09] [PASSED] DPI
[17:09:09] [PASSED] Writeback
[17:09:09] [PASSED] SPI
[17:09:09] [PASSED] USB
[17:09:09] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[17:09:09] ======== drm_test_drm_connector_dynamic_init_name =========
[17:09:09] [PASSED] Unknown
[17:09:09] [PASSED] VGA
[17:09:09] [PASSED] DVI-I
[17:09:09] [PASSED] DVI-D
[17:09:09] [PASSED] DVI-A
[17:09:09] [PASSED] Composite
[17:09:09] [PASSED] SVIDEO
[17:09:09] [PASSED] LVDS
[17:09:09] [PASSED] Component
[17:09:09] [PASSED] DIN
[17:09:09] [PASSED] DP
[17:09:09] [PASSED] HDMI-A
[17:09:09] [PASSED] HDMI-B
[17:09:09] [PASSED] TV
[17:09:09] [PASSED] eDP
[17:09:09] [PASSED] Virtual
[17:09:09] [PASSED] DSI
[17:09:09] [PASSED] DPI
[17:09:09] [PASSED] Writeback
[17:09:09] [PASSED] SPI
[17:09:09] [PASSED] USB
[17:09:09] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[17:09:09] =========== [PASSED] drm_connector_dynamic_init ============
[17:09:09] ==== drm_connector_dynamic_register_early (4 subtests) =====
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[17:09:09] ====== [PASSED] drm_connector_dynamic_register_early =======
[17:09:09] ======= drm_connector_dynamic_register (7 subtests) ========
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[17:09:09] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[17:09:09] ========= [PASSED] drm_connector_dynamic_register ==========
[17:09:09] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[17:09:09] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[17:09:09] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[17:09:09] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[17:09:09] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[17:09:09] ========== drm_test_get_tv_mode_from_name_valid ===========
[17:09:09] [PASSED] NTSC
[17:09:09] [PASSED] NTSC-443
[17:09:09] [PASSED] NTSC-J
[17:09:09] [PASSED] PAL
[17:09:09] [PASSED] PAL-M
[17:09:09] [PASSED] PAL-N
[17:09:09] [PASSED] SECAM
[17:09:09] [PASSED] Mono
[17:09:09] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[17:09:09] [PASSED] drm_test_get_tv_mode_from_name_truncated
[17:09:09] ============ [PASSED] drm_get_tv_mode_from_name ============
[17:09:09] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[17:09:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[17:09:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[17:09:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[17:09:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[17:09:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[17:09:09] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[17:09:09] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[17:09:09] [PASSED] VIC 96
[17:09:09] [PASSED] VIC 97
[17:09:09] [PASSED] VIC 101
[17:09:09] [PASSED] VIC 102
[17:09:09] [PASSED] VIC 106
[17:09:09] [PASSED] VIC 107
[17:09:09] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[17:09:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[17:09:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[17:09:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[17:09:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[17:09:09] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[17:09:09] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[17:09:09] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[17:09:09] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[17:09:09] [PASSED] Automatic
[17:09:09] [PASSED] Full
[17:09:09] [PASSED] Limited 16:235
[17:09:09] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[17:09:09] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[17:09:09] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[17:09:09] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[17:09:09] === drm_test_drm_hdmi_connector_get_output_format_name ====
[17:09:09] [PASSED] RGB
[17:09:09] [PASSED] YUV 4:2:0
[17:09:09] [PASSED] YUV 4:2:2
[17:09:09] [PASSED] YUV 4:4:4
[17:09:09] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[17:09:09] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[17:09:09] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[17:09:09] ============= drm_damage_helper (21 subtests) ==============
[17:09:09] [PASSED] drm_test_damage_iter_no_damage
[17:09:09] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[17:09:09] [PASSED] drm_test_damage_iter_no_damage_src_moved
[17:09:09] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[17:09:09] [PASSED] drm_test_damage_iter_no_damage_not_visible
[17:09:09] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[17:09:09] [PASSED] drm_test_damage_iter_no_damage_no_fb
[17:09:09] [PASSED] drm_test_damage_iter_simple_damage
[17:09:09] [PASSED] drm_test_damage_iter_single_damage
[17:09:09] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[17:09:09] [PASSED] drm_test_damage_iter_single_damage_outside_src
[17:09:09] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[17:09:09] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[17:09:09] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[17:09:09] [PASSED] drm_test_damage_iter_single_damage_src_moved
[17:09:09] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[17:09:09] [PASSED] drm_test_damage_iter_damage
[17:09:09] [PASSED] drm_test_damage_iter_damage_one_intersect
[17:09:09] [PASSED] drm_test_damage_iter_damage_one_outside
[17:09:09] [PASSED] drm_test_damage_iter_damage_src_moved
[17:09:09] [PASSED] drm_test_damage_iter_damage_not_visible
[17:09:09] ================ [PASSED] drm_damage_helper ================
[17:09:09] ============== drm_dp_mst_helper (3 subtests) ==============
[17:09:09] ============== drm_test_dp_mst_calc_pbn_mode ==============
[17:09:09] [PASSED] Clock 154000 BPP 30 DSC disabled
[17:09:09] [PASSED] Clock 234000 BPP 30 DSC disabled
[17:09:09] [PASSED] Clock 297000 BPP 24 DSC disabled
[17:09:09] [PASSED] Clock 332880 BPP 24 DSC enabled
[17:09:09] [PASSED] Clock 324540 BPP 24 DSC enabled
[17:09:09] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[17:09:09] ============== drm_test_dp_mst_calc_pbn_div ===============
[17:09:09] [PASSED] Link rate 2000000 lane count 4
[17:09:09] [PASSED] Link rate 2000000 lane count 2
[17:09:09] [PASSED] Link rate 2000000 lane count 1
[17:09:09] [PASSED] Link rate 1350000 lane count 4
[17:09:09] [PASSED] Link rate 1350000 lane count 2
[17:09:09] [PASSED] Link rate 1350000 lane count 1
[17:09:09] [PASSED] Link rate 1000000 lane count 4
[17:09:09] [PASSED] Link rate 1000000 lane count 2
[17:09:09] [PASSED] Link rate 1000000 lane count 1
[17:09:09] [PASSED] Link rate 810000 lane count 4
[17:09:09] [PASSED] Link rate 810000 lane count 2
[17:09:09] [PASSED] Link rate 810000 lane count 1
[17:09:09] [PASSED] Link rate 540000 lane count 4
[17:09:09] [PASSED] Link rate 540000 lane count 2
[17:09:09] [PASSED] Link rate 540000 lane count 1
[17:09:09] [PASSED] Link rate 270000 lane count 4
[17:09:09] [PASSED] Link rate 270000 lane count 2
[17:09:09] [PASSED] Link rate 270000 lane count 1
[17:09:09] [PASSED] Link rate 162000 lane count 4
[17:09:09] [PASSED] Link rate 162000 lane count 2
[17:09:09] [PASSED] Link rate 162000 lane count 1
[17:09:09] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[17:09:09] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[17:09:09] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[17:09:09] [PASSED] DP_POWER_UP_PHY with port number
[17:09:09] [PASSED] DP_POWER_DOWN_PHY with port number
[17:09:09] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[17:09:09] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[17:09:09] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[17:09:09] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[17:09:09] [PASSED] DP_QUERY_PAYLOAD with port number
[17:09:09] [PASSED] DP_QUERY_PAYLOAD with VCPI
[17:09:09] [PASSED] DP_REMOTE_DPCD_READ with port number
[17:09:09] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[17:09:09] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[17:09:09] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[17:09:09] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[17:09:09] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[17:09:09] [PASSED] DP_REMOTE_I2C_READ with port number
[17:09:09] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[17:09:09] [PASSED] DP_REMOTE_I2C_READ with transactions array
[17:09:09] [PASSED] DP_REMOTE_I2C_WRITE with port number
[17:09:09] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[17:09:09] [PASSED] DP_REMOTE_I2C_WRITE with data array
[17:09:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[17:09:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[17:09:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[17:09:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[17:09:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[17:09:09] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[17:09:09] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[17:09:09] ================ [PASSED] drm_dp_mst_helper ================
[17:09:09] ================== drm_exec (7 subtests) ===================
[17:09:09] [PASSED] sanitycheck
[17:09:09] [PASSED] test_lock
[17:09:09] [PASSED] test_lock_unlock
[17:09:09] [PASSED] test_duplicates
[17:09:09] [PASSED] test_prepare
[17:09:09] [PASSED] test_prepare_array
[17:09:09] [PASSED] test_multiple_loops
[17:09:09] ==================== [PASSED] drm_exec =====================
[17:09:09] =========== drm_format_helper_test (17 subtests) ===========
[17:09:09] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[17:09:09] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[17:09:09] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[17:09:09] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[17:09:09] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[17:09:09] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[17:09:09] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[17:09:09] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[17:09:09] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[17:09:09] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[17:09:09] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[17:09:09] ============== drm_test_fb_xrgb8888_to_mono ===============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[17:09:09] ==================== drm_test_fb_swab =====================
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ================ [PASSED] drm_test_fb_swab =================
[17:09:09] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[17:09:09] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[17:09:09] [PASSED] single_pixel_source_buffer
[17:09:09] [PASSED] single_pixel_clip_rectangle
[17:09:09] [PASSED] well_known_colors
[17:09:09] [PASSED] destination_pitch
[17:09:09] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[17:09:09] ================= drm_test_fb_clip_offset =================
[17:09:09] [PASSED] pass through
[17:09:09] [PASSED] horizontal offset
[17:09:09] [PASSED] vertical offset
[17:09:09] [PASSED] horizontal and vertical offset
[17:09:09] [PASSED] horizontal offset (custom pitch)
[17:09:09] [PASSED] vertical offset (custom pitch)
[17:09:09] [PASSED] horizontal and vertical offset (custom pitch)
[17:09:09] ============= [PASSED] drm_test_fb_clip_offset =============
[17:09:09] =================== drm_test_fb_memcpy ====================
[17:09:09] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[17:09:09] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[17:09:09] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[17:09:09] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[17:09:09] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[17:09:09] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[17:09:09] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[17:09:09] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[17:09:09] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[17:09:09] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[17:09:09] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[17:09:09] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[17:09:09] =============== [PASSED] drm_test_fb_memcpy ================
[17:09:09] ============= [PASSED] drm_format_helper_test ==============
[17:09:09] ================= drm_format (18 subtests) =================
[17:09:09] [PASSED] drm_test_format_block_width_invalid
[17:09:09] [PASSED] drm_test_format_block_width_one_plane
[17:09:09] [PASSED] drm_test_format_block_width_two_plane
[17:09:09] [PASSED] drm_test_format_block_width_three_plane
[17:09:09] [PASSED] drm_test_format_block_width_tiled
[17:09:09] [PASSED] drm_test_format_block_height_invalid
[17:09:09] [PASSED] drm_test_format_block_height_one_plane
[17:09:09] [PASSED] drm_test_format_block_height_two_plane
[17:09:09] [PASSED] drm_test_format_block_height_three_plane
[17:09:09] [PASSED] drm_test_format_block_height_tiled
[17:09:09] [PASSED] drm_test_format_min_pitch_invalid
[17:09:09] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[17:09:09] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[17:09:09] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[17:09:09] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[17:09:09] [PASSED] drm_test_format_min_pitch_two_plane
[17:09:09] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[17:09:09] [PASSED] drm_test_format_min_pitch_tiled
[17:09:09] =================== [PASSED] drm_format ====================
[17:09:09] ============== drm_framebuffer (10 subtests) ===============
[17:09:09] ========== drm_test_framebuffer_check_src_coords ==========
[17:09:09] [PASSED] Success: source fits into fb
[17:09:09] [PASSED] Fail: overflowing fb with x-axis coordinate
[17:09:09] [PASSED] Fail: overflowing fb with y-axis coordinate
[17:09:09] [PASSED] Fail: overflowing fb with source width
[17:09:09] [PASSED] Fail: overflowing fb with source height
[17:09:09] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[17:09:09] [PASSED] drm_test_framebuffer_cleanup
[17:09:09] =============== drm_test_framebuffer_create ===============
[17:09:09] [PASSED] ABGR8888 normal sizes
[17:09:09] [PASSED] ABGR8888 max sizes
[17:09:09] [PASSED] ABGR8888 pitch greater than min required
[17:09:09] [PASSED] ABGR8888 pitch less than min required
[17:09:09] [PASSED] ABGR8888 Invalid width
[17:09:09] [PASSED] ABGR8888 Invalid buffer handle
[17:09:09] [PASSED] No pixel format
[17:09:09] [PASSED] ABGR8888 Width 0
[17:09:09] [PASSED] ABGR8888 Height 0
[17:09:09] [PASSED] ABGR8888 Out of bound height * pitch combination
[17:09:09] [PASSED] ABGR8888 Large buffer offset
[17:09:09] [PASSED] ABGR8888 Buffer offset for inexistent plane
[17:09:09] [PASSED] ABGR8888 Invalid flag
[17:09:09] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[17:09:09] [PASSED] ABGR8888 Valid buffer modifier
[17:09:09] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[17:09:09] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[17:09:09] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[17:09:09] [PASSED] NV12 Normal sizes
[17:09:09] [PASSED] NV12 Max sizes
[17:09:09] [PASSED] NV12 Invalid pitch
[17:09:09] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[17:09:09] [PASSED] NV12 different modifier per-plane
[17:09:09] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[17:09:09] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[17:09:09] [PASSED] NV12 Modifier for inexistent plane
[17:09:09] [PASSED] NV12 Handle for inexistent plane
[17:09:09] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[17:09:09] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[17:09:09] [PASSED] YVU420 Normal sizes
[17:09:09] [PASSED] YVU420 Max sizes
[17:09:09] [PASSED] YVU420 Invalid pitch
[17:09:09] [PASSED] YVU420 Different pitches
[17:09:09] [PASSED] YVU420 Different buffer offsets/pitches
[17:09:09] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[17:09:09] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[17:09:09] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[17:09:09] [PASSED] YVU420 Valid modifier
[17:09:09] [PASSED] YVU420 Different modifiers per plane
[17:09:09] [PASSED] YVU420 Modifier for inexistent plane
[17:09:09] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[17:09:09] [PASSED] X0L2 Normal sizes
[17:09:09] [PASSED] X0L2 Max sizes
[17:09:09] [PASSED] X0L2 Invalid pitch
[17:09:09] [PASSED] X0L2 Pitch greater than minimum required
[17:09:09] [PASSED] X0L2 Handle for inexistent plane
[17:09:09] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[17:09:09] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[17:09:09] [PASSED] X0L2 Valid modifier
[17:09:09] [PASSED] X0L2 Modifier for inexistent plane
[17:09:09] =========== [PASSED] drm_test_framebuffer_create ===========
[17:09:09] [PASSED] drm_test_framebuffer_free
[17:09:09] [PASSED] drm_test_framebuffer_init
[17:09:09] [PASSED] drm_test_framebuffer_init_bad_format
[17:09:09] [PASSED] drm_test_framebuffer_init_dev_mismatch
[17:09:09] [PASSED] drm_test_framebuffer_lookup
[17:09:09] [PASSED] drm_test_framebuffer_lookup_inexistent
[17:09:09] [PASSED] drm_test_framebuffer_modifiers_not_supported
[17:09:09] ================= [PASSED] drm_framebuffer =================
[17:09:09] ================ drm_gem_shmem (8 subtests) ================
[17:09:09] [PASSED] drm_gem_shmem_test_obj_create
[17:09:09] [PASSED] drm_gem_shmem_test_obj_create_private
[17:09:09] [PASSED] drm_gem_shmem_test_pin_pages
[17:09:09] [PASSED] drm_gem_shmem_test_vmap
[17:09:09] [PASSED] drm_gem_shmem_test_get_sg_table
[17:09:09] [PASSED] drm_gem_shmem_test_get_pages_sgt
[17:09:09] [PASSED] drm_gem_shmem_test_madvise
[17:09:09] [PASSED] drm_gem_shmem_test_purge
[17:09:09] ================== [PASSED] drm_gem_shmem ==================
[17:09:09] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[17:09:09] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[17:09:09] [PASSED] Automatic
[17:09:09] [PASSED] Full
[17:09:09] [PASSED] Limited 16:235
[17:09:09] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[17:09:09] [PASSED] drm_test_check_disable_connector
[17:09:09] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[17:09:09] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[17:09:09] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[17:09:09] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[17:09:09] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[17:09:09] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[17:09:09] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[17:09:09] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[17:09:09] [PASSED] drm_test_check_output_bpc_dvi
[17:09:09] [PASSED] drm_test_check_output_bpc_format_vic_1
[17:09:09] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[17:09:09] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[17:09:09] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[17:09:09] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[17:09:09] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[17:09:09] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[17:09:09] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[17:09:09] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[17:09:09] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[17:09:09] [PASSED] drm_test_check_broadcast_rgb_value
[17:09:09] [PASSED] drm_test_check_bpc_8_value
[17:09:09] [PASSED] drm_test_check_bpc_10_value
[17:09:09] [PASSED] drm_test_check_bpc_12_value
[17:09:09] [PASSED] drm_test_check_format_value
[17:09:09] [PASSED] drm_test_check_tmds_char_value
[17:09:09] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[17:09:09] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[17:09:09] [PASSED] drm_test_check_mode_valid
[17:09:09] [PASSED] drm_test_check_mode_valid_reject
[17:09:09] [PASSED] drm_test_check_mode_valid_reject_rate
[17:09:09] [PASSED] drm_test_check_mode_valid_reject_max_clock
[17:09:09] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[17:09:09] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[17:09:09] [PASSED] drm_test_check_infoframes
[17:09:09] [PASSED] drm_test_check_reject_avi_infoframe
[17:09:09] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[17:09:09] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[17:09:09] [PASSED] drm_test_check_reject_audio_infoframe
[17:09:09] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[17:09:09] ================= drm_managed (2 subtests) =================
[17:09:09] [PASSED] drm_test_managed_release_action
[17:09:09] [PASSED] drm_test_managed_run_action
[17:09:09] =================== [PASSED] drm_managed ===================
[17:09:09] =================== drm_mm (6 subtests) ====================
[17:09:09] [PASSED] drm_test_mm_init
[17:09:09] [PASSED] drm_test_mm_debug
[17:09:09] [PASSED] drm_test_mm_align32
[17:09:09] [PASSED] drm_test_mm_align64
[17:09:09] [PASSED] drm_test_mm_lowest
[17:09:09] [PASSED] drm_test_mm_highest
[17:09:09] ===================== [PASSED] drm_mm ======================
[17:09:09] ============= drm_modes_analog_tv (5 subtests) =============
[17:09:09] [PASSED] drm_test_modes_analog_tv_mono_576i
[17:09:09] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[17:09:09] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[17:09:09] [PASSED] drm_test_modes_analog_tv_pal_576i
[17:09:09] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[17:09:09] =============== [PASSED] drm_modes_analog_tv ===============
[17:09:09] ============== drm_plane_helper (2 subtests) ===============
[17:09:09] =============== drm_test_check_plane_state ================
[17:09:09] [PASSED] clipping_simple
[17:09:09] [PASSED] clipping_rotate_reflect
[17:09:09] [PASSED] positioning_simple
[17:09:09] [PASSED] upscaling
[17:09:09] [PASSED] downscaling
[17:09:09] [PASSED] rounding1
[17:09:09] [PASSED] rounding2
[17:09:09] [PASSED] rounding3
[17:09:09] [PASSED] rounding4
[17:09:09] =========== [PASSED] drm_test_check_plane_state ============
[17:09:09] =========== drm_test_check_invalid_plane_state ============
[17:09:09] [PASSED] positioning_invalid
[17:09:09] [PASSED] upscaling_invalid
[17:09:09] [PASSED] downscaling_invalid
[17:09:09] ======= [PASSED] drm_test_check_invalid_plane_state ========
[17:09:09] ================ [PASSED] drm_plane_helper =================
[17:09:09] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[17:09:09] ====== drm_test_connector_helper_tv_get_modes_check =======
[17:09:09] [PASSED] None
[17:09:09] [PASSED] PAL
[17:09:09] [PASSED] NTSC
[17:09:09] [PASSED] Both, NTSC Default
[17:09:09] [PASSED] Both, PAL Default
[17:09:09] [PASSED] Both, NTSC Default, with PAL on command-line
[17:09:09] [PASSED] Both, PAL Default, with NTSC on command-line
[17:09:09] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[17:09:09] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[17:09:09] ================== drm_rect (9 subtests) ===================
[17:09:09] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[17:09:09] [PASSED] drm_test_rect_clip_scaled_not_clipped
[17:09:09] [PASSED] drm_test_rect_clip_scaled_clipped
[17:09:09] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[17:09:09] ================= drm_test_rect_intersect =================
[17:09:09] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[17:09:09] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[17:09:09] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[17:09:09] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[17:09:09] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[17:09:09] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[17:09:09] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[17:09:09] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[17:09:09] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[17:09:09] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[17:09:09] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[17:09:09] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[17:09:09] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[17:09:09] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[17:09:09] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[17:09:09] ============= [PASSED] drm_test_rect_intersect =============
[17:09:09] ================ drm_test_rect_calc_hscale ================
[17:09:09] [PASSED] normal use
[17:09:09] [PASSED] out of max range
[17:09:09] [PASSED] out of min range
[17:09:09] [PASSED] zero dst
[17:09:09] [PASSED] negative src
[17:09:09] [PASSED] negative dst
[17:09:09] ============ [PASSED] drm_test_rect_calc_hscale ============
[17:09:09] ================ drm_test_rect_calc_vscale ================
[17:09:09] [PASSED] normal use
[17:09:09] [PASSED] out of max range
[17:09:09] [PASSED] out of min range
[17:09:09] [PASSED] zero dst
[17:09:09] [PASSED] negative src
[17:09:09] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[17:09:09] ============ [PASSED] drm_test_rect_calc_vscale ============
[17:09:09] ================== drm_test_rect_rotate ===================
[17:09:09] [PASSED] reflect-x
[17:09:09] [PASSED] reflect-y
[17:09:09] [PASSED] rotate-0
[17:09:09] [PASSED] rotate-90
[17:09:09] [PASSED] rotate-180
[17:09:09] [PASSED] rotate-270
[17:09:09] ============== [PASSED] drm_test_rect_rotate ===============
[17:09:09] ================ drm_test_rect_rotate_inv =================
[17:09:09] [PASSED] reflect-x
[17:09:09] [PASSED] reflect-y
[17:09:09] [PASSED] rotate-0
[17:09:09] [PASSED] rotate-90
[17:09:09] [PASSED] rotate-180
[17:09:09] [PASSED] rotate-270
[17:09:09] ============ [PASSED] drm_test_rect_rotate_inv =============
[17:09:09] ==================== [PASSED] drm_rect =====================
[17:09:09] ================= drm_suballoc (1 subtest) =================
[17:09:09] [PASSED] drm_test_suballoc_alloc_insert
[17:09:09] ================== [PASSED] drm_suballoc ===================
[17:09:09] ============ drm_sysfb_modeset_test (1 subtest) ============
[17:09:09] ============ drm_test_sysfb_build_fourcc_list =============
[17:09:09] [PASSED] no native formats
[17:09:09] [PASSED] XRGB8888 as native format
[17:09:09] [PASSED] remove duplicates
[17:09:09] [PASSED] convert alpha formats
[17:09:09] [PASSED] random formats
[17:09:09] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[17:09:09] ============= [PASSED] drm_sysfb_modeset_test ==============
[17:09:09] ================== drm_fixp (2 subtests) ===================
[17:09:09] [PASSED] drm_test_int2fixp
[17:09:09] [PASSED] drm_test_sm2fixp
[17:09:09] ==================== [PASSED] drm_fixp =====================
[17:09:09] ============================================================
[17:09:09] Testing complete. Ran 622 tests: passed: 622
[17:09:09] Elapsed time: 25.941s total, 1.648s configuring, 24.078s building, 0.173s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[17:09:09] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:09:10] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[17:09:20] Starting KUnit Kernel (1/1)...
[17:09:20] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:09:20] ================= ttm_device (5 subtests) ==================
[17:09:20] [PASSED] ttm_device_init_basic
[17:09:20] [PASSED] ttm_device_init_multiple
[17:09:20] [PASSED] ttm_device_fini_basic
[17:09:20] [PASSED] ttm_device_init_no_vma_man
[17:09:20] ================== ttm_device_init_pools ==================
[17:09:20] [PASSED] No DMA allocations, no DMA32 required
[17:09:20] [PASSED] DMA allocations, DMA32 required
[17:09:20] [PASSED] No DMA allocations, DMA32 required
[17:09:20] [PASSED] DMA allocations, no DMA32 required
[17:09:20] ============== [PASSED] ttm_device_init_pools ==============
[17:09:20] =================== [PASSED] ttm_device ====================
[17:09:20] ================== ttm_pool (8 subtests) ===================
[17:09:20] ================== ttm_pool_alloc_basic ===================
[17:09:20] [PASSED] One page
[17:09:20] [PASSED] More than one page
[17:09:20] [PASSED] Above the allocation limit
[17:09:20] [PASSED] One page, with coherent DMA mappings enabled
[17:09:20] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:09:20] ============== [PASSED] ttm_pool_alloc_basic ===============
[17:09:20] ============== ttm_pool_alloc_basic_dma_addr ==============
[17:09:20] [PASSED] One page
[17:09:20] [PASSED] More than one page
[17:09:20] [PASSED] Above the allocation limit
[17:09:20] [PASSED] One page, with coherent DMA mappings enabled
[17:09:20] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:09:20] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[17:09:20] [PASSED] ttm_pool_alloc_order_caching_match
[17:09:20] [PASSED] ttm_pool_alloc_caching_mismatch
[17:09:20] [PASSED] ttm_pool_alloc_order_mismatch
[17:09:20] [PASSED] ttm_pool_free_dma_alloc
[17:09:20] [PASSED] ttm_pool_free_no_dma_alloc
[17:09:20] [PASSED] ttm_pool_fini_basic
[17:09:20] ==================== [PASSED] ttm_pool =====================
[17:09:20] ================ ttm_resource (8 subtests) =================
[17:09:20] ================= ttm_resource_init_basic =================
[17:09:20] [PASSED] Init resource in TTM_PL_SYSTEM
[17:09:20] [PASSED] Init resource in TTM_PL_VRAM
[17:09:20] [PASSED] Init resource in a private placement
[17:09:20] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[17:09:20] ============= [PASSED] ttm_resource_init_basic =============
[17:09:20] [PASSED] ttm_resource_init_pinned
[17:09:20] [PASSED] ttm_resource_fini_basic
[17:09:20] [PASSED] ttm_resource_manager_init_basic
[17:09:20] [PASSED] ttm_resource_manager_usage_basic
[17:09:20] [PASSED] ttm_resource_manager_set_used_basic
[17:09:20] [PASSED] ttm_sys_man_alloc_basic
[17:09:20] [PASSED] ttm_sys_man_free_basic
[17:09:20] ================== [PASSED] ttm_resource ===================
[17:09:20] =================== ttm_tt (15 subtests) ===================
[17:09:20] ==================== ttm_tt_init_basic ====================
[17:09:20] [PASSED] Page-aligned size
[17:09:20] [PASSED] Extra pages requested
[17:09:20] ================ [PASSED] ttm_tt_init_basic ================
[17:09:20] [PASSED] ttm_tt_init_misaligned
[17:09:20] [PASSED] ttm_tt_fini_basic
[17:09:20] [PASSED] ttm_tt_fini_sg
[17:09:20] [PASSED] ttm_tt_fini_shmem
[17:09:20] [PASSED] ttm_tt_create_basic
[17:09:20] [PASSED] ttm_tt_create_invalid_bo_type
[17:09:20] [PASSED] ttm_tt_create_ttm_exists
[17:09:20] [PASSED] ttm_tt_create_failed
[17:09:20] [PASSED] ttm_tt_destroy_basic
[17:09:20] [PASSED] ttm_tt_populate_null_ttm
[17:09:20] [PASSED] ttm_tt_populate_populated_ttm
[17:09:20] [PASSED] ttm_tt_unpopulate_basic
[17:09:20] [PASSED] ttm_tt_unpopulate_empty_ttm
[17:09:20] [PASSED] ttm_tt_swapin_basic
[17:09:20] ===================== [PASSED] ttm_tt ======================
[17:09:20] =================== ttm_bo (14 subtests) ===================
[17:09:20] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[17:09:20] [PASSED] Cannot be interrupted and sleeps
[17:09:20] [PASSED] Cannot be interrupted, locks straight away
[17:09:20] [PASSED] Can be interrupted, sleeps
[17:09:20] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[17:09:20] [PASSED] ttm_bo_reserve_locked_no_sleep
[17:09:20] [PASSED] ttm_bo_reserve_no_wait_ticket
[17:09:20] [PASSED] ttm_bo_reserve_double_resv
[17:09:20] [PASSED] ttm_bo_reserve_interrupted
[17:09:20] [PASSED] ttm_bo_reserve_deadlock
[17:09:20] [PASSED] ttm_bo_unreserve_basic
[17:09:20] [PASSED] ttm_bo_unreserve_pinned
[17:09:20] [PASSED] ttm_bo_unreserve_bulk
[17:09:20] [PASSED] ttm_bo_fini_basic
[17:09:20] [PASSED] ttm_bo_fini_shared_resv
[17:09:20] [PASSED] ttm_bo_pin_basic
[17:09:20] [PASSED] ttm_bo_pin_unpin_resource
[17:09:20] [PASSED] ttm_bo_multiple_pin_one_unpin
[17:09:20] ===================== [PASSED] ttm_bo ======================
[17:09:20] ============== ttm_bo_validate (21 subtests) ===============
[17:09:20] ============== ttm_bo_init_reserved_sys_man ===============
[17:09:20] [PASSED] Buffer object for userspace
[17:09:20] [PASSED] Kernel buffer object
[17:09:20] [PASSED] Shared buffer object
[17:09:20] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[17:09:20] ============== ttm_bo_init_reserved_mock_man ==============
[17:09:20] [PASSED] Buffer object for userspace
[17:09:20] [PASSED] Kernel buffer object
[17:09:20] [PASSED] Shared buffer object
[17:09:20] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[17:09:20] [PASSED] ttm_bo_init_reserved_resv
[17:09:20] ================== ttm_bo_validate_basic ==================
[17:09:20] [PASSED] Buffer object for userspace
[17:09:20] [PASSED] Kernel buffer object
[17:09:20] [PASSED] Shared buffer object
[17:09:20] ============== [PASSED] ttm_bo_validate_basic ==============
[17:09:20] [PASSED] ttm_bo_validate_invalid_placement
[17:09:20] ============= ttm_bo_validate_same_placement ==============
[17:09:20] [PASSED] System manager
[17:09:20] [PASSED] VRAM manager
[17:09:20] ========= [PASSED] ttm_bo_validate_same_placement ==========
[17:09:20] [PASSED] ttm_bo_validate_failed_alloc
[17:09:20] [PASSED] ttm_bo_validate_pinned
[17:09:20] [PASSED] ttm_bo_validate_busy_placement
[17:09:20] ================ ttm_bo_validate_multihop =================
[17:09:20] [PASSED] Buffer object for userspace
[17:09:20] [PASSED] Kernel buffer object
[17:09:20] [PASSED] Shared buffer object
[17:09:20] ============ [PASSED] ttm_bo_validate_multihop =============
[17:09:20] ========== ttm_bo_validate_no_placement_signaled ==========
[17:09:20] [PASSED] Buffer object in system domain, no page vector
[17:09:20] [PASSED] Buffer object in system domain with an existing page vector
[17:09:20] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[17:09:20] ======== ttm_bo_validate_no_placement_not_signaled ========
[17:09:20] [PASSED] Buffer object for userspace
[17:09:20] [PASSED] Kernel buffer object
[17:09:20] [PASSED] Shared buffer object
[17:09:20] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[17:09:20] [PASSED] ttm_bo_validate_move_fence_signaled
[17:09:20] ========= ttm_bo_validate_move_fence_not_signaled =========
[17:09:20] [PASSED] Waits for GPU
[17:09:20] [PASSED] Tries to lock straight away
[17:09:20] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[17:09:20] [PASSED] ttm_bo_validate_happy_evict
[17:09:20] [PASSED] ttm_bo_validate_all_pinned_evict
[17:09:20] [PASSED] ttm_bo_validate_allowed_only_evict
[17:09:20] [PASSED] ttm_bo_validate_deleted_evict
[17:09:20] [PASSED] ttm_bo_validate_busy_domain_evict
[17:09:20] [PASSED] ttm_bo_validate_evict_gutting
[17:09:20] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[17:09:20] ================= [PASSED] ttm_bo_validate =================
[17:09:20] ============================================================
[17:09:20] Testing complete. Ran 101 tests: passed: 101
[17:09:20] Elapsed time: 11.220s total, 1.670s configuring, 9.333s building, 0.185s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ Xe.CI.BAT: success for Scan all holes when fences are disabled in SA
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
` (4 preceding siblings ...)
2026-03-11 17:09 ` ✓ CI.KUnit: success " Patchwork
@ 2026-03-11 18:14 ` Patchwork
2026-03-12 9:21 ` ✓ Xe.CI.FULL: " Patchwork
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-03-11 18:14 UTC (permalink / raw)
To: Satyanarayana K V P; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 8545 bytes --]
== Series Details ==
Series: Scan all holes when fences are disabled in SA
URL : https://patchwork.freedesktop.org/series/163042/
State : success
== Summary ==
CI Bug Log - changes from xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb_BAT -> xe-pw-163042v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 14)
------------------------------
Additional (1): bat-atsm-2
Known issues
------------
Here are the changes found in xe-pw-163042v1_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@write:
- bat-atsm-2: NOTRUN -> [SKIP][1] ([Intel XE#2134]) +4 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@fbdev@write.html
* igt@kms_addfb_basic@addfb25-yf-tiled-legacy:
- bat-atsm-2: NOTRUN -> [SKIP][2] ([i915#6077]) +30 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- bat-atsm-2: NOTRUN -> [SKIP][3] ([Intel XE#1024] / [Intel XE#782] / [Intel XE#947]) +5 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-atsm-2: NOTRUN -> [SKIP][4] ([Intel XE#1024] / [Intel XE#784] / [Intel XE#947])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_dsc@dsc-basic.html
* igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- bat-adlp-7: [PASS][5] -> [DMESG-WARN][6] ([Intel XE#7483])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
* igt@kms_frontbuffer_tracking@basic:
- bat-atsm-2: NOTRUN -> [SKIP][7] ([Intel XE#1024] / [Intel XE#783] / [Intel XE#947])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_hdmi_inject@inject-audio:
- bat-atsm-2: NOTRUN -> [SKIP][8] ([Intel XE#540]) +3 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_pipe_crc_basic@nonblocking-crc:
- bat-atsm-2: NOTRUN -> [SKIP][9] ([Intel XE#829] / [i915#1836]) +6 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_pipe_crc_basic@nonblocking-crc.html
* igt@kms_prop_blob@basic:
- bat-atsm-2: NOTRUN -> [SKIP][10] ([Intel XE#780])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_prop_blob@basic.html
* igt@kms_psr@psr-primary-page-flip:
- bat-atsm-2: NOTRUN -> [SKIP][11] ([Intel XE#1024] / [Intel XE#947]) +6 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@kms_psr@psr-primary-page-flip.html
* igt@xe_exec_fault_mode@twice-userptr-prefetch:
- bat-atsm-2: NOTRUN -> [SKIP][12] ([Intel XE#288]) +32 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@xe_exec_fault_mode@twice-userptr-prefetch.html
* igt@xe_huc_copy@huc_copy:
- bat-atsm-2: NOTRUN -> [SKIP][13] ([Intel XE#255])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
- bat-bmg-2: NOTRUN -> [SKIP][14] ([Intel XE#2229])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-bmg-2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-atsm-2: NOTRUN -> [SKIP][15] ([Intel XE#2229])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_pat@pat-index-xe2:
- bat-atsm-2: NOTRUN -> [SKIP][16] ([Intel XE#977])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- bat-atsm-2: NOTRUN -> [SKIP][17] ([Intel XE#2838] / [Intel XE#979])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelpg:
- bat-atsm-2: NOTRUN -> [SKIP][18] ([Intel XE#979])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-atsm-2/igt@xe_pat@pat-index-xelpg.html
#### Possible fixes ####
* igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1:
- bat-adlp-7: [DMESG-WARN][19] ([Intel XE#7483]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
* igt@xe_waitfence@abstime:
- bat-dg2-oem2: [TIMEOUT][21] ([Intel XE#6506]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/bat-dg2-oem2/igt@xe_waitfence@abstime.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-dg2-oem2/igt@xe_waitfence@abstime.html
* igt@xe_waitfence@reltime:
- bat-dg2-oem2: [FAIL][23] ([Intel XE#6520]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/bat-dg2-oem2/igt@xe_waitfence@reltime.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-dg2-oem2/igt@xe_waitfence@reltime.html
#### Warnings ####
* igt@core_hotunplug@unbind-rebind:
- bat-bmg-2: [ABORT][25] ([Intel XE#7249]) -> [DMESG-WARN][26] ([Intel XE#7433])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
[Intel XE#1024]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1024
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/540
[Intel XE#6506]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6506
[Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520
[Intel XE#7249]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7249
[Intel XE#7433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7433
[Intel XE#7483]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7483
[Intel XE#780]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/780
[Intel XE#782]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/782
[Intel XE#783]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/783
[Intel XE#784]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/784
[Intel XE#829]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/829
[Intel XE#947]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/947
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
[i915#1836]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1836
[i915#6077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6077
Build changes
-------------
* IGT: IGT_8793 -> IGT_8794
* Linux: xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb -> xe-pw-163042v1
IGT_8793: c623172fdd4dd92bb23dbc55b3930c40266c3e59 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8794: 8794
xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb: 4a30f5fa0fe382b3915a8208a483d0044c40b9eb
xe-pw-163042v1: 163042v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/index.html
[-- Attachment #2: Type: text/html, Size: 10215 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] drm/sa: Scan all holes when fences are disabled
2026-03-11 15:52 ` [PATCH 1/3] drm/sa: Scan all holes when fences are disabled Satyanarayana K V P
@ 2026-03-11 19:02 ` Thomas Hellström
2026-03-12 7:58 ` Christian König
2026-03-12 7:56 ` Christian König
1 sibling, 1 reply; 11+ messages in thread
From: Thomas Hellström @ 2026-03-11 19:02 UTC (permalink / raw)
To: Satyanarayana K V P, intel-xe
Cc: Matthew Brost, Maarten Lankhorst, Michal Wajdeczko,
Christian König, dri-devel
On Wed, 2026-03-11 at 15:52 +0000, Satyanarayana K V P wrote:
> The suballocator algorithm tracks a hole cursor at the last
> allocation
> and tries to allocate after it. This is optimized for fence-ordered
> progress, where older allocations are expected to become reusable
> first.
>
> In fence-enabled mode, that ordering assumption holds. In fence-
> disabled
> mode, allocations may be freed in arbitrary order, so limiting
> allocation
> to the current hole window can miss valid free space and fail
> allocations
> despite sufficient total space.
>
> Update the fence-disabled path to walk through all holes and select
> any
> fitting range, while keeping the existing fence-based behavior
> unchanged.
>
> Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Maarten Lankhorst <dev@lankhorst.se>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: dri-devel@lists.freedesktop.org
Hmm.
The amount of changes we discover are needed for this use-case makes me
wonder whether we are actually using the incorrect subsystems and
should have coded up a separate utility for this: The utility holds the
HW and shadow BOs, and we then embed (or possibly point to) a struct
drm_mm_node in the bos.
Perhaps should've Claude code that up and see what it looks like?
Thanks,
Thomas
> ---
> drivers/gpu/drm/drm_suballoc.c | 90
> ++++++++++++++++++++++++++++++++++
> include/drm/drm_suballoc.h | 5 ++
> 2 files changed, 95 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_suballoc.c
> b/drivers/gpu/drm/drm_suballoc.c
> index b74277bbc14b..307da191a855 100644
> --- a/drivers/gpu/drm/drm_suballoc.c
> +++ b/drivers/gpu/drm/drm_suballoc.c
> @@ -78,12 +78,33 @@ void drm_suballoc_manager_init(struct
> drm_suballoc_manager *sa_manager,
> sa_manager->size = size;
> sa_manager->align = align;
> sa_manager->hole = &sa_manager->olist;
> + sa_manager->fence_disable = false;
> INIT_LIST_HEAD(&sa_manager->olist);
> for (i = 0; i < DRM_SUBALLOC_MAX_QUEUES; ++i)
> INIT_LIST_HEAD(&sa_manager->flist[i]);
> }
> EXPORT_SYMBOL(drm_suballoc_manager_init);
>
> +/**
> + * drm_suballoc_manager_fence_disable() - Enable or disable fence
> tracking.
> + * @sa_manager: Pointer to the suballocation manager.
> + * @fence_disable: Whether to disable fence tracking for free
> suballocations.
> + *
> + * When @fence_disable is true allocation scans all holes without
> waiting on
> + * fences. When false, the manager tracks free suballocations behind
> fences and
> + * reuses them only after the fence signals.
> + *
> + * This should be called immediately after creating the suballocator
> and before
> + * any allocations are made. The behaviour is undefined if this is
> called after
> + * allocations have been made.
> + */
> +void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager
> *sa_manager,
> + bool fence_disable)
> +{
> + sa_manager->fence_disable = fence_disable;
> +}
> +EXPORT_SYMBOL(drm_suballoc_manager_fence_disable);
> +
> /**
> * drm_suballoc_manager_fini() - Destroy the drm_suballoc_manager
> * @sa_manager: pointer to the sa_manager
> @@ -110,6 +131,7 @@ void drm_suballoc_manager_fini(struct
> drm_suballoc_manager *sa_manager)
> }
>
> sa_manager->size = 0;
> + sa_manager->fence_disable = false;
> }
> EXPORT_SYMBOL(drm_suballoc_manager_fini);
>
> @@ -161,6 +183,69 @@ static size_t drm_suballoc_hole_eoffset(struct
> drm_suballoc_manager *sa_manager)
> return sa_manager->size;
> }
>
> +/**
> + * drm_suballoc_hole_soffset_eoffset() - Find a hole fitting size
> and alignment.
> + * @sa_manager: Suballocator manager.
> + * @soffset: Start offset of the selected hole.
> + * @eoffset: End offset of the selected hole.
> + * @size: Size to be allocated.
> + * @align: Allocation alignment.
> + *
> + * This function is used when fences are disabled. It scans the
> holes starting
> + * at the current hole pointer and selects the first one that can
> satisfy @size
> + * once @align padding is applied. We may need to scan the entire
> list of holes
> + * and update soffset and eoffset for each hole to find a suitable
> one, as the
> + * current hole pointer may not be the same as sa_manager->hole.
> + *
> + * Return: true if a suitable hole is found, false otherwise.
> + */
> +static bool drm_suballoc_hole_soffset_eoffset(struct
> drm_suballoc_manager *sa_manager,
> + size_t *soffset,
> size_t *eoffset,
> + size_t size, size_t
> align)
> +{
> + struct list_head *start, *hole;
> +
> + if (!sa_manager->fence_disable)
> + return true;
> +
> + start = sa_manager->hole;
> + hole = start;
> +
> + do {
> + size_t s, e, wasted;
> +
> + /*
> + * We can't use drm_suballoc_hole_soffset() and
> + * drm_suballoc_hole_eoffset() here as the hole may
> not be same
> + * as sa_manager->hole.
> + */
> + if (hole != &sa_manager->olist)
> + s = list_entry(hole, struct drm_suballoc,
> olist)->eoffset;
> + else
> + s = 0;
> +
> + if (hole->next != &sa_manager->olist)
> + e = list_entry(hole->next, struct
> drm_suballoc, olist)->soffset;
> + else
> + e = sa_manager->size;
> +
> + if (e < s || e == s || (e - s) < size) {
> + hole = hole->next;
> + continue;
> + }
> +
> + wasted = round_up(s, align) - s;
> + if ((e - s) >= (size + wasted)) {
> + *soffset = s;
> + *eoffset = e;
> + sa_manager->hole = hole;
> + return true;
> + }
> + } while (hole != start);
> +
> + return false;
> +}
> +
> static bool drm_suballoc_try_alloc(struct drm_suballoc_manager
> *sa_manager,
> struct drm_suballoc *sa,
> size_t size, size_t align)
> @@ -169,6 +254,11 @@ static bool drm_suballoc_try_alloc(struct
> drm_suballoc_manager *sa_manager,
>
> soffset = drm_suballoc_hole_soffset(sa_manager);
> eoffset = drm_suballoc_hole_eoffset(sa_manager);
> +
> + if (!drm_suballoc_hole_soffset_eoffset(sa_manager, &soffset,
> + &eoffset, size,
> align))
> + return false;
> +
> wasted = round_up(soffset, align) - soffset;
>
> if ((eoffset - soffset) >= (size + wasted)) {
> diff --git a/include/drm/drm_suballoc.h b/include/drm/drm_suballoc.h
> index 29befdda35d2..066412196f8a 100644
> --- a/include/drm/drm_suballoc.h
> +++ b/include/drm/drm_suballoc.h
> @@ -20,6 +20,7 @@
> * @flist: Array[fence context hash] of queues of fenced allocated
> ranges.
> * @size: Size of the managed range.
> * @align: Default alignment for the managed range.
> + * @fence_disable: Fences are disabled for this SA manager.
> */
> struct drm_suballoc_manager {
> wait_queue_head_t wq;
> @@ -28,6 +29,7 @@ struct drm_suballoc_manager {
> struct list_head flist[DRM_SUBALLOC_MAX_QUEUES];
> size_t size;
> size_t align;
> + bool fence_disable;
> };
>
> /**
> @@ -51,6 +53,9 @@ struct drm_suballoc {
> void drm_suballoc_manager_init(struct drm_suballoc_manager
> *sa_manager,
> size_t size, size_t align);
>
> +void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager
> + *sa_manager, bool
> fence_disable);
> +
> void drm_suballoc_manager_fini(struct drm_suballoc_manager
> *sa_manager);
>
> struct drm_suballoc *drm_suballoc_alloc(gfp_t gfp);
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] drm/sa: Scan all holes when fences are disabled
2026-03-11 15:52 ` [PATCH 1/3] drm/sa: Scan all holes when fences are disabled Satyanarayana K V P
2026-03-11 19:02 ` Thomas Hellström
@ 2026-03-12 7:56 ` Christian König
1 sibling, 0 replies; 11+ messages in thread
From: Christian König @ 2026-03-12 7:56 UTC (permalink / raw)
To: Satyanarayana K V P, intel-xe
Cc: Matthew Brost, Thomas Hellström, Maarten Lankhorst,
Michal Wajdeczko, dri-devel
On 3/11/26 16:52, Satyanarayana K V P wrote:
> The suballocator algorithm tracks a hole cursor at the last allocation
> and tries to allocate after it. This is optimized for fence-ordered
> progress, where older allocations are expected to become reusable first.
>
> In fence-enabled mode, that ordering assumption holds. In fence-disabled
> mode, allocations may be freed in arbitrary order, so limiting allocation
> to the current hole window can miss valid free space and fail allocations
> despite sufficient total space.
>
> Update the fence-disabled path to walk through all holes and select any
> fitting range, while keeping the existing fence-based behavior unchanged.
Mhm, that sounds like we are abusing the SA for an unfit use case to me.
The whole idea of the SA is to work with fence protected allocation, if you don't need that then you can also use the drm_mm for the job.
So why are you not using drm_mm for that?
Regards,
Christian.
>
> Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Cc: Maarten Lankhorst <dev@lankhorst.se>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: dri-devel@lists.freedesktop.org
> ---
> drivers/gpu/drm/drm_suballoc.c | 90 ++++++++++++++++++++++++++++++++++
> include/drm/drm_suballoc.h | 5 ++
> 2 files changed, 95 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_suballoc.c b/drivers/gpu/drm/drm_suballoc.c
> index b74277bbc14b..307da191a855 100644
> --- a/drivers/gpu/drm/drm_suballoc.c
> +++ b/drivers/gpu/drm/drm_suballoc.c
> @@ -78,12 +78,33 @@ void drm_suballoc_manager_init(struct drm_suballoc_manager *sa_manager,
> sa_manager->size = size;
> sa_manager->align = align;
> sa_manager->hole = &sa_manager->olist;
> + sa_manager->fence_disable = false;
> INIT_LIST_HEAD(&sa_manager->olist);
> for (i = 0; i < DRM_SUBALLOC_MAX_QUEUES; ++i)
> INIT_LIST_HEAD(&sa_manager->flist[i]);
> }
> EXPORT_SYMBOL(drm_suballoc_manager_init);
>
> +/**
> + * drm_suballoc_manager_fence_disable() - Enable or disable fence tracking.
> + * @sa_manager: Pointer to the suballocation manager.
> + * @fence_disable: Whether to disable fence tracking for free suballocations.
> + *
> + * When @fence_disable is true allocation scans all holes without waiting on
> + * fences. When false, the manager tracks free suballocations behind fences and
> + * reuses them only after the fence signals.
> + *
> + * This should be called immediately after creating the suballocator and before
> + * any allocations are made. The behaviour is undefined if this is called after
> + * allocations have been made.
> + */
> +void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager *sa_manager,
> + bool fence_disable)
> +{
> + sa_manager->fence_disable = fence_disable;
> +}
> +EXPORT_SYMBOL(drm_suballoc_manager_fence_disable);
> +
> /**
> * drm_suballoc_manager_fini() - Destroy the drm_suballoc_manager
> * @sa_manager: pointer to the sa_manager
> @@ -110,6 +131,7 @@ void drm_suballoc_manager_fini(struct drm_suballoc_manager *sa_manager)
> }
>
> sa_manager->size = 0;
> + sa_manager->fence_disable = false;
> }
> EXPORT_SYMBOL(drm_suballoc_manager_fini);
>
> @@ -161,6 +183,69 @@ static size_t drm_suballoc_hole_eoffset(struct drm_suballoc_manager *sa_manager)
> return sa_manager->size;
> }
>
> +/**
> + * drm_suballoc_hole_soffset_eoffset() - Find a hole fitting size and alignment.
> + * @sa_manager: Suballocator manager.
> + * @soffset: Start offset of the selected hole.
> + * @eoffset: End offset of the selected hole.
> + * @size: Size to be allocated.
> + * @align: Allocation alignment.
> + *
> + * This function is used when fences are disabled. It scans the holes starting
> + * at the current hole pointer and selects the first one that can satisfy @size
> + * once @align padding is applied. We may need to scan the entire list of holes
> + * and update soffset and eoffset for each hole to find a suitable one, as the
> + * current hole pointer may not be the same as sa_manager->hole.
> + *
> + * Return: true if a suitable hole is found, false otherwise.
> + */
> +static bool drm_suballoc_hole_soffset_eoffset(struct drm_suballoc_manager *sa_manager,
> + size_t *soffset, size_t *eoffset,
> + size_t size, size_t align)
> +{
> + struct list_head *start, *hole;
> +
> + if (!sa_manager->fence_disable)
> + return true;
> +
> + start = sa_manager->hole;
> + hole = start;
> +
> + do {
> + size_t s, e, wasted;
> +
> + /*
> + * We can't use drm_suballoc_hole_soffset() and
> + * drm_suballoc_hole_eoffset() here as the hole may not be same
> + * as sa_manager->hole.
> + */
> + if (hole != &sa_manager->olist)
> + s = list_entry(hole, struct drm_suballoc, olist)->eoffset;
> + else
> + s = 0;
> +
> + if (hole->next != &sa_manager->olist)
> + e = list_entry(hole->next, struct drm_suballoc, olist)->soffset;
> + else
> + e = sa_manager->size;
> +
> + if (e < s || e == s || (e - s) < size) {
> + hole = hole->next;
> + continue;
> + }
> +
> + wasted = round_up(s, align) - s;
> + if ((e - s) >= (size + wasted)) {
> + *soffset = s;
> + *eoffset = e;
> + sa_manager->hole = hole;
> + return true;
> + }
> + } while (hole != start);
> +
> + return false;
> +}
> +
> static bool drm_suballoc_try_alloc(struct drm_suballoc_manager *sa_manager,
> struct drm_suballoc *sa,
> size_t size, size_t align)
> @@ -169,6 +254,11 @@ static bool drm_suballoc_try_alloc(struct drm_suballoc_manager *sa_manager,
>
> soffset = drm_suballoc_hole_soffset(sa_manager);
> eoffset = drm_suballoc_hole_eoffset(sa_manager);
> +
> + if (!drm_suballoc_hole_soffset_eoffset(sa_manager, &soffset,
> + &eoffset, size, align))
> + return false;
> +
> wasted = round_up(soffset, align) - soffset;
>
> if ((eoffset - soffset) >= (size + wasted)) {
> diff --git a/include/drm/drm_suballoc.h b/include/drm/drm_suballoc.h
> index 29befdda35d2..066412196f8a 100644
> --- a/include/drm/drm_suballoc.h
> +++ b/include/drm/drm_suballoc.h
> @@ -20,6 +20,7 @@
> * @flist: Array[fence context hash] of queues of fenced allocated ranges.
> * @size: Size of the managed range.
> * @align: Default alignment for the managed range.
> + * @fence_disable: Fences are disabled for this SA manager.
> */
> struct drm_suballoc_manager {
> wait_queue_head_t wq;
> @@ -28,6 +29,7 @@ struct drm_suballoc_manager {
> struct list_head flist[DRM_SUBALLOC_MAX_QUEUES];
> size_t size;
> size_t align;
> + bool fence_disable;
> };
>
> /**
> @@ -51,6 +53,9 @@ struct drm_suballoc {
> void drm_suballoc_manager_init(struct drm_suballoc_manager *sa_manager,
> size_t size, size_t align);
>
> +void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager
> + *sa_manager, bool fence_disable);
> +
> void drm_suballoc_manager_fini(struct drm_suballoc_manager *sa_manager);
>
> struct drm_suballoc *drm_suballoc_alloc(gfp_t gfp);
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/3] drm/sa: Scan all holes when fences are disabled
2026-03-11 19:02 ` Thomas Hellström
@ 2026-03-12 7:58 ` Christian König
0 siblings, 0 replies; 11+ messages in thread
From: Christian König @ 2026-03-12 7:58 UTC (permalink / raw)
To: Thomas Hellström, Satyanarayana K V P, intel-xe
Cc: Matthew Brost, Maarten Lankhorst, Michal Wajdeczko, dri-devel
On 3/11/26 20:02, Thomas Hellström wrote:
> On Wed, 2026-03-11 at 15:52 +0000, Satyanarayana K V P wrote:
>> The suballocator algorithm tracks a hole cursor at the last
>> allocation
>> and tries to allocate after it. This is optimized for fence-ordered
>> progress, where older allocations are expected to become reusable
>> first.
>>
>> In fence-enabled mode, that ordering assumption holds. In fence-
>> disabled
>> mode, allocations may be freed in arbitrary order, so limiting
>> allocation
>> to the current hole window can miss valid free space and fail
>> allocations
>> despite sufficient total space.
>>
>> Update the fence-disabled path to walk through all holes and select
>> any
>> fitting range, while keeping the existing fence-based behavior
>> unchanged.
>>
>> Signed-off-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
>> Cc: Matthew Brost <matthew.brost@intel.com>
>> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
>> Cc: Maarten Lankhorst <dev@lankhorst.se>
>> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Cc: dri-devel@lists.freedesktop.org
>
> Hmm.
>
> The amount of changes we discover are needed for this use-case makes me
> wonder whether we are actually using the incorrect subsystems and
> should have coded up a separate utility for this: The utility holds the
> HW and shadow BOs, and we then embed (or possibly point to) a struct
> drm_mm_node in the bos.
Yes that matches exactly my thinking as well.
From the description it sounds like a job for drm_mm instead of the sub allocator.
Regards,
Christian.
>
> Perhaps should've Claude code that up and see what it looks like?
>
> Thanks,
> Thomas
>
>
>
>> ---
>> drivers/gpu/drm/drm_suballoc.c | 90
>> ++++++++++++++++++++++++++++++++++
>> include/drm/drm_suballoc.h | 5 ++
>> 2 files changed, 95 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_suballoc.c
>> b/drivers/gpu/drm/drm_suballoc.c
>> index b74277bbc14b..307da191a855 100644
>> --- a/drivers/gpu/drm/drm_suballoc.c
>> +++ b/drivers/gpu/drm/drm_suballoc.c
>> @@ -78,12 +78,33 @@ void drm_suballoc_manager_init(struct
>> drm_suballoc_manager *sa_manager,
>> sa_manager->size = size;
>> sa_manager->align = align;
>> sa_manager->hole = &sa_manager->olist;
>> + sa_manager->fence_disable = false;
>> INIT_LIST_HEAD(&sa_manager->olist);
>> for (i = 0; i < DRM_SUBALLOC_MAX_QUEUES; ++i)
>> INIT_LIST_HEAD(&sa_manager->flist[i]);
>> }
>> EXPORT_SYMBOL(drm_suballoc_manager_init);
>>
>> +/**
>> + * drm_suballoc_manager_fence_disable() - Enable or disable fence
>> tracking.
>> + * @sa_manager: Pointer to the suballocation manager.
>> + * @fence_disable: Whether to disable fence tracking for free
>> suballocations.
>> + *
>> + * When @fence_disable is true allocation scans all holes without
>> waiting on
>> + * fences. When false, the manager tracks free suballocations behind
>> fences and
>> + * reuses them only after the fence signals.
>> + *
>> + * This should be called immediately after creating the suballocator
>> and before
>> + * any allocations are made. The behaviour is undefined if this is
>> called after
>> + * allocations have been made.
>> + */
>> +void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager
>> *sa_manager,
>> + bool fence_disable)
>> +{
>> + sa_manager->fence_disable = fence_disable;
>> +}
>> +EXPORT_SYMBOL(drm_suballoc_manager_fence_disable);
>> +
>> /**
>> * drm_suballoc_manager_fini() - Destroy the drm_suballoc_manager
>> * @sa_manager: pointer to the sa_manager
>> @@ -110,6 +131,7 @@ void drm_suballoc_manager_fini(struct
>> drm_suballoc_manager *sa_manager)
>> }
>>
>> sa_manager->size = 0;
>> + sa_manager->fence_disable = false;
>> }
>> EXPORT_SYMBOL(drm_suballoc_manager_fini);
>>
>> @@ -161,6 +183,69 @@ static size_t drm_suballoc_hole_eoffset(struct
>> drm_suballoc_manager *sa_manager)
>> return sa_manager->size;
>> }
>>
>> +/**
>> + * drm_suballoc_hole_soffset_eoffset() - Find a hole fitting size
>> and alignment.
>> + * @sa_manager: Suballocator manager.
>> + * @soffset: Start offset of the selected hole.
>> + * @eoffset: End offset of the selected hole.
>> + * @size: Size to be allocated.
>> + * @align: Allocation alignment.
>> + *
>> + * This function is used when fences are disabled. It scans the
>> holes starting
>> + * at the current hole pointer and selects the first one that can
>> satisfy @size
>> + * once @align padding is applied. We may need to scan the entire
>> list of holes
>> + * and update soffset and eoffset for each hole to find a suitable
>> one, as the
>> + * current hole pointer may not be the same as sa_manager->hole.
>> + *
>> + * Return: true if a suitable hole is found, false otherwise.
>> + */
>> +static bool drm_suballoc_hole_soffset_eoffset(struct
>> drm_suballoc_manager *sa_manager,
>> + size_t *soffset,
>> size_t *eoffset,
>> + size_t size, size_t
>> align)
>> +{
>> + struct list_head *start, *hole;
>> +
>> + if (!sa_manager->fence_disable)
>> + return true;
>> +
>> + start = sa_manager->hole;
>> + hole = start;
>> +
>> + do {
>> + size_t s, e, wasted;
>> +
>> + /*
>> + * We can't use drm_suballoc_hole_soffset() and
>> + * drm_suballoc_hole_eoffset() here as the hole may
>> not be same
>> + * as sa_manager->hole.
>> + */
>> + if (hole != &sa_manager->olist)
>> + s = list_entry(hole, struct drm_suballoc,
>> olist)->eoffset;
>> + else
>> + s = 0;
>> +
>> + if (hole->next != &sa_manager->olist)
>> + e = list_entry(hole->next, struct
>> drm_suballoc, olist)->soffset;
>> + else
>> + e = sa_manager->size;
>> +
>> + if (e < s || e == s || (e - s) < size) {
>> + hole = hole->next;
>> + continue;
>> + }
>> +
>> + wasted = round_up(s, align) - s;
>> + if ((e - s) >= (size + wasted)) {
>> + *soffset = s;
>> + *eoffset = e;
>> + sa_manager->hole = hole;
>> + return true;
>> + }
>> + } while (hole != start);
>> +
>> + return false;
>> +}
>> +
>> static bool drm_suballoc_try_alloc(struct drm_suballoc_manager
>> *sa_manager,
>> struct drm_suballoc *sa,
>> size_t size, size_t align)
>> @@ -169,6 +254,11 @@ static bool drm_suballoc_try_alloc(struct
>> drm_suballoc_manager *sa_manager,
>>
>> soffset = drm_suballoc_hole_soffset(sa_manager);
>> eoffset = drm_suballoc_hole_eoffset(sa_manager);
>> +
>> + if (!drm_suballoc_hole_soffset_eoffset(sa_manager, &soffset,
>> + &eoffset, size,
>> align))
>> + return false;
>> +
>> wasted = round_up(soffset, align) - soffset;
>>
>> if ((eoffset - soffset) >= (size + wasted)) {
>> diff --git a/include/drm/drm_suballoc.h b/include/drm/drm_suballoc.h
>> index 29befdda35d2..066412196f8a 100644
>> --- a/include/drm/drm_suballoc.h
>> +++ b/include/drm/drm_suballoc.h
>> @@ -20,6 +20,7 @@
>> * @flist: Array[fence context hash] of queues of fenced allocated
>> ranges.
>> * @size: Size of the managed range.
>> * @align: Default alignment for the managed range.
>> + * @fence_disable: Fences are disabled for this SA manager.
>> */
>> struct drm_suballoc_manager {
>> wait_queue_head_t wq;
>> @@ -28,6 +29,7 @@ struct drm_suballoc_manager {
>> struct list_head flist[DRM_SUBALLOC_MAX_QUEUES];
>> size_t size;
>> size_t align;
>> + bool fence_disable;
>> };
>>
>> /**
>> @@ -51,6 +53,9 @@ struct drm_suballoc {
>> void drm_suballoc_manager_init(struct drm_suballoc_manager
>> *sa_manager,
>> size_t size, size_t align);
>>
>> +void drm_suballoc_manager_fence_disable(struct drm_suballoc_manager
>> + *sa_manager, bool
>> fence_disable);
>> +
>> void drm_suballoc_manager_fini(struct drm_suballoc_manager
>> *sa_manager);
>>
>> struct drm_suballoc *drm_suballoc_alloc(gfp_t gfp);
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ Xe.CI.FULL: success for Scan all holes when fences are disabled in SA
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
` (5 preceding siblings ...)
2026-03-11 18:14 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-03-12 9:21 ` Patchwork
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-03-12 9:21 UTC (permalink / raw)
To: Satyanarayana K V P; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 15293 bytes --]
== Series Details ==
Series: Scan all holes when fences are disabled in SA
URL : https://patchwork.freedesktop.org/series/163042/
State : success
== Summary ==
CI Bug Log - changes from xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb_FULL -> xe-pw-163042v1_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-163042v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-32bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][1] ([Intel XE#1407])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-7/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][2] ([Intel XE#3658] / [Intel XE#7360])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
- shard-lnl: NOTRUN -> [SKIP][3] ([Intel XE#1124]) +1 other test skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-8/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html
* igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
- shard-lnl: NOTRUN -> [SKIP][4] ([Intel XE#2191] / [Intel XE#7373])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-8/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][5] ([Intel XE#2887]) +3 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-8/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs.html
* igt@kms_chamelium_frames@dp-crc-multiple:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#373]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-3/igt@kms_chamelium_frames@dp-crc-multiple.html
* igt@kms_content_protection@dp-mst-lic-type-0:
- shard-lnl: NOTRUN -> [SKIP][7] ([Intel XE#307] / [Intel XE#6974])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-8/igt@kms_content_protection@dp-mst-lic-type-0.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-lnl: NOTRUN -> [SKIP][8] ([Intel XE#2321] / [Intel XE#7355])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-5/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#309] / [Intel XE#7343]) +1 other test skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-3/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#1421]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-1/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [PASS][11] -> [FAIL][12] ([Intel XE#301]) +2 other tests fail
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
- shard-lnl: [PASS][13] -> [FAIL][14] ([Intel XE#301] / [Intel XE#3149])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-lnl: NOTRUN -> [SKIP][15] ([Intel XE#7178] / [Intel XE#7349])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][16] ([Intel XE#6312])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-plflip-blt:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#6312] / [Intel XE#651])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-argb161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][18] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcpsr-argb161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][19] ([Intel XE#656]) +6 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-3/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
- shard-lnl: NOTRUN -> [SKIP][20] ([Intel XE#2893] / [Intel XE#7304])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-6/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_setmode@basic-clone-single-crtc:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#1435])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-7/igt@kms_setmode@basic-clone-single-crtc.html
* igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
- shard-lnl: [PASS][22] -> [FAIL][23] ([Intel XE#2142]) +1 other test fail
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-8/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-6/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
* igt@xe_eudebug@discovery-race:
- shard-lnl: NOTRUN -> [SKIP][24] ([Intel XE#4837]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-5/igt@xe_eudebug@discovery-race.html
* igt@xe_eudebug_online@pagefault-one-of-many:
- shard-lnl: NOTRUN -> [SKIP][25] ([Intel XE#6665])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-6/igt@xe_eudebug_online@pagefault-one-of-many.html
* igt@xe_evict@evict-beng-threads-large-multi-vm:
- shard-lnl: NOTRUN -> [SKIP][26] ([Intel XE#6540] / [Intel XE#688]) +2 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-6/igt@xe_evict@evict-beng-threads-large-multi-vm.html
* igt@xe_exec_balancer@twice-virtual-basic:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#7482]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-4/igt@xe_exec_balancer@twice-virtual-basic.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind:
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#1392]) +1 other test skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-6/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind.html
* igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race-imm:
- shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#7136])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-5/igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race-imm.html
* igt@xe_exec_multi_queue@many-queues-preempt-mode-fault-userptr-invalidate:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#6874]) +4 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-7/igt@xe_exec_multi_queue@many-queues-preempt-mode-fault-userptr-invalidate.html
* igt@xe_exec_threads@threads-multi-queue-shared-vm-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#7138]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-2/igt@xe_exec_threads@threads-multi-queue-shared-vm-userptr-invalidate-race.html
* igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz:
- shard-lnl: NOTRUN -> [SKIP][32] ([Intel XE#944])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-7/igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz.html
* igt@xe_sriov_admin@default-sched-attributes-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#7174])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-5/igt@xe_sriov_admin@default-sched-attributes-vfs-disabled.html
#### Possible fixes ####
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
- shard-lnl: [FAIL][34] ([Intel XE#301]) -> [PASS][35]
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
* igt@kms_pm_dc@dc5-dpms:
- shard-lnl: [FAIL][36] ([Intel XE#7340] / [Intel XE#7504]) -> [PASS][37]
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-2/igt@kms_pm_dc@dc5-dpms.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-2/igt@kms_pm_dc@dc5-dpms.html
* igt@kms_pm_dc@dc6-psr:
- shard-lnl: [FAIL][38] ([Intel XE#7340]) -> [PASS][39] +1 other test pass
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-6/igt@kms_pm_dc@dc6-psr.html
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-1/igt@kms_pm_dc@dc6-psr.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma:
- shard-lnl: [FAIL][40] ([Intel XE#5625]) -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-3/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-4/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
#### Warnings ####
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: [FAIL][42] ([Intel XE#301]) -> [FAIL][43] ([Intel XE#301] / [Intel XE#3149])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[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#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[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#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[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#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
[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#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[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#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340
[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#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7360
[Intel XE#7373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7373
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7504
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* IGT: IGT_8793 -> IGT_8794
* Linux: xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb -> xe-pw-163042v1
IGT_8793: c623172fdd4dd92bb23dbc55b3930c40266c3e59 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_8794: 8794
xe-4700-4a30f5fa0fe382b3915a8208a483d0044c40b9eb: 4a30f5fa0fe382b3915a8208a483d0044c40b9eb
xe-pw-163042v1: 163042v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-163042v1/index.html
[-- Attachment #2: Type: text/html, Size: 17077 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-03-12 9:21 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-11 15:52 [PATCH 0/3] Scan all holes when fences are disabled in SA Satyanarayana K V P
2026-03-11 15:52 ` [PATCH 1/3] drm/sa: Scan all holes when fences are disabled Satyanarayana K V P
2026-03-11 19:02 ` Thomas Hellström
2026-03-12 7:58 ` Christian König
2026-03-12 7:56 ` Christian König
2026-03-11 15:52 ` [PATCH 2/3] drm/xe/vf: Disable fences while initializing CCS read/write sub-allocs Satyanarayana K V P
2026-03-11 15:52 ` [PATCH 3/3] drm/tests: Add KUnit test for suballocator allocation Satyanarayana K V P
2026-03-11 17:08 ` ✗ CI.checkpatch: warning for Scan all holes when fences are disabled in SA Patchwork
2026-03-11 17:09 ` ✓ CI.KUnit: success " Patchwork
2026-03-11 18:14 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-12 9:21 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox