* [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
@ 2026-10-09 10:05 Arunpravin Paneer Selvam
2026-10-09 10:05 ` [PATCH v4 2/3] gpu/buddy: add range-restricted contiguous allocation fallback Arunpravin Paneer Selvam
` (6 more replies)
0 siblings, 7 replies; 10+ messages in thread
From: Arunpravin Paneer Selvam @ 2026-10-09 10:05 UTC (permalink / raw)
To: matthew.auld, dri-devel, intel-gfx, intel-xe, amd-gfx
Cc: christian.koenig, alexander.deucher, Anand.Raghavendra,
Arunpravin Paneer Selvam
From: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Range-restricted allocations (the visible-VRAM aperture) skip
dirty_steer_window() and reach __alloc_range_bias() with no clear/dirty
eligibility guard, so a dirty allocation freely splits clear extents (and
vice versa), interleaving the two classes until no large same-class run
survives and a 4K scanout pin fails with -ENOSPC. Use a two-pass range
search instead: block_incompatible() rejects opposite-class blocks in the
strict pass and relaxes only when the strict pass returns -ENOSPC, so a
request still succeeds when only opposite-class space remains. A KUnit
regression test covers the interleaving pattern and fails without the
guard.
Fixes: 1ad5e807f716 ("gpu/buddy: replace dual-tree/force_merge with decoupled dirty tracker")
Assisted-by: LLM
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
---
drivers/gpu/buddy.c | 71 ++++++++++++++----------------
drivers/gpu/tests/gpu_buddy_test.c | 65 +++++++++++++++++++++++++++
2 files changed, 99 insertions(+), 37 deletions(-)
diff --git a/drivers/gpu/buddy.c b/drivers/gpu/buddy.c
index 2f2aaadafe35..6566bad4fef1 100644
--- a/drivers/gpu/buddy.c
+++ b/drivers/gpu/buddy.c
@@ -1240,11 +1240,19 @@ static void __gpu_buddy_undo_splits(struct gpu_buddy *mm,
}
}
+static bool block_incompatible(struct gpu_buddy_block *block, unsigned int flags)
+{
+ bool needs_clear = flags & GPU_BUDDY_CLEAR_ALLOCATION;
+
+ return needs_clear != gpu_buddy_block_is_clear(block);
+}
+
static struct gpu_buddy_block *
__alloc_range_bias(struct gpu_buddy *mm,
u64 start, u64 end,
unsigned int order,
- unsigned long flags)
+ unsigned long flags,
+ bool fallback)
{
u64 req_size = mm->chunk_size << order;
struct gpu_buddy_block *block;
@@ -1258,9 +1266,7 @@ __alloc_range_bias(struct gpu_buddy *mm,
* This range-constrained search hands back the highest/right-most
* address that satisfies the request: the roots are seeded high-to-low
* and the right (higher-address) child is descended first, making
- * top-down the default placement here. A non-top-down clear request is
- * the only exception, where the descent is biased towards clear or
- * clear-containing subtrees to satisfy the clear preference.
+ * top-down the default placement here.
*/
for (i = mm->n_roots - 1; i >= 0; --i)
list_add_tail(&mm->roots[i]->tmp_link, &dfs);
@@ -1298,6 +1304,9 @@ __alloc_range_bias(struct gpu_buddy *mm,
continue;
}
+ if (!fallback && block_incompatible(block, flags))
+ continue;
+
if (contains(start, end, block_start, block_end) &&
order == gpu_buddy_block_order(block)) {
/*
@@ -1315,38 +1324,8 @@ __alloc_range_bias(struct gpu_buddy *mm,
goto err_undo;
}
- /*
- * Top-down is a strict address-placement policy, so when it is
- * requested we ignore clear steering and simply descend the
- * right (higher-address) child first. Only a non-top-down clear
- * request biases the descent towards clear/has_clear subtrees.
- */
- if ((flags & GPU_BUDDY_CLEAR_ALLOCATION) &&
- !(flags & GPU_BUDDY_TOPDOWN_ALLOCATION)) {
- struct gpu_buddy_block *prefer;
-
- if (gpu_buddy_block_is_clear(block->right))
- prefer = block->right;
- else if (gpu_buddy_block_is_clear(block->left))
- prefer = block->left;
- else if (block->right->has_clear)
- prefer = block->right;
- else if (block->left->has_clear)
- prefer = block->left;
- else
- prefer = block->right;
-
- if (prefer == block->right) {
- list_add(&block->left->tmp_link, &dfs);
- list_add(&block->right->tmp_link, &dfs);
- } else {
- list_add(&block->right->tmp_link, &dfs);
- list_add(&block->left->tmp_link, &dfs);
- }
- } else {
- list_add(&block->left->tmp_link, &dfs);
- list_add(&block->right->tmp_link, &dfs);
- }
+ list_add(&block->left->tmp_link, &dfs);
+ list_add(&block->right->tmp_link, &dfs);
} while (1);
return ERR_PTR(-ENOSPC);
@@ -1361,6 +1340,24 @@ __alloc_range_bias(struct gpu_buddy *mm,
return ERR_PTR(err);
}
+static struct gpu_buddy_block *
+__gpu_buddy_alloc_range_bias(struct gpu_buddy *mm,
+ u64 start, u64 end,
+ unsigned int order,
+ unsigned long flags)
+{
+ struct gpu_buddy_block *block;
+ bool fallback = false;
+
+ block = __alloc_range_bias(mm, start, end, order,
+ flags, fallback);
+ if (IS_ERR(block))
+ return __alloc_range_bias(mm, start, end, order,
+ flags, !fallback);
+
+ return block;
+}
+
/* Return the highest-address free block of at least @order. */
static struct gpu_buddy_block *
get_maxblock(struct gpu_buddy *mm,
@@ -1924,7 +1921,7 @@ __gpu_buddy_alloc_blocks(struct gpu_buddy *mm,
if (flags & GPU_BUDDY_RANGE_ALLOCATION) {
/* Allocate traversing within the range */
- block = __alloc_range_bias(mm, start, end, order, flags);
+ block = __gpu_buddy_alloc_range_bias(mm, start, end, order, flags);
if (!IS_ERR(block) || !steered)
return block;
diff --git a/drivers/gpu/tests/gpu_buddy_test.c b/drivers/gpu/tests/gpu_buddy_test.c
index b75d32ca6ca0..3eaa261571bf 100644
--- a/drivers/gpu/tests/gpu_buddy_test.c
+++ b/drivers/gpu/tests/gpu_buddy_test.c
@@ -1597,6 +1597,70 @@ static int gpu_buddy_suite_init(struct kunit_suite *suite)
return 0;
}
+static void gpu_test_buddy_alloc_range_clear_guard(struct kunit *test)
+{
+ const unsigned long chunk = SZ_1M, mm_size = SZ_4M;
+ struct gpu_buddy_block *block;
+ LIST_HEAD(high_clear_a);
+ LIST_HEAD(high_clear_b);
+ LIST_HEAD(low_dirty);
+ struct gpu_buddy mm;
+ LIST_HEAD(barrier);
+ LIST_HEAD(result);
+
+ KUNIT_ASSERT_FALSE_MSG(test, gpu_buddy_init(&mm, mm_size, chunk),
+ "buddy_init failed\n");
+
+ /*
+ * Lay out a 4 MiB aperture as three regions:
+ *
+ * [0, 1M) dirty free
+ * [1M, 2M) allocated (barrier, keeps the two halves un-mergeable)
+ * [2M, 4M) clear free (one naturally aligned 2 MiB extent)
+ *
+ * A dirty (non-clear) range allocation must take the low dirty block
+ * and leave the large clear extent intact. Without the guard the
+ * top-down search cuts the higher clear extent instead and returns a
+ * clear block -- the interleaving that fragments the aperture and
+ * ultimately fails a large same-class scanout allocation.
+ */
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 0, chunk, chunk, chunk,
+ &low_dirty, GPU_BUDDY_RANGE_ALLOCATION),
+ "alloc [0, 1M) failed\n");
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, chunk, 2 * chunk, chunk, chunk,
+ &barrier, GPU_BUDDY_RANGE_ALLOCATION),
+ "alloc [1M, 2M) failed\n");
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 2 * chunk, 3 * chunk, chunk, chunk,
+ &high_clear_a, GPU_BUDDY_RANGE_ALLOCATION),
+ "alloc [2M, 3M) failed\n");
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 3 * chunk, 4 * chunk, chunk, chunk,
+ &high_clear_b, GPU_BUDDY_RANGE_ALLOCATION),
+ "alloc [3M, 4M) failed\n");
+
+ /* [2M, 4M) coalesces into one aligned clear extent; [0, 1M) stays dirty. */
+ gpu_buddy_free_list(&mm, &low_dirty, 0);
+ gpu_buddy_free_list(&mm, &high_clear_a, GPU_BUDDY_CLEARED);
+ gpu_buddy_free_list(&mm, &high_clear_b, GPU_BUDDY_CLEARED);
+
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 0, mm_size, chunk, chunk,
+ &result, GPU_BUDDY_RANGE_ALLOCATION),
+ "dirty range alloc failed\n");
+
+ block = list_first_entry(&result, struct gpu_buddy_block, link);
+ KUNIT_EXPECT_FALSE_MSG(test, gpu_buddy_block_is_clear(block),
+ "dirty range alloc cut the clear extent (offset=%llx)\n",
+ gpu_buddy_block_offset(block));
+
+ gpu_buddy_free_list(&mm, &result, 0);
+ gpu_buddy_free_list(&mm, &barrier, 0);
+ gpu_buddy_fini(&mm);
+}
+
static struct kunit_case gpu_buddy_tests[] = {
KUNIT_CASE(gpu_test_buddy_alloc_limit),
KUNIT_CASE(gpu_test_buddy_alloc_optimistic),
@@ -1606,6 +1670,7 @@ static struct kunit_case gpu_buddy_tests[] = {
KUNIT_CASE(gpu_test_buddy_alloc_clear),
KUNIT_CASE(gpu_test_buddy_alloc_range),
KUNIT_CASE(gpu_test_buddy_alloc_range_bias),
+ KUNIT_CASE(gpu_test_buddy_alloc_range_clear_guard),
KUNIT_CASE_SLOW(gpu_test_buddy_fragmentation_performance),
KUNIT_CASE_SLOW(gpu_test_buddy_dirty_tracker_performance),
KUNIT_CASE(gpu_test_buddy_alloc_exceeds_max_order),
base-commit: f146c6086b792cb2c6b3ce5106f0cce62e408df8
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 2/3] gpu/buddy: add range-restricted contiguous allocation fallback
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
@ 2026-10-09 10:05 ` Arunpravin Paneer Selvam
2026-10-09 10:23 ` sashiko-bot
2026-10-09 10:05 ` [PATCH v4 3/3] gpu/buddy: search lower orders in contiguous try-harder fallback Arunpravin Paneer Selvam
` (5 subsequent siblings)
6 siblings, 1 reply; 10+ messages in thread
From: Arunpravin Paneer Selvam @ 2026-10-09 10:05 UTC (permalink / raw)
To: matthew.auld, dri-devel, intel-gfx, intel-xe, amd-gfx
Cc: christian.koenig, alexander.deucher, Anand.Raghavendra,
Arunpravin Paneer Selvam
From: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
A range + contiguous allocation (e.g. a scanout FB confined to the
CPU-visible VRAM aperture) rounds its size up to a power of two and
requires a naturally aligned free block of that size; on a fragmented
aperture no such aligned block may exist even though enough contiguous
space is free, so the allocation fails with -ENOSPC.
The non-range contiguous path already recovers from this via
__alloc_contig_try_harder(), which stitches an exact-size span from
smaller adjacent blocks, but that fallback was unreachable once
GPU_BUDDY_RANGE_ALLOCATION was set. Extend __alloc_contig_try_harder()
with a [range_start, range_end) window and route the range + contiguous
case through it: each candidate placement is confined to the window and
aligned to min_block_size. Non-range callers pass [0, mm->size), where
the guards are no-ops, so the existing behaviour is unchanged. A KUnit
test covers the fragmentation pattern.
v4:
- As Matthew pointed out, the Fixes: tag did not fit this patch: it adds
try-harder range support, a new safety-net feature rather than the fix.
The root cause is __alloc_range_bias() losing its clear/dirty guard.
v3:
- Confine the try_harder scan to [range_start, range_end) to avoid
speculative out-of-window alloc/free.
v2:
- Drop the split-undo patch; the range-bias search always descends to
an exact-order block or fails the split (already handled), so the
extra undo was redundant. (Matthew)
Assisted-by: LLM
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
---
drivers/gpu/buddy.c | 95 +++++++++++++++++-------------
drivers/gpu/tests/gpu_buddy_test.c | 83 ++++++++++++++++++++++++--
2 files changed, 133 insertions(+), 45 deletions(-)
diff --git a/drivers/gpu/buddy.c b/drivers/gpu/buddy.c
index 6566bad4fef1..1f648bcfce57 100644
--- a/drivers/gpu/buddy.c
+++ b/drivers/gpu/buddy.c
@@ -1682,26 +1682,14 @@ static int __gpu_buddy_alloc_range(struct gpu_buddy *mm,
blocks, total_allocated_on_err);
}
-static int __alloc_contig_aligned_retry(struct gpu_buddy *mm,
- u64 unaligned_offset,
- u64 size,
- u64 min_block_size,
- unsigned long flags,
- struct list_head *blocks)
-{
- u64 aligned_offset = round_down(unaligned_offset, min_block_size);
-
- return __gpu_buddy_alloc_range(mm, aligned_offset, size, flags,
- NULL, blocks);
-}
-
static int __alloc_contig_try_harder(struct gpu_buddy *mm,
+ u64 range_start, u64 range_end,
u64 size,
u64 min_block_size,
unsigned long flags,
struct list_head *blocks)
{
- u64 rhs_offset, lhs_offset, filled;
+ u64 rhs_offset, lhs_offset, filled, aligned;
struct gpu_buddy_block *block;
struct rb_root *root;
struct rb_node *iter;
@@ -1726,25 +1714,36 @@ static int __alloc_contig_try_harder(struct gpu_buddy *mm,
rhs_offset = gpu_buddy_block_offset(block);
+ if (rhs_offset >= range_end) {
+ iter = rb_prev(iter);
+ continue;
+ }
+ if (rhs_offset < range_start)
+ break;
+
/* Allocate blocks traversing RHS */
err = __gpu_buddy_alloc_range(mm, rhs_offset, size,
flags, &filled, blocks);
if (err && err != -ENOSPC)
return err;
- if (!err && IS_ALIGNED(rhs_offset, min_block_size))
+ if (!err && IS_ALIGNED(rhs_offset, min_block_size) &&
+ rhs_offset >= range_start && rhs_offset + size <= range_end)
return 0;
if (!err) {
/* Allocate the unaligned RHS offset using round_down */
gpu_buddy_free_list_internal(mm, blocks);
- err = __alloc_contig_aligned_retry(mm, rhs_offset,
- size,
- min_block_size,
- flags, blocks);
- if (!err)
- return 0;
- if (err != -ENOSPC) {
- gpu_buddy_free_list_internal(mm, blocks);
- return err;
+
+ aligned = round_down(rhs_offset, min_block_size);
+ if (aligned >= range_start &&
+ aligned + size <= range_end) {
+ err = __gpu_buddy_alloc_range(mm, aligned, size,
+ flags, NULL, blocks);
+ if (!err)
+ return 0;
+ if (err != -ENOSPC) {
+ gpu_buddy_free_list_internal(mm, blocks);
+ return err;
+ }
}
goto next;
}
@@ -1756,15 +1755,17 @@ static int __alloc_contig_try_harder(struct gpu_buddy *mm,
/* Allocate the unaligned LHS offset using round_down */
gpu_buddy_free_list_internal(mm, blocks);
- err = __alloc_contig_aligned_retry(mm, lhs_offset,
- size,
- min_block_size,
- flags, blocks);
- if (!err)
- return 0;
- if (err != -ENOSPC) {
- gpu_buddy_free_list_internal(mm, blocks);
- return err;
+
+ aligned = round_down(lhs_offset, min_block_size);
+ if (aligned >= range_start && aligned + size <= range_end) {
+ err = __gpu_buddy_alloc_range(mm, aligned, size,
+ flags, NULL, blocks);
+ if (!err)
+ return 0;
+ if (err != -ENOSPC) {
+ gpu_buddy_free_list_internal(mm, blocks);
+ return err;
+ }
}
next:
gpu_buddy_free_list_internal(mm, blocks);
@@ -2018,11 +2019,18 @@ int gpu_buddy_alloc_blocks(struct gpu_buddy *mm,
min_order = ilog2(min_block_size) - ilog2(mm->chunk_size);
if (order > mm->max_order || size > mm->size) {
- if ((flags & GPU_BUDDY_CONTIGUOUS_ALLOCATION) &&
- !(flags & GPU_BUDDY_RANGE_ALLOCATION))
- return __alloc_contig_try_harder(mm, original_size,
+ if (flags & GPU_BUDDY_CONTIGUOUS_ALLOCATION) {
+ u64 range_start, range_end;
+
+ range_start = (flags & GPU_BUDDY_RANGE_ALLOCATION) ? start : 0;
+ range_end = (flags & GPU_BUDDY_RANGE_ALLOCATION) ? end : mm->size;
+
+ return __alloc_contig_try_harder(mm, range_start,
+ range_end,
+ original_size,
original_min_size,
flags, blocks);
+ }
return -EINVAL;
}
@@ -2055,9 +2063,14 @@ int gpu_buddy_alloc_blocks(struct gpu_buddy *mm,
* Try contiguous block allocation through
* try harder method.
*/
- if (flags & GPU_BUDDY_CONTIGUOUS_ALLOCATION &&
- !(flags & GPU_BUDDY_RANGE_ALLOCATION)) {
- err = __alloc_contig_try_harder(mm,
+ if (flags & GPU_BUDDY_CONTIGUOUS_ALLOCATION) {
+ u64 range_start, range_end;
+
+ range_start = (flags & GPU_BUDDY_RANGE_ALLOCATION) ? start : 0;
+ range_end = (flags & GPU_BUDDY_RANGE_ALLOCATION) ? end : mm->size;
+
+ err = __alloc_contig_try_harder(mm, range_start,
+ range_end,
original_size,
original_min_size,
flags,
@@ -2065,9 +2078,9 @@ int gpu_buddy_alloc_blocks(struct gpu_buddy *mm,
if (!err)
return 0;
if (err != -ENOSPC)
- return err;
- goto err_free;
+ goto err_free;
}
+
err = -ENOSPC;
goto err_free;
} while (1);
diff --git a/drivers/gpu/tests/gpu_buddy_test.c b/drivers/gpu/tests/gpu_buddy_test.c
index 3eaa261571bf..ec37c11877ed 100644
--- a/drivers/gpu/tests/gpu_buddy_test.c
+++ b/drivers/gpu/tests/gpu_buddy_test.c
@@ -1251,6 +1251,77 @@ static void gpu_test_buddy_alloc_contiguous(struct kunit *test)
gpu_buddy_fini(&mm);
}
+static void gpu_test_buddy_alloc_range_contiguous(struct kunit *test)
+{
+ const unsigned long ps = SZ_4K, mm_size = 16 * ps;
+ const unsigned long range_end = 8 * ps;
+ struct gpu_buddy_block *block, *prev;
+ LIST_HEAD(allocated);
+ struct gpu_buddy mm;
+ LIST_HEAD(pin_lo);
+ LIST_HEAD(pin_hi);
+ u64 total;
+
+ KUNIT_ASSERT_FALSE_MSG(test, gpu_buddy_init(&mm, mm_size, ps),
+ "buddy_init failed\n");
+
+ /*
+ * Idea is to confine the test to the sub-range [0, 32K), which a 12K
+ * contiguous request (rounded up to 16K) splits into two naturally
+ * aligned 16K slots: [0, 16K) and [16K, 32K). We pin the first 4K page
+ * of each slot ([0, 4K) and [16K, 20K)) so that neither aligned slot
+ * can satisfy the rounded-up 16K allocation, yet the freed remainder
+ * still leaves a contiguous 12K hole at offset 4K, which is page-aligned
+ * but not 16K-aligned. A 12K contiguous+range allocation must therefore
+ * fall back to stitching that span instead of returning -ENOSPC.
+ */
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 0, ps, ps, ps,
+ &pin_lo, 0),
+ "failed to pin low page\n");
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 4 * ps, 5 * ps, ps,
+ ps, &pin_hi, 0),
+ "failed to pin high page\n");
+
+ /* No aligned 16K block is free; the range-aware fallback must stitch
+ * the unaligned [ps, 4*ps) hole instead of returning -ENOSPC.
+ */
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 0, range_end, 3 * ps,
+ ps, &allocated,
+ GPU_BUDDY_CONTIGUOUS_ALLOCATION |
+ GPU_BUDDY_RANGE_ALLOCATION),
+ "range-restricted contiguous alloc failed\n");
+
+ /* The result must be exactly 3*ps, contiguous, and inside the range. */
+ total = 0;
+ prev = NULL;
+ list_for_each_entry(block, &allocated, link) {
+ u64 offset = gpu_buddy_block_offset(block);
+ u64 bsize = gpu_buddy_block_size(&mm, block);
+
+ KUNIT_EXPECT_TRUE_MSG(test, offset + bsize <= range_end,
+ "block [%llx, %llx) outside range\n",
+ offset, offset + bsize);
+ if (prev)
+ KUNIT_EXPECT_EQ_MSG(test,
+ gpu_buddy_block_offset(prev) +
+ gpu_buddy_block_size(&mm, prev),
+ offset,
+ "block at %llx not contiguous\n",
+ offset);
+ prev = block;
+ total += bsize;
+ }
+ KUNIT_EXPECT_EQ(test, total, 3 * ps);
+
+ gpu_buddy_free_list(&mm, &allocated, 0);
+ gpu_buddy_free_list(&mm, &pin_lo, 0);
+ gpu_buddy_free_list(&mm, &pin_hi, 0);
+ gpu_buddy_fini(&mm);
+}
+
static void gpu_test_buddy_alloc_pathological(struct kunit *test)
{
u64 mm_size, size, start = 0;
@@ -1534,10 +1605,13 @@ static void gpu_test_buddy_alloc_exceeds_max_order(struct kunit *test)
GPU_BUDDY_RANGE_ALLOCATION);
KUNIT_EXPECT_EQ(test, err, -EINVAL);
- /* CONTIGUOUS + RANGE should return -EINVAL (no try_harder for RANGE) */
- err = gpu_buddy_alloc_blocks(&mm, 0, mm_size, size, SZ_4K, &blocks,
- GPU_BUDDY_CONTIGUOUS_ALLOCATION | GPU_BUDDY_RANGE_ALLOCATION);
- KUNIT_EXPECT_EQ(test, err, -EINVAL);
+ /* CONTIGUOUS + RANGE should succeed via the range-aware try_harder */
+ KUNIT_ASSERT_FALSE_MSG(test, gpu_buddy_alloc_blocks(&mm, 0, mm_size, size,
+ SZ_4K, &blocks,
+ GPU_BUDDY_CONTIGUOUS_ALLOCATION |
+ GPU_BUDDY_RANGE_ALLOCATION),
+ "range contiguous alloc hit an error size=%llu\n", size);
+ gpu_buddy_free_list(&mm, &blocks, 0);
gpu_buddy_fini(&mm);
}
@@ -1667,6 +1741,7 @@ static struct kunit_case gpu_buddy_tests[] = {
KUNIT_CASE(gpu_test_buddy_alloc_pessimistic),
KUNIT_CASE(gpu_test_buddy_alloc_pathological),
KUNIT_CASE(gpu_test_buddy_alloc_contiguous),
+ KUNIT_CASE(gpu_test_buddy_alloc_range_contiguous),
KUNIT_CASE(gpu_test_buddy_alloc_clear),
KUNIT_CASE(gpu_test_buddy_alloc_range),
KUNIT_CASE(gpu_test_buddy_alloc_range_bias),
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v4 3/3] gpu/buddy: search lower orders in contiguous try-harder fallback
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
2026-10-09 10:05 ` [PATCH v4 2/3] gpu/buddy: add range-restricted contiguous allocation fallback Arunpravin Paneer Selvam
@ 2026-10-09 10:05 ` Arunpravin Paneer Selvam
2026-10-09 10:15 ` ✓ CI.KUnit: success for series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Patchwork
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Arunpravin Paneer Selvam @ 2026-10-09 10:05 UTC (permalink / raw)
To: matthew.auld, dri-devel, intel-gfx, intel-xe, amd-gfx
Cc: christian.koenig, alexander.deucher, Anand.Raghavendra,
Arunpravin Paneer Selvam
From: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
__alloc_contig_try_harder() anchors on a single buddy order and bails
when that order is empty. But a contiguous run can still exist as
adjacent lower-order blocks that never coalesce (their buddies are
allocated), which a single order misses, so callers passing
min_block_size < size get a spurious -ENOSPC. Descend the anchor search
from the size order down to min_order and let the existing stitch build
the span. A KUnit test fails without this and passes with it.
Assisted-by: LLM
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
---
drivers/gpu/buddy.c | 15 +++++--
drivers/gpu/tests/gpu_buddy_test.c | 65 ++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/buddy.c b/drivers/gpu/buddy.c
index 1f648bcfce57..86cc1193ac64 100644
--- a/drivers/gpu/buddy.c
+++ b/drivers/gpu/buddy.c
@@ -1691,22 +1691,23 @@ static int __alloc_contig_try_harder(struct gpu_buddy *mm,
{
u64 rhs_offset, lhs_offset, filled, aligned;
struct gpu_buddy_block *block;
+ unsigned int min_order, order;
struct rb_root *root;
struct rb_node *iter;
unsigned long pages;
- unsigned int order;
u64 modify_size;
int err;
+ min_order = ilog2(min_block_size) - ilog2(mm->chunk_size);
+
modify_size = rounddown_pow_of_two(size);
pages = modify_size >> ilog2(mm->chunk_size);
order = fls(pages) - 1;
- if (order == 0)
- return -ENOSPC;
+retry_order:
root = &mm->free_tree[order];
if (RB_EMPTY_ROOT(root))
- return -ENOSPC;
+ goto next_order;
iter = rb_last(root);
while (iter) {
@@ -1772,6 +1773,12 @@ static int __alloc_contig_try_harder(struct gpu_buddy *mm,
iter = rb_prev(iter);
}
+next_order:
+ if (order > min_order) {
+ order--;
+ goto retry_order;
+ }
+
return -ENOSPC;
}
diff --git a/drivers/gpu/tests/gpu_buddy_test.c b/drivers/gpu/tests/gpu_buddy_test.c
index ec37c11877ed..144ab17b114a 100644
--- a/drivers/gpu/tests/gpu_buddy_test.c
+++ b/drivers/gpu/tests/gpu_buddy_test.c
@@ -1660,6 +1660,70 @@ static void gpu_test_buddy_addr_to_block(struct kunit *test)
gpu_buddy_fini(&mm);
}
+static void gpu_test_buddy_alloc_contiguous_descent(struct kunit *test)
+{
+ const unsigned long ps = SZ_4K, mm_size = 16 * ps;
+ struct gpu_buddy_block *block, *prev;
+ LIST_HEAD(allocated);
+ struct gpu_buddy mm;
+ LIST_HEAD(pin_lo);
+ LIST_HEAD(pin_hi);
+ u64 total;
+
+ KUNIT_ASSERT_FALSE_MSG(test, gpu_buddy_init(&mm, mm_size, ps),
+ "buddy_init failed\n");
+
+ /*
+ * Pin [0, 16K) and [48K, 64K). The remaining [16K, 48K) is free as two
+ * adjacent 16K halves under different parents; being un-mergeable
+ * buddies they never coalesce, so free_tree[3] (32K) stays empty. A
+ * contiguous 32K request with min_block_size 4K therefore has no 32K
+ * anchor and must descend to order 2 and stitch [16K, 48K).
+ */
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 0, 4 * ps, 4 * ps,
+ ps, &pin_lo, 0),
+ "failed to pin low block\n");
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 12 * ps, 16 * ps,
+ 4 * ps, ps, &pin_hi, 0),
+ "failed to pin high block\n");
+
+ KUNIT_ASSERT_FALSE_MSG(test,
+ gpu_buddy_alloc_blocks(&mm, 0, mm_size, 8 * ps,
+ ps, &allocated,
+ GPU_BUDDY_CONTIGUOUS_ALLOCATION),
+ "contiguous alloc failed to descend\n");
+
+ /* The result must be exactly 8*ps, contiguous, within [16K, 48K). */
+ total = 0;
+ prev = NULL;
+ list_for_each_entry(block, &allocated, link) {
+ u64 offset = gpu_buddy_block_offset(block);
+ u64 bsize = gpu_buddy_block_size(&mm, block);
+
+ KUNIT_EXPECT_TRUE_MSG(test, offset >= 4 * ps &&
+ offset + bsize <= 12 * ps,
+ "block [%llx, %llx) outside stitched span\n",
+ offset, offset + bsize);
+ if (prev)
+ KUNIT_EXPECT_EQ_MSG(test,
+ gpu_buddy_block_offset(prev) +
+ gpu_buddy_block_size(&mm, prev),
+ offset,
+ "block at %llx not contiguous\n",
+ offset);
+ prev = block;
+ total += bsize;
+ }
+ KUNIT_EXPECT_EQ(test, total, 8 * ps);
+
+ gpu_buddy_free_list(&mm, &allocated, 0);
+ gpu_buddy_free_list(&mm, &pin_lo, 0);
+ gpu_buddy_free_list(&mm, &pin_hi, 0);
+ gpu_buddy_fini(&mm);
+}
+
static int gpu_buddy_suite_init(struct kunit_suite *suite)
{
while (!random_seed)
@@ -1742,6 +1806,7 @@ static struct kunit_case gpu_buddy_tests[] = {
KUNIT_CASE(gpu_test_buddy_alloc_pathological),
KUNIT_CASE(gpu_test_buddy_alloc_contiguous),
KUNIT_CASE(gpu_test_buddy_alloc_range_contiguous),
+ KUNIT_CASE(gpu_test_buddy_alloc_contiguous_descent),
KUNIT_CASE(gpu_test_buddy_alloc_clear),
KUNIT_CASE(gpu_test_buddy_alloc_range),
KUNIT_CASE(gpu_test_buddy_alloc_range_bias),
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* ✓ CI.KUnit: success for series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
2026-10-09 10:05 ` [PATCH v4 2/3] gpu/buddy: add range-restricted contiguous allocation fallback Arunpravin Paneer Selvam
2026-10-09 10:05 ` [PATCH v4 3/3] gpu/buddy: search lower orders in contiguous try-harder fallback Arunpravin Paneer Selvam
@ 2026-10-09 10:15 ` Patchwork
2026-10-09 10:17 ` [PATCH v4 1/3] " sashiko-bot
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2026-10-09 10:15 UTC (permalink / raw)
To: Arunpravin Paneer Selvam; +Cc: intel-xe
== Series Details ==
Series: series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
URL : https://patchwork.freedesktop.org/series/175825/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[10:13:52] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:13:56] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:14:16] Starting KUnit Kernel (1/1)...
[10:14:16] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:14:17] ================= gpu_buddy (17 subtests) ==================
[10:14:17] [PASSED] gpu_test_buddy_alloc_limit
[10:14:17] [PASSED] gpu_test_buddy_alloc_optimistic
[10:14:17] [PASSED] gpu_test_buddy_alloc_pessimistic
[10:14:17] [PASSED] gpu_test_buddy_alloc_pathological
[10:14:17] [PASSED] gpu_test_buddy_alloc_contiguous
[10:14:17] [PASSED] gpu_test_buddy_alloc_range_contiguous
[10:14:17] [PASSED] gpu_test_buddy_alloc_contiguous_descent
[10:14:17] [PASSED] gpu_test_buddy_alloc_clear
[10:14:17] [PASSED] gpu_test_buddy_alloc_range
[10:14:17] [PASSED] gpu_test_buddy_alloc_range_bias
[10:14:17] [PASSED] gpu_test_buddy_alloc_range_clear_guard
[10:14:18] [PASSED] gpu_test_buddy_fragmentation_performance
[10:14:18] [PASSED] gpu_test_buddy_dirty_tracker_performance
[10:14:18] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[10:14:18] [PASSED] gpu_test_buddy_offset_aligned_allocation
[10:14:18] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[10:14:18] [PASSED] gpu_test_buddy_addr_to_block
[10:14:18] ==================== [PASSED] gpu_buddy ====================
[10:14:18] ============================================================
[10:14:18] Testing complete. Ran 17 tests: passed: 17
[10:14:18] Elapsed time: 26.550s total, 4.438s configuring, 20.194s building, 1.852s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[10:14:18] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:14:20] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:14:54] Starting KUnit Kernel (1/1)...
[10:14:54] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:14:55] ================== guc_buf (11 subtests) ===================
[10:14:55] [PASSED] test_smallest
[10:14:55] [PASSED] test_largest
[10:14:55] [PASSED] test_granular
[10:14:55] [PASSED] test_unique
[10:14:55] [PASSED] test_overlap
[10:14:55] [PASSED] test_reusable
[10:14:55] [PASSED] test_too_big
[10:14:55] [PASSED] test_flush
[10:14:55] [PASSED] test_lookup
[10:14:55] [PASSED] test_data
[10:14:55] [PASSED] test_class
[10:14:55] ===================== [PASSED] guc_buf =====================
[10:14:55] =================== guc_dbm (7 subtests) ===================
[10:14:55] [PASSED] test_empty
[10:14:55] [PASSED] test_default
[10:14:55] ======================== test_size ========================
[10:14:55] [PASSED] 4
[10:14:55] [PASSED] 8
[10:14:55] [PASSED] 32
[10:14:55] [PASSED] 256
[10:14:55] ==================== [PASSED] test_size ====================
[10:14:55] ======================= test_reuse ========================
[10:14:55] [PASSED] 4
[10:14:55] [PASSED] 8
[10:14:55] [PASSED] 32
[10:14:55] [PASSED] 256
[10:14:55] =================== [PASSED] test_reuse ====================
[10:14:55] =================== test_range_overlap ====================
[10:14:55] [PASSED] 4
[10:14:55] [PASSED] 8
[10:14:55] [PASSED] 32
[10:14:55] [PASSED] 256
[10:14:55] =============== [PASSED] test_range_overlap ================
[10:14:55] =================== test_range_compact ====================
[10:14:55] [PASSED] 4
[10:14:55] [PASSED] 8
[10:14:55] [PASSED] 32
[10:14:55] [PASSED] 256
[10:14:55] =============== [PASSED] test_range_compact ================
[10:14:55] ==================== test_range_spare =====================
[10:14:55] [PASSED] 4
[10:14:55] [PASSED] 8
[10:14:55] [PASSED] 32
[10:14:55] [PASSED] 256
[10:14:55] ================ [PASSED] test_range_spare =================
[10:14:55] ===================== [PASSED] guc_dbm =====================
[10:14:55] =================== guc_idm (6 subtests) ===================
[10:14:55] [PASSED] bad_init
[10:14:55] [PASSED] no_init
[10:14:55] [PASSED] init_fini
[10:14:55] [PASSED] check_used
[10:14:55] [PASSED] check_quota
[10:14:55] [PASSED] check_all
[10:14:55] ===================== [PASSED] guc_idm =====================
[10:14:55] ============== guc_klv_helpers (13 subtests) ===============
[10:14:55] [PASSED] test_count
[10:14:55] [PASSED] test_encode_u32
[10:14:55] [PASSED] test_encode_u64
[10:14:55] [PASSED] test_encode_string
[10:14:55] [PASSED] test_encode_object_raw
[10:14:55] [PASSED] test_encode_object_klv
[10:14:55] [PASSED] test_encode_object_nested
[10:14:55] [PASSED] test_encode_object_basic
[10:14:55] ===================== test_decode_u16 =====================
[10:14:55] [PASSED] empty
[10:14:55] [PASSED] valid
[10:14:55] [PASSED] max
[10:14:55] [PASSED] big
[10:14:55] [PASSED] long
[10:14:55] ================= [PASSED] test_decode_u16 =================
[10:14:55] ===================== test_decode_u32 =====================
[10:14:55] [PASSED] empty
[10:14:55] [PASSED] valid
[10:14:55] [PASSED] max
[10:14:55] [PASSED] long
[10:14:55] ================= [PASSED] test_decode_u32 =================
[10:14:55] ===================== test_decode_u64 =====================
[10:14:55] [PASSED] empty
[10:14:55] [PASSED] short
[10:14:55] [PASSED] valid
[10:14:55] [PASSED] max
[10:14:55] [PASSED] long
[10:14:55] ================= [PASSED] test_decode_u64 =================
[10:14:55] ===================== test_decode_str =====================
[10:14:55] [PASSED] empty
[10:14:55] [PASSED] one
[10:14:55] [PASSED] one_trash
[10:14:55] [PASSED] two
[10:14:55] [PASSED] two_trash
[10:14:55] [PASSED] three
[10:14:55] [PASSED] dword
[10:14:55] [PASSED] four
[10:14:55] [PASSED] five
[10:14:55] [PASSED] six
[10:14:55] [PASSED] seven
[10:14:55] [PASSED] qword
[10:14:55] ================= [PASSED] test_decode_str =================
[10:14:55] [PASSED] test_print
[10:14:55] ================= [PASSED] guc_klv_helpers =================
[10:14:55] =================== xe_log (4 subtests) ====================
[10:14:55] [PASSED] demo_cper
[10:14:55] [PASSED] demo_dmesg
[10:14:55] ======================= test_dmesg ========================
[10:14:55] [PASSED] test_fatal
[10:14:55] [PASSED] test_fatal_tile
[10:14:55] [PASSED] test_fatal_gt
[10:14:55] [PASSED] test_fatal_comp
[10:14:55] [PASSED] test_fatal_comp_tile
[10:14:55] [PASSED] test_fatal_comp_gt
[10:14:55] [PASSED] test_fatal_all
[10:14:55] [PASSED] test_recoverable
[10:14:55] [PASSED] test_recoverable_tile
[10:14:55] [PASSED] test_recoverable_gt
[10:14:55] [PASSED] test_recoverable_comp
[10:14:55] [PASSED] test_recoverable_comp_tile
[10:14:55] [PASSED] test_recoverable_comp_gt
[10:14:55] [PASSED] test_recoverable_all
[10:14:55] [PASSED] test_info
[10:14:55] [PASSED] test_info_tile
[10:14:55] [PASSED] test_info_gt
[10:14:55] [PASSED] test_info_err
[10:14:55] [PASSED] test_info_comp
[10:14:55] [PASSED] test_info_comp_tile
[10:14:55] [PASSED] test_info_comp_gt
[10:14:55] [PASSED] test_info_all
[10:14:55] [PASSED] test_hw_fatal
[10:14:55] [PASSED] test_hw_recoverable
[10:14:55] [PASSED] test_hw_corrected
[10:14:55] [PASSED] test_hw_informational
[10:14:55] =================== [PASSED] test_dmesg ====================
[10:14:55] ====================== test_invalid =======================
[10:14:55] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[10:14:55] ================== [SKIPPED] test_invalid ==================
[10:14:55] ===================== [PASSED] xe_log ======================
[10:14:55] ================== no_relay (3 subtests) ===================
[10:14:55] [PASSED] xe_drops_guc2pf_if_not_ready
[10:14:55] [PASSED] xe_drops_guc2vf_if_not_ready
[10:14:55] [PASSED] xe_rejects_send_if_not_ready
[10:14:55] ==================== [PASSED] no_relay =====================
[10:14:55] ================== pf_relay (14 subtests) ==================
[10:14:55] [PASSED] pf_rejects_guc2pf_too_short
[10:14:55] [PASSED] pf_rejects_guc2pf_too_long
[10:14:55] [PASSED] pf_rejects_guc2pf_no_payload
[10:14:55] [PASSED] pf_fails_no_payload
[10:14:55] [PASSED] pf_fails_bad_origin
[10:14:55] [PASSED] pf_fails_bad_type
[10:14:55] [PASSED] pf_txn_reports_error
[10:14:55] [PASSED] pf_txn_sends_pf2guc
[10:14:55] [PASSED] pf_sends_pf2guc
[10:14:55] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:14:55] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:14:55] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:14:55] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:14:55] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[10:14:55] ==================== [PASSED] pf_relay =====================
[10:14:55] ================== vf_relay (3 subtests) ===================
[10:14:55] [PASSED] vf_rejects_guc2vf_too_short
[10:14:55] [PASSED] vf_rejects_guc2vf_too_long
[10:14:55] [PASSED] vf_rejects_guc2vf_no_payload
[10:14:55] ==================== [PASSED] vf_relay =====================
[10:14:55] ================ pf_gt_config (9 subtests) =================
[10:14:55] [PASSED] fair_contexts_1vf
[10:14:55] [PASSED] fair_doorbells_1vf
[10:14:55] [PASSED] fair_ggtt_1vf
[10:14:55] ====================== fair_vram_1vf ======================
[10:14:55] [PASSED] 3.50 GiB
[10:14:55] [PASSED] 11.5 GiB
[10:14:55] [PASSED] 15.5 GiB
[10:14:55] [PASSED] 31.5 GiB
[10:14:55] [PASSED] 63.5 GiB
[10:14:55] [PASSED] 1.91 GiB
[10:14:55] ================== [PASSED] fair_vram_1vf ==================
[10:14:55] ================ fair_vram_1vf_admin_only =================
[10:14:55] [PASSED] 3.50 GiB
[10:14:55] [PASSED] 11.5 GiB
[10:14:55] [PASSED] 15.5 GiB
[10:14:55] [PASSED] 31.5 GiB
[10:14:55] [PASSED] 63.5 GiB
[10:14:55] [PASSED] 1.91 GiB
[10:14:55] ============ [PASSED] fair_vram_1vf_admin_only =============
[10:14:55] ====================== fair_contexts ======================
[10:14:55] [PASSED] 1 VF
[10:14:55] [PASSED] 2 VFs
[10:14:55] [PASSED] 3 VFs
[10:14:55] [PASSED] 4 VFs
[10:14:55] [PASSED] 5 VFs
[10:14:55] [PASSED] 6 VFs
[10:14:55] [PASSED] 7 VFs
[10:14:55] [PASSED] 8 VFs
[10:14:55] [PASSED] 9 VFs
[10:14:55] [PASSED] 10 VFs
[10:14:55] [PASSED] 11 VFs
[10:14:55] [PASSED] 12 VFs
[10:14:55] [PASSED] 13 VFs
[10:14:55] [PASSED] 14 VFs
[10:14:55] [PASSED] 15 VFs
[10:14:55] [PASSED] 16 VFs
[10:14:55] [PASSED] 17 VFs
[10:14:55] [PASSED] 18 VFs
[10:14:55] [PASSED] 19 VFs
[10:14:55] [PASSED] 20 VFs
[10:14:55] [PASSED] 21 VFs
[10:14:55] [PASSED] 22 VFs
[10:14:55] [PASSED] 23 VFs
[10:14:55] [PASSED] 24 VFs
[10:14:55] [PASSED] 25 VFs
[10:14:55] [PASSED] 26 VFs
[10:14:55] [PASSED] 27 VFs
[10:14:55] [PASSED] 28 VFs
[10:14:55] [PASSED] 29 VFs
[10:14:55] [PASSED] 30 VFs
[10:14:55] [PASSED] 31 VFs
[10:14:55] [PASSED] 32 VFs
[10:14:55] [PASSED] 33 VFs
[10:14:55] [PASSED] 34 VFs
[10:14:55] [PASSED] 35 VFs
[10:14:55] [PASSED] 36 VFs
[10:14:55] [PASSED] 37 VFs
[10:14:55] [PASSED] 38 VFs
[10:14:55] [PASSED] 39 VFs
[10:14:55] [PASSED] 40 VFs
[10:14:55] [PASSED] 41 VFs
[10:14:55] [PASSED] 42 VFs
[10:14:55] [PASSED] 43 VFs
[10:14:55] [PASSED] 44 VFs
[10:14:55] [PASSED] 45 VFs
[10:14:55] [PASSED] 46 VFs
[10:14:55] [PASSED] 47 VFs
[10:14:55] [PASSED] 48 VFs
[10:14:55] [PASSED] 49 VFs
[10:14:55] [PASSED] 50 VFs
[10:14:55] [PASSED] 51 VFs
[10:14:55] [PASSED] 52 VFs
[10:14:55] [PASSED] 53 VFs
[10:14:55] [PASSED] 54 VFs
[10:14:55] [PASSED] 55 VFs
[10:14:55] [PASSED] 56 VFs
[10:14:55] [PASSED] 57 VFs
[10:14:55] [PASSED] 58 VFs
[10:14:55] [PASSED] 59 VFs
[10:14:55] [PASSED] 60 VFs
[10:14:55] [PASSED] 61 VFs
[10:14:55] [PASSED] 62 VFs
[10:14:55] [PASSED] 63 VFs
[10:14:55] ================== [PASSED] fair_contexts ==================
[10:14:55] ===================== fair_doorbells ======================
[10:14:55] [PASSED] 1 VF
[10:14:55] [PASSED] 2 VFs
[10:14:55] [PASSED] 3 VFs
[10:14:55] [PASSED] 4 VFs
[10:14:55] [PASSED] 5 VFs
[10:14:55] [PASSED] 6 VFs
[10:14:55] [PASSED] 7 VFs
[10:14:55] [PASSED] 8 VFs
[10:14:55] [PASSED] 9 VFs
[10:14:55] [PASSED] 10 VFs
[10:14:55] [PASSED] 11 VFs
[10:14:55] [PASSED] 12 VFs
[10:14:55] [PASSED] 13 VFs
[10:14:55] [PASSED] 14 VFs
[10:14:55] [PASSED] 15 VFs
[10:14:55] [PASSED] 16 VFs
[10:14:55] [PASSED] 17 VFs
[10:14:55] [PASSED] 18 VFs
[10:14:55] [PASSED] 19 VFs
[10:14:55] [PASSED] 20 VFs
[10:14:55] [PASSED] 21 VFs
[10:14:55] [PASSED] 22 VFs
[10:14:55] [PASSED] 23 VFs
[10:14:55] [PASSED] 24 VFs
[10:14:55] [PASSED] 25 VFs
[10:14:55] [PASSED] 26 VFs
[10:14:55] [PASSED] 27 VFs
[10:14:55] [PASSED] 28 VFs
[10:14:55] [PASSED] 29 VFs
[10:14:55] [PASSED] 30 VFs
[10:14:55] [PASSED] 31 VFs
[10:14:55] [PASSED] 32 VFs
[10:14:55] [PASSED] 33 VFs
[10:14:55] [PASSED] 34 VFs
[10:14:55] [PASSED] 35 VFs
[10:14:55] [PASSED] 36 VFs
[10:14:55] [PASSED] 37 VFs
[10:14:55] [PASSED] 38 VFs
[10:14:55] [PASSED] 39 VFs
[10:14:55] [PASSED] 40 VFs
[10:14:55] [PASSED] 41 VFs
[10:14:55] [PASSED] 42 VFs
[10:14:55] [PASSED] 43 VFs
[10:14:55] [PASSED] 44 VFs
[10:14:55] [PASSED] 45 VFs
[10:14:55] [PASSED] 46 VFs
[10:14:55] [PASSED] 47 VFs
[10:14:55] [PASSED] 48 VFs
[10:14:55] [PASSED] 49 VFs
[10:14:55] [PASSED] 50 VFs
[10:14:55] [PASSED] 51 VFs
[10:14:55] [PASSED] 52 VFs
[10:14:55] [PASSED] 53 VFs
[10:14:55] [PASSED] 54 VFs
[10:14:55] [PASSED] 55 VFs
[10:14:55] [PASSED] 56 VFs
[10:14:55] [PASSED] 57 VFs
[10:14:55] [PASSED] 58 VFs
[10:14:55] [PASSED] 59 VFs
[10:14:55] [PASSED] 60 VFs
[10:14:55] [PASSED] 61 VFs
[10:14:55] [PASSED] 62 VFs
[10:14:55] [PASSED] 63 VFs
[10:14:55] ================= [PASSED] fair_doorbells ==================
[10:14:55] ======================== fair_ggtt ========================
[10:14:55] [PASSED] 1 VF
[10:14:55] [PASSED] 2 VFs
[10:14:55] [PASSED] 3 VFs
[10:14:55] [PASSED] 4 VFs
[10:14:55] [PASSED] 5 VFs
[10:14:55] [PASSED] 6 VFs
[10:14:55] [PASSED] 7 VFs
[10:14:55] [PASSED] 8 VFs
[10:14:55] [PASSED] 9 VFs
[10:14:55] [PASSED] 10 VFs
[10:14:55] [PASSED] 11 VFs
[10:14:55] [PASSED] 12 VFs
[10:14:55] [PASSED] 13 VFs
[10:14:55] [PASSED] 14 VFs
[10:14:55] [PASSED] 15 VFs
[10:14:55] [PASSED] 16 VFs
[10:14:55] [PASSED] 17 VFs
[10:14:55] [PASSED] 18 VFs
[10:14:55] [PASSED] 19 VFs
[10:14:55] [PASSED] 20 VFs
[10:14:55] [PASSED] 21 VFs
[10:14:55] [PASSED] 22 VFs
[10:14:55] [PASSED] 23 VFs
[10:14:55] [PASSED] 24 VFs
[10:14:55] [PASSED] 25 VFs
[10:14:55] [PASSED] 26 VFs
[10:14:55] [PASSED] 27 VFs
[10:14:55] [PASSED] 28 VFs
[10:14:55] [PASSED] 29 VFs
[10:14:55] [PASSED] 30 VFs
[10:14:55] [PASSED] 31 VFs
[10:14:55] [PASSED] 32 VFs
[10:14:55] [PASSED] 33 VFs
[10:14:55] [PASSED] 34 VFs
[10:14:55] [PASSED] 35 VFs
[10:14:55] [PASSED] 36 VFs
[10:14:55] [PASSED] 37 VFs
[10:14:55] [PASSED] 38 VFs
[10:14:55] [PASSED] 39 VFs
[10:14:55] [PASSED] 40 VFs
[10:14:55] [PASSED] 41 VFs
[10:14:55] [PASSED] 42 VFs
[10:14:55] [PASSED] 43 VFs
[10:14:55] [PASSED] 44 VFs
[10:14:55] [PASSED] 45 VFs
[10:14:55] [PASSED] 46 VFs
[10:14:55] [PASSED] 47 VFs
[10:14:55] [PASSED] 48 VFs
[10:14:55] [PASSED] 49 VFs
[10:14:55] [PASSED] 50 VFs
[10:14:55] [PASSED] 51 VFs
[10:14:55] [PASSED] 52 VFs
[10:14:55] [PASSED] 53 VFs
[10:14:55] [PASSED] 54 VFs
[10:14:55] [PASSED] 55 VFs
[10:14:55] [PASSED] 56 VFs
[10:14:55] [PASSED] 57 VFs
[10:14:55] [PASSED] 58 VFs
[10:14:55] [PASSED] 59 VFs
[10:14:55] [PASSED] 60 VFs
[10:14:55] [PASSED] 61 VFs
[10:14:55] [PASSED] 62 VFs
[10:14:55] [PASSED] 63 VFs
[10:14:55] ==================== [PASSED] fair_ggtt ====================
[10:14:55] ======================== fair_vram ========================
[10:14:55] [PASSED] 1 VF
[10:14:55] [PASSED] 2 VFs
[10:14:55] [PASSED] 3 VFs
[10:14:55] [PASSED] 4 VFs
[10:14:55] [PASSED] 5 VFs
[10:14:55] [PASSED] 6 VFs
[10:14:55] [PASSED] 7 VFs
[10:14:55] [PASSED] 8 VFs
[10:14:55] [PASSED] 9 VFs
[10:14:55] [PASSED] 10 VFs
[10:14:55] [PASSED] 11 VFs
[10:14:55] [PASSED] 12 VFs
[10:14:55] [PASSED] 13 VFs
[10:14:55] [PASSED] 14 VFs
[10:14:55] [PASSED] 15 VFs
[10:14:55] [PASSED] 16 VFs
[10:14:55] [PASSED] 17 VFs
[10:14:55] [PASSED] 18 VFs
[10:14:55] [PASSED] 19 VFs
[10:14:55] [PASSED] 20 VFs
[10:14:55] [PASSED] 21 VFs
[10:14:55] [PASSED] 22 VFs
[10:14:55] [PASSED] 23 VFs
[10:14:55] [PASSED] 24 VFs
[10:14:55] [PASSED] 25 VFs
[10:14:55] [PASSED] 26 VFs
[10:14:55] [PASSED] 27 VFs
[10:14:55] [PASSED] 28 VFs
[10:14:55] [PASSED] 29 VFs
[10:14:55] [PASSED] 30 VFs
[10:14:55] [PASSED] 31 VFs
[10:14:55] [PASSED] 32 VFs
[10:14:55] [PASSED] 33 VFs
[10:14:55] [PASSED] 34 VFs
[10:14:55] [PASSED] 35 VFs
[10:14:55] [PASSED] 36 VFs
[10:14:55] [PASSED] 37 VFs
[10:14:55] [PASSED] 38 VFs
[10:14:55] [PASSED] 39 VFs
[10:14:55] [PASSED] 40 VFs
[10:14:55] [PASSED] 41 VFs
[10:14:55] [PASSED] 42 VFs
[10:14:55] [PASSED] 43 VFs
[10:14:55] [PASSED] 44 VFs
[10:14:55] [PASSED] 45 VFs
[10:14:55] [PASSED] 46 VFs
[10:14:55] [PASSED] 47 VFs
[10:14:55] [PASSED] 48 VFs
[10:14:55] [PASSED] 49 VFs
[10:14:55] [PASSED] 50 VFs
[10:14:55] [PASSED] 51 VFs
[10:14:55] [PASSED] 52 VFs
[10:14:55] [PASSED] 53 VFs
[10:14:55] [PASSED] 54 VFs
[10:14:55] [PASSED] 55 VFs
[10:14:55] [PASSED] 56 VFs
[10:14:55] [PASSED] 57 VFs
[10:14:55] [PASSED] 58 VFs
[10:14:55] [PASSED] 59 VFs
[10:14:55] [PASSED] 60 VFs
[10:14:55] [PASSED] 61 VFs
[10:14:55] [PASSED] 62 VFs
[10:14:55] [PASSED] 63 VFs
[10:14:55] ==================== [PASSED] fair_vram ====================
[10:14:55] ================== [PASSED] pf_gt_config ===================
[10:14:55] ===================== lmtt (1 subtest) =====================
[10:14:55] ======================== test_ops =========================
[10:14:55] [PASSED] 2-level
[10:14:55] [PASSED] multi-level
[10:14:55] ==================== [PASSED] test_ops =====================
[10:14:55] ====================== [PASSED] lmtt =======================
[10:14:55] ================= sriov_packet (1 subtest) =================
[10:14:55] [PASSED] test_descriptor_init
[10:14:55] ================== [PASSED] sriov_packet ===================
[10:14:55] ================= pf_service (11 subtests) =================
[10:14:55] [PASSED] pf_negotiate_any
[10:14:55] [PASSED] pf_negotiate_base_match
[10:14:55] [PASSED] pf_negotiate_base_newer
[10:14:55] [PASSED] pf_negotiate_base_next
[10:14:55] [SKIPPED] pf_negotiate_base_older (no older minor)
[10:14:55] [PASSED] pf_negotiate_base_prev
[10:14:55] [PASSED] pf_negotiate_latest_match
[10:14:55] [PASSED] pf_negotiate_latest_newer
[10:14:55] [PASSED] pf_negotiate_latest_next
[10:14:55] [SKIPPED] pf_negotiate_latest_older (no older minor)
[10:14:55] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[10:14:55] =================== [PASSED] pf_service ====================
[10:14:55] ================= xe_guc_g2g (2 subtests) ==================
[10:14:55] ============== xe_live_guc_g2g_kunit_default ==============
[10:14:55] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[10:14:55] ============== xe_live_guc_g2g_kunit_allmem ===============
[10:14:55] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[10:14:55] =================== [SKIPPED] xe_guc_g2g ===================
[10:14:55] =================== xe_mocs (2 subtests) ===================
[10:14:55] ================ xe_live_mocs_kernel_kunit ================
[10:14:55] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[10:14:55] ================ xe_live_mocs_reset_kunit =================
[10:14:55] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[10:14:55] ==================== [SKIPPED] xe_mocs =====================
[10:14:55] ================= xe_migrate (2 subtests) ==================
[10:14:55] ================= xe_migrate_sanity_kunit =================
[10:14:55] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[10:14:55] ================== xe_validate_ccs_kunit ==================
[10:14:55] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[10:14:55] =================== [SKIPPED] xe_migrate ===================
[10:14:55] ================== xe_dma_buf (1 subtest) ==================
[10:14:55] ==================== xe_dma_buf_kunit =====================
[10:14:55] ================ [SKIPPED] xe_dma_buf_kunit ================
[10:14:55] =================== [SKIPPED] xe_dma_buf ===================
[10:14:55] ================= xe_bo_shrink (1 subtest) =================
[10:14:55] =================== xe_bo_shrink_kunit ====================
[10:14:55] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[10:14:55] ================== [SKIPPED] xe_bo_shrink ==================
[10:14:55] ==================== xe_bo (2 subtests) ====================
[10:14:55] ================== xe_ccs_migrate_kunit ===================
[10:14:55] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[10:14:55] ==================== xe_bo_evict_kunit ====================
[10:14:55] =============== [SKIPPED] xe_bo_evict_kunit ================
[10:14:55] ===================== [SKIPPED] xe_bo ======================
[10:14:55] =================== xe_any (9 subtests) ====================
[10:14:55] [PASSED] test_to_xe
[10:14:55] [PASSED] test_to_dev
[10:14:55] [PASSED] test_to_pdev
[10:14:55] [PASSED] test_to_drm
[10:14:55] [PASSED] test_if_pdev
[10:14:55] [PASSED] test_if_xe
[10:14:55] [PASSED] test_if_tile
[10:14:55] [PASSED] test_if_gt
[10:14:55] [PASSED] test_to_id
[10:14:55] ===================== [PASSED] xe_any ======================
[10:14:55] ==================== args (13 subtests) ====================
[10:14:55] [PASSED] count_args_test
[10:14:55] [PASSED] call_args_example
[10:14:55] [PASSED] call_args_test
[10:14:55] [PASSED] drop_first_arg_example
[10:14:55] [PASSED] drop_first_arg_test
[10:14:55] [PASSED] first_arg_example
[10:14:55] [PASSED] first_arg_test
[10:14:55] [PASSED] last_arg_example
[10:14:55] [PASSED] last_arg_test
[10:14:55] [PASSED] pick_arg_example
[10:14:55] [PASSED] if_args_example
[10:14:55] [PASSED] if_args_test
[10:14:55] [PASSED] sep_comma_example
[10:14:55] ====================== [PASSED] args =======================
[10:14:55] =================== xe_pci (3 subtests) ====================
[10:14:55] ==================== check_graphics_ip ====================
[10:14:55] [PASSED] 12.00 Xe_LP
[10:14:55] [PASSED] 12.10 Xe_LP+
[10:14:55] [PASSED] 12.55 Xe_HPG
[10:14:55] [PASSED] 12.60 Xe_HPC
[10:14:55] [PASSED] 12.70 Xe_LPG
[10:14:55] [PASSED] 12.71 Xe_LPG
[10:14:55] [PASSED] 12.74 Xe_LPG+
[10:14:55] [PASSED] 20.01 Xe2_HPG
[10:14:55] [PASSED] 20.02 Xe2_HPG
[10:14:55] [PASSED] 20.04 Xe2_LPG
[10:14:55] [PASSED] 30.00 Xe3_LPG
[10:14:55] [PASSED] 30.01 Xe3_LPG
[10:14:55] [PASSED] 30.03 Xe3_LPG
[10:14:55] [PASSED] 30.04 Xe3_LPG
[10:14:55] [PASSED] 30.05 Xe3_LPG
[10:14:55] [PASSED] 35.10 Xe3p_LPG
[10:14:55] [PASSED] 35.11 Xe3p_XPC
[10:14:55] ================ [PASSED] check_graphics_ip ================
[10:14:55] ===================== check_media_ip ======================
[10:14:55] [PASSED] 12.00 Xe_M
[10:14:55] [PASSED] 12.55 Xe_HPM
[10:14:55] [PASSED] 13.00 Xe_LPM+
[10:14:55] [PASSED] 13.01 Xe2_HPM
[10:14:55] [PASSED] 20.00 Xe2_LPM
[10:14:55] [PASSED] 30.00 Xe3_LPM
[10:14:55] [PASSED] 30.02 Xe3_LPM
[10:14:55] [PASSED] 35.00 Xe3p_LPM
[10:14:55] [PASSED] 35.03 Xe3p_HPM
[10:14:55] ================= [PASSED] check_media_ip ==================
[10:14:55] =================== check_platform_desc ===================
[10:14:55] [PASSED] 0x9A60 (TIGERLAKE)
[10:14:55] [PASSED] 0x9A68 (TIGERLAKE)
[10:14:55] [PASSED] 0x9A70 (TIGERLAKE)
[10:14:55] [PASSED] 0x9A40 (TIGERLAKE)
[10:14:55] [PASSED] 0x9A49 (TIGERLAKE)
[10:14:55] [PASSED] 0x9A59 (TIGERLAKE)
[10:14:55] [PASSED] 0x9A78 (TIGERLAKE)
[10:14:55] [PASSED] 0x9AC0 (TIGERLAKE)
[10:14:55] [PASSED] 0x9AC9 (TIGERLAKE)
[10:14:55] [PASSED] 0x9AD9 (TIGERLAKE)
[10:14:55] [PASSED] 0x9AF8 (TIGERLAKE)
[10:14:55] [PASSED] 0x4C80 (ROCKETLAKE)
[10:14:55] [PASSED] 0x4C8A (ROCKETLAKE)
[10:14:55] [PASSED] 0x4C8B (ROCKETLAKE)
[10:14:55] [PASSED] 0x4C8C (ROCKETLAKE)
[10:14:55] [PASSED] 0x4C90 (ROCKETLAKE)
[10:14:55] [PASSED] 0x4C9A (ROCKETLAKE)
[10:14:55] [PASSED] 0x4680 (ALDERLAKE_S)
[10:14:55] [PASSED] 0x4682 (ALDERLAKE_S)
[10:14:55] [PASSED] 0x4688 (ALDERLAKE_S)
[10:14:55] [PASSED] 0x468A (ALDERLAKE_S)
[10:14:55] [PASSED] 0x468B (ALDERLAKE_S)
[10:14:55] [PASSED] 0x4690 (ALDERLAKE_S)
[10:14:55] [PASSED] 0x4692 (ALDERLAKE_S)
[10:14:55] [PASSED] 0x4693 (ALDERLAKE_S)
[10:14:55] [PASSED] 0x46A0 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46A1 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46A2 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46A3 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46A6 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46A8 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46AA (ALDERLAKE_P)
[10:14:55] [PASSED] 0x462A (ALDERLAKE_P)
[10:14:55] [PASSED] 0x4626 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x4628 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46B0 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46B1 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46B2 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46B3 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46C0 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46C1 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46C2 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46C3 (ALDERLAKE_P)
[10:14:55] [PASSED] 0x46D0 (ALDERLAKE_N)
[10:14:55] [PASSED] 0x46D1 (ALDERLAKE_N)
[10:14:55] [PASSED] 0x46D2 (ALDERLAKE_N)
[10:14:55] [PASSED] 0x46D3 (ALDERLAKE_N)
[10:14:55] [PASSED] 0x46D4 (ALDERLAKE_N)
[10:14:55] [PASSED] 0xA721 (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7A1 (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7A9 (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7AC (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7AD (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA720 (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7A0 (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7A8 (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7AA (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA7AB (ALDERLAKE_P)
[10:14:55] [PASSED] 0xA780 (ALDERLAKE_S)
[10:14:55] [PASSED] 0xA781 (ALDERLAKE_S)
[10:14:55] [PASSED] 0xA782 (ALDERLAKE_S)
[10:14:55] [PASSED] 0xA783 (ALDERLAKE_S)
[10:14:55] [PASSED] 0xA788 (ALDERLAKE_S)
[10:14:55] [PASSED] 0xA789 (ALDERLAKE_S)
[10:14:55] [PASSED] 0xA78A (ALDERLAKE_S)
[10:14:55] [PASSED] 0xA78B (ALDERLAKE_S)
[10:14:55] [PASSED] 0x4905 (DG1)
[10:14:55] [PASSED] 0x4906 (DG1)
[10:14:55] [PASSED] 0x4907 (DG1)
[10:14:55] [PASSED] 0x4908 (DG1)
[10:14:55] [PASSED] 0x4909 (DG1)
[10:14:55] [PASSED] 0x56C0 (DG2)
[10:14:55] [PASSED] 0x56C2 (DG2)
[10:14:55] [PASSED] 0x56C1 (DG2)
[10:14:55] [PASSED] 0x7D51 (METEORLAKE)
[10:14:55] [PASSED] 0x7DD1 (METEORLAKE)
[10:14:55] [PASSED] 0x7D41 (METEORLAKE)
[10:14:55] [PASSED] 0x7D67 (METEORLAKE)
[10:14:55] [PASSED] 0xB640 (METEORLAKE)
[10:14:55] [PASSED] 0x56A0 (DG2)
[10:14:55] [PASSED] 0x56A1 (DG2)
[10:14:55] [PASSED] 0x56A2 (DG2)
[10:14:55] [PASSED] 0x56BE (DG2)
[10:14:55] [PASSED] 0x56BF (DG2)
[10:14:55] [PASSED] 0x5690 (DG2)
[10:14:55] [PASSED] 0x5691 (DG2)
[10:14:55] [PASSED] 0x5692 (DG2)
[10:14:55] [PASSED] 0x56A5 (DG2)
[10:14:55] [PASSED] 0x56A6 (DG2)
[10:14:55] [PASSED] 0x56B0 (DG2)
[10:14:55] [PASSED] 0x56B1 (DG2)
[10:14:55] [PASSED] 0x56BA (DG2)
[10:14:55] [PASSED] 0x56BB (DG2)
[10:14:55] [PASSED] 0x56BC (DG2)
[10:14:55] [PASSED] 0x56BD (DG2)
[10:14:55] [PASSED] 0x5693 (DG2)
[10:14:55] [PASSED] 0x5694 (DG2)
[10:14:55] [PASSED] 0x5695 (DG2)
[10:14:55] [PASSED] 0x56A3 (DG2)
[10:14:55] [PASSED] 0x56A4 (DG2)
[10:14:55] [PASSED] 0x56B2 (DG2)
[10:14:55] [PASSED] 0x56B3 (DG2)
[10:14:55] [PASSED] 0x5696 (DG2)
[10:14:55] [PASSED] 0x5697 (DG2)
[10:14:55] [PASSED] 0xB69 (PVC)
[10:14:55] [PASSED] 0xB6E (PVC)
[10:14:55] [PASSED] 0xBD4 (PVC)
[10:14:55] [PASSED] 0xBD5 (PVC)
[10:14:55] [PASSED] 0xBD6 (PVC)
[10:14:55] [PASSED] 0xBD7 (PVC)
[10:14:55] [PASSED] 0xBD8 (PVC)
[10:14:55] [PASSED] 0xBD9 (PVC)
[10:14:55] [PASSED] 0xBDA (PVC)
[10:14:55] [PASSED] 0xBDB (PVC)
[10:14:55] [PASSED] 0xBE0 (PVC)
[10:14:55] [PASSED] 0xBE1 (PVC)
[10:14:55] [PASSED] 0xBE5 (PVC)
[10:14:55] [PASSED] 0x7D40 (METEORLAKE)
[10:14:55] [PASSED] 0x7D45 (METEORLAKE)
[10:14:55] [PASSED] 0x7D55 (METEORLAKE)
[10:14:55] [PASSED] 0x7D60 (METEORLAKE)
[10:14:55] [PASSED] 0x7DD5 (METEORLAKE)
[10:14:55] [PASSED] 0x6420 (LUNARLAKE)
[10:14:55] [PASSED] 0x64A0 (LUNARLAKE)
[10:14:55] [PASSED] 0x64B0 (LUNARLAKE)
[10:14:55] [PASSED] 0xE202 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE209 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE20B (BATTLEMAGE)
[10:14:55] [PASSED] 0xE20C (BATTLEMAGE)
[10:14:55] [PASSED] 0xE20D (BATTLEMAGE)
[10:14:55] [PASSED] 0xE210 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE211 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE212 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE216 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE220 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE221 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE222 (BATTLEMAGE)
[10:14:55] [PASSED] 0xE223 (BATTLEMAGE)
[10:14:55] [PASSED] 0xB080 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB081 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB082 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB083 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB084 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB085 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB086 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB087 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB08F (PANTHERLAKE)
[10:14:55] [PASSED] 0xB090 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB0A0 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB0A1 (PANTHERLAKE)
[10:14:55] [PASSED] 0xB0B0 (PANTHERLAKE)
[10:14:55] [PASSED] 0xFD80 (PANTHERLAKE)
[10:14:55] [PASSED] 0xFD81 (PANTHERLAKE)
[10:14:55] [PASSED] 0xD740 (NOVALAKE_S)
[10:14:55] [PASSED] 0xD741 (NOVALAKE_S)
[10:14:55] [PASSED] 0xD742 (NOVALAKE_S)
[10:14:55] [PASSED] 0xD743 (NOVALAKE_S)
[10:14:55] [PASSED] 0xD745 (NOVALAKE_S)
[10:14:55] [PASSED] 0xD74A (NOVALAKE_S)
[10:14:55] [PASSED] 0xD74B (NOVALAKE_S)
[10:14:55] [PASSED] 0x674C (CRESCENTISLAND)
[10:14:55] [PASSED] 0x674D (CRESCENTISLAND)
[10:14:55] [PASSED] 0x674E (CRESCENTISLAND)
[10:14:55] [PASSED] 0x674F (CRESCENTISLAND)
[10:14:55] [PASSED] 0x6750 (CRESCENTISLAND)
[10:14:55] [PASSED] 0x6751 (CRESCENTISLAND)
[10:14:55] [PASSED] 0xD750 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD751 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD752 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD753 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD754 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD755 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD756 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD757 (NOVALAKE_P)
[10:14:55] [PASSED] 0xD75F (NOVALAKE_P)
[10:14:55] =============== [PASSED] check_platform_desc ===============
[10:14:55] ===================== [PASSED] xe_pci ======================
[10:14:55] ============= xe_rtp_tables_test (5 subtests) ==============
[10:14:55] ================== xe_rtp_table_gt_test ===================
[10:14:55] [PASSED] gt_was/14011060649
[10:14:55] [PASSED] gt_was/14011059788
[10:14:55] [PASSED] gt_was/14015795083
[10:14:55] [PASSED] gt_was/16021867713
[10:14:55] [PASSED] gt_was/14019449301
[10:14:55] [PASSED] gt_was/16028005424
[10:14:55] [PASSED] gt_was/14026578760
[10:14:55] [PASSED] gt_was/1409420604
[10:14:55] [PASSED] gt_was/1408615072
[10:14:55] [PASSED] gt_was/22010523718
[10:14:55] [PASSED] gt_was/14011006942
[10:14:55] [PASSED] gt_was/14014830051
[10:14:55] [PASSED] gt_was/18018781329
[10:14:55] [PASSED] gt_was/1509235366
[10:14:55] [PASSED] gt_was/18018781329
[10:14:55] [PASSED] gt_was/16016694945
[10:14:55] [PASSED] gt_was/14018575942
[10:14:55] [PASSED] gt_was/22016670082
[10:14:55] [PASSED] gt_was/22016670082
[10:14:55] [PASSED] gt_was/14017421178
[10:14:55] [PASSED] gt_was/16025250150
[10:14:55] [PASSED] gt_was/14021871409
[10:14:55] [PASSED] gt_was/16021865536
[10:14:55] [PASSED] gt_was/14021486841
[10:14:55] [PASSED] gt_was/14025160223
[10:14:55] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[10:14:55] [PASSED] gt_was/14025635424
[10:14:55] [PASSED] gt_was/16028005424
[10:14:55] ============== [PASSED] xe_rtp_table_gt_test ===============
[10:14:55] ================== xe_rtp_table_gt_test ===================
[10:14:55] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[10:14:55] [PASSED] gt_tunings/Tuning: 32B Access Enable
[10:14:55] [PASSED] gt_tunings/Tuning: L3 cache
[10:14:55] [PASSED] gt_tunings/Tuning: L3 cache - media
[10:14:55] [PASSED] gt_tunings/Tuning: Compression Overfetch
[10:14:55] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[10:14:55] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[10:14:55] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[10:14:55] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[10:14:55] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[10:14:55] [PASSED] gt_tunings/Tuning: Stateless compression control
[10:14:55] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[10:14:55] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[10:14:55] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[10:14:55] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[10:14:55] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[10:14:55] ============== [PASSED] xe_rtp_table_gt_test ===============
[10:14:55] ================== xe_rtp_table_oob_test ==================
[10:14:55] [PASSED] oob_was/1607983814
[10:14:55] [PASSED] oob_was/16010904313
[10:14:55] [PASSED] oob_was/18022495364
[10:14:55] [PASSED] oob_was/22012773006
[10:14:55] [PASSED] oob_was/14014475959
[10:14:55] [PASSED] oob_was/22011391025
[10:14:55] [PASSED] oob_was/22012727170
[10:14:55] [PASSED] oob_was/22012727685
[10:14:55] [PASSED] oob_was/22016596838
[10:14:55] [PASSED] oob_was/18020744125
[10:14:55] [PASSED] oob_was/1409600907
[10:14:55] [PASSED] oob_was/22014953428
[10:14:55] [PASSED] oob_was/16017236439
[10:14:55] [PASSED] oob_was/14019821291
[10:14:55] [PASSED] oob_was/14015076503
[10:14:55] [PASSED] oob_was/22016122933
[10:14:55] [PASSED] oob_was/14018913170
[10:14:55] [PASSED] oob_was/14018094691
[10:14:55] [PASSED] oob_was/18024947630
[10:14:55] [PASSED] oob_was/16022287689
[10:14:55] [PASSED] oob_was/13011645652
[10:14:55] [PASSED] oob_was/14022293748
[10:14:55] [PASSED] oob_was/22019794406
[10:14:55] [PASSED] oob_was/22019338487
[10:14:55] [PASSED] oob_was/16023588340
[10:14:55] [PASSED] oob_was/14019789679
[10:14:55] [PASSED] oob_was/14022866841
[10:14:55] [PASSED] oob_was/16021333562
[10:14:55] [PASSED] oob_was/14016712196
[10:14:55] [PASSED] oob_was/14015568240
[10:14:55] [PASSED] oob_was/18013179988
[10:14:55] [PASSED] oob_was/1508761755
[10:14:55] [PASSED] oob_was/16023105232
[10:14:55] [PASSED] oob_was/16026508708
[10:14:55] [PASSED] oob_was/14020001231
[10:14:55] [PASSED] oob_was/16023683509
[10:14:55] [PASSED] oob_was/14025515070
[10:14:55] [PASSED] oob_was/15015404425_disable
[10:14:55] [PASSED] oob_was/16026007364
[10:14:55] [PASSED] oob_was/14020316580
[10:14:55] [PASSED] oob_was/14025883347
[10:14:55] [PASSED] oob_was/16029380221
[10:14:55] [PASSED] oob_was/22022079272
[10:14:55] [PASSED] oob_was/16029897822
[10:14:55] [PASSED] oob_was/14027054324
[10:14:55] [PASSED] oob_was/14025941587
[10:14:55] [PASSED] oob_was/16030224309
[10:14:55] ============== [PASSED] xe_rtp_table_oob_test ==============
[10:14:55] ================ xe_rtp_table_dev_oob_test ================
[10:14:55] [PASSED] device_oob_was/22010954014
[10:14:55] [PASSED] device_oob_was/15015404425
[10:14:55] [PASSED] device_oob_was/22019338487_display
[10:14:55] [PASSED] device_oob_was/14022085890
[10:14:55] [PASSED] device_oob_was/14026539277
[10:14:55] [PASSED] device_oob_was/14026633728
[10:14:55] [PASSED] device_oob_was/14026746987
[10:14:55] [PASSED] device_oob_was/14026779378
[10:14:55] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[10:14:55] ========== xe_rtp_table_missing_upper_bound_test ==========
[10:14:55] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[10:14:55] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[10:14:55] [PASSED] register_whitelist/1806527549
[10:14:55] [PASSED] register_whitelist/allow_read_ctx_timestamp
[10:14:55] [PASSED] register_whitelist/allow_read_queue_timestamp
[10:14:55] [PASSED] register_whitelist/16014440446
[10:14:55] [PASSED] register_whitelist/16017236439
[10:14:55] [PASSED] register_whitelist/16020183090
[10:14:55] [PASSED] register_whitelist/14024997852
[10:14:55] [PASSED] register_whitelist/14024997852
[10:14:55] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[10:14:55] =============== [PASSED] xe_rtp_tables_test ================
[10:14:55] =================== xe_rtp (3 subtests) ====================
[10:14:55] =================== xe_rtp_rules_tests ====================
[10:14:55] [PASSED] no
[10:14:55] [PASSED] yes
[10:14:55] [PASSED] no-and-no
[10:14:55] [PASSED] no-and-yes
[10:14:55] [PASSED] yes-and-no
[10:14:55] [PASSED] yes-and-yes
[10:14:55] [PASSED] no-or-no
[10:14:55] [PASSED] no-or-yes
[10:14:55] [PASSED] yes-or-no
[10:14:55] [PASSED] yes-or-yes
[10:14:55] [PASSED] no-yes-or-yes-no
[10:14:55] [PASSED] no-yes-or-yes-yes
[10:14:55] [PASSED] yes-yes-or-no-yes
[10:14:55] [PASSED] yes-yes-or-yes-yes
[10:14:55] [PASSED] no-no-or-yes-or-no
[10:14:55] [PASSED] or
[10:14:55] [PASSED] or-yes
[10:14:55] [PASSED] or-no
[10:14:55] [PASSED] yes-or
[10:14:55] [PASSED] no-or
[10:14:55] [PASSED] no-or-or-yes
[10:14:55] [PASSED] yes-or-or-no
[10:14:55] [PASSED] no-or-or-no
[10:14:55] [PASSED] missing-context-engine-class
[10:14:55] [PASSED] missing-context-engine-class-or-yes
[10:14:55] [PASSED] missing-context-engine-class-or-or-yes
[10:14:55] =============== [PASSED] xe_rtp_rules_tests ================
[10:14:55] =============== xe_rtp_process_to_sr_tests ================
[10:14:55] [PASSED] coalesce-same-reg
[10:14:55] [PASSED] coalesce-same-reg-literal-and-func
[10:14:55] [PASSED] no-match-no-add
[10:14:55] [PASSED] two-regs-two-entries
[10:14:55] [PASSED] clr-one-set-other
[10:14:55] [PASSED] set-field
[10:14:55] [PASSED] conflict-duplicate
[10:14:55] [PASSED] conflict-not-disjoint
[10:14:55] [PASSED] conflict-not-disjoint-literal-and-func
[10:14:55] [PASSED] conflict-reg-type
[10:14:55] [PASSED] bad-mcr-reg-forced-to-regular
[10:14:55] [PASSED] bad-regular-reg-forced-to-mcr
[10:14:55] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[10:14:55] ================== xe_rtp_process_tests ===================
[10:14:55] [PASSED] active1
[10:14:55] [PASSED] active2
[10:14:55] [PASSED] active-inactive
[10:14:55] [PASSED] inactive-active
[10:14:55] [PASSED] inactive-active-inactive
[10:14:55] [PASSED] inactive-inactive-inactive
[10:14:55] ============== [PASSED] xe_rtp_process_tests ===============
[10:14:55] ===================== [PASSED] xe_rtp ======================
[10:14:55] ==================== xe_wa (1 subtest) =====================
[10:14:55] ======================== xe_wa_gt =========================
[10:14:55] [PASSED] TIGERLAKE B0
[10:14:55] [PASSED] DG1 A0
[10:14:55] [PASSED] DG1 B0
[10:14:55] [PASSED] ALDERLAKE_S A0
[10:14:55] [PASSED] ALDERLAKE_S B0
[10:14:55] [PASSED] ALDERLAKE_S C0
[10:14:55] [PASSED] ALDERLAKE_S D0
[10:14:55] [PASSED] ALDERLAKE_P A0
[10:14:55] [PASSED] ALDERLAKE_P B0
[10:14:55] [PASSED] ALDERLAKE_P C0
[10:14:55] [PASSED] ALDERLAKE_S RPLS D0
[10:14:55] [PASSED] ALDERLAKE_P RPLU E0
[10:14:55] [PASSED] DG2 G10 C0
[10:14:55] [PASSED] DG2 G11 B1
[10:14:55] [PASSED] DG2 G12 A1
[10:14:55] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:14:55] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[10:14:55] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[10:14:55] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[10:14:55] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[10:14:55] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[10:14:55] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[10:14:55] ==================== [PASSED] xe_wa_gt =====================
[10:14:55] ====================== [PASSED] xe_wa ======================
[10:14:55] ============================================================
[10:14:55] Testing complete. Ran 821 tests: passed: 793, skipped: 28
[10:14:55] Elapsed time: 36.683s total, 1.846s configuring, 34.071s building, 0.716s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[10:14:55] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:14:57] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:15:22] Starting KUnit Kernel (1/1)...
[10:15:22] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:15:22] ============ drm_test_pick_cmdline (2 subtests) ============
[10:15:22] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[10:15:22] =============== drm_test_pick_cmdline_named ===============
[10:15:22] [PASSED] NTSC
[10:15:22] [PASSED] NTSC-J
[10:15:22] [PASSED] PAL
[10:15:22] [PASSED] PAL-M
[10:15:22] =========== [PASSED] drm_test_pick_cmdline_named ===========
[10:15:22] ============== [PASSED] drm_test_pick_cmdline ==============
[10:15:22] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[10:15:22] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[10:15:22] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[10:15:22] =========== drm_validate_clone_mode (2 subtests) ===========
[10:15:22] ============== drm_test_check_in_clone_mode ===============
[10:15:22] [PASSED] in_clone_mode
[10:15:22] [PASSED] not_in_clone_mode
[10:15:22] ========== [PASSED] drm_test_check_in_clone_mode ===========
[10:15:22] =============== drm_test_check_valid_clones ===============
[10:15:22] [PASSED] not_in_clone_mode
[10:15:22] [PASSED] valid_clone
[10:15:22] [PASSED] invalid_clone
[10:15:22] =========== [PASSED] drm_test_check_valid_clones ===========
[10:15:22] ============= [PASSED] drm_validate_clone_mode =============
[10:15:22] ============= drm_validate_modeset (1 subtest) =============
[10:15:22] [PASSED] drm_test_check_connector_changed_modeset
[10:15:22] ============== [PASSED] drm_validate_modeset ===============
[10:15:22] ====== drm_test_bridge_get_current_state (1 subtest) =======
[10:15:22] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[10:15:22] ======== [PASSED] drm_test_bridge_get_current_state ========
[10:15:22] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[10:15:22] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[10:15:22] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[10:15:22] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[10:15:22] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[10:15:22] ============== drm_bridge_alloc (2 subtests) ===============
[10:15:22] [PASSED] drm_test_drm_bridge_alloc_basic
[10:15:22] [PASSED] drm_test_drm_bridge_alloc_get_put
[10:15:22] ================ [PASSED] drm_bridge_alloc =================
[10:15:22] ============= drm_bridge_bus_fmt (5 subtests) ==============
[10:15:22] [PASSED] drm_test_bridge_rgb_yuv_rgb
[10:15:22] [PASSED] drm_test_bridge_must_convert_to_yuv444
[10:15:22] [PASSED] drm_test_bridge_hdmi_auto_rgb
[10:15:22] [PASSED] drm_test_bridge_auto_first
[10:15:22] [PASSED] drm_test_bridge_rgb_yuv_no_path
[10:15:22] =============== [PASSED] drm_bridge_bus_fmt ================
[10:15:22] ============= drm_cmdline_parser (40 subtests) =============
[10:15:22] [PASSED] drm_test_cmdline_force_d_only
[10:15:22] [PASSED] drm_test_cmdline_force_D_only_dvi
[10:15:22] [PASSED] drm_test_cmdline_force_D_only_hdmi
[10:15:22] [PASSED] drm_test_cmdline_force_D_only_not_digital
[10:15:22] [PASSED] drm_test_cmdline_force_e_only
[10:15:22] [PASSED] drm_test_cmdline_res
[10:15:22] [PASSED] drm_test_cmdline_res_vesa
[10:15:22] [PASSED] drm_test_cmdline_res_vesa_rblank
[10:15:22] [PASSED] drm_test_cmdline_res_rblank
[10:15:22] [PASSED] drm_test_cmdline_res_bpp
[10:15:22] [PASSED] drm_test_cmdline_res_refresh
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[10:15:22] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[10:15:22] [PASSED] drm_test_cmdline_res_margins_force_on
[10:15:22] [PASSED] drm_test_cmdline_res_vesa_margins
[10:15:22] [PASSED] drm_test_cmdline_name
[10:15:22] [PASSED] drm_test_cmdline_name_bpp
[10:15:22] [PASSED] drm_test_cmdline_name_option
[10:15:22] [PASSED] drm_test_cmdline_name_bpp_option
[10:15:22] [PASSED] drm_test_cmdline_rotate_0
[10:15:22] [PASSED] drm_test_cmdline_rotate_90
[10:15:22] [PASSED] drm_test_cmdline_rotate_180
[10:15:22] [PASSED] drm_test_cmdline_rotate_270
[10:15:22] [PASSED] drm_test_cmdline_hmirror
[10:15:22] [PASSED] drm_test_cmdline_vmirror
[10:15:22] [PASSED] drm_test_cmdline_margin_options
[10:15:22] [PASSED] drm_test_cmdline_multiple_options
[10:15:22] [PASSED] drm_test_cmdline_bpp_extra_and_option
[10:15:22] [PASSED] drm_test_cmdline_extra_and_option
[10:15:22] [PASSED] drm_test_cmdline_freestanding_options
[10:15:22] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[10:15:22] [PASSED] drm_test_cmdline_panel_orientation
[10:15:22] ================ drm_test_cmdline_invalid =================
[10:15:22] [PASSED] margin_only
[10:15:22] [PASSED] interlace_only
[10:15:22] [PASSED] res_missing_x
[10:15:22] [PASSED] res_missing_y
[10:15:22] [PASSED] res_bad_y
[10:15:22] [PASSED] res_missing_y_bpp
[10:15:22] [PASSED] res_bad_bpp
[10:15:22] [PASSED] res_bad_refresh
[10:15:22] [PASSED] res_bpp_refresh_force_on_off
[10:15:22] [PASSED] res_invalid_mode
[10:15:22] [PASSED] res_bpp_wrong_place_mode
[10:15:22] [PASSED] name_bpp_refresh
[10:15:22] [PASSED] name_refresh
[10:15:22] [PASSED] name_refresh_wrong_mode
[10:15:22] [PASSED] name_refresh_invalid_mode
[10:15:22] [PASSED] rotate_multiple
[10:15:22] [PASSED] rotate_invalid_val
[10:15:22] [PASSED] rotate_truncated
[10:15:22] [PASSED] invalid_option
[10:15:22] [PASSED] invalid_tv_option
[10:15:22] [PASSED] truncated_tv_option
[10:15:22] ============ [PASSED] drm_test_cmdline_invalid =============
[10:15:22] =============== drm_test_cmdline_tv_options ===============
[10:15:22] [PASSED] NTSC
[10:15:22] [PASSED] NTSC_443
[10:15:22] [PASSED] NTSC_J
[10:15:22] [PASSED] PAL
[10:15:22] [PASSED] PAL_M
[10:15:22] [PASSED] PAL_N
[10:15:22] [PASSED] SECAM
[10:15:22] [PASSED] MONO_525
[10:15:22] [PASSED] MONO_625
[10:15:22] =========== [PASSED] drm_test_cmdline_tv_options ===========
[10:15:22] =============== [PASSED] drm_cmdline_parser ================
[10:15:22] ========== drmm_connector_hdmi_init (20 subtests) ==========
[10:15:22] [PASSED] drm_test_connector_hdmi_init_valid
[10:15:22] [PASSED] drm_test_connector_hdmi_init_bpc_8
[10:15:22] [PASSED] drm_test_connector_hdmi_init_bpc_10
[10:15:22] [PASSED] drm_test_connector_hdmi_init_bpc_12
[10:15:22] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[10:15:22] [PASSED] drm_test_connector_hdmi_init_bpc_null
[10:15:22] [PASSED] drm_test_connector_hdmi_init_formats_empty
[10:15:22] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[10:15:22] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:15:22] [PASSED] supported_formats=0x9 yuv420_allowed=1
[10:15:22] [PASSED] supported_formats=0x9 yuv420_allowed=0
[10:15:22] [PASSED] supported_formats=0x5 yuv420_allowed=1
[10:15:22] [PASSED] supported_formats=0x5 yuv420_allowed=0
[10:15:22] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:15:22] [PASSED] drm_test_connector_hdmi_init_null_ddc
[10:15:22] [PASSED] drm_test_connector_hdmi_init_null_product
[10:15:22] [PASSED] drm_test_connector_hdmi_init_null_vendor
[10:15:22] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[10:15:22] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[10:15:22] [PASSED] drm_test_connector_hdmi_init_product_valid
[10:15:22] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[10:15:22] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[10:15:22] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[10:15:22] ========= drm_test_connector_hdmi_init_type_valid =========
[10:15:22] [PASSED] HDMI-A
[10:15:22] [PASSED] HDMI-B
[10:15:22] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[10:15:22] ======== drm_test_connector_hdmi_init_type_invalid ========
[10:15:22] [PASSED] Unknown
[10:15:22] [PASSED] VGA
[10:15:22] [PASSED] DVI-I
[10:15:22] [PASSED] DVI-D
[10:15:22] [PASSED] DVI-A
[10:15:22] [PASSED] Composite
[10:15:22] [PASSED] SVIDEO
[10:15:22] [PASSED] LVDS
[10:15:22] [PASSED] Component
[10:15:22] [PASSED] DIN
[10:15:22] [PASSED] DP
[10:15:22] [PASSED] TV
[10:15:22] [PASSED] eDP
[10:15:22] [PASSED] Virtual
[10:15:22] [PASSED] DSI
[10:15:22] [PASSED] DPI
[10:15:22] [PASSED] Writeback
[10:15:22] [PASSED] SPI
[10:15:22] [PASSED] USB
[10:15:22] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[10:15:22] ============ [PASSED] drmm_connector_hdmi_init =============
[10:15:22] ============= drmm_connector_init (3 subtests) =============
[10:15:22] [PASSED] drm_test_drmm_connector_init
[10:15:22] [PASSED] drm_test_drmm_connector_init_null_ddc
[10:15:22] ========= drm_test_drmm_connector_init_type_valid =========
[10:15:22] [PASSED] Unknown
[10:15:22] [PASSED] VGA
[10:15:22] [PASSED] DVI-I
[10:15:22] [PASSED] DVI-D
[10:15:22] [PASSED] DVI-A
[10:15:22] [PASSED] Composite
[10:15:22] [PASSED] SVIDEO
[10:15:22] [PASSED] LVDS
[10:15:22] [PASSED] Component
[10:15:22] [PASSED] DIN
[10:15:22] [PASSED] DP
[10:15:22] [PASSED] HDMI-A
[10:15:22] [PASSED] HDMI-B
[10:15:22] [PASSED] TV
[10:15:22] [PASSED] eDP
[10:15:22] [PASSED] Virtual
[10:15:22] [PASSED] DSI
[10:15:22] [PASSED] DPI
[10:15:22] [PASSED] Writeback
[10:15:22] [PASSED] SPI
[10:15:22] [PASSED] USB
[10:15:22] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[10:15:22] =============== [PASSED] drmm_connector_init ===============
[10:15:22] ========= drm_connector_dynamic_init (6 subtests) ==========
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_init
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_init_properties
[10:15:22] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[10:15:22] [PASSED] Unknown
[10:15:22] [PASSED] VGA
[10:15:22] [PASSED] DVI-I
[10:15:22] [PASSED] DVI-D
[10:15:22] [PASSED] DVI-A
[10:15:22] [PASSED] Composite
[10:15:22] [PASSED] SVIDEO
[10:15:22] [PASSED] LVDS
[10:15:22] [PASSED] Component
[10:15:22] [PASSED] DIN
[10:15:22] [PASSED] DP
[10:15:22] [PASSED] HDMI-A
[10:15:22] [PASSED] HDMI-B
[10:15:22] [PASSED] TV
[10:15:22] [PASSED] eDP
[10:15:22] [PASSED] Virtual
[10:15:22] [PASSED] DSI
[10:15:22] [PASSED] DPI
[10:15:22] [PASSED] Writeback
[10:15:22] [PASSED] SPI
[10:15:22] [PASSED] USB
[10:15:22] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[10:15:22] ======== drm_test_drm_connector_dynamic_init_name =========
[10:15:22] [PASSED] Unknown
[10:15:22] [PASSED] VGA
[10:15:22] [PASSED] DVI-I
[10:15:22] [PASSED] DVI-D
[10:15:22] [PASSED] DVI-A
[10:15:22] [PASSED] Composite
[10:15:22] [PASSED] SVIDEO
[10:15:22] [PASSED] LVDS
[10:15:22] [PASSED] Component
[10:15:22] [PASSED] DIN
[10:15:22] [PASSED] DP
[10:15:22] [PASSED] HDMI-A
[10:15:22] [PASSED] HDMI-B
[10:15:22] [PASSED] TV
[10:15:22] [PASSED] eDP
[10:15:22] [PASSED] Virtual
[10:15:22] [PASSED] DSI
[10:15:22] [PASSED] DPI
[10:15:22] [PASSED] Writeback
[10:15:22] [PASSED] SPI
[10:15:22] [PASSED] USB
[10:15:22] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[10:15:22] =========== [PASSED] drm_connector_dynamic_init ============
[10:15:22] ==== drm_connector_dynamic_register_early (4 subtests) =====
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[10:15:22] ====== [PASSED] drm_connector_dynamic_register_early =======
[10:15:22] ======= drm_connector_dynamic_register (7 subtests) ========
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[10:15:22] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[10:15:22] ========= [PASSED] drm_connector_dynamic_register ==========
[10:15:22] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[10:15:22] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[10:15:22] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[10:15:22] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[10:15:22] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[10:15:22] ========== drm_test_get_tv_mode_from_name_valid ===========
[10:15:22] [PASSED] NTSC
[10:15:22] [PASSED] NTSC-443
[10:15:22] [PASSED] NTSC-J
[10:15:22] [PASSED] PAL
[10:15:22] [PASSED] PAL-M
[10:15:22] [PASSED] PAL-N
[10:15:22] [PASSED] SECAM
[10:15:22] [PASSED] Mono
[10:15:22] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[10:15:22] [PASSED] drm_test_get_tv_mode_from_name_truncated
[10:15:22] ============ [PASSED] drm_get_tv_mode_from_name ============
[10:15:22] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[10:15:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[10:15:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[10:15:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[10:15:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[10:15:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[10:15:22] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[10:15:22] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[10:15:22] [PASSED] VIC 96
[10:15:22] [PASSED] VIC 97
[10:15:22] [PASSED] VIC 101
[10:15:22] [PASSED] VIC 102
[10:15:22] [PASSED] VIC 106
[10:15:22] [PASSED] VIC 107
[10:15:22] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[10:15:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[10:15:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[10:15:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[10:15:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[10:15:22] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[10:15:22] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[10:15:22] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[10:15:22] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[10:15:22] [PASSED] Automatic
[10:15:22] [PASSED] Full
[10:15:22] [PASSED] Limited 16:235
[10:15:22] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[10:15:22] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[10:15:22] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[10:15:22] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[10:15:22] === drm_test_drm_hdmi_connector_get_output_format_name ====
[10:15:22] [PASSED] RGB
[10:15:22] [PASSED] YUV 4:2:0
[10:15:22] [PASSED] YUV 4:2:2
[10:15:22] [PASSED] YUV 4:4:4
[10:15:22] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[10:15:22] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[10:15:22] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[10:15:22] ============= drm_damage_helper (21 subtests) ==============
[10:15:22] [PASSED] drm_test_damage_iter_no_damage
[10:15:22] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[10:15:22] [PASSED] drm_test_damage_iter_no_damage_src_moved
[10:15:22] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[10:15:22] [PASSED] drm_test_damage_iter_no_damage_not_visible
[10:15:22] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[10:15:22] [PASSED] drm_test_damage_iter_no_damage_no_fb
[10:15:22] [PASSED] drm_test_damage_iter_simple_damage
[10:15:22] [PASSED] drm_test_damage_iter_single_damage
[10:15:22] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[10:15:22] [PASSED] drm_test_damage_iter_single_damage_outside_src
[10:15:22] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[10:15:22] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[10:15:22] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[10:15:22] [PASSED] drm_test_damage_iter_single_damage_src_moved
[10:15:22] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[10:15:22] [PASSED] drm_test_damage_iter_damage
[10:15:22] [PASSED] drm_test_damage_iter_damage_one_intersect
[10:15:22] [PASSED] drm_test_damage_iter_damage_one_outside
[10:15:22] [PASSED] drm_test_damage_iter_damage_src_moved
[10:15:22] [PASSED] drm_test_damage_iter_damage_not_visible
[10:15:22] ================ [PASSED] drm_damage_helper ================
[10:15:22] ============== drm_dp_mst_helper (3 subtests) ==============
[10:15:22] ============== drm_test_dp_mst_calc_pbn_mode ==============
[10:15:22] [PASSED] Clock 154000 BPP 30 DSC disabled
[10:15:22] [PASSED] Clock 234000 BPP 30 DSC disabled
[10:15:22] [PASSED] Clock 297000 BPP 24 DSC disabled
[10:15:22] [PASSED] Clock 332880 BPP 24 DSC enabled
[10:15:22] [PASSED] Clock 324540 BPP 24 DSC enabled
[10:15:22] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[10:15:22] ============== drm_test_dp_mst_calc_pbn_div ===============
[10:15:22] [PASSED] Link rate 2000000 lane count 4
[10:15:22] [PASSED] Link rate 2000000 lane count 2
[10:15:22] [PASSED] Link rate 2000000 lane count 1
[10:15:22] [PASSED] Link rate 1350000 lane count 4
[10:15:22] [PASSED] Link rate 1350000 lane count 2
[10:15:22] [PASSED] Link rate 1350000 lane count 1
[10:15:22] [PASSED] Link rate 1000000 lane count 4
[10:15:22] [PASSED] Link rate 1000000 lane count 2
[10:15:22] [PASSED] Link rate 1000000 lane count 1
[10:15:22] [PASSED] Link rate 810000 lane count 4
[10:15:22] [PASSED] Link rate 810000 lane count 2
[10:15:22] [PASSED] Link rate 810000 lane count 1
[10:15:22] [PASSED] Link rate 540000 lane count 4
[10:15:22] [PASSED] Link rate 540000 lane count 2
[10:15:22] [PASSED] Link rate 540000 lane count 1
[10:15:22] [PASSED] Link rate 270000 lane count 4
[10:15:22] [PASSED] Link rate 270000 lane count 2
[10:15:22] [PASSED] Link rate 270000 lane count 1
[10:15:22] [PASSED] Link rate 162000 lane count 4
[10:15:22] [PASSED] Link rate 162000 lane count 2
[10:15:22] [PASSED] Link rate 162000 lane count 1
[10:15:22] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[10:15:22] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[10:15:22] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[10:15:22] [PASSED] DP_POWER_UP_PHY with port number
[10:15:22] [PASSED] DP_POWER_DOWN_PHY with port number
[10:15:22] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[10:15:22] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[10:15:22] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[10:15:22] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[10:15:22] [PASSED] DP_QUERY_PAYLOAD with port number
[10:15:22] [PASSED] DP_QUERY_PAYLOAD with VCPI
[10:15:22] [PASSED] DP_REMOTE_DPCD_READ with port number
[10:15:22] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[10:15:22] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[10:15:22] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[10:15:22] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[10:15:22] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[10:15:22] [PASSED] DP_REMOTE_I2C_READ with port number
[10:15:22] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[10:15:22] [PASSED] DP_REMOTE_I2C_READ with transactions array
[10:15:22] [PASSED] DP_REMOTE_I2C_WRITE with port number
[10:15:22] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[10:15:22] [PASSED] DP_REMOTE_I2C_WRITE with data array
[10:15:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[10:15:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[10:15:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[10:15:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[10:15:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[10:15:22] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[10:15:22] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[10:15:22] ================ [PASSED] drm_dp_mst_helper ================
[10:15:22] ================== drm_exec (7 subtests) ===================
[10:15:22] [PASSED] sanitycheck
[10:15:22] [PASSED] test_lock
[10:15:22] [PASSED] test_lock_unlock
[10:15:22] [PASSED] test_duplicates
[10:15:22] [PASSED] test_prepare
[10:15:22] [PASSED] test_prepare_array
[10:15:22] [PASSED] test_multiple_loops
[10:15:22] ==================== [PASSED] drm_exec =====================
[10:15:22] =========== drm_format_helper_test (17 subtests) ===========
[10:15:22] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[10:15:22] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[10:15:22] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[10:15:22] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[10:15:22] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[10:15:22] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[10:15:22] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[10:15:22] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[10:15:22] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[10:15:22] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[10:15:22] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[10:15:22] ============== drm_test_fb_xrgb8888_to_mono ===============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[10:15:22] ==================== drm_test_fb_swab =====================
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ================ [PASSED] drm_test_fb_swab =================
[10:15:22] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[10:15:22] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[10:15:22] [PASSED] single_pixel_source_buffer
[10:15:22] [PASSED] single_pixel_clip_rectangle
[10:15:22] [PASSED] well_known_colors
[10:15:22] [PASSED] destination_pitch
[10:15:22] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[10:15:22] ================= drm_test_fb_clip_offset =================
[10:15:22] [PASSED] pass through
[10:15:22] [PASSED] horizontal offset
[10:15:22] [PASSED] vertical offset
[10:15:22] [PASSED] horizontal and vertical offset
[10:15:22] [PASSED] horizontal offset (custom pitch)
[10:15:22] [PASSED] vertical offset (custom pitch)
[10:15:22] [PASSED] horizontal and vertical offset (custom pitch)
[10:15:22] ============= [PASSED] drm_test_fb_clip_offset =============
[10:15:22] =================== drm_test_fb_memcpy ====================
[10:15:22] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[10:15:22] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[10:15:22] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[10:15:22] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[10:15:22] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[10:15:22] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[10:15:22] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[10:15:22] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[10:15:22] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[10:15:22] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[10:15:22] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[10:15:22] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[10:15:22] =============== [PASSED] drm_test_fb_memcpy ================
[10:15:22] ============= [PASSED] drm_format_helper_test ==============
[10:15:22] ================= drm_format (18 subtests) =================
[10:15:22] [PASSED] drm_test_format_block_width_invalid
[10:15:22] [PASSED] drm_test_format_block_width_one_plane
[10:15:22] [PASSED] drm_test_format_block_width_two_plane
[10:15:22] [PASSED] drm_test_format_block_width_three_plane
[10:15:22] [PASSED] drm_test_format_block_width_tiled
[10:15:22] [PASSED] drm_test_format_block_height_invalid
[10:15:22] [PASSED] drm_test_format_block_height_one_plane
[10:15:22] [PASSED] drm_test_format_block_height_two_plane
[10:15:22] [PASSED] drm_test_format_block_height_three_plane
[10:15:22] [PASSED] drm_test_format_block_height_tiled
[10:15:22] [PASSED] drm_test_format_min_pitch_invalid
[10:15:22] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[10:15:22] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[10:15:22] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[10:15:22] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[10:15:22] [PASSED] drm_test_format_min_pitch_two_plane
[10:15:22] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[10:15:22] [PASSED] drm_test_format_min_pitch_tiled
[10:15:22] =================== [PASSED] drm_format ====================
[10:15:22] ============== drm_framebuffer (10 subtests) ===============
[10:15:22] ========== drm_test_framebuffer_check_src_coords ==========
[10:15:22] [PASSED] Success: source fits into fb
[10:15:22] [PASSED] Fail: overflowing fb with x-axis coordinate
[10:15:22] [PASSED] Fail: overflowing fb with y-axis coordinate
[10:15:22] [PASSED] Fail: overflowing fb with source width
[10:15:22] [PASSED] Fail: overflowing fb with source height
[10:15:22] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[10:15:22] [PASSED] drm_test_framebuffer_cleanup
[10:15:22] =============== drm_test_framebuffer_create ===============
[10:15:22] [PASSED] ABGR8888 normal sizes
[10:15:22] [PASSED] ABGR8888 max sizes
[10:15:22] [PASSED] ABGR8888 pitch greater than min required
[10:15:22] [PASSED] ABGR8888 pitch less than min required
[10:15:22] [PASSED] ABGR8888 Invalid width
[10:15:22] [PASSED] ABGR8888 Invalid buffer handle
[10:15:22] [PASSED] No pixel format
[10:15:22] [PASSED] ABGR8888 Width 0
[10:15:22] [PASSED] ABGR8888 Height 0
[10:15:22] [PASSED] ABGR8888 Out of bound height * pitch combination
[10:15:22] [PASSED] ABGR8888 Large buffer offset
[10:15:22] [PASSED] ABGR8888 Buffer offset for inexistent plane
[10:15:22] [PASSED] ABGR8888 Invalid flag
[10:15:22] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[10:15:22] [PASSED] ABGR8888 Valid buffer modifier
[10:15:22] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[10:15:22] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[10:15:22] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[10:15:22] [PASSED] NV12 Normal sizes
[10:15:22] [PASSED] NV12 Max sizes
[10:15:22] [PASSED] NV12 Invalid pitch
[10:15:22] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[10:15:22] [PASSED] NV12 different modifier per-plane
[10:15:22] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[10:15:22] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[10:15:22] [PASSED] NV12 Modifier for inexistent plane
[10:15:22] [PASSED] NV12 Handle for inexistent plane
[10:15:22] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[10:15:22] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[10:15:22] [PASSED] YVU420 Normal sizes
[10:15:22] [PASSED] YVU420 Max sizes
[10:15:22] [PASSED] YVU420 Invalid pitch
[10:15:22] [PASSED] YVU420 Different pitches
[10:15:22] [PASSED] YVU420 Different buffer offsets/pitches
[10:15:22] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[10:15:22] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[10:15:22] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[10:15:22] [PASSED] YVU420 Valid modifier
[10:15:22] [PASSED] YVU420 Different modifiers per plane
[10:15:22] [PASSED] YVU420 Modifier for inexistent plane
[10:15:22] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[10:15:22] [PASSED] X0L2 Normal sizes
[10:15:22] [PASSED] X0L2 Max sizes
[10:15:22] [PASSED] X0L2 Invalid pitch
[10:15:22] [PASSED] X0L2 Pitch greater than minimum required
[10:15:22] [PASSED] X0L2 Handle for inexistent plane
[10:15:22] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[10:15:22] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[10:15:22] [PASSED] X0L2 Valid modifier
[10:15:22] [PASSED] X0L2 Modifier for inexistent plane
[10:15:22] =========== [PASSED] drm_test_framebuffer_create ===========
[10:15:22] [PASSED] drm_test_framebuffer_free
[10:15:22] [PASSED] drm_test_framebuffer_init
[10:15:22] [PASSED] drm_test_framebuffer_init_bad_format
[10:15:22] [PASSED] drm_test_framebuffer_init_dev_mismatch
[10:15:22] [PASSED] drm_test_framebuffer_lookup
[10:15:22] [PASSED] drm_test_framebuffer_lookup_inexistent
[10:15:22] [PASSED] drm_test_framebuffer_modifiers_not_supported
[10:15:22] ================= [PASSED] drm_framebuffer =================
[10:15:22] ================ drm_gem_shmem (8 subtests) ================
[10:15:22] [PASSED] drm_gem_shmem_test_obj_create
[10:15:22] [PASSED] drm_gem_shmem_test_obj_create_private
[10:15:22] [PASSED] drm_gem_shmem_test_pin_pages
[10:15:22] [PASSED] drm_gem_shmem_test_vmap
[10:15:22] [PASSED] drm_gem_shmem_test_get_sg_table
[10:15:22] [PASSED] drm_gem_shmem_test_get_pages_sgt
[10:15:22] [PASSED] drm_gem_shmem_test_madvise
[10:15:22] [PASSED] drm_gem_shmem_test_purge
[10:15:22] ================== [PASSED] drm_gem_shmem ==================
[10:15:22] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[10:15:22] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[10:15:22] [PASSED] Automatic
[10:15:22] [PASSED] Full
[10:15:22] [PASSED] Limited 16:235
[10:15:22] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[10:15:22] [PASSED] drm_test_check_disable_connector
[10:15:22] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[10:15:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[10:15:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[10:15:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[10:15:22] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[10:15:22] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[10:15:22] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[10:15:22] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[10:15:22] [PASSED] drm_test_check_output_bpc_dvi
[10:15:22] [PASSED] drm_test_check_output_bpc_format_vic_1
[10:15:22] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[10:15:22] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[10:15:22] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[10:15:22] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[10:15:22] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[10:15:22] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[10:15:22] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[10:15:22] ============ drm_test_check_hdmi_color_format =============
[10:15:22] [PASSED] AUTO -> RGB
[10:15:22] [PASSED] YCBCR422 -> YUV422
[10:15:22] [PASSED] YCBCR420 -> YUV420
[10:15:22] [PASSED] YCBCR444 -> YUV444
[10:15:22] [PASSED] RGB -> RGB
[10:15:22] ======== [PASSED] drm_test_check_hdmi_color_format =========
[10:15:22] ======== drm_test_check_hdmi_color_format_420_only ========
[10:15:22] [PASSED] RGB should fail
[10:15:22] [PASSED] YUV444 should fail
[10:15:22] [PASSED] YUV422 should fail
[10:15:22] [PASSED] YUV420 should work
[10:15:22] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[10:15:22] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[10:15:22] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[10:15:22] [PASSED] drm_test_check_broadcast_rgb_value
[10:15:22] [PASSED] drm_test_check_bpc_8_value
[10:15:22] [PASSED] drm_test_check_bpc_10_value
[10:15:22] [PASSED] drm_test_check_bpc_12_value
[10:15:22] [PASSED] drm_test_check_format_value
[10:15:22] [PASSED] drm_test_check_tmds_char_value
[10:15:22] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[10:15:22] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[10:15:22] [PASSED] drm_test_check_mode_valid
[10:15:22] [PASSED] drm_test_check_mode_valid_reject
[10:15:22] [PASSED] drm_test_check_mode_valid_reject_rate
[10:15:22] [PASSED] drm_test_check_mode_valid_reject_max_clock
[10:15:22] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[10:15:22] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[10:15:22] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[10:15:22] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[10:15:22] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[10:15:22] [PASSED] drm_test_check_infoframes
[10:15:22] [PASSED] drm_test_check_reject_avi_infoframe
[10:15:22] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[10:15:22] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[10:15:22] [PASSED] drm_test_check_reject_audio_infoframe
[10:15:22] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[10:15:22] ================= drm_managed (2 subtests) =================
[10:15:22] [PASSED] drm_test_managed_release_action
[10:15:22] [PASSED] drm_test_managed_run_action
[10:15:22] =================== [PASSED] drm_managed ===================
[10:15:22] =================== drm_mm (6 subtests) ====================
[10:15:22] [PASSED] drm_test_mm_init
[10:15:22] [PASSED] drm_test_mm_debug
[10:15:22] [PASSED] drm_test_mm_align32
[10:15:22] [PASSED] drm_test_mm_align64
[10:15:22] [PASSED] drm_test_mm_lowest
[10:15:22] [PASSED] drm_test_mm_highest
[10:15:22] ===================== [PASSED] drm_mm ======================
[10:15:22] ============= drm_modes_analog_tv (5 subtests) =============
[10:15:22] [PASSED] drm_test_modes_analog_tv_mono_576i
[10:15:22] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[10:15:22] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[10:15:22] [PASSED] drm_test_modes_analog_tv_pal_576i
[10:15:22] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[10:15:22] =============== [PASSED] drm_modes_analog_tv ===============
[10:15:22] ============== drm_panic_helper (3 subtests) ===============
[10:15:22] ============= drm_test_panic_screen_user_map ==============
[10:15:22] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:15:22] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:15:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:15:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:15:22] ========= [PASSED] drm_test_panic_screen_user_map ==========
[10:15:22] ============= drm_test_panic_screen_user_page =============
[10:15:22] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:15:22] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:15:22] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:15:22] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:15:23] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:15:23] ========= [PASSED] drm_test_panic_screen_user_page =========
[10:15:23] ========== drm_test_panic_screen_user_set_pixel ===========
[10:15:23] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:15:23] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:15:23] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[10:15:23] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[10:15:23] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[10:15:23] ====== [PASSED] drm_test_panic_screen_user_set_pixel =======
[10:15:23] ================ [PASSED] drm_panic_helper =================
[10:15:23] ============== drm_plane_helper (2 subtests) ===============
[10:15:23] =============== drm_test_check_plane_state ================
[10:15:23] [PASSED] clipping_simple
[10:15:23] [PASSED] clipping_rotate_reflect
[10:15:23] [PASSED] positioning_simple
[10:15:23] [PASSED] upscaling
[10:15:23] [PASSED] downscaling
[10:15:23] [PASSED] rounding1
[10:15:23] [PASSED] rounding2
[10:15:23] [PASSED] rounding3
[10:15:23] [PASSED] rounding4
[10:15:23] =========== [PASSED] drm_test_check_plane_state ============
[10:15:23] =========== drm_test_check_invalid_plane_state ============
[10:15:23] [PASSED] positioning_invalid
[10:15:23] [PASSED] upscaling_invalid
[10:15:23] [PASSED] downscaling_invalid
[10:15:23] ======= [PASSED] drm_test_check_invalid_plane_state ========
[10:15:23] ================ [PASSED] drm_plane_helper =================
[10:15:23] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[10:15:23] ====== drm_test_connector_helper_tv_get_modes_check =======
[10:15:23] [PASSED] None
[10:15:23] [PASSED] PAL
[10:15:23] [PASSED] NTSC
[10:15:23] [PASSED] Both, NTSC Default
[10:15:23] [PASSED] Both, PAL Default
[10:15:23] [PASSED] Both, NTSC Default, with PAL on command-line
[10:15:23] [PASSED] Both, PAL Default, with NTSC on command-line
[10:15:23] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[10:15:23] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[10:15:23] ================== drm_rect (9 subtests) ===================
[10:15:23] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[10:15:23] [PASSED] drm_test_rect_clip_scaled_not_clipped
[10:15:23] [PASSED] drm_test_rect_clip_scaled_clipped
[10:15:23] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[10:15:23] ================= drm_test_rect_intersect =================
[10:15:23] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[10:15:23] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[10:15:23] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[10:15:23] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[10:15:23] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[10:15:23] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[10:15:23] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[10:15:23] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[10:15:23] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[10:15:23] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[10:15:23] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[10:15:23] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[10:15:23] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[10:15:23] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[10:15:23] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[10:15:23] ============= [PASSED] drm_test_rect_intersect =============
[10:15:23] ================ drm_test_rect_calc_hscale ================
[10:15:23] [PASSED] normal use
[10:15:23] [PASSED] out of max range
[10:15:23] [PASSED] out of min range
[10:15:23] [PASSED] zero dst
[10:15:23] [PASSED] negative src
[10:15:23] [PASSED] negative dst
[10:15:23] ============ [PASSED] drm_test_rect_calc_hscale ============
[10:15:23] ================ drm_test_rect_calc_vscale ================
[10:15:23] [PASSED] normal use
[10:15:23] [PASSED] out of max range
[10:15:23] [PASSED] out of min range
[10:15:23] [PASSED] zero dst
[10:15:23] [PASSED] negative src
[10:15:23] [PASSED] negative dst
[10:15:23] ============ [PASSED] drm_test_rect_calc_vscale ============
[10:15:23] ================== drm_test_rect_rotate ===================
[10:15:23] [PASSED] reflect-x
[10:15:23] [PASSED] reflect-y
[10:15:23] [PASSED] rotate-0
[10:15:23] [PASSED] rotate-90
[10:15:23] [PASSED] rotate-180
[10:15:23] [PASSED] rotate-270
[10:15:23] ============== [PASSED] drm_test_rect_rotate ===============
[10:15:23] ================ drm_test_rect_rotate_inv =================
[10:15:23] [PASSED] reflect-x
[10:15:23] [PASSED] reflect-y
[10:15:23] [PASSED] rotate-0
[10:15:23] [PASSED] rotate-90
[10:15:23] [PASSED] rotate-180
[10:15:23] [PASSED] rotate-270
[10:15:23] ============ [PASSED] drm_test_rect_rotate_inv =============
[10:15:23] ==================== [PASSED] drm_rect =====================
[10:15:23] ============ drm_sysfb_modeset_test (1 subtest) ============
[10:15:23] ============ drm_test_sysfb_build_fourcc_list =============
[10:15:23] [PASSED] no native formats
[10:15:23] [PASSED] XRGB8888 as native format
[10:15:23] [PASSED] remove duplicates
[10:15:23] [PASSED] convert alpha formats
[10:15:23] [PASSED] random formats
[10:15:23] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[10:15:23] ============= [PASSED] drm_sysfb_modeset_test ==============
[10:15:23] ================== drm_fixp (2 subtests) ===================
[10:15:23] [PASSED] drm_test_int2fixp
[10:15:23] [PASSED] drm_test_sm2fixp
[10:15:23] ==================== [PASSED] drm_fixp =====================
[10:15:23] ============================================================
[10:15:23] Testing complete. Ran 667 tests: passed: 667
[10:15:23] Elapsed time: 27.394s total, 1.854s configuring, 25.070s building, 0.417s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[10:15:23] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:15:25] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:15:35] Starting KUnit Kernel (1/1)...
[10:15:35] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:15:35] ================= ttm_device (5 subtests) ==================
[10:15:35] [PASSED] ttm_device_init_basic
[10:15:35] [PASSED] ttm_device_init_multiple
[10:15:35] [PASSED] ttm_device_fini_basic
[10:15:35] [PASSED] ttm_device_init_no_vma_man
[10:15:35] ================== ttm_device_init_pools ==================
[10:15:35] [PASSED] No DMA allocations, no DMA32 required
[10:15:35] [PASSED] DMA allocations, DMA32 required
[10:15:35] [PASSED] No DMA allocations, DMA32 required
[10:15:35] [PASSED] DMA allocations, no DMA32 required
[10:15:35] ============== [PASSED] ttm_device_init_pools ==============
[10:15:35] =================== [PASSED] ttm_device ====================
[10:15:35] ================== ttm_pool (8 subtests) ===================
[10:15:35] ================== ttm_pool_alloc_basic ===================
[10:15:35] [PASSED] One page
[10:15:35] [PASSED] More than one page
[10:15:35] [PASSED] Above the allocation limit
[10:15:35] [PASSED] One page, with coherent DMA mappings enabled
[10:15:35] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:15:35] ============== [PASSED] ttm_pool_alloc_basic ===============
[10:15:35] ============== ttm_pool_alloc_basic_dma_addr ==============
[10:15:35] [PASSED] One page
[10:15:35] [PASSED] More than one page
[10:15:35] [PASSED] Above the allocation limit
[10:15:35] [PASSED] One page, with coherent DMA mappings enabled
[10:15:35] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:15:35] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[10:15:35] [PASSED] ttm_pool_alloc_order_caching_match
[10:15:35] [PASSED] ttm_pool_alloc_caching_mismatch
[10:15:35] [PASSED] ttm_pool_alloc_order_mismatch
[10:15:35] [PASSED] ttm_pool_free_dma_alloc
[10:15:35] [PASSED] ttm_pool_free_no_dma_alloc
[10:15:35] [PASSED] ttm_pool_fini_basic
[10:15:35] ==================== [PASSED] ttm_pool =====================
[10:15:35] ================ ttm_resource (8 subtests) =================
[10:15:35] ================= ttm_resource_init_basic =================
[10:15:35] [PASSED] Init resource in TTM_PL_SYSTEM
[10:15:35] [PASSED] Init resource in TTM_PL_VRAM
[10:15:35] [PASSED] Init resource in a private placement
[10:15:35] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[10:15:35] ============= [PASSED] ttm_resource_init_basic =============
[10:15:35] [PASSED] ttm_resource_init_pinned
[10:15:35] [PASSED] ttm_resource_fini_basic
[10:15:35] [PASSED] ttm_resource_manager_init_basic
[10:15:35] [PASSED] ttm_resource_manager_usage_basic
[10:15:35] [PASSED] ttm_resource_manager_set_used_basic
[10:15:35] [PASSED] ttm_sys_man_alloc_basic
[10:15:35] [PASSED] ttm_sys_man_free_basic
[10:15:35] ================== [PASSED] ttm_resource ===================
[10:15:35] =================== ttm_tt (15 subtests) ===================
[10:15:35] ==================== ttm_tt_init_basic ====================
[10:15:35] [PASSED] Page-aligned size
[10:15:35] [PASSED] Extra pages requested
[10:15:35] ================ [PASSED] ttm_tt_init_basic ================
[10:15:35] [PASSED] ttm_tt_init_misaligned
[10:15:35] [PASSED] ttm_tt_fini_basic
[10:15:35] [PASSED] ttm_tt_fini_sg
[10:15:35] [PASSED] ttm_tt_fini_shmem
[10:15:35] [PASSED] ttm_tt_create_basic
[10:15:35] [PASSED] ttm_tt_create_invalid_bo_type
[10:15:35] [PASSED] ttm_tt_create_ttm_exists
[10:15:35] [PASSED] ttm_tt_create_failed
[10:15:35] [PASSED] ttm_tt_destroy_basic
[10:15:35] [PASSED] ttm_tt_populate_null_ttm
[10:15:35] [PASSED] ttm_tt_populate_populated_ttm
[10:15:35] [PASSED] ttm_tt_unpopulate_basic
[10:15:35] [PASSED] ttm_tt_unpopulate_empty_ttm
[10:15:35] [PASSED] ttm_tt_swapin_basic
[10:15:35] ===================== [PASSED] ttm_tt ======================
[10:15:35] =================== ttm_bo (14 subtests) ===================
[10:15:35] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[10:15:35] [PASSED] Cannot be interrupted and sleeps
[10:15:35] [PASSED] Cannot be interrupted, locks straight away
[10:15:35] [PASSED] Can be interrupted, sleeps
[10:15:35] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[10:15:35] [PASSED] ttm_bo_reserve_locked_no_sleep
[10:15:35] [PASSED] ttm_bo_reserve_no_wait_ticket
[10:15:35] [PASSED] ttm_bo_reserve_double_resv
[10:15:35] [PASSED] ttm_bo_reserve_interrupted
[10:15:35] [PASSED] ttm_bo_reserve_deadlock
[10:15:35] [PASSED] ttm_bo_unreserve_basic
[10:15:35] [PASSED] ttm_bo_unreserve_pinned
[10:15:35] [PASSED] ttm_bo_unreserve_bulk
[10:15:35] [PASSED] ttm_bo_fini_basic
[10:15:35] [PASSED] ttm_bo_fini_shared_resv
[10:15:35] [PASSED] ttm_bo_pin_basic
[10:15:35] [PASSED] ttm_bo_pin_unpin_resource
[10:15:35] [PASSED] ttm_bo_multiple_pin_one_unpin
[10:15:35] ===================== [PASSED] ttm_bo ======================
[10:15:35] ============== ttm_bo_validate (22 subtests) ===============
[10:15:35] ============== ttm_bo_init_reserved_sys_man ===============
[10:15:35] [PASSED] Buffer object for userspace
[10:15:35] [PASSED] Kernel buffer object
[10:15:35] [PASSED] Shared buffer object
[10:15:35] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[10:15:35] ============== ttm_bo_init_reserved_mock_man ==============
[10:15:35] [PASSED] Buffer object for userspace
[10:15:35] [PASSED] Kernel buffer object
[10:15:35] [PASSED] Shared buffer object
[10:15:35] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[10:15:35] [PASSED] ttm_bo_init_reserved_resv
[10:15:35] ================== ttm_bo_validate_basic ==================
[10:15:35] [PASSED] Buffer object for userspace
[10:15:35] [PASSED] Kernel buffer object
[10:15:35] [PASSED] Shared buffer object
[10:15:35] ============== [PASSED] ttm_bo_validate_basic ==============
[10:15:35] [PASSED] ttm_bo_validate_invalid_placement
[10:15:35] ============= ttm_bo_validate_same_placement ==============
[10:15:35] [PASSED] System manager
[10:15:35] [PASSED] VRAM manager
[10:15:35] ========= [PASSED] ttm_bo_validate_same_placement ==========
[10:15:35] [PASSED] ttm_bo_validate_failed_alloc
[10:15:35] [PASSED] ttm_bo_validate_pinned
[10:15:35] [PASSED] ttm_bo_validate_busy_placement
[10:15:35] ================ ttm_bo_validate_multihop =================
[10:15:35] [PASSED] Buffer object for userspace
[10:15:35] [PASSED] Kernel buffer object
[10:15:35] [PASSED] Shared buffer object
[10:15:35] ============ [PASSED] ttm_bo_validate_multihop =============
[10:15:35] ========== ttm_bo_validate_no_placement_signaled ==========
[10:15:35] [PASSED] Buffer object in system domain, no page vector
[10:15:35] [PASSED] Buffer object in system domain with an existing page vector
[10:15:35] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[10:15:35] ======== ttm_bo_validate_no_placement_not_signaled ========
[10:15:35] [PASSED] Buffer object for userspace
[10:15:35] [PASSED] Kernel buffer object
[10:15:35] [PASSED] Shared buffer object
[10:15:35] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[10:15:35] [PASSED] ttm_bo_validate_move_fence_signaled
[10:15:35] ========= ttm_bo_validate_move_fence_not_signaled =========
[10:15:35] [PASSED] Waits for GPU
[10:15:35] [PASSED] Tries to lock straight away
[10:15:35] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[10:15:35] [PASSED] ttm_bo_validate_swapout
[10:15:35] [PASSED] ttm_bo_validate_happy_evict
[10:15:35] [PASSED] ttm_bo_validate_all_pinned_evict
[10:15:35] [PASSED] ttm_bo_validate_allowed_only_evict
[10:15:35] [PASSED] ttm_bo_validate_deleted_evict
[10:15:35] [PASSED] ttm_bo_validate_busy_domain_evict
[10:15:35] [PASSED] ttm_bo_validate_evict_gutting
[10:15:35] [PASSED] ttm_bo_validate_recrusive_evict
[10:15:35] ================= [PASSED] ttm_bo_validate =================
[10:15:35] ============================================================
[10:15:35] Testing complete. Ran 102 tests: passed: 102
[10:15:35] Elapsed time: 12.293s total, 1.895s configuring, 10.184s building, 0.180s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[10:15:35] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:15:37] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[10:15:46] Starting KUnit Kernel (1/1)...
[10:15:46] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:15:46] =============== dma-buf-fence (12 subtests) ================
[10:15:46] [PASSED] test_sanitycheck
[10:15:46] [PASSED] test_signaling
[10:15:46] [PASSED] test_add_callback
[10:15:46] [PASSED] test_late_add_callback
[10:15:46] [PASSED] test_rm_callback
[10:15:46] [PASSED] test_late_rm_callback
[10:15:46] [PASSED] test_status
[10:15:46] [PASSED] test_error
[10:15:46] [PASSED] test_wait
[10:15:46] [PASSED] test_wait_timeout
[10:15:46] [PASSED] test_stub
[10:15:46] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[10:15:46] ================== [PASSED] dma-buf-fence ==================
[10:15:46] ============ dma-buf-fence-chain (11 subtests) =============
[10:15:46] [PASSED] test_sanitycheck
[10:15:46] [PASSED] test_find_seqno
[10:15:46] [PASSED] test_find_signaled
[10:15:46] [PASSED] test_find_out_of_order
[10:15:51] [PASSED] test_find_gap
[10:15:51] [PASSED] test_find_race
[10:15:51] [PASSED] test_signal_forward
[10:15:51] [PASSED] test_signal_backward
[10:15:51] [PASSED] test_wait_forward
[10:15:51] [PASSED] test_wait_backward
[10:15:51] [PASSED] test_wait_random
[10:15:51] =============== [PASSED] dma-buf-fence-chain ===============
[10:15:51] ============ dma-buf-fence-unwrap (10 subtests) ============
[10:15:51] [PASSED] test_sanitycheck
[10:15:51] [PASSED] test_unwrap_array
[10:15:51] [PASSED] test_unwrap_chain
[10:15:51] [PASSED] test_unwrap_chain_array
[10:15:51] [PASSED] test_unwrap_merge
[10:15:51] [PASSED] test_unwrap_merge_duplicate
[10:15:51] [PASSED] test_unwrap_merge_seqno
[10:15:51] [PASSED] test_unwrap_merge_order
[10:15:51] [PASSED] test_unwrap_merge_complex
[10:15:51] [PASSED] test_unwrap_merge_complex_seqno
[10:15:51] ============== [PASSED] dma-buf-fence-unwrap ===============
[10:15:51] ================ dma-buf-resv (5 subtests) =================
[10:15:51] [PASSED] test_sanitycheck
[10:15:51] ===================== test_signaling ======================
[10:15:51] [PASSED] kernel
[10:15:51] [PASSED] write
[10:15:51] [PASSED] read
[10:15:51] [PASSED] bookkeep
[10:15:51] ================= [PASSED] test_signaling ==================
[10:15:51] ====================== test_for_each ======================
[10:15:51] [PASSED] kernel
[10:15:51] [PASSED] write
[10:15:51] [PASSED] read
[10:15:51] [PASSED] bookkeep
[10:15:51] ================== [PASSED] test_for_each ==================
[10:15:51] ================= test_for_each_unlocked ==================
[10:15:51] [PASSED] kernel
[10:15:51] [PASSED] write
[10:15:51] [PASSED] read
[10:15:51] [PASSED] bookkeep
[10:15:51] ============= [PASSED] test_for_each_unlocked ==============
[10:15:51] ===================== test_get_fences =====================
[10:15:51] [PASSED] kernel
[10:15:51] [PASSED] write
[10:15:51] [PASSED] read
[10:15:51] [PASSED] bookkeep
[10:15:51] ================= [PASSED] test_get_fences =================
[10:15:51] ================== [PASSED] dma-buf-resv ===================
[10:15:51] ============================================================
[10:15:51] Testing complete. Ran 50 tests: passed: 49, skipped: 1
[10:15:51] Elapsed time: 15.904s total, 1.875s configuring, 8.707s building, 5.280s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
` (2 preceding siblings ...)
2026-10-09 10:15 ` ✓ CI.KUnit: success for series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Patchwork
@ 2026-10-09 10:17 ` sashiko-bot
2026-10-09 11:13 ` ✓ Xe.CI.BAT: success for series starting with [v4,1/3] " Patchwork
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-10-09 10:17 UTC (permalink / raw)
To: Arunpravin Paneer Selvam; +Cc: intel-xe, intel-gfx, dri-devel
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] gpu/buddy: block_incompatible() incorrectly rejects mixed subtrees during CLEAR allocations
- [High] gpu/buddy: range allocator strict pass skips valid subtrees due to stale split block clear bits
--
commit 19316e455db24fbfaa4dda04f7d988cae7073da7
Author: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
This commit introduces a two-pass range search in the buddy allocator's
range-biased allocation path. The strict pass uses block_incompatible() to
reject opposite-class blocks, while the fallback pass relaxes this constraint
when opposite-class space is the only option remaining.
> diff --git a/drivers/gpu/buddy.c b/drivers/gpu/buddy.c
> index 2f2aaadafe351..6566bad4fef15 100644
> --- a/drivers/gpu/buddy.c
> +++ b/drivers/gpu/buddy.c
> @@ -1240,11 +1240,19 @@ static void __gpu_buddy_undo_splits(struct gpu_buddy *mm,
> }
> }
>
> +static bool block_incompatible(struct gpu_buddy_block *block, unsigned int flags)
> +{
> + bool needs_clear = flags & GPU_BUDDY_CLEAR_ALLOCATION;
> +
> + return needs_clear != gpu_buddy_block_is_clear(block);
> +}
[Severity: High]
Does this evaluation correctly handle intermediate SPLIT blocks?
A SPLIT block's GPU_BUDDY_HEADER_CLEAR bit retains the value from when it
was last FREE and is not updated after splitting. If a root or intermediate
block was dirty when split, its clear bit remains 0 even if it now contains
free clear children.
For a CLEAR allocation, will this cause the strict pass to read a stale 0 bit
and incorrectly skip the entire valid subtree?
Additionally, are mixed subtrees inadvertently rejected during CLEAR
allocations here?
Since mixed subtrees contain both clear and dirty pages, their is_clear
state evaluates to false. Consequently, block_incompatible() will evaluate
mixed subtrees as incompatible, causing the strict pass to skip them entirely
unless the entire root block is fully clear.
> static struct gpu_buddy_block *
> __alloc_range_bias(struct gpu_buddy *mm,
> u64 start, u64 end,
> unsigned int order,
> - unsigned long flags)
> + unsigned long flags,
> + bool fallback)
> {
[ ... ]
> @@ -1315,38 +1324,8 @@ __alloc_range_bias(struct gpu_buddy *mm,
> goto err_undo;
> }
>
> - /*
> - * Top-down is a strict address-placement policy, so when it is
> - * requested we ignore clear steering and simply descend the
> - * right (higher-address) child first. Only a non-top-down clear
> - * request biases the descent towards clear/has_clear subtrees.
> - */
> - if ((flags & GPU_BUDDY_CLEAR_ALLOCATION) &&
> - !(flags & GPU_BUDDY_TOPDOWN_ALLOCATION)) {
> - struct gpu_buddy_block *prefer;
> -
> - if (gpu_buddy_block_is_clear(block->right))
> - prefer = block->right;
> - else if (gpu_buddy_block_is_clear(block->left))
> - prefer = block->left;
> - else if (block->right->has_clear)
> - prefer = block->right;
> - else if (block->left->has_clear)
> - prefer = block->left;
> - else
> - prefer = block->right;
> -
> - if (prefer == block->right) {
> - list_add(&block->left->tmp_link, &dfs);
> - list_add(&block->right->tmp_link, &dfs);
> - } else {
> - list_add(&block->right->tmp_link, &dfs);
> - list_add(&block->left->tmp_link, &dfs);
> - }
> - } else {
> - list_add(&block->left->tmp_link, &dfs);
> - list_add(&block->right->tmp_link, &dfs);
> - }
> + list_add(&block->left->tmp_link, &dfs);
> + list_add(&block->right->tmp_link, &dfs);
> } while (1);
[Severity: High]
Without the has_clear steering logic, how does the fallback pass handle
CLEAR allocations when descending?
If the strict pass fails (as described above for mixed subtrees), the
allocator executes the fallback pass which ignores class preferences.
Because the fallback pass now blindly traverses top-down (right child first)
after the removal of the has_clear steering logic, could a CLEAR range
allocation incorrectly allocate and return dirty blocks if they happen to
be right-most?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261009100546.1103622-1-arunpravin.paneerselvam@amd.com?part=1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 2/3] gpu/buddy: add range-restricted contiguous allocation fallback
2026-10-09 10:05 ` [PATCH v4 2/3] gpu/buddy: add range-restricted contiguous allocation fallback Arunpravin Paneer Selvam
@ 2026-10-09 10:23 ` sashiko-bot
0 siblings, 0 replies; 10+ messages in thread
From: sashiko-bot @ 2026-10-09 10:23 UTC (permalink / raw)
To: Arunpravin Paneer Selvam; +Cc: intel-xe, dri-devel, intel-gfx
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] mm: gpu/buddy try-harder fails range allocation when free space exceeds range_end
- [High] mm: gpu/buddy try-harder misses higher-order blocks for range allocations
--
commit 3089b8dadc6718a57b0162914961a76a654e9d6b
Author: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
Subject: gpu/buddy: add range-restricted contiguous allocation fallback
This commit adds support for range-restricted contiguous allocation
fallback in the GPU buddy allocator. It extends __alloc_contig_try_harder
to confine candidate placements to a specified [range_start, range_end)
window.
> diff --git a/drivers/gpu/buddy.c b/drivers/gpu/buddy.c
> index 6566bad4fef15..1f648bcfce574 100644
> --- a/drivers/gpu/buddy.c
> +++ b/drivers/gpu/buddy.c
> @@ -1682,26 +1682,14 @@ static int __gpu_buddy_alloc_range(struct gpu_buddy *mm,
[ ... ]
> static int __alloc_contig_try_harder(struct gpu_buddy *mm,
> + u64 range_start, u64 range_end,
> u64 size,
> u64 min_block_size,
> unsigned long flags,
> struct list_head *blocks)
> {
[Severity: High]
Does the try-harder fallback miss higher-order blocks for range allocations?
When this function is called as a fallback, it derives an order based on the
unrounded size and searches exclusively in mm->free_tree[order]:
modify_size = rounddown_pow_of_two(size);
pages = modify_size >> ilog2(mm->chunk_size);
order = fls(pages) - 1;
...
root = &mm->free_tree[order];
if (RB_EMPTY_ROOT(root))
return -ENOSPC;
However, for range contiguous allocations, the normal allocation pass rounds up
the requested size. If a higher-order block intersects the range but cannot
fit the rounded-up size within the bounds, it gets skipped and is not split.
If this occurs, the valid contiguous space remains in a higher-order tree.
Since the try-harder fallback only checks the single derived order's tree,
will it fail immediately with -ENOSPC, missing the free space that resides in
the unsplit, higher-order blocks?
> - u64 rhs_offset, lhs_offset, filled;
> + u64 rhs_offset, lhs_offset, filled, aligned;
> struct gpu_buddy_block *block;
> struct rb_root *root;
> struct rb_node *iter;
> @@ -1726,25 +1714,36 @@ static int __alloc_contig_try_harder(struct gpu_buddy *mm,
>
> rhs_offset = gpu_buddy_block_offset(block);
>
> + if (rhs_offset >= range_end) {
> + iter = rb_prev(iter);
> + continue;
> + }
> + if (rhs_offset < range_start)
> + break;
> +
> /* Allocate blocks traversing RHS */
> err = __gpu_buddy_alloc_range(mm, rhs_offset, size,
> flags, &filled, blocks);
> if (err && err != -ENOSPC)
> return err;
> - if (!err && IS_ALIGNED(rhs_offset, min_block_size))
> + if (!err && IS_ALIGNED(rhs_offset, min_block_size) &&
> + rhs_offset >= range_start && rhs_offset + size <= range_end)
> return 0;
> if (!err) {
> /* Allocate the unaligned RHS offset using round_down */
> gpu_buddy_free_list_internal(mm, blocks);
> - err = __alloc_contig_aligned_retry(mm, rhs_offset,
> - size,
> - min_block_size,
> - flags, blocks);
> - if (!err)
> - return 0;
> - if (err != -ENOSPC) {
> - gpu_buddy_free_list_internal(mm, blocks);
> - return err;
> +
> + aligned = round_down(rhs_offset, min_block_size);
> + if (aligned >= range_start &&
> + aligned + size <= range_end) {
> + err = __gpu_buddy_alloc_range(mm, aligned, size,
> + flags, NULL, blocks);
> + if (!err)
> + return 0;
> + if (err != -ENOSPC) {
> + gpu_buddy_free_list_internal(mm, blocks);
> + return err;
> + }
> }
> goto next;
> }
[Severity: High]
Does this bypass the left-shift fallback when free space exceeds range_end?
__alloc_contig_try_harder() attempts to place a contiguous block by calling
__gpu_buddy_alloc_range() without passing range_end.
If the contiguous free space extends beyond range_end, this allocation fully
succeeds and returns err == 0.
Because the allocation succeeded, the condition aligned + size <= range_end
will evaluate to false if the memory exceeds the requested range, and the code
hits goto next:
if (aligned >= range_start &&
aligned + size <= range_end) {
...
}
goto next;
}
This completely skips the lhs_offset fallback path that normally follows:
if (size - filled > rhs_offset)
goto next;
lhs_offset = rhs_offset - (size - filled);
...
Had the allocator been bounded by range_end, it would have returned -ENOSPC
with filled set, triggering the left-shift fallback to perfectly slide the
allocation into the requested range.
Will the presence of extra free memory outside the range cause valid contiguous
allocations to spuriously fail?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261009100546.1103622-1-arunpravin.paneerselvam@amd.com?part=2
^ permalink raw reply [flat|nested] 10+ messages in thread
* ✓ Xe.CI.BAT: success for series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
` (3 preceding siblings ...)
2026-10-09 10:17 ` [PATCH v4 1/3] " sashiko-bot
@ 2026-10-09 11:13 ` Patchwork
2026-10-09 13:35 ` ✓ Xe.CI.FULL: " Patchwork
2026-10-13 14:31 ` [PATCH v4 1/3] " Arunpravin Paneer Selvam
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2026-10-09 11:13 UTC (permalink / raw)
To: Arunpravin Paneer Selvam; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 926 bytes --]
== Series Details ==
Series: series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
URL : https://patchwork.freedesktop.org/series/175825/
State : success
== Summary ==
CI Bug Log - changes from xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5_BAT -> xe-pw-175825v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (14 -> 14)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5 -> xe-pw-175825v1
IGT_9138: 9138
xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5: 8d1ca30f98be65f4d967bd5a84e3030e3317f6b5
xe-pw-175825v1: 175825v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/index.html
[-- Attachment #2: Type: text/html, Size: 1474 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* ✓ Xe.CI.FULL: success for series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
` (4 preceding siblings ...)
2026-10-09 11:13 ` ✓ Xe.CI.BAT: success for series starting with [v4,1/3] " Patchwork
@ 2026-10-09 13:35 ` Patchwork
2026-10-13 14:31 ` [PATCH v4 1/3] " Arunpravin Paneer Selvam
6 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2026-10-09 13:35 UTC (permalink / raw)
To: Arunpravin Paneer Selvam; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 73693 bytes --]
== Series Details ==
Series: series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
URL : https://patchwork.freedesktop.org/series/175825/
State : success
== Summary ==
CI Bug Log - changes from xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5_FULL -> xe-pw-175825v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (3 -> 3)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-175825v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-ptl: [PASS][1] -> [FAIL][2] ([Intel XE#6078]) +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-3/igt@kms_async_flips@alternate-sync-async-flip.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_async_flips@async-flip-suspend-resume@pipe-a-edp-1:
- shard-ptl: [PASS][3] -> [ABORT][4] ([Intel XE#9362]) +4 other tests abort
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-5/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-edp-1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-edp-1.html
* igt@kms_async_flips@async-flip-suspend-resume@pipe-b-dp-2:
- shard-bmg: [PASS][5] -> [DMESG-WARN][6] ([Intel XE#9365])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-b-dp-2.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_async_flips@async-flip-suspend-resume@pipe-b-dp-2.html
* igt@kms_atomic@atomic-plane-damage:
- shard-bmg: [PASS][7] -> [INCOMPLETE][8] ([Intel XE#6819])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-1/igt@kms_atomic@atomic-plane-damage.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-3/igt@kms_atomic@atomic-plane-damage.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-ptl: NOTRUN -> [SKIP][9] ([Intel XE#5901])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-5/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#3658] / [Intel XE#7360])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@linear-16bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][11] ([Intel XE#1407]) +1 other test skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_big_fb@linear-16bpp-rotate-270.html
* igt@kms_big_fb@linear-64bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2327]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_big_fb@linear-64bpp-rotate-270.html
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#7059] / [Intel XE#7085])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2328] / [Intel XE#7367])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-ptl: NOTRUN -> [SKIP][15] ([Intel XE#5851])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
- shard-lnl: NOTRUN -> [SKIP][16] ([Intel XE#1124]) +4 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#1428] / [Intel XE#7387])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
- shard-ptl: NOTRUN -> [SKIP][18] ([Intel XE#5808]) +6 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#1124]) +4 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p:
- shard-ptl: NOTRUN -> [SKIP][20] ([Intel XE#7679])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#8365]) +1 other test skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p.html
* igt@kms_bw@linear-tiling-1-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#367]) +1 other test skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_bw@linear-tiling-1-displays-target-2560x1440p.html
* igt@kms_bw@linear-tiling-4-displays-target-2560x1440p:
- shard-ptl: NOTRUN -> [SKIP][23] ([Intel XE#367]) +1 other test skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_bw@linear-tiling-4-displays-target-2560x1440p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc:
- shard-ptl: NOTRUN -> [SKIP][24] ([Intel XE#5822]) +9 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-c-edp-1:
- shard-ptl: NOTRUN -> [SKIP][25] ([Intel XE#5823] / [Intel XE#6918]) +9 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-c-edp-1.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-b-dp-2:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2652]) +7 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-b-dp-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-c-edp-1:
- shard-ptl: [PASS][27] -> [ABORT][28] ([Intel XE#7084] / [Intel XE#9364])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-c-edp-1.html
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-c-edp-1.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2887]) +9 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#2887]) +8 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-4/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-ptl: NOTRUN -> [SKIP][31] ([Intel XE#7008])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_chamelium_audio@dp-audio:
- shard-ptl: NOTRUN -> [SKIP][32] ([Intel XE#2252]) +4 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_chamelium_audio@dp-audio.html
* igt@kms_chamelium_audio@dp-audio-edid:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#373]) +2 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_chamelium_audio@dp-audio-edid.html
* igt@kms_chamelium_color@ctm-max:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#2325] / [Intel XE#7358])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_chamelium_color@ctm-max.html
* igt@kms_chamelium_color@degamma:
- shard-ptl: NOTRUN -> [SKIP][35] ([Intel XE#5824])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_chamelium_color@degamma.html
* igt@kms_chamelium_color_pipeline@plane-ctm3x4:
- shard-lnl: NOTRUN -> [SKIP][36] ([Intel XE#7358]) +1 other test skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_chamelium_color_pipeline@plane-ctm3x4.html
* igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709:
- shard-ptl: NOTRUN -> [SKIP][37] ([Intel XE#8391]) +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt709.html
* igt@kms_chamelium_color_pipeline@plane-lut3d-green-only:
- shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#7358]) +1 other test skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html
* igt@kms_chamelium_edid@dp-edid-resolution-list:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#2252]) +6 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_chamelium_edid@dp-edid-resolution-list.html
* igt@kms_color_pipeline@plane-lut1d-post-ctm3x4@pipe-b-plane-4:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#6969]) +15 other tests skip
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_color_pipeline@plane-lut1d-post-ctm3x4@pipe-b-plane-4.html
* igt@kms_content_protection@legacy-hdcp14:
- shard-ptl: NOTRUN -> [SKIP][41] ([Intel XE#7642]) +2 other tests skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_content_protection@legacy-hdcp14.html
* igt@kms_content_protection@legacy@pipe-a-dp-1:
- shard-bmg: NOTRUN -> [FAIL][42] ([Intel XE#3304])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-7/igt@kms_content_protection@legacy@pipe-a-dp-1.html
* igt@kms_content_protection@suspend-resume:
- shard-bmg: NOTRUN -> [FAIL][43] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +3 other tests fail
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_content_protection@suspend-resume.html
* igt@kms_content_protection@uevent:
- shard-lnl: NOTRUN -> [SKIP][44] ([Intel XE#7642])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_content_protection@uevent.html
* igt@kms_content_protection@uevent-hdcp14@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][45] ([Intel XE#6707] / [Intel XE#7439])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_content_protection@uevent-hdcp14@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-offscreen-32x32:
- shard-lnl: NOTRUN -> [SKIP][46] ([Intel XE#1424]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_cursor_crc@cursor-offscreen-32x32.html
* igt@kms_cursor_crc@cursor-offscreen-512x170:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2321] / [Intel XE#7355]) +2 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_cursor_crc@cursor-offscreen-512x170.html
* igt@kms_cursor_crc@cursor-random-512x170:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#2321] / [Intel XE#7355])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_cursor_crc@cursor-random-512x170.html
* igt@kms_cursor_crc@cursor-rapid-movement-128x42:
- shard-ptl: NOTRUN -> [SKIP][49] ([Intel XE#5900]) +2 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html
* igt@kms_cursor_crc@cursor-sliding-256x85:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#2320]) +1 other test skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_cursor_crc@cursor-sliding-256x85.html
* igt@kms_cursor_crc@cursor-suspend:
- shard-ptl: [PASS][51] -> [ABORT][52] ([Intel XE#9375]) +1 other test abort
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-5/igt@kms_cursor_crc@cursor-suspend.html
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-8/igt@kms_cursor_crc@cursor-suspend.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-ptl: NOTRUN -> [SKIP][53] ([Intel XE#5962]) +1 other test skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#309] / [Intel XE#7343])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#323] / [Intel XE#6035])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#1340] / [Intel XE#7435])
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3.html
* igt@kms_dp_link_training@non-uhbr-sst-direct-train:
- shard-ptl: NOTRUN -> [SKIP][57] ([Intel XE#9534])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_dp_link_training@non-uhbr-sst-direct-train.html
* igt@kms_dp_link_training@non-uhbr-sst-tbtalt-train:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#9539])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_dp_link_training@non-uhbr-sst-tbtalt-train.html
* igt@kms_dp_link_training@uhbr-mst-tbtalt-train:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#9531])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_dp_link_training@uhbr-mst-tbtalt-train.html
* igt@kms_dp_link_training@uhbr-sst-tbtalt-train:
- shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#9537])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@kms_dp_link_training@uhbr-sst-tbtalt-train.html
* igt@kms_dsc@dsc-basic:
- shard-ptl: NOTRUN -> [SKIP][61] ([Intel XE#5907]) +3 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_dsc@dsc-basic.html
* igt@kms_dsc@dsc-with-bpc:
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#8265])
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_dsc@dsc-with-bpc.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#8265]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_feature_discovery@chamelium:
- shard-lnl: NOTRUN -> [SKIP][64] ([Intel XE#701] / [Intel XE#7359])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@display-2x:
- shard-ptl: NOTRUN -> [SKIP][65] ([Intel XE#7344])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_feature_discovery@display-2x.html
* igt@kms_feature_discovery@psr2:
- shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#2374] / [Intel XE#6128])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-absolute-wf_vblank-interruptible:
- shard-ptl: NOTRUN -> [SKIP][67] ([Intel XE#2316]) +4 other tests skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible:
- shard-lnl: NOTRUN -> [SKIP][68] ([Intel XE#1421]) +3 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-lnl: [PASS][69] -> [FAIL][70] ([Intel XE#301]) +1 other test fail
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-ptl: NOTRUN -> [SKIP][71] ([Intel XE#7178]) +1 other test skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#7178] / [Intel XE#7351]) +4 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][73] ([Intel XE#1397] / [Intel XE#7385] / [Intel XE#9144]) +1 other test skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling:
- shard-ptl: NOTRUN -> [SKIP][74] ([Intel XE#5828]) +1 other test skip
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-16bpp-linear-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][75] ([Intel XE#1397] / [Intel XE#1745] / [Intel XE#7385] / [Intel XE#9144]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling.html
* igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x:
- shard-ptl: NOTRUN -> [SKIP][76] ([Intel XE#7179])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render:
- shard-ptl: NOTRUN -> [SKIP][77] ([Intel XE#5800] / [Intel XE#6312]) +5 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][78] ([Intel XE#6312] / [Intel XE#651]) +3 other tests skip
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-pri-indfb-draw-blt:
- shard-ptl: NOTRUN -> [SKIP][79] ([Intel XE#6312]) +7 other tests skip
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][80] ([Intel XE#4141]) +5 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][81] ([Intel XE#656] / [Intel XE#7905]) +15 other tests skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc:
- shard-ptl: NOTRUN -> [SKIP][82] ([Intel XE#7061] / [Intel XE#7356]) +3 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-move:
- shard-lnl: NOTRUN -> [SKIP][83] ([Intel XE#6312]) +5 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][84] ([Intel XE#2311]) +39 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrshdr-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbchdr-rgb565-draw-mmap-wc:
- shard-ptl: NOTRUN -> [SKIP][85] ([Intel XE#7865]) +20 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_frontbuffer_tracking@fbchdr-rgb565-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#2313]) +41 other tests skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff:
- shard-ptl: NOTRUN -> [SKIP][87] ([Intel XE#5812]) +55 other tests skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-ptl: NOTRUN -> [SKIP][88] ([Intel XE#5865] / [Intel XE#7399])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-3/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][89] ([Intel XE#7905]) +17 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][90] ([Intel XE#7061]) +3 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-render:
- shard-lnl: NOTRUN -> [SKIP][91] ([Intel XE#7061]) +5 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_frontbuffer_tracking@hdr-argb161616f-draw-render.html
* igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][92] ([Intel XE#7061] / [Intel XE#7356])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-argb161616f-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][93] ([Intel XE#7061] / [Intel XE#7356]) +3 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@kms_frontbuffer_tracking@psr-argb161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][94] ([Intel XE#7865]) +8 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-abgr161616f-draw-blt:
- shard-ptl: NOTRUN -> [SKIP][95] ([Intel XE#7061]) +2 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_frontbuffer_tracking@psrhdr-abgr161616f-draw-blt.html
* igt@kms_hdr@static-toggle:
- shard-ptl: NOTRUN -> [SKIP][96] ([Intel XE#5917] / [Intel XE#6174]) +1 other test skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_hdr@static-toggle.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-ptl: NOTRUN -> [SKIP][97] ([Intel XE#6900]) +1 other test skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_pipe_stress@stress-xrgb8888-yftiled:
- shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#6912] / [Intel XE#7375])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier:
- shard-ptl: NOTRUN -> [SKIP][99] ([Intel XE#7283]) +1 other test skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier.html
* igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping:
- shard-bmg: NOTRUN -> [SKIP][100] ([Intel XE#7283]) +2 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html
* igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping:
- shard-lnl: NOTRUN -> [SKIP][101] ([Intel XE#7283])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-7/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping.html
* igt@kms_plane_lowres@tiling-none@pipe-b-edp-1:
- shard-ptl: NOTRUN -> [SKIP][102] ([Intel XE#5844]) +4 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_plane_lowres@tiling-none@pipe-b-edp-1.html
* igt@kms_plane_lowres@tiling-yf:
- shard-bmg: NOTRUN -> [SKIP][103] ([Intel XE#2393])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_plane_lowres@tiling-yf.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-ptl: NOTRUN -> [SKIP][104] ([Intel XE#4596] / [Intel XE#5854])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-3/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c.html
* igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b:
- shard-lnl: NOTRUN -> [SKIP][106] ([Intel XE#2763] / [Intel XE#6886]) +3 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b.html
* igt@kms_pm_dc@dc3co-framedrop-check@pr-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][107] ([Intel XE#8395] / [Intel XE#8396]) +1 other test skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_pm_dc@dc3co-framedrop-check@pr-xrgb8888.html
* igt@kms_pm_dc@dc3co-framedrop-check@psr2-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][108] ([Intel XE#8396]) +1 other test skip
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_pm_dc@dc3co-framedrop-check@psr2-xrgb8888.html
* igt@kms_pm_rpm@dpms-non-lpsp:
- shard-ptl: NOTRUN -> [SKIP][109] ([Intel XE#5849])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_pm_rpm@dpms-non-lpsp.html
* igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][110] ([Intel XE#1489]) +5 other tests skip
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-a-edp-1:
- shard-ptl: NOTRUN -> [SKIP][111] ([Intel XE#5858])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-b-edp-1:
- shard-ptl: NOTRUN -> [SKIP][112] ([Intel XE#5858] / [Intel XE#7304]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
- shard-lnl: NOTRUN -> [SKIP][113] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][114] ([Intel XE#4608])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][115] ([Intel XE#4608] / [Intel XE#7304])
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf:
- shard-ptl: NOTRUN -> [SKIP][116] ([Intel XE#7304])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
- shard-lnl: NOTRUN -> [SKIP][117] ([Intel XE#2893] / [Intel XE#7304]) +1 other test skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-ptl: NOTRUN -> [SKIP][118] ([Intel XE#7413])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr2_su@page_flip-p010:
- shard-lnl: NOTRUN -> [SKIP][119] ([Intel XE#1128] / [Intel XE#7413])
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_psr2_su@page_flip-p010.html
* igt@kms_psr@pr-suspend:
- shard-ptl: NOTRUN -> [SKIP][120] ([Intel XE#1406])
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_psr@pr-suspend.html
* igt@kms_psr@psr2-suspend:
- shard-bmg: NOTRUN -> [SKIP][121] ([Intel XE#2234] / [Intel XE#2850]) +8 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_psr@psr2-suspend.html
* igt@kms_rotation_crc@bad-tiling:
- shard-ptl: NOTRUN -> [SKIP][122] ([Intel XE#5821]) +2 other tests skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_rotation_crc@bad-tiling.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-ptl: NOTRUN -> [SKIP][123] ([Intel XE#5813])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-bmg: NOTRUN -> [SKIP][124] ([Intel XE#2330] / [Intel XE#5813])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-lnl: NOTRUN -> [SKIP][125] ([Intel XE#1127] / [Intel XE#5813])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_setmode@invalid-clone-exclusive-crtc:
- shard-ptl: NOTRUN -> [SKIP][126] ([Intel XE#5910])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@kms_setmode@invalid-clone-exclusive-crtc.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-lnl: NOTRUN -> [SKIP][127] ([Intel XE#1435] / [Intel XE#9142])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@kms_sharpness_filter@filter-toggle:
- shard-bmg: NOTRUN -> [SKIP][128] ([Intel XE#6503])
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@kms_sharpness_filter@filter-toggle.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-lnl: NOTRUN -> [SKIP][129] ([Intel XE#362] / [Intel XE#5848])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vrr@cmrr-desktop-mode:
- shard-ptl: NOTRUN -> [SKIP][130] ([Intel XE#9277])
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_vrr@cmrr-desktop-mode.html
* igt@kms_vrr@cmrr-desktop-mode@pipe-a-edp-1:
- shard-ptl: NOTRUN -> [SKIP][131] ([Intel XE#9277] / [Intel XE#9278])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_vrr@cmrr-desktop-mode@pipe-a-edp-1.html
* igt@sriov_basic@pf-unbind-with-vf-probed:
- shard-bmg: NOTRUN -> [ABORT][132] ([Intel XE#8868])
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@sriov_basic@pf-unbind-with-vf-probed.html
* igt@xe_compute@ccs-mode-basic:
- shard-bmg: NOTRUN -> [SKIP][133] ([Intel XE#6599])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@xe_compute@ccs-mode-basic.html
* igt@xe_compute@eu-busy-10s:
- shard-lnl: NOTRUN -> [SKIP][134] ([Intel XE#6592] / [Intel XE#6645] / [Intel XE#7391])
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_compute@eu-busy-10s.html
* igt@xe_create@create-big-vram:
- shard-ptl: NOTRUN -> [SKIP][135] ([Intel XE#5853] / [Intel XE#7457])
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-3/igt@xe_create@create-big-vram.html
* igt@xe_evict@evict-beng-mixed-many-threads-small:
- shard-ptl: NOTRUN -> [SKIP][136] ([Intel XE#5764]) +5 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_evict@evict-beng-mixed-many-threads-small.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [PASS][137] -> [INCOMPLETE][138] ([Intel XE#6321] / [Intel XE#8355])
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-9/igt@xe_evict@evict-mixed-many-threads-small.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-2/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_evict@evict-small-external-multi-queue:
- shard-bmg: NOTRUN -> [SKIP][139] ([Intel XE#8370])
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_evict@evict-small-external-multi-queue.html
* igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen:
- shard-lnl: NOTRUN -> [SKIP][140] ([Intel XE#6540] / [Intel XE#688]) +5 other tests skip
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-reopen.html
* igt@xe_exec_balancer@many-virtual-userptr-rebind:
- shard-ptl: NOTRUN -> [SKIP][141] ([Intel XE#7482]) +12 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_exec_balancer@many-virtual-userptr-rebind.html
* igt@xe_exec_balancer@once-virtual-userptr:
- shard-lnl: NOTRUN -> [SKIP][142] ([Intel XE#7482]) +5 other tests skip
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_exec_balancer@once-virtual-userptr.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-rebind:
- shard-lnl: NOTRUN -> [SKIP][143] ([Intel XE#1392]) +2 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-rebind.html
* igt@xe_exec_basic@multigpu-no-exec-userptr:
- shard-bmg: NOTRUN -> [SKIP][144] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@xe_exec_basic@multigpu-no-exec-userptr.html
* igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race:
- shard-ptl: NOTRUN -> [SKIP][145] ([Intel XE#5575] / [Intel XE#7484]) +6 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-3/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-invalidate-race.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr:
- shard-bmg: NOTRUN -> [SKIP][146] ([Intel XE#8374]) +12 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-imm:
- shard-lnl: NOTRUN -> [SKIP][147] ([Intel XE#8374]) +5 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-imm.html
* igt@xe_exec_fault_mode@once-multi-queue-invalid-fault:
- shard-ptl: NOTRUN -> [SKIP][148] ([Intel XE#8374]) +6 other tests skip
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_exec_fault_mode@once-multi-queue-invalid-fault.html
* igt@xe_exec_mix_modes@exec-multi-queue-spinner-interrupted-lr:
- shard-ptl: NOTRUN -> [SKIP][149] ([Intel XE#9003])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@xe_exec_mix_modes@exec-multi-queue-spinner-interrupted-lr.html
* igt@xe_exec_multi_queue@one-queue-preempt-mode-close-fd-smem:
- shard-bmg: NOTRUN -> [SKIP][150] ([Intel XE#8364]) +21 other tests skip
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_exec_multi_queue@one-queue-preempt-mode-close-fd-smem.html
* igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-priority:
- shard-lnl: NOTRUN -> [SKIP][151] ([Intel XE#8364]) +11 other tests skip
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-priority.html
* igt@xe_exec_multi_queue@one-queue-preempt-mode-userptr:
- shard-ptl: NOTRUN -> [SKIP][152] ([Intel XE#8364]) +21 other tests skip
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@xe_exec_multi_queue@one-queue-preempt-mode-userptr.html
* igt@xe_exec_reset@cm-multi-queue-close-fd:
- shard-bmg: NOTRUN -> [SKIP][153] ([Intel XE#8369])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@xe_exec_reset@cm-multi-queue-close-fd.html
* igt@xe_exec_reset@gt-reset-fault-injection:
- shard-ptl: NOTRUN -> [DMESG-WARN][154] ([Intel XE#9130])
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_exec_reset@gt-reset-fault-injection.html
* igt@xe_exec_reset@multi-queue-cancel-on-secondary:
- shard-lnl: NOTRUN -> [SKIP][155] ([Intel XE#8369])
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_exec_reset@multi-queue-cancel-on-secondary.html
* igt@xe_exec_reset@multi-queue-long-spin-many-queue-switch:
- shard-ptl: NOTRUN -> [SKIP][156] ([Intel XE#8369])
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@xe_exec_reset@multi-queue-long-spin-many-queue-switch.html
* igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-multi-vma:
- shard-lnl: NOTRUN -> [SKIP][157] ([Intel XE#6196])
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-multi-vma.html
* igt@xe_exec_threads@threads-hang-userptr-invalidate-race:
- shard-lnl: NOTRUN -> [FAIL][158] ([Intel XE#9096])
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
* igt@xe_exec_threads@threads-multi-queue-cm-basic:
- shard-lnl: NOTRUN -> [SKIP][159] ([Intel XE#8378]) +5 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_exec_threads@threads-multi-queue-cm-basic.html
* igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-rebind:
- shard-bmg: NOTRUN -> [SKIP][160] ([Intel XE#8378]) +3 other tests skip
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-rebind.html
* igt@xe_exec_threads@threads-multi-queue-userptr-rebind:
- shard-ptl: NOTRUN -> [SKIP][161] ([Intel XE#8378]) +7 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@xe_exec_threads@threads-multi-queue-userptr-rebind.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_device_probe_early:
- shard-bmg: [PASS][162] -> [ABORT][163] ([Intel XE#9463]) +1 other test abort
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-4/igt@xe_fault_injection@inject-fault-probe-function-xe_device_probe_early.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-4/igt@xe_fault_injection@inject-fault-probe-function-xe_device_probe_early.html
* igt@xe_gpgpu_fill@offset-4x4:
- shard-ptl: NOTRUN -> [SKIP][164] ([Intel XE#7954])
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@xe_gpgpu_fill@offset-4x4.html
* igt@xe_media_fill@media-fill:
- shard-ptl: NOTRUN -> [SKIP][165] ([Intel XE#5830] / [Intel XE#7453])
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@xe_media_fill@media-fill.html
* igt@xe_mmap@pci-membarrier-bad-object:
- shard-ptl: NOTRUN -> [SKIP][166] ([Intel XE#5100] / [Intel XE#7408])
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_mmap@pci-membarrier-bad-object.html
* igt@xe_mmap@pci-membarrier-parallel:
- shard-lnl: NOTRUN -> [SKIP][167] ([Intel XE#5100] / [Intel XE#7322] / [Intel XE#7408])
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_mmap@pci-membarrier-parallel.html
* igt@xe_multigpu_svm@mgpu-atomic-op-basic:
- shard-ptl: NOTRUN -> [SKIP][168] ([Intel XE#6964]) +1 other test skip
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_multigpu_svm@mgpu-atomic-op-basic.html
* igt@xe_multigpu_svm@mgpu-coherency-conflict:
- shard-lnl: NOTRUN -> [SKIP][169] ([Intel XE#6964])
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_multigpu_svm@mgpu-coherency-conflict.html
* igt@xe_multigpu_svm@mgpu-coherency-fail-basic:
- shard-bmg: NOTRUN -> [SKIP][170] ([Intel XE#6964])
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@xe_multigpu_svm@mgpu-coherency-fail-basic.html
* igt@xe_oa@oa-tlb-invalidate:
- shard-lnl: NOTRUN -> [SKIP][171] ([Intel XE#2248] / [Intel XE#7325] / [Intel XE#7393])
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_oa@oa-tlb-invalidate.html
* igt@xe_page_reclaim@pat-index-xd:
- shard-lnl: NOTRUN -> [SKIP][172] ([Intel XE#7793]) +2 other tests skip
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_page_reclaim@pat-index-xd.html
* igt@xe_page_reclaim@random:
- shard-ptl: NOTRUN -> [SKIP][173] ([Intel XE#7793]) +1 other test skip
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-5/igt@xe_page_reclaim@random.html
* igt@xe_pat@l2-flush-opt-svm-pat-restrict:
- shard-bmg: NOTRUN -> [SKIP][174] ([Intel XE#7590])
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_pat@l2-flush-opt-svm-pat-restrict.html
* igt@xe_pat@pat-index-xehpc:
- shard-bmg: NOTRUN -> [SKIP][175] ([Intel XE#1420] / [Intel XE#7590])
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@xa-app-transient-media-on:
- shard-lnl: NOTRUN -> [SKIP][176] ([Intel XE#7590] / [Intel XE#7772])
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-7/igt@xe_pat@xa-app-transient-media-on.html
* igt@xe_pm@s3-d3cold-basic-exec:
- shard-bmg: NOTRUN -> [SKIP][177] ([Intel XE#2284] / [Intel XE#7370])
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_pm@s3-d3cold-basic-exec.html
* igt@xe_pm@s4-d3cold-basic-exec:
- shard-lnl: NOTRUN -> [SKIP][178] ([Intel XE#2284] / [Intel XE#366] / [Intel XE#7370]) +1 other test skip
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_pm@s4-d3cold-basic-exec.html
* igt@xe_pm@s4-vm-bind-userptr:
- shard-lnl: [PASS][179] -> [ABORT][180] ([Intel XE#9362]) +1 other test abort
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-lnl-8/igt@xe_pm@s4-vm-bind-userptr.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-5/igt@xe_pm@s4-vm-bind-userptr.html
* igt@xe_pm_residency@cpg-basic:
- shard-ptl: NOTRUN -> [SKIP][181] ([Intel XE#6867]) +1 other test skip
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@xe_pm_residency@cpg-basic.html
* igt@xe_pmu@fn-engine-activity-load:
- shard-lnl: NOTRUN -> [SKIP][182] ([Intel XE#4650] / [Intel XE#7347])
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_pmu@fn-engine-activity-load.html
* igt@xe_pxp@display-black-pxp-fb:
- shard-bmg: NOTRUN -> [SKIP][183] ([Intel XE#4733] / [Intel XE#7417]) +1 other test skip
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_pxp@display-black-pxp-fb.html
* igt@xe_query@multigpu-query-invalid-cs-cycles:
- shard-ptl: NOTRUN -> [SKIP][184] ([Intel XE#6019]) +3 other tests skip
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_query@multigpu-query-invalid-cs-cycles.html
* igt@xe_query@multigpu-query-invalid-extension:
- shard-lnl: NOTRUN -> [SKIP][185] ([Intel XE#944]) +1 other test skip
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_query@multigpu-query-invalid-extension.html
* igt@xe_query@multigpu-query-invalid-size:
- shard-bmg: NOTRUN -> [SKIP][186] ([Intel XE#944]) +1 other test skip
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@xe_query@multigpu-query-invalid-size.html
* igt@xe_sriov_admin@exec-quantum-write-readback-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][187] ([Intel XE#7174])
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_sriov_admin@exec-quantum-write-readback-vfs-disabled.html
* igt@xe_survivability@i2c-functionality:
- shard-lnl: NOTRUN -> [SKIP][188] ([Intel XE#8415])
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-2/igt@xe_survivability@i2c-functionality.html
* igt@xe_vm@overcommit-fault-vram-lr:
- shard-ptl: NOTRUN -> [SKIP][189] ([Intel XE#7892])
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@xe_vm@overcommit-fault-vram-lr.html
#### Possible fixes ####
* igt@core_hotunplug@hotreplug:
- shard-bmg: [ABORT][190] ([Intel XE#9463]) -> [PASS][191]
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-10/igt@core_hotunplug@hotreplug.html
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-5/igt@core_hotunplug@hotreplug.html
* igt@kms_async_flips@async-flip-suspend-resume@pipe-b-edp-1:
- shard-ptl: [ABORT][192] ([Intel XE#9394]) -> [PASS][193]
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-5/igt@kms_async_flips@async-flip-suspend-resume@pipe-b-edp-1.html
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-b-edp-1.html
* igt@kms_async_flips@async-flip-suspend-resume@pipe-c-hdmi-a-3:
- shard-bmg: [ABORT][194] ([Intel XE#9399] / [Intel XE#9409]) -> [PASS][195]
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-c-hdmi-a-3.html
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_async_flips@async-flip-suspend-resume@pipe-c-hdmi-a-3.html
* igt@kms_async_flips@async-flip-suspend-resume@pipe-d-edp-1:
- shard-ptl: [DMESG-WARN][196] -> [PASS][197]
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-5/igt@kms_async_flips@async-flip-suspend-resume@pipe-d-edp-1.html
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-d-edp-1.html
* igt@kms_async_flips@async-flip-suspend-resume@pipe-d-hdmi-a-3:
- shard-bmg: [INCOMPLETE][198] ([Intel XE#8587]) -> [PASS][199]
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-d-hdmi-a-3.html
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_async_flips@async-flip-suspend-resume@pipe-d-hdmi-a-3.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-edp-1:
- shard-ptl: [ABORT][200] ([Intel XE#7084] / [Intel XE#9362]) -> [PASS][201]
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-edp-1.html
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-a-edp-1.html
* igt@kms_sharpness_filter@filter-suspend:
- shard-ptl: [ABORT][202] ([Intel XE#9375]) -> [PASS][203] +1 other test pass
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-1/igt@kms_sharpness_filter@filter-suspend.html
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_sharpness_filter@filter-suspend.html
* igt@kms_vrr@flip-basic-fastset@pipe-a-edp-1:
- shard-ptl: [FAIL][204] ([Intel XE#6293] / [Intel XE#7397]) -> [PASS][205]
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-5/igt@kms_vrr@flip-basic-fastset@pipe-a-edp-1.html
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_vrr@flip-basic-fastset@pipe-a-edp-1.html
* igt@kms_vrr@flip-dpms@pipe-a-edp-1:
- shard-ptl: [FAIL][206] ([Intel XE#4227] / [Intel XE#7397]) -> [PASS][207] +2 other tests pass
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-2/igt@kms_vrr@flip-dpms@pipe-a-edp-1.html
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@kms_vrr@flip-dpms@pipe-a-edp-1.html
* igt@xe_module_load@reload-no-display:
- shard-lnl: [ABORT][208] -> [PASS][209]
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-lnl-2/igt@xe_module_load@reload-no-display.html
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-7/igt@xe_module_load@reload-no-display.html
* igt@xe_pm@s2idle-vm-bind-userptr:
- shard-lnl: [ABORT][210] ([Intel XE#9362]) -> [PASS][211]
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-lnl-4/igt@xe_pm@s2idle-vm-bind-userptr.html
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-lnl-8/igt@xe_pm@s2idle-vm-bind-userptr.html
* igt@xe_pm@s4-exec-after:
- shard-ptl: [DMESG-WARN][212] ([Intel XE#7727]) -> [PASS][213]
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-5/igt@xe_pm@s4-exec-after.html
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-8/igt@xe_pm@s4-exec-after.html
* igt@xe_pmu@engine-activity-suspend:
- shard-ptl: [ABORT][214] ([Intel XE#9362]) -> [PASS][215] +1 other test pass
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-4/igt@xe_pmu@engine-activity-suspend.html
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-2/igt@xe_pmu@engine-activity-suspend.html
#### Warnings ####
* igt@kms_async_flips@async-flip-suspend-resume:
- shard-bmg: [ABORT][216] ([Intel XE#9399] / [Intel XE#9409]) -> [DMESG-WARN][217] ([Intel XE#9365] / [Intel XE#9428])
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-6/igt@kms_async_flips@async-flip-suspend-resume.html
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-9/igt@kms_async_flips@async-flip-suspend-resume.html
- shard-ptl: [ABORT][218] ([Intel XE#9375] / [Intel XE#9394]) -> [ABORT][219] ([Intel XE#9362])
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-5/igt@kms_async_flips@async-flip-suspend-resume.html
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-6/igt@kms_async_flips@async-flip-suspend-resume.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
- shard-ptl: [ABORT][220] ([Intel XE#7084] / [Intel XE#9362]) -> [ABORT][221] ([Intel XE#7084] / [Intel XE#9364])
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
* igt@xe_pm@s4-vm-bind-userptr:
- shard-ptl: [ABORT][222] ([Intel XE#9362]) -> [DMESG-WARN][223] ([Intel XE#7727]) +1 other test dmesg-warn
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-ptl-8/igt@xe_pm@s4-vm-bind-userptr.html
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-ptl-1/igt@xe_pm@s4-vm-bind-userptr.html
* igt@xe_wedged@basic-wedged:
- shard-bmg: [ABORT][224] ([Intel XE#8963] / [Intel XE#9463]) -> [DMESG-WARN][225] ([Intel XE#8963])
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5/shard-bmg-4/igt@xe_wedged@basic-wedged.html
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/shard-bmg-1/igt@xe_wedged@basic-wedged.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1428
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2248]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2248
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4227
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
[Intel XE#5764]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5764
[Intel XE#5800]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5800
[Intel XE#5808]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5808
[Intel XE#5812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5812
[Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
[Intel XE#5821]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5821
[Intel XE#5822]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5822
[Intel XE#5823]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5823
[Intel XE#5824]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5824
[Intel XE#5828]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5828
[Intel XE#5830]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5830
[Intel XE#5844]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5844
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#5849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5849
[Intel XE#5851]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5851
[Intel XE#5853]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5853
[Intel XE#5854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5854
[Intel XE#5858]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5858
[Intel XE#5865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5865
[Intel XE#5900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5900
[Intel XE#5901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5901
[Intel XE#5907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5907
[Intel XE#5910]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5910
[Intel XE#5917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5917
[Intel XE#5962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5962
[Intel XE#6019]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6019
[Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
[Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[Intel XE#6128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6128
[Intel XE#6174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6174
[Intel XE#6196]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6196
[Intel XE#6293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6293
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[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#6592]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6592
[Intel XE#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599
[Intel XE#6645]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6645
[Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707
[Intel XE#6819]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6819
[Intel XE#6867]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6867
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6900
[Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
[Intel XE#6918]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6918
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[Intel XE#7008]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7008
[Intel XE#701]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/701
[Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
[Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
[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#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7322
[Intel XE#7325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7325
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7344]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7344
[Intel XE#7347]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7347
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7359]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7359
[Intel XE#7360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7360
[Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7375
[Intel XE#7385]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7385
[Intel XE#7387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7387
[Intel XE#7391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7391
[Intel XE#7393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7393
[Intel XE#7397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7397
[Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
[Intel XE#7408]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7408
[Intel XE#7413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7413
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7435
[Intel XE#7439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7439
[Intel XE#7453]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7453
[Intel XE#7457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7457
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7484]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7484
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7727
[Intel XE#7772]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7772
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7892]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7892
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7954]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7954
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
[Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
[Intel XE#8365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8365
[Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
[Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
[Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
[Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
[Intel XE#8391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8391
[Intel XE#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395
[Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396
[Intel XE#8415]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8415
[Intel XE#8587]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8587
[Intel XE#8868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8868
[Intel XE#8963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8963
[Intel XE#9003]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9003
[Intel XE#9096]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9096
[Intel XE#9130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9130
[Intel XE#9142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9142
[Intel XE#9144]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9144
[Intel XE#9277]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9277
[Intel XE#9278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9278
[Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
[Intel XE#9364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9364
[Intel XE#9365]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9365
[Intel XE#9375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9375
[Intel XE#9394]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9394
[Intel XE#9399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9399
[Intel XE#9409]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9409
[Intel XE#9428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9428
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#9463]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9463
[Intel XE#9531]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9531
[Intel XE#9534]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9534
[Intel XE#9537]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9537
[Intel XE#9539]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9539
Build changes
-------------
* Linux: xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5 -> xe-pw-175825v1
IGT_9138: 9138
xe-5914-8d1ca30f98be65f4d967bd5a84e3030e3317f6b5: 8d1ca30f98be65f4d967bd5a84e3030e3317f6b5
xe-pw-175825v1: 175825v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-175825v1/index.html
[-- Attachment #2: Type: text/html, Size: 84205 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
` (5 preceding siblings ...)
2026-10-09 13:35 ` ✓ Xe.CI.FULL: " Patchwork
@ 2026-10-13 14:31 ` Arunpravin Paneer Selvam
2026-10-13 15:06 ` Matthew Auld
6 siblings, 1 reply; 10+ messages in thread
From: Arunpravin Paneer Selvam @ 2026-10-13 14:31 UTC (permalink / raw)
To: matthew.auld, dri-devel, intel-gfx, intel-xe, amd-gfx
Cc: christian.koenig, alexander.deucher, Anand.Raghavendra
Hi Matthew,
Could you please review the v4.
Thanks,
Arun.
On 10/9/2026 3:35 PM, Arunpravin Paneer Selvam wrote:
> From: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
>
> Range-restricted allocations (the visible-VRAM aperture) skip
> dirty_steer_window() and reach __alloc_range_bias() with no clear/dirty
> eligibility guard, so a dirty allocation freely splits clear extents (and
> vice versa), interleaving the two classes until no large same-class run
> survives and a 4K scanout pin fails with -ENOSPC. Use a two-pass range
> search instead: block_incompatible() rejects opposite-class blocks in the
> strict pass and relaxes only when the strict pass returns -ENOSPC, so a
> request still succeeds when only opposite-class space remains. A KUnit
> regression test covers the interleaving pattern and fails without the
> guard.
>
> Fixes: 1ad5e807f716 ("gpu/buddy: replace dual-tree/force_merge with decoupled dirty tracker")
> Assisted-by: LLM
> Cc: Matthew Auld <matthew.auld@intel.com>
> Cc: Christian König <christian.koenig@amd.com>
> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
> ---
> drivers/gpu/buddy.c | 71 ++++++++++++++----------------
> drivers/gpu/tests/gpu_buddy_test.c | 65 +++++++++++++++++++++++++++
> 2 files changed, 99 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpu/buddy.c b/drivers/gpu/buddy.c
> index 2f2aaadafe35..6566bad4fef1 100644
> --- a/drivers/gpu/buddy.c
> +++ b/drivers/gpu/buddy.c
> @@ -1240,11 +1240,19 @@ static void __gpu_buddy_undo_splits(struct gpu_buddy *mm,
> }
> }
>
> +static bool block_incompatible(struct gpu_buddy_block *block, unsigned int flags)
> +{
> + bool needs_clear = flags & GPU_BUDDY_CLEAR_ALLOCATION;
> +
> + return needs_clear != gpu_buddy_block_is_clear(block);
> +}
> +
> static struct gpu_buddy_block *
> __alloc_range_bias(struct gpu_buddy *mm,
> u64 start, u64 end,
> unsigned int order,
> - unsigned long flags)
> + unsigned long flags,
> + bool fallback)
> {
> u64 req_size = mm->chunk_size << order;
> struct gpu_buddy_block *block;
> @@ -1258,9 +1266,7 @@ __alloc_range_bias(struct gpu_buddy *mm,
> * This range-constrained search hands back the highest/right-most
> * address that satisfies the request: the roots are seeded high-to-low
> * and the right (higher-address) child is descended first, making
> - * top-down the default placement here. A non-top-down clear request is
> - * the only exception, where the descent is biased towards clear or
> - * clear-containing subtrees to satisfy the clear preference.
> + * top-down the default placement here.
> */
> for (i = mm->n_roots - 1; i >= 0; --i)
> list_add_tail(&mm->roots[i]->tmp_link, &dfs);
> @@ -1298,6 +1304,9 @@ __alloc_range_bias(struct gpu_buddy *mm,
> continue;
> }
>
> + if (!fallback && block_incompatible(block, flags))
> + continue;
> +
> if (contains(start, end, block_start, block_end) &&
> order == gpu_buddy_block_order(block)) {
> /*
> @@ -1315,38 +1324,8 @@ __alloc_range_bias(struct gpu_buddy *mm,
> goto err_undo;
> }
>
> - /*
> - * Top-down is a strict address-placement policy, so when it is
> - * requested we ignore clear steering and simply descend the
> - * right (higher-address) child first. Only a non-top-down clear
> - * request biases the descent towards clear/has_clear subtrees.
> - */
> - if ((flags & GPU_BUDDY_CLEAR_ALLOCATION) &&
> - !(flags & GPU_BUDDY_TOPDOWN_ALLOCATION)) {
> - struct gpu_buddy_block *prefer;
> -
> - if (gpu_buddy_block_is_clear(block->right))
> - prefer = block->right;
> - else if (gpu_buddy_block_is_clear(block->left))
> - prefer = block->left;
> - else if (block->right->has_clear)
> - prefer = block->right;
> - else if (block->left->has_clear)
> - prefer = block->left;
> - else
> - prefer = block->right;
> -
> - if (prefer == block->right) {
> - list_add(&block->left->tmp_link, &dfs);
> - list_add(&block->right->tmp_link, &dfs);
> - } else {
> - list_add(&block->right->tmp_link, &dfs);
> - list_add(&block->left->tmp_link, &dfs);
> - }
> - } else {
> - list_add(&block->left->tmp_link, &dfs);
> - list_add(&block->right->tmp_link, &dfs);
> - }
> + list_add(&block->left->tmp_link, &dfs);
> + list_add(&block->right->tmp_link, &dfs);
> } while (1);
>
> return ERR_PTR(-ENOSPC);
> @@ -1361,6 +1340,24 @@ __alloc_range_bias(struct gpu_buddy *mm,
> return ERR_PTR(err);
> }
>
> +static struct gpu_buddy_block *
> +__gpu_buddy_alloc_range_bias(struct gpu_buddy *mm,
> + u64 start, u64 end,
> + unsigned int order,
> + unsigned long flags)
> +{
> + struct gpu_buddy_block *block;
> + bool fallback = false;
> +
> + block = __alloc_range_bias(mm, start, end, order,
> + flags, fallback);
> + if (IS_ERR(block))
> + return __alloc_range_bias(mm, start, end, order,
> + flags, !fallback);
> +
> + return block;
> +}
> +
> /* Return the highest-address free block of at least @order. */
> static struct gpu_buddy_block *
> get_maxblock(struct gpu_buddy *mm,
> @@ -1924,7 +1921,7 @@ __gpu_buddy_alloc_blocks(struct gpu_buddy *mm,
>
> if (flags & GPU_BUDDY_RANGE_ALLOCATION) {
> /* Allocate traversing within the range */
> - block = __alloc_range_bias(mm, start, end, order, flags);
> + block = __gpu_buddy_alloc_range_bias(mm, start, end, order, flags);
> if (!IS_ERR(block) || !steered)
> return block;
>
> diff --git a/drivers/gpu/tests/gpu_buddy_test.c b/drivers/gpu/tests/gpu_buddy_test.c
> index b75d32ca6ca0..3eaa261571bf 100644
> --- a/drivers/gpu/tests/gpu_buddy_test.c
> +++ b/drivers/gpu/tests/gpu_buddy_test.c
> @@ -1597,6 +1597,70 @@ static int gpu_buddy_suite_init(struct kunit_suite *suite)
> return 0;
> }
>
> +static void gpu_test_buddy_alloc_range_clear_guard(struct kunit *test)
> +{
> + const unsigned long chunk = SZ_1M, mm_size = SZ_4M;
> + struct gpu_buddy_block *block;
> + LIST_HEAD(high_clear_a);
> + LIST_HEAD(high_clear_b);
> + LIST_HEAD(low_dirty);
> + struct gpu_buddy mm;
> + LIST_HEAD(barrier);
> + LIST_HEAD(result);
> +
> + KUNIT_ASSERT_FALSE_MSG(test, gpu_buddy_init(&mm, mm_size, chunk),
> + "buddy_init failed\n");
> +
> + /*
> + * Lay out a 4 MiB aperture as three regions:
> + *
> + * [0, 1M) dirty free
> + * [1M, 2M) allocated (barrier, keeps the two halves un-mergeable)
> + * [2M, 4M) clear free (one naturally aligned 2 MiB extent)
> + *
> + * A dirty (non-clear) range allocation must take the low dirty block
> + * and leave the large clear extent intact. Without the guard the
> + * top-down search cuts the higher clear extent instead and returns a
> + * clear block -- the interleaving that fragments the aperture and
> + * ultimately fails a large same-class scanout allocation.
> + */
> + KUNIT_ASSERT_FALSE_MSG(test,
> + gpu_buddy_alloc_blocks(&mm, 0, chunk, chunk, chunk,
> + &low_dirty, GPU_BUDDY_RANGE_ALLOCATION),
> + "alloc [0, 1M) failed\n");
> + KUNIT_ASSERT_FALSE_MSG(test,
> + gpu_buddy_alloc_blocks(&mm, chunk, 2 * chunk, chunk, chunk,
> + &barrier, GPU_BUDDY_RANGE_ALLOCATION),
> + "alloc [1M, 2M) failed\n");
> + KUNIT_ASSERT_FALSE_MSG(test,
> + gpu_buddy_alloc_blocks(&mm, 2 * chunk, 3 * chunk, chunk, chunk,
> + &high_clear_a, GPU_BUDDY_RANGE_ALLOCATION),
> + "alloc [2M, 3M) failed\n");
> + KUNIT_ASSERT_FALSE_MSG(test,
> + gpu_buddy_alloc_blocks(&mm, 3 * chunk, 4 * chunk, chunk, chunk,
> + &high_clear_b, GPU_BUDDY_RANGE_ALLOCATION),
> + "alloc [3M, 4M) failed\n");
> +
> + /* [2M, 4M) coalesces into one aligned clear extent; [0, 1M) stays dirty. */
> + gpu_buddy_free_list(&mm, &low_dirty, 0);
> + gpu_buddy_free_list(&mm, &high_clear_a, GPU_BUDDY_CLEARED);
> + gpu_buddy_free_list(&mm, &high_clear_b, GPU_BUDDY_CLEARED);
> +
> + KUNIT_ASSERT_FALSE_MSG(test,
> + gpu_buddy_alloc_blocks(&mm, 0, mm_size, chunk, chunk,
> + &result, GPU_BUDDY_RANGE_ALLOCATION),
> + "dirty range alloc failed\n");
> +
> + block = list_first_entry(&result, struct gpu_buddy_block, link);
> + KUNIT_EXPECT_FALSE_MSG(test, gpu_buddy_block_is_clear(block),
> + "dirty range alloc cut the clear extent (offset=%llx)\n",
> + gpu_buddy_block_offset(block));
> +
> + gpu_buddy_free_list(&mm, &result, 0);
> + gpu_buddy_free_list(&mm, &barrier, 0);
> + gpu_buddy_fini(&mm);
> +}
> +
> static struct kunit_case gpu_buddy_tests[] = {
> KUNIT_CASE(gpu_test_buddy_alloc_limit),
> KUNIT_CASE(gpu_test_buddy_alloc_optimistic),
> @@ -1606,6 +1670,7 @@ static struct kunit_case gpu_buddy_tests[] = {
> KUNIT_CASE(gpu_test_buddy_alloc_clear),
> KUNIT_CASE(gpu_test_buddy_alloc_range),
> KUNIT_CASE(gpu_test_buddy_alloc_range_bias),
> + KUNIT_CASE(gpu_test_buddy_alloc_range_clear_guard),
> KUNIT_CASE_SLOW(gpu_test_buddy_fragmentation_performance),
> KUNIT_CASE_SLOW(gpu_test_buddy_dirty_tracker_performance),
> KUNIT_CASE(gpu_test_buddy_alloc_exceeds_max_order),
>
> base-commit: f146c6086b792cb2c6b3ce5106f0cce62e408df8
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation
2026-10-13 14:31 ` [PATCH v4 1/3] " Arunpravin Paneer Selvam
@ 2026-10-13 15:06 ` Matthew Auld
0 siblings, 0 replies; 10+ messages in thread
From: Matthew Auld @ 2026-10-13 15:06 UTC (permalink / raw)
To: Arunpravin Paneer Selvam, dri-devel, intel-gfx, intel-xe, amd-gfx
Cc: christian.koenig, alexander.deucher, Anand.Raghavendra
Hey,
Yes, going to go through it now. Did you already look over the Sashiko
reports:
https://sashiko.dev/#/patchset/20261009100546.1103622-1-arunpravin.paneerselvam%40amd.com
Are they all false positive? I wanted to hold off reviewing if you were
going to re-spin.
Also, on the "bugs" tab in Sashiko there was one open buddy issue, which
I sent a fix for:
https://lore.kernel.org/intel-xe/20261006110706.1636971-2-matthew.auld@intel.com/
Please take a look at that.
On 13/10/2026 15:31, Arunpravin Paneer Selvam wrote:
> Hi Matthew,
> Could you please review the v4.
>
> Thanks,
> Arun.
>
> On 10/9/2026 3:35 PM, Arunpravin Paneer Selvam wrote:
>> From: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
>>
>> Range-restricted allocations (the visible-VRAM aperture) skip
>> dirty_steer_window() and reach __alloc_range_bias() with no clear/dirty
>> eligibility guard, so a dirty allocation freely splits clear extents (and
>> vice versa), interleaving the two classes until no large same-class run
>> survives and a 4K scanout pin fails with -ENOSPC. Use a two-pass range
>> search instead: block_incompatible() rejects opposite-class blocks in the
>> strict pass and relaxes only when the strict pass returns -ENOSPC, so a
>> request still succeeds when only opposite-class space remains. A KUnit
>> regression test covers the interleaving pattern and fails without the
>> guard.
>>
>> Fixes: 1ad5e807f716 ("gpu/buddy: replace dual-tree/force_merge with
>> decoupled dirty tracker")
>> Assisted-by: LLM
>> Cc: Matthew Auld <matthew.auld@intel.com>
>> Cc: Christian König <christian.koenig@amd.com>
>> Signed-off-by: Arunpravin Paneer Selvam <Arunpravin.PaneerSelvam@amd.com>
>> ---
>> drivers/gpu/buddy.c | 71 ++++++++++++++----------------
>> drivers/gpu/tests/gpu_buddy_test.c | 65 +++++++++++++++++++++++++++
>> 2 files changed, 99 insertions(+), 37 deletions(-)
>>
>> diff --git a/drivers/gpu/buddy.c b/drivers/gpu/buddy.c
>> index 2f2aaadafe35..6566bad4fef1 100644
>> --- a/drivers/gpu/buddy.c
>> +++ b/drivers/gpu/buddy.c
>> @@ -1240,11 +1240,19 @@ static void __gpu_buddy_undo_splits(struct
>> gpu_buddy *mm,
>> }
>> }
>> +static bool block_incompatible(struct gpu_buddy_block *block,
>> unsigned int flags)
>> +{
>> + bool needs_clear = flags & GPU_BUDDY_CLEAR_ALLOCATION;
>> +
>> + return needs_clear != gpu_buddy_block_is_clear(block);
>> +}
>> +
>> static struct gpu_buddy_block *
>> __alloc_range_bias(struct gpu_buddy *mm,
>> u64 start, u64 end,
>> unsigned int order,
>> - unsigned long flags)
>> + unsigned long flags,
>> + bool fallback)
>> {
>> u64 req_size = mm->chunk_size << order;
>> struct gpu_buddy_block *block;
>> @@ -1258,9 +1266,7 @@ __alloc_range_bias(struct gpu_buddy *mm,
>> * This range-constrained search hands back the highest/right-most
>> * address that satisfies the request: the roots are seeded
>> high-to-low
>> * and the right (higher-address) child is descended first, making
>> - * top-down the default placement here. A non-top-down clear
>> request is
>> - * the only exception, where the descent is biased towards clear or
>> - * clear-containing subtrees to satisfy the clear preference.
>> + * top-down the default placement here.
>> */
>> for (i = mm->n_roots - 1; i >= 0; --i)
>> list_add_tail(&mm->roots[i]->tmp_link, &dfs);
>> @@ -1298,6 +1304,9 @@ __alloc_range_bias(struct gpu_buddy *mm,
>> continue;
>> }
>> + if (!fallback && block_incompatible(block, flags))
>> + continue;
>> +
>> if (contains(start, end, block_start, block_end) &&
>> order == gpu_buddy_block_order(block)) {
>> /*
>> @@ -1315,38 +1324,8 @@ __alloc_range_bias(struct gpu_buddy *mm,
>> goto err_undo;
>> }
>> - /*
>> - * Top-down is a strict address-placement policy, so when it is
>> - * requested we ignore clear steering and simply descend the
>> - * right (higher-address) child first. Only a non-top-down clear
>> - * request biases the descent towards clear/has_clear subtrees.
>> - */
>> - if ((flags & GPU_BUDDY_CLEAR_ALLOCATION) &&
>> - !(flags & GPU_BUDDY_TOPDOWN_ALLOCATION)) {
>> - struct gpu_buddy_block *prefer;
>> -
>> - if (gpu_buddy_block_is_clear(block->right))
>> - prefer = block->right;
>> - else if (gpu_buddy_block_is_clear(block->left))
>> - prefer = block->left;
>> - else if (block->right->has_clear)
>> - prefer = block->right;
>> - else if (block->left->has_clear)
>> - prefer = block->left;
>> - else
>> - prefer = block->right;
>> -
>> - if (prefer == block->right) {
>> - list_add(&block->left->tmp_link, &dfs);
>> - list_add(&block->right->tmp_link, &dfs);
>> - } else {
>> - list_add(&block->right->tmp_link, &dfs);
>> - list_add(&block->left->tmp_link, &dfs);
>> - }
>> - } else {
>> - list_add(&block->left->tmp_link, &dfs);
>> - list_add(&block->right->tmp_link, &dfs);
>> - }
>> + list_add(&block->left->tmp_link, &dfs);
>> + list_add(&block->right->tmp_link, &dfs);
>> } while (1);
>> return ERR_PTR(-ENOSPC);
>> @@ -1361,6 +1340,24 @@ __alloc_range_bias(struct gpu_buddy *mm,
>> return ERR_PTR(err);
>> }
>> +static struct gpu_buddy_block *
>> +__gpu_buddy_alloc_range_bias(struct gpu_buddy *mm,
>> + u64 start, u64 end,
>> + unsigned int order,
>> + unsigned long flags)
>> +{
>> + struct gpu_buddy_block *block;
>> + bool fallback = false;
>> +
>> + block = __alloc_range_bias(mm, start, end, order,
>> + flags, fallback);
>> + if (IS_ERR(block))
>> + return __alloc_range_bias(mm, start, end, order,
>> + flags, !fallback);
>> +
>> + return block;
>> +}
>> +
>> /* Return the highest-address free block of at least @order. */
>> static struct gpu_buddy_block *
>> get_maxblock(struct gpu_buddy *mm,
>> @@ -1924,7 +1921,7 @@ __gpu_buddy_alloc_blocks(struct gpu_buddy *mm,
>> if (flags & GPU_BUDDY_RANGE_ALLOCATION) {
>> /* Allocate traversing within the range */
>> - block = __alloc_range_bias(mm, start, end, order, flags);
>> + block = __gpu_buddy_alloc_range_bias(mm, start, end, order,
>> flags);
>> if (!IS_ERR(block) || !steered)
>> return block;
>> diff --git a/drivers/gpu/tests/gpu_buddy_test.c b/drivers/gpu/tests/
>> gpu_buddy_test.c
>> index b75d32ca6ca0..3eaa261571bf 100644
>> --- a/drivers/gpu/tests/gpu_buddy_test.c
>> +++ b/drivers/gpu/tests/gpu_buddy_test.c
>> @@ -1597,6 +1597,70 @@ static int gpu_buddy_suite_init(struct
>> kunit_suite *suite)
>> return 0;
>> }
>> +static void gpu_test_buddy_alloc_range_clear_guard(struct kunit *test)
>> +{
>> + const unsigned long chunk = SZ_1M, mm_size = SZ_4M;
>> + struct gpu_buddy_block *block;
>> + LIST_HEAD(high_clear_a);
>> + LIST_HEAD(high_clear_b);
>> + LIST_HEAD(low_dirty);
>> + struct gpu_buddy mm;
>> + LIST_HEAD(barrier);
>> + LIST_HEAD(result);
>> +
>> + KUNIT_ASSERT_FALSE_MSG(test, gpu_buddy_init(&mm, mm_size, chunk),
>> + "buddy_init failed\n");
>> +
>> + /*
>> + * Lay out a 4 MiB aperture as three regions:
>> + *
>> + * [0, 1M) dirty free
>> + * [1M, 2M) allocated (barrier, keeps the two halves un-
>> mergeable)
>> + * [2M, 4M) clear free (one naturally aligned 2 MiB extent)
>> + *
>> + * A dirty (non-clear) range allocation must take the low dirty
>> block
>> + * and leave the large clear extent intact. Without the guard the
>> + * top-down search cuts the higher clear extent instead and
>> returns a
>> + * clear block -- the interleaving that fragments the aperture and
>> + * ultimately fails a large same-class scanout allocation.
>> + */
>> + KUNIT_ASSERT_FALSE_MSG(test,
>> + gpu_buddy_alloc_blocks(&mm, 0, chunk, chunk, chunk,
>> + &low_dirty, GPU_BUDDY_RANGE_ALLOCATION),
>> + "alloc [0, 1M) failed\n");
>> + KUNIT_ASSERT_FALSE_MSG(test,
>> + gpu_buddy_alloc_blocks(&mm, chunk, 2 * chunk,
>> chunk, chunk,
>> + &barrier, GPU_BUDDY_RANGE_ALLOCATION),
>> + "alloc [1M, 2M) failed\n");
>> + KUNIT_ASSERT_FALSE_MSG(test,
>> + gpu_buddy_alloc_blocks(&mm, 2 * chunk, 3 * chunk,
>> chunk, chunk,
>> + &high_clear_a,
>> GPU_BUDDY_RANGE_ALLOCATION),
>> + "alloc [2M, 3M) failed\n");
>> + KUNIT_ASSERT_FALSE_MSG(test,
>> + gpu_buddy_alloc_blocks(&mm, 3 * chunk, 4 * chunk,
>> chunk, chunk,
>> + &high_clear_b,
>> GPU_BUDDY_RANGE_ALLOCATION),
>> + "alloc [3M, 4M) failed\n");
>> +
>> + /* [2M, 4M) coalesces into one aligned clear extent; [0, 1M)
>> stays dirty. */
>> + gpu_buddy_free_list(&mm, &low_dirty, 0);
>> + gpu_buddy_free_list(&mm, &high_clear_a, GPU_BUDDY_CLEARED);
>> + gpu_buddy_free_list(&mm, &high_clear_b, GPU_BUDDY_CLEARED);
>> +
>> + KUNIT_ASSERT_FALSE_MSG(test,
>> + gpu_buddy_alloc_blocks(&mm, 0, mm_size, chunk, chunk,
>> + &result, GPU_BUDDY_RANGE_ALLOCATION),
>> + "dirty range alloc failed\n");
>> +
>> + block = list_first_entry(&result, struct gpu_buddy_block, link);
>> + KUNIT_EXPECT_FALSE_MSG(test, gpu_buddy_block_is_clear(block),
>> + "dirty range alloc cut the clear extent
>> (offset=%llx)\n",
>> + gpu_buddy_block_offset(block));
>> +
>> + gpu_buddy_free_list(&mm, &result, 0);
>> + gpu_buddy_free_list(&mm, &barrier, 0);
>> + gpu_buddy_fini(&mm);
>> +}
>> +
>> static struct kunit_case gpu_buddy_tests[] = {
>> KUNIT_CASE(gpu_test_buddy_alloc_limit),
>> KUNIT_CASE(gpu_test_buddy_alloc_optimistic),
>> @@ -1606,6 +1670,7 @@ static struct kunit_case gpu_buddy_tests[] = {
>> KUNIT_CASE(gpu_test_buddy_alloc_clear),
>> KUNIT_CASE(gpu_test_buddy_alloc_range),
>> KUNIT_CASE(gpu_test_buddy_alloc_range_bias),
>> + KUNIT_CASE(gpu_test_buddy_alloc_range_clear_guard),
>> KUNIT_CASE_SLOW(gpu_test_buddy_fragmentation_performance),
>> KUNIT_CASE_SLOW(gpu_test_buddy_dirty_tracker_performance),
>> KUNIT_CASE(gpu_test_buddy_alloc_exceeds_max_order),
>>
>> base-commit: f146c6086b792cb2c6b3ce5106f0cce62e408df8
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-10-13 15:07 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-09 10:05 [PATCH v4 1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Arunpravin Paneer Selvam
2026-10-09 10:05 ` [PATCH v4 2/3] gpu/buddy: add range-restricted contiguous allocation fallback Arunpravin Paneer Selvam
2026-10-09 10:23 ` sashiko-bot
2026-10-09 10:05 ` [PATCH v4 3/3] gpu/buddy: search lower orders in contiguous try-harder fallback Arunpravin Paneer Selvam
2026-10-09 10:15 ` ✓ CI.KUnit: success for series starting with [v4,1/3] gpu/buddy: restore two-pass clear/dirty guard for range-biased allocation Patchwork
2026-10-09 10:17 ` [PATCH v4 1/3] " sashiko-bot
2026-10-09 11:13 ` ✓ Xe.CI.BAT: success for series starting with [v4,1/3] " Patchwork
2026-10-09 13:35 ` ✓ Xe.CI.FULL: " Patchwork
2026-10-13 14:31 ` [PATCH v4 1/3] " Arunpravin Paneer Selvam
2026-10-13 15:06 ` Matthew Auld
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox