* [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper
@ 2026-07-21 17:47 Matthew Brost
2026-07-21 17:47 ` [PATCH 2/2] drm/ttm: use shmem_backup_folio() for folio backup Matthew Brost
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Matthew Brost @ 2026-07-21 17:47 UTC (permalink / raw)
To: intel-xe, dri-devel, linux-mm, linux-kernel
Cc: Hugh Dickins, Baolin Wang, Andrew Morton, Christian Koenig,
Huang Rui, Matthew Auld, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Christoph Hellwig
Add a new generic helper, shmem_backup_folio(), that copies the pages
of an arbitrary source folio into a range of a shmem-backed file,
optionally issuing writeback for each destination folio. It is
extracted from drivers/gpu/drm/ttm's existing shmem-backup loop so
that other subsystems (starting with TTM in a follow-up patch) can
share the same implementation.
Semantics:
- On full success, 0 is returned and *nr_pages_backed is set to
(1 << order).
- On a mid-range -ENOMEM after at least one destination folio has
been populated, the partial backup is retained: *nr_pages_backed
holds the successfully backed-up prefix and -ENOMEM is returned so
the caller can commit that prefix and decide how to proceed
(e.g. via a reactive split-and-retry path).
- On any other error, or -ENOMEM with no progress, the pages already
written are truncated from the backup file via
shmem_truncate_range(), *nr_pages_backed is reset to 0, and the
original error is returned.
@order is passed explicitly rather than derived from
folio_order(@folio). Some callers (e.g. TTM) allocate high-order
pages without __GFP_COMP, so folio_order() on such a "folio-shaped"
range would report 0.
folio_mark_dirty() runs after the copy loop, matching the kernel
write-path convention of lock -> modify -> mark_dirty.
Cc: Hugh Dickins <hughd@google.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Christian Koenig <christian.koenig@amd.com>
Cc: Huang Rui <ray.huang@amd.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Suggested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Assisted-by: GitHub-Copilot:claude-sonnet-5
---
The patch is based on drm-tip rather than the core MM branches to
facilitate Intel CI testing and initial review. It can be rebased onto
the core MM branches in a subsequent revision.
---
include/linux/shmem_fs.h | 3 +
mm/shmem.c | 125 +++++++++++++++++++++++++++++++++++++++
2 files changed, 128 insertions(+)
diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
index e729b9b0e38d..541f1ab675b7 100644
--- a/include/linux/shmem_fs.h
+++ b/include/linux/shmem_fs.h
@@ -127,6 +127,9 @@ int shmem_writeout(struct folio *folio, struct swap_iocb **plug,
struct list_head *folio_list);
void shmem_truncate_range(struct inode *inode, loff_t start, uoff_t end);
int shmem_unuse(unsigned int type);
+int shmem_backup_folio(struct folio *folio, struct file *backup, pgoff_t index,
+ gfp_t gfp, unsigned int order, pgoff_t *nr_pages_backed,
+ bool writeback);
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && defined(CONFIG_SHMEM)
unsigned long shmem_allowable_huge_orders(struct inode *inode,
diff --git a/mm/shmem.c b/mm/shmem.c
index b51f83c970bb..bc11c4039b7b 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -5961,3 +5961,128 @@ struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
return page;
}
EXPORT_SYMBOL_GPL(shmem_read_mapping_page_gfp);
+
+/**
+ * shmem_backup_folio() - Copy a folio's contents into a shmem-backed file.
+ * @folio: Source folio whose contents are to be backed up. Must remain
+ * pinned by the caller for the duration of the call. The source folio
+ * is not modified; on success its contents live in @backup and the
+ * caller may release the source memory.
+ * @backup: A file previously created with shmem_file_setup() (or a wrapper
+ * such as ttm_backup_shmem_create()). Must be shmem-backed;
+ * non-shmem files are rejected with -EINVAL.
+ * @index: shmem page index at which to begin storing the backup. The
+ * subpages of @folio are written to consecutive indices starting at
+ * @index. The caller is responsible for ensuring the range
+ * [@index, @index + nr_pages) does not collide with other in-flight
+ * backups against the same @backup.
+ * @gfp: Allocation flags used when reading/allocating the destination
+ * shmem folios.
+ * @order: Number of source subpages to copy, expressed as a power of two
+ * (nr_pages = 1 << @order). Passed explicitly rather than derived
+ * from folio_order(@folio) so that callers may back up higher-order
+ * page ranges that were allocated without __GFP_COMP (and for which
+ * folio_order() would therefore return 0).
+ * @nr_pages_backed: Out parameter. Reset to 0 on entry. On any return
+ * value, holds the number of source subpages whose contents are
+ * guaranteed to be present in @backup and reachable via consecutive
+ * shmem indices starting at @index. A value less than (1 << @order)
+ * with return value -ENOMEM indicates a partial backup that the
+ * caller may keep (see below).
+ * @writeback: If true, attempt immediate writeout of each destination
+ * shmem folio after it is populated. This trades throughput for
+ * promptly evicting the backup from page cache. Only meaningful for
+ * unmapped destination folios.
+ *
+ * Copy the contents of @folio into @backup starting at shmem index
+ * @index, one destination shmem folio at a time. Destination folios may
+ * themselves be higher-order; the copy loop advances by the natural
+ * order of each destination folio so a large destination folio is
+ * populated in a single iteration.
+ *
+ * The function distinguishes two failure modes:
+ *
+ * - Mid-folio -ENOMEM after at least one destination folio has been
+ * populated: the partial backup is *retained*. @nr_pages_backed is
+ * left at the number of subpages successfully copied so far, and
+ * -ENOMEM is returned. Callers that support partial backup (e.g. a
+ * subsequent split-and-retry of the source) can commit the returned
+ * prefix by treating handles [@index, @index + *@nr_pages_backed) as
+ * valid.
+ *
+ * - Any other error, or -ENOMEM with no progress: the pages already
+ * written (if any) are truncated from @backup via
+ * shmem_truncate_range(), @nr_pages_backed is reset to 0, and the
+ * original error is returned. On return the caller owns no valid
+ * handles in @backup.
+ *
+ * Context: May sleep. The caller is responsible for any locking of
+ * @backup's page range against concurrent access.
+ *
+ * Return: 0 on full success (all 1 << @order subpages backed up),
+ * -ENOMEM on partial success (see above), or another negative errno on
+ * failure (backup fully rolled back).
+ */
+int shmem_backup_folio(struct folio *folio, struct file *backup, pgoff_t index,
+ gfp_t gfp, unsigned int order, pgoff_t *nr_pages_backed,
+ bool writeback)
+{
+ struct address_space *mapping = backup->f_mapping;
+ int nr_pages = 1 << order;
+ int ret, i;
+
+ *nr_pages_backed = 0;
+ if (!shmem_file(backup))
+ return -EINVAL;
+
+ for (i = 0; i < nr_pages; ) {
+ struct folio *to_folio;
+ int to_nr, j;
+
+ to_folio = shmem_read_folio_gfp(mapping, index + i, gfp);
+ if (IS_ERR(to_folio)) {
+ ret = PTR_ERR(to_folio);
+
+ /* All errors aside from -ENOMEM drop partial backup */
+ if (*nr_pages_backed && ret != -ENOMEM) {
+ shmem_truncate_range(file_inode(backup),
+ (loff_t)index << PAGE_SHIFT,
+ ((loff_t)(index + i) << PAGE_SHIFT) - 1);
+ *nr_pages_backed = 0;
+ }
+
+ return ret;
+ }
+
+ to_nr = min_t(int, nr_pages - i,
+ folio_next_index(to_folio) - (index + i));
+
+ folio_mark_accessed(to_folio);
+ folio_lock(to_folio);
+
+ for (j = 0; j < to_nr; j++)
+ copy_highpage(folio_file_page(to_folio, index + i + j),
+ folio_page(folio, i + j));
+
+ folio_mark_dirty(to_folio);
+
+ if (writeback && !folio_mapped(to_folio) &&
+ folio_clear_dirty_for_io(to_folio)) {
+ folio_set_reclaim(to_folio);
+ ret = shmem_writeout(to_folio, NULL, NULL);
+ if (!folio_test_writeback(to_folio))
+ folio_clear_reclaim(to_folio);
+ if (ret == AOP_WRITEPAGE_ACTIVATE)
+ folio_unlock(to_folio);
+ } else {
+ folio_unlock(to_folio);
+ }
+
+ folio_put(to_folio);
+ i += to_nr;
+ *nr_pages_backed = i;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(shmem_backup_folio);
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 2/2] drm/ttm: use shmem_backup_folio() for folio backup
2026-07-21 17:47 [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper Matthew Brost
@ 2026-07-21 17:47 ` Matthew Brost
2026-07-21 17:54 ` ✓ CI.KUnit: success for series starting with [1/2] mm/shmem: add shmem_backup_folio() helper Patchwork
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Matthew Brost @ 2026-07-21 17:47 UTC (permalink / raw)
To: intel-xe, dri-devel, linux-mm, linux-kernel
Cc: Hugh Dickins, Baolin Wang, Andrew Morton, Christian Koenig,
Huang Rui, Matthew Auld, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Christoph Hellwig
Replace the open-coded shmem-backup loop in ttm_backup_backup_folio()
with a thin wrapper around the new shmem_backup_folio() helper. The
wrapper maps the helper's (int errno, *nr_pages_backed) contract onto
TTM's existing (s64 handle) return convention:
- 0 -> base handle
- -ENOMEM with *nr_pages_backed > 0 -> base handle (short backup;
partial progress kept)
- any other error -> that error verbatim
The mid-compound -ENOMEM fault-injection point that used to live
inside the per-subpage loop moves up to the wrapper and takes a new
shape: instead of synthesizing an error partway through the loop, the
wrapper passes order-1 to shmem_backup_folio() when
ttm_backup_fault_inject_folio() fires. shmem_backup_folio() then
backs up the first half of the compound normally, returns 0 with
*nr_pages_backed = (1 << (order - 1)), and TTM's caller sees the same
"short backup, nr_backed < (1 << order)" it would see on a real
mid-compound OOM and drives its reactive-split path unchanged.
Injection is skipped for order == 0 since there is nothing to shrink;
the previous "inject only on i > 0" guard mapped onto the same
observable subset of runs.
No functional change intended for non-injection paths.
Cc: Hugh Dickins <hughd@google.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Christian Koenig <christian.koenig@amd.com>
Cc: Huang Rui <ray.huang@amd.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: David Airlie <airlied@gmail.com>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
Suggested-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Assisted-by: GitHub-Copilot:claude-sonnet-5
---
The patch is based on drm-tip rather than the core MM branches to
facilitate Intel CI testing and initial review. It can be rebased onto
the core MM branches in a subsequent revision.
---
drivers/gpu/drm/ttm/ttm_backup.c | 91 ++++++++------------------------
1 file changed, 21 insertions(+), 70 deletions(-)
diff --git a/drivers/gpu/drm/ttm/ttm_backup.c b/drivers/gpu/drm/ttm/ttm_backup.c
index 3c067aadc52d..a6c4e6cb643b 100644
--- a/drivers/gpu/drm/ttm/ttm_backup.c
+++ b/drivers/gpu/drm/ttm/ttm_backup.c
@@ -105,76 +105,27 @@ ttm_backup_backup_folio(struct file *backup, struct folio *folio,
gfp_t folio_gfp, gfp_t alloc_gfp,
pgoff_t *nr_pages_backed)
{
- struct address_space *mapping = backup->f_mapping;
- int nr_pages = 1 << order;
- struct folio *to_folio;
- int ret, i;
-
- *nr_pages_backed = 0;
-
- for (i = 0; i < nr_pages; ) {
- int to_nr, j;
-
- /*
- * Only inject past the first subpage so *nr_pages_backed is
- * always > 0 here, matching a genuine mid-compound -ENOMEM
- * and driving the caller's reactive split fallback instead
- * of an early, no-progress failure.
- */
- if (IS_ENABLED(CONFIG_FAULT_INJECTION) && i &&
- ttm_backup_fault_inject_folio())
- to_folio = ERR_PTR(-ENOMEM);
- else
- to_folio = shmem_read_folio_gfp(mapping, idx + i, alloc_gfp);
- if (IS_ERR(to_folio)) {
- int err = PTR_ERR(to_folio);
-
- if (err == -ENOMEM && *nr_pages_backed)
- return ttm_backup_shmem_idx_to_handle(idx);
-
- if (*nr_pages_backed) {
- shmem_truncate_range(file_inode(backup),
- (loff_t)idx << PAGE_SHIFT,
- ((loff_t)(idx + i) << PAGE_SHIFT) - 1);
- /*
- * The pages just truncated are no longer
- * backed up; don't let the caller mistake
- * them for valid handles.
- */
- *nr_pages_backed = 0;
- }
- return err;
- }
-
- to_nr = min_t(int, nr_pages - i,
- folio_next_index(to_folio) - (idx + i));
-
- folio_mark_accessed(to_folio);
- folio_lock(to_folio);
- folio_mark_dirty(to_folio);
-
- for (j = 0; j < to_nr; j++)
- copy_highpage(folio_file_page(to_folio, idx + i + j),
- folio_page(folio, i + j));
-
- if (writeback && !folio_mapped(to_folio) &&
- folio_clear_dirty_for_io(to_folio)) {
- folio_set_reclaim(to_folio);
- ret = shmem_writeout(to_folio, NULL, NULL);
- if (!folio_test_writeback(to_folio))
- folio_clear_reclaim(to_folio);
- if (ret == AOP_WRITEPAGE_ACTIVATE)
- folio_unlock(to_folio);
- } else {
- folio_unlock(to_folio);
- }
-
- folio_put(to_folio);
- i += to_nr;
- *nr_pages_backed = i;
- }
-
- return ttm_backup_shmem_idx_to_handle(idx);
+ unsigned int backup_order = order;
+ int err;
+
+ /*
+ * Fault injection: back up only the first half of the folio to
+ * simulate a mid-compound OOM. The caller sees *nr_pages_backed
+ * < (1 << order) on success and drives its reactive-split path
+ * exactly as it would on a real short return. order == 0 cannot
+ * be shrunk further, so injection is skipped in that case.
+ */
+ if (IS_ENABLED(CONFIG_FAULT_INJECTION) && order &&
+ ttm_backup_fault_inject_folio())
+ backup_order = order - 1;
+
+ err = shmem_backup_folio(folio, backup, idx, alloc_gfp, backup_order,
+ nr_pages_backed, writeback);
+
+ if (!err || (err == -ENOMEM && *nr_pages_backed))
+ return ttm_backup_shmem_idx_to_handle(idx);
+
+ return err;
}
/**
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* ✓ CI.KUnit: success for series starting with [1/2] mm/shmem: add shmem_backup_folio() helper
2026-07-21 17:47 [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper Matthew Brost
2026-07-21 17:47 ` [PATCH 2/2] drm/ttm: use shmem_backup_folio() for folio backup Matthew Brost
@ 2026-07-21 17:54 ` Patchwork
2026-07-21 18:43 ` ✓ Xe.CI.BAT: " Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-07-21 17:54 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
== Series Details ==
Series: series starting with [1/2] mm/shmem: add shmem_backup_folio() helper
URL : https://patchwork.freedesktop.org/series/170838/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[17:53:01] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:53:05] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[17:53:37] Starting KUnit Kernel (1/1)...
[17:53:37] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:53:37] ================== guc_buf (11 subtests) ===================
[17:53:37] [PASSED] test_smallest
[17:53:37] [PASSED] test_largest
[17:53:37] [PASSED] test_granular
[17:53:37] [PASSED] test_unique
[17:53:37] [PASSED] test_overlap
[17:53:37] [PASSED] test_reusable
[17:53:37] [PASSED] test_too_big
[17:53:37] [PASSED] test_flush
[17:53:37] [PASSED] test_lookup
[17:53:37] [PASSED] test_data
[17:53:37] [PASSED] test_class
[17:53:37] ===================== [PASSED] guc_buf =====================
[17:53:37] =================== guc_dbm (7 subtests) ===================
[17:53:37] [PASSED] test_empty
[17:53:37] [PASSED] test_default
[17:53:37] ======================== test_size ========================
[17:53:37] [PASSED] 4
[17:53:37] [PASSED] 8
[17:53:37] [PASSED] 32
[17:53:37] [PASSED] 256
[17:53:37] ==================== [PASSED] test_size ====================
[17:53:37] ======================= test_reuse ========================
[17:53:37] [PASSED] 4
[17:53:37] [PASSED] 8
[17:53:37] [PASSED] 32
[17:53:37] [PASSED] 256
[17:53:37] =================== [PASSED] test_reuse ====================
[17:53:37] =================== test_range_overlap ====================
[17:53:37] [PASSED] 4
[17:53:37] [PASSED] 8
[17:53:37] [PASSED] 32
[17:53:37] [PASSED] 256
[17:53:37] =============== [PASSED] test_range_overlap ================
[17:53:37] =================== test_range_compact ====================
[17:53:37] [PASSED] 4
[17:53:37] [PASSED] 8
[17:53:37] [PASSED] 32
[17:53:37] [PASSED] 256
[17:53:37] =============== [PASSED] test_range_compact ================
[17:53:37] ==================== test_range_spare =====================
[17:53:37] [PASSED] 4
[17:53:37] [PASSED] 8
[17:53:37] [PASSED] 32
[17:53:37] [PASSED] 256
[17:53:37] ================ [PASSED] test_range_spare =================
[17:53:37] ===================== [PASSED] guc_dbm =====================
[17:53:37] =================== guc_idm (6 subtests) ===================
[17:53:37] [PASSED] bad_init
[17:53:37] [PASSED] no_init
[17:53:37] [PASSED] init_fini
[17:53:37] [PASSED] check_used
[17:53:37] [PASSED] check_quota
[17:53:37] [PASSED] check_all
[17:53:37] ===================== [PASSED] guc_idm =====================
[17:53:37] =============== guc_klv_helpers (9 subtests) ===============
[17:53:37] [PASSED] test_count
[17:53:37] [PASSED] test_encode_u32
[17:53:37] [PASSED] test_encode_u64
[17:53:37] [PASSED] test_encode_string
[17:53:37] [PASSED] test_encode_object_raw
[17:53:37] [PASSED] test_encode_object_klv
[17:53:37] [PASSED] test_encode_object_nested
[17:53:37] [PASSED] test_encode_object_basic
[17:53:37] [PASSED] test_print
[17:53:37] ================= [PASSED] guc_klv_helpers =================
[17:53:37] ================== no_relay (3 subtests) ===================
[17:53:37] [PASSED] xe_drops_guc2pf_if_not_ready
[17:53:37] [PASSED] xe_drops_guc2vf_if_not_ready
[17:53:37] [PASSED] xe_rejects_send_if_not_ready
[17:53:37] ==================== [PASSED] no_relay =====================
[17:53:37] ================== pf_relay (14 subtests) ==================
[17:53:37] [PASSED] pf_rejects_guc2pf_too_short
[17:53:37] [PASSED] pf_rejects_guc2pf_too_long
[17:53:37] [PASSED] pf_rejects_guc2pf_no_payload
[17:53:37] [PASSED] pf_fails_no_payload
[17:53:37] [PASSED] pf_fails_bad_origin
[17:53:37] [PASSED] pf_fails_bad_type
[17:53:37] [PASSED] pf_txn_reports_error
[17:53:37] [PASSED] pf_txn_sends_pf2guc
[17:53:37] [PASSED] pf_sends_pf2guc
[17:53:37] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[17:53:37] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[17:53:37] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[17:53:37] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[17:53:37] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[17:53:37] ==================== [PASSED] pf_relay =====================
[17:53:37] ================== vf_relay (3 subtests) ===================
[17:53:37] [PASSED] vf_rejects_guc2vf_too_short
[17:53:37] [PASSED] vf_rejects_guc2vf_too_long
[17:53:37] [PASSED] vf_rejects_guc2vf_no_payload
[17:53:37] ==================== [PASSED] vf_relay =====================
[17:53:37] ================ pf_gt_config (9 subtests) =================
[17:53:37] [PASSED] fair_contexts_1vf
[17:53:37] [PASSED] fair_doorbells_1vf
[17:53:37] [PASSED] fair_ggtt_1vf
[17:53:37] ====================== fair_vram_1vf ======================
[17:53:37] [PASSED] 3.50 GiB
[17:53:37] [PASSED] 11.5 GiB
[17:53:37] [PASSED] 15.5 GiB
[17:53:37] [PASSED] 31.5 GiB
[17:53:37] [PASSED] 63.5 GiB
[17:53:37] [PASSED] 1.91 GiB
[17:53:37] ================== [PASSED] fair_vram_1vf ==================
[17:53:37] ================ fair_vram_1vf_admin_only =================
[17:53:37] [PASSED] 3.50 GiB
[17:53:37] [PASSED] 11.5 GiB
[17:53:37] [PASSED] 15.5 GiB
[17:53:37] [PASSED] 31.5 GiB
[17:53:37] [PASSED] 63.5 GiB
[17:53:37] [PASSED] 1.91 GiB
[17:53:37] ============ [PASSED] fair_vram_1vf_admin_only =============
[17:53:37] ====================== fair_contexts ======================
[17:53:37] [PASSED] 1 VF
[17:53:37] [PASSED] 2 VFs
[17:53:37] [PASSED] 3 VFs
[17:53:37] [PASSED] 4 VFs
[17:53:37] [PASSED] 5 VFs
[17:53:37] [PASSED] 6 VFs
[17:53:37] [PASSED] 7 VFs
[17:53:37] [PASSED] 8 VFs
[17:53:37] [PASSED] 9 VFs
[17:53:37] [PASSED] 10 VFs
[17:53:37] [PASSED] 11 VFs
[17:53:37] [PASSED] 12 VFs
[17:53:37] [PASSED] 13 VFs
[17:53:37] [PASSED] 14 VFs
[17:53:37] [PASSED] 15 VFs
[17:53:37] [PASSED] 16 VFs
[17:53:37] [PASSED] 17 VFs
[17:53:37] [PASSED] 18 VFs
[17:53:37] [PASSED] 19 VFs
[17:53:37] [PASSED] 20 VFs
[17:53:37] [PASSED] 21 VFs
[17:53:37] [PASSED] 22 VFs
[17:53:37] [PASSED] 23 VFs
[17:53:37] [PASSED] 24 VFs
[17:53:37] [PASSED] 25 VFs
[17:53:37] [PASSED] 26 VFs
[17:53:37] [PASSED] 27 VFs
[17:53:37] [PASSED] 28 VFs
[17:53:37] [PASSED] 29 VFs
[17:53:37] [PASSED] 30 VFs
[17:53:37] [PASSED] 31 VFs
[17:53:37] [PASSED] 32 VFs
[17:53:37] [PASSED] 33 VFs
[17:53:37] [PASSED] 34 VFs
[17:53:37] [PASSED] 35 VFs
[17:53:37] [PASSED] 36 VFs
[17:53:37] [PASSED] 37 VFs
[17:53:37] [PASSED] 38 VFs
[17:53:37] [PASSED] 39 VFs
[17:53:37] [PASSED] 40 VFs
[17:53:37] [PASSED] 41 VFs
[17:53:37] [PASSED] 42 VFs
[17:53:37] [PASSED] 43 VFs
[17:53:37] [PASSED] 44 VFs
[17:53:37] [PASSED] 45 VFs
[17:53:37] [PASSED] 46 VFs
[17:53:37] [PASSED] 47 VFs
[17:53:37] [PASSED] 48 VFs
[17:53:37] [PASSED] 49 VFs
[17:53:37] [PASSED] 50 VFs
[17:53:37] [PASSED] 51 VFs
[17:53:37] [PASSED] 52 VFs
[17:53:37] [PASSED] 53 VFs
[17:53:37] [PASSED] 54 VFs
[17:53:37] [PASSED] 55 VFs
[17:53:37] [PASSED] 56 VFs
[17:53:37] [PASSED] 57 VFs
[17:53:37] [PASSED] 58 VFs
[17:53:37] [PASSED] 59 VFs
[17:53:37] [PASSED] 60 VFs
[17:53:37] [PASSED] 61 VFs
[17:53:37] [PASSED] 62 VFs
[17:53:37] [PASSED] 63 VFs
[17:53:37] ================== [PASSED] fair_contexts ==================
[17:53:37] ===================== fair_doorbells ======================
[17:53:37] [PASSED] 1 VF
[17:53:37] [PASSED] 2 VFs
[17:53:37] [PASSED] 3 VFs
[17:53:37] [PASSED] 4 VFs
[17:53:37] [PASSED] 5 VFs
[17:53:37] [PASSED] 6 VFs
[17:53:37] [PASSED] 7 VFs
[17:53:37] [PASSED] 8 VFs
[17:53:37] [PASSED] 9 VFs
[17:53:37] [PASSED] 10 VFs
[17:53:37] [PASSED] 11 VFs
[17:53:37] [PASSED] 12 VFs
[17:53:37] [PASSED] 13 VFs
[17:53:37] [PASSED] 14 VFs
[17:53:37] [PASSED] 15 VFs
[17:53:37] [PASSED] 16 VFs
[17:53:37] [PASSED] 17 VFs
[17:53:37] [PASSED] 18 VFs
[17:53:37] [PASSED] 19 VFs
[17:53:37] [PASSED] 20 VFs
[17:53:37] [PASSED] 21 VFs
[17:53:37] [PASSED] 22 VFs
[17:53:37] [PASSED] 23 VFs
[17:53:37] [PASSED] 24 VFs
[17:53:37] [PASSED] 25 VFs
[17:53:37] [PASSED] 26 VFs
[17:53:37] [PASSED] 27 VFs
[17:53:37] [PASSED] 28 VFs
[17:53:37] [PASSED] 29 VFs
[17:53:37] [PASSED] 30 VFs
[17:53:37] [PASSED] 31 VFs
[17:53:37] [PASSED] 32 VFs
[17:53:37] [PASSED] 33 VFs
[17:53:37] [PASSED] 34 VFs
[17:53:37] [PASSED] 35 VFs
[17:53:37] [PASSED] 36 VFs
[17:53:37] [PASSED] 37 VFs
[17:53:37] [PASSED] 38 VFs
[17:53:37] [PASSED] 39 VFs
[17:53:37] [PASSED] 40 VFs
[17:53:37] [PASSED] 41 VFs
[17:53:37] [PASSED] 42 VFs
[17:53:37] [PASSED] 43 VFs
[17:53:37] [PASSED] 44 VFs
[17:53:37] [PASSED] 45 VFs
[17:53:37] [PASSED] 46 VFs
[17:53:37] [PASSED] 47 VFs
[17:53:37] [PASSED] 48 VFs
[17:53:37] [PASSED] 49 VFs
[17:53:37] [PASSED] 50 VFs
[17:53:37] [PASSED] 51 VFs
[17:53:37] [PASSED] 52 VFs
[17:53:37] [PASSED] 53 VFs
[17:53:37] [PASSED] 54 VFs
[17:53:37] [PASSED] 55 VFs
[17:53:37] [PASSED] 56 VFs
[17:53:37] [PASSED] 57 VFs
[17:53:37] [PASSED] 58 VFs
[17:53:37] [PASSED] 59 VFs
[17:53:37] [PASSED] 60 VFs
[17:53:37] [PASSED] 61 VFs
[17:53:37] [PASSED] 62 VFs
[17:53:37] [PASSED] 63 VFs
[17:53:37] ================= [PASSED] fair_doorbells ==================
[17:53:37] ======================== fair_ggtt ========================
[17:53:37] [PASSED] 1 VF
[17:53:37] [PASSED] 2 VFs
[17:53:37] [PASSED] 3 VFs
[17:53:37] [PASSED] 4 VFs
[17:53:37] [PASSED] 5 VFs
[17:53:37] [PASSED] 6 VFs
[17:53:37] [PASSED] 7 VFs
[17:53:37] [PASSED] 8 VFs
[17:53:37] [PASSED] 9 VFs
[17:53:37] [PASSED] 10 VFs
[17:53:37] [PASSED] 11 VFs
[17:53:37] [PASSED] 12 VFs
[17:53:37] [PASSED] 13 VFs
[17:53:37] [PASSED] 14 VFs
[17:53:37] [PASSED] 15 VFs
[17:53:37] [PASSED] 16 VFs
[17:53:37] [PASSED] 17 VFs
[17:53:37] [PASSED] 18 VFs
[17:53:37] [PASSED] 19 VFs
[17:53:37] [PASSED] 20 VFs
[17:53:37] [PASSED] 21 VFs
[17:53:37] [PASSED] 22 VFs
[17:53:37] [PASSED] 23 VFs
[17:53:37] [PASSED] 24 VFs
[17:53:37] [PASSED] 25 VFs
[17:53:37] [PASSED] 26 VFs
[17:53:37] [PASSED] 27 VFs
[17:53:37] [PASSED] 28 VFs
[17:53:37] [PASSED] 29 VFs
[17:53:37] [PASSED] 30 VFs
[17:53:37] [PASSED] 31 VFs
[17:53:37] [PASSED] 32 VFs
[17:53:37] [PASSED] 33 VFs
[17:53:37] [PASSED] 34 VFs
[17:53:37] [PASSED] 35 VFs
[17:53:37] [PASSED] 36 VFs
[17:53:37] [PASSED] 37 VFs
[17:53:37] [PASSED] 38 VFs
[17:53:37] [PASSED] 39 VFs
[17:53:37] [PASSED] 40 VFs
[17:53:37] [PASSED] 41 VFs
[17:53:37] [PASSED] 42 VFs
[17:53:37] [PASSED] 43 VFs
[17:53:37] [PASSED] 44 VFs
[17:53:37] [PASSED] 45 VFs
[17:53:37] [PASSED] 46 VFs
[17:53:37] [PASSED] 47 VFs
[17:53:37] [PASSED] 48 VFs
[17:53:37] [PASSED] 49 VFs
[17:53:37] [PASSED] 50 VFs
[17:53:37] [PASSED] 51 VFs
[17:53:37] [PASSED] 52 VFs
[17:53:37] [PASSED] 53 VFs
[17:53:37] [PASSED] 54 VFs
[17:53:37] [PASSED] 55 VFs
[17:53:37] [PASSED] 56 VFs
[17:53:37] [PASSED] 57 VFs
[17:53:37] [PASSED] 58 VFs
[17:53:37] [PASSED] 59 VFs
[17:53:37] [PASSED] 60 VFs
[17:53:37] [PASSED] 61 VFs
[17:53:37] [PASSED] 62 VFs
[17:53:37] [PASSED] 63 VFs
[17:53:37] ==================== [PASSED] fair_ggtt ====================
[17:53:37] ======================== fair_vram ========================
[17:53:37] [PASSED] 1 VF
[17:53:37] [PASSED] 2 VFs
[17:53:37] [PASSED] 3 VFs
[17:53:37] [PASSED] 4 VFs
[17:53:37] [PASSED] 5 VFs
[17:53:37] [PASSED] 6 VFs
[17:53:37] [PASSED] 7 VFs
[17:53:37] [PASSED] 8 VFs
[17:53:37] [PASSED] 9 VFs
[17:53:37] [PASSED] 10 VFs
[17:53:37] [PASSED] 11 VFs
[17:53:37] [PASSED] 12 VFs
[17:53:37] [PASSED] 13 VFs
[17:53:37] [PASSED] 14 VFs
[17:53:37] [PASSED] 15 VFs
[17:53:37] [PASSED] 16 VFs
[17:53:37] [PASSED] 17 VFs
[17:53:37] [PASSED] 18 VFs
[17:53:37] [PASSED] 19 VFs
[17:53:37] [PASSED] 20 VFs
[17:53:37] [PASSED] 21 VFs
[17:53:37] [PASSED] 22 VFs
[17:53:37] [PASSED] 23 VFs
[17:53:37] [PASSED] 24 VFs
[17:53:37] [PASSED] 25 VFs
[17:53:37] [PASSED] 26 VFs
[17:53:37] [PASSED] 27 VFs
[17:53:37] [PASSED] 28 VFs
[17:53:37] [PASSED] 29 VFs
[17:53:37] [PASSED] 30 VFs
[17:53:37] [PASSED] 31 VFs
[17:53:37] [PASSED] 32 VFs
[17:53:37] [PASSED] 33 VFs
[17:53:37] [PASSED] 34 VFs
[17:53:37] [PASSED] 35 VFs
[17:53:37] [PASSED] 36 VFs
[17:53:37] [PASSED] 37 VFs
[17:53:37] [PASSED] 38 VFs
[17:53:37] [PASSED] 39 VFs
[17:53:37] [PASSED] 40 VFs
[17:53:37] [PASSED] 41 VFs
[17:53:37] [PASSED] 42 VFs
[17:53:37] [PASSED] 43 VFs
[17:53:37] [PASSED] 44 VFs
[17:53:37] [PASSED] 45 VFs
[17:53:37] [PASSED] 46 VFs
[17:53:37] [PASSED] 47 VFs
[17:53:37] [PASSED] 48 VFs
[17:53:37] [PASSED] 49 VFs
[17:53:37] [PASSED] 50 VFs
[17:53:37] [PASSED] 51 VFs
[17:53:37] [PASSED] 52 VFs
[17:53:37] [PASSED] 53 VFs
[17:53:37] [PASSED] 54 VFs
[17:53:37] [PASSED] 55 VFs
[17:53:37] [PASSED] 56 VFs
[17:53:37] [PASSED] 57 VFs
[17:53:37] [PASSED] 58 VFs
[17:53:37] [PASSED] 59 VFs
[17:53:37] [PASSED] 60 VFs
[17:53:37] [PASSED] 61 VFs
[17:53:37] [PASSED] 62 VFs
[17:53:37] [PASSED] 63 VFs
[17:53:37] ==================== [PASSED] fair_vram ====================
[17:53:37] ================== [PASSED] pf_gt_config ===================
[17:53:37] ===================== lmtt (1 subtest) =====================
[17:53:37] ======================== test_ops =========================
[17:53:37] [PASSED] 2-level
[17:53:37] [PASSED] multi-level
[17:53:37] ==================== [PASSED] test_ops =====================
[17:53:37] ====================== [PASSED] lmtt =======================
[17:53:37] ================= sriov_packet (1 subtest) =================
[17:53:37] [PASSED] test_descriptor_init
[17:53:37] ================== [PASSED] sriov_packet ===================
[17:53:37] ================= pf_service (11 subtests) =================
[17:53:37] [PASSED] pf_negotiate_any
[17:53:37] [PASSED] pf_negotiate_base_match
[17:53:37] [PASSED] pf_negotiate_base_newer
[17:53:37] [PASSED] pf_negotiate_base_next
[17:53:37] [SKIPPED] pf_negotiate_base_older (no older minor)
[17:53:37] [PASSED] pf_negotiate_base_prev
[17:53:37] [PASSED] pf_negotiate_latest_match
[17:53:37] [PASSED] pf_negotiate_latest_newer
[17:53:37] [PASSED] pf_negotiate_latest_next
[17:53:37] [SKIPPED] pf_negotiate_latest_older (no older minor)
[17:53:37] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[17:53:37] =================== [PASSED] pf_service ====================
[17:53:37] ================= xe_guc_g2g (2 subtests) ==================
[17:53:37] ============== xe_live_guc_g2g_kunit_default ==============
[17:53:37] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[17:53:37] ============== xe_live_guc_g2g_kunit_allmem ===============
[17:53:37] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[17:53:37] =================== [SKIPPED] xe_guc_g2g ===================
[17:53:37] =================== xe_mocs (2 subtests) ===================
[17:53:37] ================ xe_live_mocs_kernel_kunit ================
[17:53:37] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[17:53:37] ================ xe_live_mocs_reset_kunit =================
[17:53:37] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[17:53:37] ==================== [SKIPPED] xe_mocs =====================
[17:53:37] ================= xe_migrate (2 subtests) ==================
[17:53:37] ================= xe_migrate_sanity_kunit =================
[17:53:37] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[17:53:37] ================== xe_validate_ccs_kunit ==================
[17:53:37] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[17:53:37] =================== [SKIPPED] xe_migrate ===================
[17:53:37] ================== xe_dma_buf (1 subtest) ==================
[17:53:37] ==================== xe_dma_buf_kunit =====================
[17:53:37] ================ [SKIPPED] xe_dma_buf_kunit ================
[17:53:37] =================== [SKIPPED] xe_dma_buf ===================
[17:53:37] ================= xe_bo_shrink (1 subtest) =================
[17:53:37] =================== xe_bo_shrink_kunit ====================
[17:53:37] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[17:53:37] ================== [SKIPPED] xe_bo_shrink ==================
[17:53:37] ==================== xe_bo (2 subtests) ====================
[17:53:37] ================== xe_ccs_migrate_kunit ===================
[17:53:37] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[17:53:37] ==================== xe_bo_evict_kunit ====================
[17:53:37] =============== [SKIPPED] xe_bo_evict_kunit ================
[17:53:37] ===================== [SKIPPED] xe_bo ======================
[17:53:37] ==================== args (13 subtests) ====================
[17:53:37] [PASSED] count_args_test
[17:53:37] [PASSED] call_args_example
[17:53:37] [PASSED] call_args_test
[17:53:37] [PASSED] drop_first_arg_example
[17:53:37] [PASSED] drop_first_arg_test
[17:53:37] [PASSED] first_arg_example
[17:53:37] [PASSED] first_arg_test
[17:53:37] [PASSED] last_arg_example
[17:53:37] [PASSED] last_arg_test
[17:53:37] [PASSED] pick_arg_example
[17:53:37] [PASSED] if_args_example
[17:53:37] [PASSED] if_args_test
[17:53:37] [PASSED] sep_comma_example
[17:53:37] ====================== [PASSED] args =======================
[17:53:37] =================== xe_pci (3 subtests) ====================
[17:53:37] ==================== check_graphics_ip ====================
[17:53:37] [PASSED] 12.00 Xe_LP
[17:53:37] [PASSED] 12.10 Xe_LP+
[17:53:37] [PASSED] 12.55 Xe_HPG
[17:53:37] [PASSED] 12.60 Xe_HPC
[17:53:37] [PASSED] 12.70 Xe_LPG
[17:53:37] [PASSED] 12.71 Xe_LPG
[17:53:37] [PASSED] 12.74 Xe_LPG+
[17:53:37] [PASSED] 20.01 Xe2_HPG
[17:53:37] [PASSED] 20.02 Xe2_HPG
[17:53:37] [PASSED] 20.04 Xe2_LPG
[17:53:37] [PASSED] 30.00 Xe3_LPG
[17:53:37] [PASSED] 30.01 Xe3_LPG
[17:53:37] [PASSED] 30.03 Xe3_LPG
[17:53:37] [PASSED] 30.04 Xe3_LPG
[17:53:37] [PASSED] 30.05 Xe3_LPG
[17:53:37] [PASSED] 35.10 Xe3p_LPG
[17:53:37] [PASSED] 35.11 Xe3p_XPC
[17:53:37] ================ [PASSED] check_graphics_ip ================
[17:53:37] ===================== check_media_ip ======================
[17:53:37] [PASSED] 12.00 Xe_M
[17:53:37] [PASSED] 12.55 Xe_HPM
[17:53:37] [PASSED] 13.00 Xe_LPM+
[17:53:37] [PASSED] 13.01 Xe2_HPM
[17:53:37] [PASSED] 20.00 Xe2_LPM
[17:53:37] [PASSED] 30.00 Xe3_LPM
[17:53:37] [PASSED] 30.02 Xe3_LPM
[17:53:37] [PASSED] 35.00 Xe3p_LPM
[17:53:37] [PASSED] 35.03 Xe3p_HPM
[17:53:37] ================= [PASSED] check_media_ip ==================
[17:53:37] =================== check_platform_desc ===================
[17:53:37] [PASSED] 0x9A60 (TIGERLAKE)
[17:53:37] [PASSED] 0x9A68 (TIGERLAKE)
[17:53:37] [PASSED] 0x9A70 (TIGERLAKE)
[17:53:37] [PASSED] 0x9A40 (TIGERLAKE)
[17:53:37] [PASSED] 0x9A49 (TIGERLAKE)
[17:53:37] [PASSED] 0x9A59 (TIGERLAKE)
[17:53:37] [PASSED] 0x9A78 (TIGERLAKE)
[17:53:37] [PASSED] 0x9AC0 (TIGERLAKE)
[17:53:37] [PASSED] 0x9AC9 (TIGERLAKE)
[17:53:37] [PASSED] 0x9AD9 (TIGERLAKE)
[17:53:37] [PASSED] 0x9AF8 (TIGERLAKE)
[17:53:37] [PASSED] 0x4C80 (ROCKETLAKE)
[17:53:37] [PASSED] 0x4C8A (ROCKETLAKE)
[17:53:37] [PASSED] 0x4C8B (ROCKETLAKE)
[17:53:37] [PASSED] 0x4C8C (ROCKETLAKE)
[17:53:37] [PASSED] 0x4C90 (ROCKETLAKE)
[17:53:37] [PASSED] 0x4C9A (ROCKETLAKE)
[17:53:37] [PASSED] 0x4680 (ALDERLAKE_S)
[17:53:37] [PASSED] 0x4682 (ALDERLAKE_S)
[17:53:37] [PASSED] 0x4688 (ALDERLAKE_S)
[17:53:37] [PASSED] 0x468A (ALDERLAKE_S)
[17:53:37] [PASSED] 0x468B (ALDERLAKE_S)
[17:53:37] [PASSED] 0x4690 (ALDERLAKE_S)
[17:53:37] [PASSED] 0x4692 (ALDERLAKE_S)
[17:53:37] [PASSED] 0x4693 (ALDERLAKE_S)
[17:53:37] [PASSED] 0x46A0 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46A1 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46A2 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46A3 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46A6 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46A8 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46AA (ALDERLAKE_P)
[17:53:37] [PASSED] 0x462A (ALDERLAKE_P)
[17:53:37] [PASSED] 0x4626 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x4628 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46B0 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46B1 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46B2 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46B3 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46C0 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46C1 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46C2 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46C3 (ALDERLAKE_P)
[17:53:37] [PASSED] 0x46D0 (ALDERLAKE_N)
[17:53:37] [PASSED] 0x46D1 (ALDERLAKE_N)
[17:53:37] [PASSED] 0x46D2 (ALDERLAKE_N)
[17:53:37] [PASSED] 0x46D3 (ALDERLAKE_N)
[17:53:37] [PASSED] 0x46D4 (ALDERLAKE_N)
[17:53:37] [PASSED] 0xA721 (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7A1 (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7A9 (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7AC (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7AD (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA720 (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7A0 (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7A8 (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7AA (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA7AB (ALDERLAKE_P)
[17:53:37] [PASSED] 0xA780 (ALDERLAKE_S)
[17:53:37] [PASSED] 0xA781 (ALDERLAKE_S)
[17:53:37] [PASSED] 0xA782 (ALDERLAKE_S)
[17:53:37] [PASSED] 0xA783 (ALDERLAKE_S)
[17:53:37] [PASSED] 0xA788 (ALDERLAKE_S)
[17:53:37] [PASSED] 0xA789 (ALDERLAKE_S)
[17:53:37] [PASSED] 0xA78A (ALDERLAKE_S)
[17:53:37] [PASSED] 0xA78B (ALDERLAKE_S)
[17:53:37] [PASSED] 0x4905 (DG1)
[17:53:37] [PASSED] 0x4906 (DG1)
[17:53:37] [PASSED] 0x4907 (DG1)
[17:53:37] [PASSED] 0x4908 (DG1)
[17:53:37] [PASSED] 0x4909 (DG1)
[17:53:37] [PASSED] 0x56C0 (DG2)
[17:53:37] [PASSED] 0x56C2 (DG2)
[17:53:37] [PASSED] 0x56C1 (DG2)
[17:53:37] [PASSED] 0x7D51 (METEORLAKE)
[17:53:37] [PASSED] 0x7DD1 (METEORLAKE)
[17:53:37] [PASSED] 0x7D41 (METEORLAKE)
[17:53:37] [PASSED] 0x7D67 (METEORLAKE)
[17:53:37] [PASSED] 0xB640 (METEORLAKE)
[17:53:37] [PASSED] 0x56A0 (DG2)
[17:53:37] [PASSED] 0x56A1 (DG2)
[17:53:37] [PASSED] 0x56A2 (DG2)
[17:53:37] [PASSED] 0x56BE (DG2)
[17:53:37] [PASSED] 0x56BF (DG2)
[17:53:37] [PASSED] 0x5690 (DG2)
[17:53:37] [PASSED] 0x5691 (DG2)
[17:53:37] [PASSED] 0x5692 (DG2)
[17:53:37] [PASSED] 0x56A5 (DG2)
[17:53:37] [PASSED] 0x56A6 (DG2)
[17:53:37] [PASSED] 0x56B0 (DG2)
[17:53:37] [PASSED] 0x56B1 (DG2)
[17:53:37] [PASSED] 0x56BA (DG2)
[17:53:37] [PASSED] 0x56BB (DG2)
[17:53:37] [PASSED] 0x56BC (DG2)
[17:53:37] [PASSED] 0x56BD (DG2)
[17:53:37] [PASSED] 0x5693 (DG2)
[17:53:37] [PASSED] 0x5694 (DG2)
[17:53:37] [PASSED] 0x5695 (DG2)
[17:53:37] [PASSED] 0x56A3 (DG2)
[17:53:37] [PASSED] 0x56A4 (DG2)
[17:53:37] [PASSED] 0x56B2 (DG2)
[17:53:37] [PASSED] 0x56B3 (DG2)
[17:53:37] [PASSED] 0x5696 (DG2)
[17:53:37] [PASSED] 0x5697 (DG2)
[17:53:37] [PASSED] 0xB69 (PVC)
[17:53:37] [PASSED] 0xB6E (PVC)
[17:53:37] [PASSED] 0xBD4 (PVC)
[17:53:37] [PASSED] 0xBD5 (PVC)
[17:53:37] [PASSED] 0xBD6 (PVC)
[17:53:37] [PASSED] 0xBD7 (PVC)
[17:53:37] [PASSED] 0xBD8 (PVC)
[17:53:37] [PASSED] 0xBD9 (PVC)
[17:53:37] [PASSED] 0xBDA (PVC)
[17:53:37] [PASSED] 0xBDB (PVC)
[17:53:37] [PASSED] 0xBE0 (PVC)
[17:53:37] [PASSED] 0xBE1 (PVC)
[17:53:37] [PASSED] 0xBE5 (PVC)
[17:53:37] [PASSED] 0x7D40 (METEORLAKE)
[17:53:37] [PASSED] 0x7D45 (METEORLAKE)
[17:53:37] [PASSED] 0x7D55 (METEORLAKE)
[17:53:37] [PASSED] 0x7D60 (METEORLAKE)
[17:53:37] [PASSED] 0x7DD5 (METEORLAKE)
[17:53:37] [PASSED] 0x6420 (LUNARLAKE)
[17:53:37] [PASSED] 0x64A0 (LUNARLAKE)
[17:53:37] [PASSED] 0x64B0 (LUNARLAKE)
[17:53:37] [PASSED] 0xE202 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE209 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE20B (BATTLEMAGE)
[17:53:37] [PASSED] 0xE20C (BATTLEMAGE)
[17:53:37] [PASSED] 0xE20D (BATTLEMAGE)
[17:53:37] [PASSED] 0xE210 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE211 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE212 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE216 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE220 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE221 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE222 (BATTLEMAGE)
[17:53:37] [PASSED] 0xE223 (BATTLEMAGE)
[17:53:37] [PASSED] 0xB080 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB081 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB082 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB083 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB084 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB085 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB086 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB087 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB08F (PANTHERLAKE)
[17:53:37] [PASSED] 0xB090 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB0A0 (PANTHERLAKE)
[17:53:37] [PASSED] 0xB0B0 (PANTHERLAKE)
[17:53:37] [PASSED] 0xFD80 (PANTHERLAKE)
[17:53:37] [PASSED] 0xFD81 (PANTHERLAKE)
[17:53:37] [PASSED] 0xD740 (NOVALAKE_S)
[17:53:37] [PASSED] 0xD741 (NOVALAKE_S)
[17:53:37] [PASSED] 0xD742 (NOVALAKE_S)
[17:53:37] [PASSED] 0xD743 (NOVALAKE_S)
[17:53:37] [PASSED] 0xD745 (NOVALAKE_S)
[17:53:37] [PASSED] 0xD74A (NOVALAKE_S)
[17:53:37] [PASSED] 0xD74B (NOVALAKE_S)
[17:53:37] [PASSED] 0x674C (CRESCENTISLAND)
[17:53:37] [PASSED] 0x674D (CRESCENTISLAND)
[17:53:37] [PASSED] 0x674E (CRESCENTISLAND)
[17:53:37] [PASSED] 0x674F (CRESCENTISLAND)
[17:53:37] [PASSED] 0x6750 (CRESCENTISLAND)
[17:53:37] [PASSED] 0xD750 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD751 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD752 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD753 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD754 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD755 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD756 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD757 (NOVALAKE_P)
[17:53:37] [PASSED] 0xD75F (NOVALAKE_P)
[17:53:37] =============== [PASSED] check_platform_desc ===============
[17:53:37] ===================== [PASSED] xe_pci ======================
[17:53:37] ============= xe_rtp_tables_test (5 subtests) ==============
[17:53:37] ================== xe_rtp_table_gt_test ===================
[17:53:37] [PASSED] gt_was/14011060649
[17:53:37] [PASSED] gt_was/14011059788
[17:53:37] [PASSED] gt_was/14015795083
[17:53:37] [PASSED] gt_was/16021867713
[17:53:37] [PASSED] gt_was/14019449301
[17:53:37] [PASSED] gt_was/16028005424
[17:53:37] [PASSED] gt_was/14026578760
[17:53:37] [PASSED] gt_was/1409420604
[17:53:37] [PASSED] gt_was/1408615072
[17:53:37] [PASSED] gt_was/22010523718
[17:53:37] [PASSED] gt_was/14011006942
[17:53:37] [PASSED] gt_was/14014830051
[17:53:37] [PASSED] gt_was/18018781329
[17:53:37] [PASSED] gt_was/1509235366
[17:53:37] [PASSED] gt_was/18018781329
[17:53:37] [PASSED] gt_was/16016694945
[17:53:37] [PASSED] gt_was/14018575942
[17:53:37] [PASSED] gt_was/22016670082
[17:53:37] [PASSED] gt_was/22016670082
[17:53:37] [PASSED] gt_was/14017421178
[17:53:37] [PASSED] gt_was/16025250150
[17:53:37] [PASSED] gt_was/14021871409
[17:53:37] [PASSED] gt_was/16021865536
[17:53:37] [PASSED] gt_was/14021486841
[17:53:37] [PASSED] gt_was/14025160223
[17:53:37] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[17:53:37] [PASSED] gt_was/14025635424
[17:53:37] [PASSED] gt_was/16028005424
[17:53:37] ============== [PASSED] xe_rtp_table_gt_test ===============
[17:53:37] ================== xe_rtp_table_gt_test ===================
[17:53:37] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[17:53:37] [PASSED] gt_tunings/Tuning: 32B Access Enable
[17:53:37] [PASSED] gt_tunings/Tuning: L3 cache
[17:53:37] [PASSED] gt_tunings/Tuning: L3 cache - media
[17:53:37] [PASSED] gt_tunings/Tuning: Compression Overfetch
[17:53:37] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[17:53:37] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[17:53:37] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[17:53:37] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[17:53:37] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[17:53:37] [PASSED] gt_tunings/Tuning: Stateless compression control
[17:53:37] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[17:53:37] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[17:53:37] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[17:53:37] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[17:53:37] ============== [PASSED] xe_rtp_table_gt_test ===============
[17:53:37] ================== xe_rtp_table_oob_test ==================
[17:53:37] [PASSED] oob_was/1607983814
[17:53:37] [PASSED] oob_was/16010904313
[17:53:37] [PASSED] oob_was/18022495364
[17:53:37] [PASSED] oob_was/22012773006
[17:53:37] [PASSED] oob_was/14014475959
[17:53:37] [PASSED] oob_was/22011391025
[17:53:37] [PASSED] oob_was/22012727170
[17:53:37] [PASSED] oob_was/22012727685
[17:53:37] [PASSED] oob_was/22016596838
[17:53:37] [PASSED] oob_was/18020744125
[17:53:37] [PASSED] oob_was/1409600907
[17:53:37] [PASSED] oob_was/22014953428
[17:53:37] [PASSED] oob_was/16017236439
[17:53:37] [PASSED] oob_was/14019821291
[17:53:37] [PASSED] oob_was/14015076503
[17:53:37] [PASSED] oob_was/14018913170
[17:53:37] [PASSED] oob_was/14018094691
[17:53:37] [PASSED] oob_was/18024947630
[17:53:37] [PASSED] oob_was/16022287689
[17:53:37] [PASSED] oob_was/13011645652
[17:53:37] [PASSED] oob_was/14022293748
[17:53:37] [PASSED] oob_was/22019794406
[17:53:37] [PASSED] oob_was/22019338487
[17:53:37] [PASSED] oob_was/16023588340
[17:53:37] [PASSED] oob_was/14019789679
[17:53:37] [PASSED] oob_was/14022866841
[17:53:37] [PASSED] oob_was/16021333562
[17:53:37] [PASSED] oob_was/14016712196
[17:53:37] [PASSED] oob_was/14015568240
[17:53:37] [PASSED] oob_was/18013179988
[17:53:37] [PASSED] oob_was/1508761755
[17:53:37] [PASSED] oob_was/16023105232
[17:53:37] [PASSED] oob_was/16026508708
[17:53:37] [PASSED] oob_was/14020001231
[17:53:37] [PASSED] oob_was/16023683509
[17:53:37] [PASSED] oob_was/14025515070
[17:53:37] [PASSED] oob_was/15015404425_disable
[17:53:37] [PASSED] oob_was/16026007364
[17:53:37] [PASSED] oob_was/14020316580
[17:53:37] [PASSED] oob_was/14025883347
[17:53:37] [PASSED] oob_was/16029380221
[17:53:37] [PASSED] oob_was/22022079272
[17:53:37] [PASSED] oob_was/16029897822
[17:53:37] ============== [PASSED] xe_rtp_table_oob_test ==============
[17:53:37] ================ xe_rtp_table_dev_oob_test ================
[17:53:37] [PASSED] device_oob_was/22010954014
[17:53:37] [PASSED] device_oob_was/15015404425
[17:53:37] [PASSED] device_oob_was/22019338487_display
[17:53:37] [PASSED] device_oob_was/14022085890
[17:53:37] [PASSED] device_oob_was/14026539277
[17:53:37] [PASSED] device_oob_was/14026633728
[17:53:37] [PASSED] device_oob_was/14026746987
[17:53:37] [PASSED] device_oob_was/14026779378
[17:53:37] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[17:53:37] ========== xe_rtp_table_missing_upper_bound_test ==========
[17:53:37] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[17:53:37] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[17:53:37] [PASSED] register_whitelist/1806527549
[17:53:37] [PASSED] register_whitelist/allow_read_ctx_timestamp
[17:53:37] [PASSED] register_whitelist/allow_read_queue_timestamp
[17:53:37] [PASSED] register_whitelist/16014440446
[17:53:37] [PASSED] register_whitelist/16017236439
[17:53:37] [PASSED] register_whitelist/16020183090
[17:53:37] [PASSED] register_whitelist/14024997852
[17:53:37] [PASSED] register_whitelist/14024997852
[17:53:37] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[17:53:37] =============== [PASSED] xe_rtp_tables_test ================
[17:53:37] =================== xe_rtp (3 subtests) ====================
[17:53:37] =================== xe_rtp_rules_tests ====================
[17:53:37] [PASSED] no
[17:53:37] [PASSED] yes
[17:53:37] [PASSED] no-and-no
[17:53:37] [PASSED] no-and-yes
[17:53:37] [PASSED] yes-and-no
[17:53:37] [PASSED] yes-and-yes
[17:53:37] [PASSED] no-or-no
[17:53:37] [PASSED] no-or-yes
[17:53:37] [PASSED] yes-or-no
[17:53:37] [PASSED] yes-or-yes
[17:53:37] [PASSED] no-yes-or-yes-no
[17:53:37] [PASSED] no-yes-or-yes-yes
[17:53:37] [PASSED] yes-yes-or-no-yes
[17:53:37] [PASSED] yes-yes-or-yes-yes
[17:53:37] [PASSED] no-no-or-yes-or-no
[17:53:37] [PASSED] or
[17:53:37] [PASSED] or-yes
[17:53:37] [PASSED] or-no
[17:53:37] [PASSED] yes-or
[17:53:37] [PASSED] no-or
[17:53:37] [PASSED] no-or-or-yes
[17:53:37] [PASSED] yes-or-or-no
[17:53:37] [PASSED] no-or-or-no
[17:53:37] [PASSED] missing-context-engine-class
[17:53:37] [PASSED] missing-context-engine-class-or-yes
[17:53:37] [PASSED] missing-context-engine-class-or-or-yes
[17:53:37] =============== [PASSED] xe_rtp_rules_tests ================
[17:53:37] =============== xe_rtp_process_to_sr_tests ================
[17:53:37] [PASSED] coalesce-same-reg
[17:53:37] [PASSED] coalesce-same-reg-literal-and-func
[17:53:37] [PASSED] no-match-no-add
[17:53:37] [PASSED] two-regs-two-entries
[17:53:37] [PASSED] clr-one-set-other
[17:53:37] [PASSED] set-field
[17:53:37] [PASSED] conflict-duplicate
[17:53:37] [PASSED] conflict-not-disjoint
[17:53:37] [PASSED] conflict-not-disjoint-literal-and-func
[17:53:37] [PASSED] conflict-reg-type
[17:53:37] [PASSED] bad-mcr-reg-forced-to-regular
[17:53:37] [PASSED] bad-regular-reg-forced-to-mcr
[17:53:37] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[17:53:37] ================== xe_rtp_process_tests ===================
[17:53:37] [PASSED] active1
[17:53:37] [PASSED] active2
[17:53:37] [PASSED] active-inactive
[17:53:37] [PASSED] inactive-active
[17:53:37] [PASSED] inactive-active-inactive
[17:53:37] [PASSED] inactive-inactive-inactive
[17:53:37] ============== [PASSED] xe_rtp_process_tests ===============
[17:53:37] ===================== [PASSED] xe_rtp ======================
[17:53:37] ==================== xe_wa (1 subtest) =====================
[17:53:37] ======================== xe_wa_gt =========================
[17:53:37] [PASSED] TIGERLAKE B0
[17:53:37] [PASSED] DG1 A0
[17:53:37] [PASSED] DG1 B0
[17:53:37] [PASSED] ALDERLAKE_S A0
[17:53:37] [PASSED] ALDERLAKE_S B0
[17:53:37] [PASSED] ALDERLAKE_S C0
[17:53:37] [PASSED] ALDERLAKE_S D0
[17:53:37] [PASSED] ALDERLAKE_P A0
[17:53:37] [PASSED] ALDERLAKE_P B0
[17:53:37] [PASSED] ALDERLAKE_P C0
[17:53:37] [PASSED] ALDERLAKE_S RPLS D0
[17:53:37] [PASSED] ALDERLAKE_P RPLU E0
[17:53:37] [PASSED] DG2 G10 C0
[17:53:37] [PASSED] DG2 G11 B1
[17:53:37] [PASSED] DG2 G12 A1
[17:53:37] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:53:37] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[17:53:37] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[17:53:37] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[17:53:37] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[17:53:37] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[17:53:37] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[17:53:37] ==================== [PASSED] xe_wa_gt =====================
[17:53:37] ====================== [PASSED] xe_wa ======================
[17:53:37] ============================================================
[17:53:37] Testing complete. Ran 741 tests: passed: 723, skipped: 18
[17:53:37] Elapsed time: 36.646s total, 4.346s configuring, 31.634s building, 0.632s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[17:53:37] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:53:39] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[17:54:04] Starting KUnit Kernel (1/1)...
[17:54:04] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:54:04] ============ drm_test_pick_cmdline (2 subtests) ============
[17:54:04] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[17:54:04] =============== drm_test_pick_cmdline_named ===============
[17:54:04] [PASSED] NTSC
[17:54:04] [PASSED] NTSC-J
[17:54:04] [PASSED] PAL
[17:54:04] [PASSED] PAL-M
[17:54:04] =========== [PASSED] drm_test_pick_cmdline_named ===========
[17:54:04] ============== [PASSED] drm_test_pick_cmdline ==============
[17:54:04] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[17:54:04] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[17:54:04] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[17:54:04] =========== drm_validate_clone_mode (2 subtests) ===========
[17:54:04] ============== drm_test_check_in_clone_mode ===============
[17:54:04] [PASSED] in_clone_mode
[17:54:04] [PASSED] not_in_clone_mode
[17:54:04] ========== [PASSED] drm_test_check_in_clone_mode ===========
[17:54:04] =============== drm_test_check_valid_clones ===============
[17:54:04] [PASSED] not_in_clone_mode
[17:54:04] [PASSED] valid_clone
[17:54:04] [PASSED] invalid_clone
[17:54:04] =========== [PASSED] drm_test_check_valid_clones ===========
[17:54:04] ============= [PASSED] drm_validate_clone_mode =============
[17:54:04] ============= drm_validate_modeset (1 subtest) =============
[17:54:04] [PASSED] drm_test_check_connector_changed_modeset
[17:54:04] ============== [PASSED] drm_validate_modeset ===============
[17:54:04] ====== drm_test_bridge_get_current_state (1 subtest) =======
[17:54:04] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[17:54:04] ======== [PASSED] drm_test_bridge_get_current_state ========
[17:54:04] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[17:54:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[17:54:04] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[17:54:04] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[17:54:04] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[17:54:04] ============== drm_bridge_alloc (2 subtests) ===============
[17:54:04] [PASSED] drm_test_drm_bridge_alloc_basic
[17:54:04] [PASSED] drm_test_drm_bridge_alloc_get_put
[17:54:04] ================ [PASSED] drm_bridge_alloc =================
[17:54:04] ============= drm_bridge_bus_fmt (5 subtests) ==============
[17:54:04] [PASSED] drm_test_bridge_rgb_yuv_rgb
[17:54:04] [PASSED] drm_test_bridge_must_convert_to_yuv444
[17:54:04] [PASSED] drm_test_bridge_hdmi_auto_rgb
[17:54:04] [PASSED] drm_test_bridge_auto_first
[17:54:04] [PASSED] drm_test_bridge_rgb_yuv_no_path
[17:54:04] =============== [PASSED] drm_bridge_bus_fmt ================
[17:54:04] ============= drm_cmdline_parser (40 subtests) =============
[17:54:04] [PASSED] drm_test_cmdline_force_d_only
[17:54:04] [PASSED] drm_test_cmdline_force_D_only_dvi
[17:54:04] [PASSED] drm_test_cmdline_force_D_only_hdmi
[17:54:04] [PASSED] drm_test_cmdline_force_D_only_not_digital
[17:54:04] [PASSED] drm_test_cmdline_force_e_only
[17:54:04] [PASSED] drm_test_cmdline_res
[17:54:04] [PASSED] drm_test_cmdline_res_vesa
[17:54:04] [PASSED] drm_test_cmdline_res_vesa_rblank
[17:54:04] [PASSED] drm_test_cmdline_res_rblank
[17:54:04] [PASSED] drm_test_cmdline_res_bpp
[17:54:04] [PASSED] drm_test_cmdline_res_refresh
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[17:54:04] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[17:54:04] [PASSED] drm_test_cmdline_res_margins_force_on
[17:54:04] [PASSED] drm_test_cmdline_res_vesa_margins
[17:54:04] [PASSED] drm_test_cmdline_name
[17:54:04] [PASSED] drm_test_cmdline_name_bpp
[17:54:04] [PASSED] drm_test_cmdline_name_option
[17:54:04] [PASSED] drm_test_cmdline_name_bpp_option
[17:54:04] [PASSED] drm_test_cmdline_rotate_0
[17:54:04] [PASSED] drm_test_cmdline_rotate_90
[17:54:04] [PASSED] drm_test_cmdline_rotate_180
[17:54:04] [PASSED] drm_test_cmdline_rotate_270
[17:54:04] [PASSED] drm_test_cmdline_hmirror
[17:54:04] [PASSED] drm_test_cmdline_vmirror
[17:54:04] [PASSED] drm_test_cmdline_margin_options
[17:54:04] [PASSED] drm_test_cmdline_multiple_options
[17:54:04] [PASSED] drm_test_cmdline_bpp_extra_and_option
[17:54:04] [PASSED] drm_test_cmdline_extra_and_option
[17:54:04] [PASSED] drm_test_cmdline_freestanding_options
[17:54:04] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[17:54:04] [PASSED] drm_test_cmdline_panel_orientation
[17:54:04] ================ drm_test_cmdline_invalid =================
[17:54:04] [PASSED] margin_only
[17:54:04] [PASSED] interlace_only
[17:54:04] [PASSED] res_missing_x
[17:54:04] [PASSED] res_missing_y
[17:54:04] [PASSED] res_bad_y
[17:54:04] [PASSED] res_missing_y_bpp
[17:54:04] [PASSED] res_bad_bpp
[17:54:04] [PASSED] res_bad_refresh
[17:54:04] [PASSED] res_bpp_refresh_force_on_off
[17:54:04] [PASSED] res_invalid_mode
[17:54:04] [PASSED] res_bpp_wrong_place_mode
[17:54:04] [PASSED] name_bpp_refresh
[17:54:04] [PASSED] name_refresh
[17:54:04] [PASSED] name_refresh_wrong_mode
[17:54:04] [PASSED] name_refresh_invalid_mode
[17:54:04] [PASSED] rotate_multiple
[17:54:04] [PASSED] rotate_invalid_val
[17:54:04] [PASSED] rotate_truncated
[17:54:04] [PASSED] invalid_option
[17:54:04] [PASSED] invalid_tv_option
[17:54:04] [PASSED] truncated_tv_option
[17:54:04] ============ [PASSED] drm_test_cmdline_invalid =============
[17:54:04] =============== drm_test_cmdline_tv_options ===============
[17:54:04] [PASSED] NTSC
[17:54:04] [PASSED] NTSC_443
[17:54:04] [PASSED] NTSC_J
[17:54:04] [PASSED] PAL
[17:54:04] [PASSED] PAL_M
[17:54:04] [PASSED] PAL_N
[17:54:04] [PASSED] SECAM
[17:54:04] [PASSED] MONO_525
[17:54:04] [PASSED] MONO_625
[17:54:04] =========== [PASSED] drm_test_cmdline_tv_options ===========
[17:54:04] =============== [PASSED] drm_cmdline_parser ================
[17:54:04] ========== drmm_connector_hdmi_init (20 subtests) ==========
[17:54:04] [PASSED] drm_test_connector_hdmi_init_valid
[17:54:04] [PASSED] drm_test_connector_hdmi_init_bpc_8
[17:54:04] [PASSED] drm_test_connector_hdmi_init_bpc_10
[17:54:04] [PASSED] drm_test_connector_hdmi_init_bpc_12
[17:54:04] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[17:54:04] [PASSED] drm_test_connector_hdmi_init_bpc_null
[17:54:04] [PASSED] drm_test_connector_hdmi_init_formats_empty
[17:54:04] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[17:54:04] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:54:04] [PASSED] supported_formats=0x9 yuv420_allowed=1
[17:54:04] [PASSED] supported_formats=0x9 yuv420_allowed=0
[17:54:04] [PASSED] supported_formats=0x5 yuv420_allowed=1
[17:54:04] [PASSED] supported_formats=0x5 yuv420_allowed=0
[17:54:04] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[17:54:04] [PASSED] drm_test_connector_hdmi_init_null_ddc
[17:54:04] [PASSED] drm_test_connector_hdmi_init_null_product
[17:54:04] [PASSED] drm_test_connector_hdmi_init_null_vendor
[17:54:04] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[17:54:04] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[17:54:04] [PASSED] drm_test_connector_hdmi_init_product_valid
[17:54:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[17:54:04] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[17:54:04] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[17:54:04] ========= drm_test_connector_hdmi_init_type_valid =========
[17:54:04] [PASSED] HDMI-A
[17:54:04] [PASSED] HDMI-B
[17:54:04] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[17:54:04] ======== drm_test_connector_hdmi_init_type_invalid ========
[17:54:04] [PASSED] Unknown
[17:54:04] [PASSED] VGA
[17:54:04] [PASSED] DVI-I
[17:54:04] [PASSED] DVI-D
[17:54:04] [PASSED] DVI-A
[17:54:04] [PASSED] Composite
[17:54:04] [PASSED] SVIDEO
[17:54:04] [PASSED] LVDS
[17:54:04] [PASSED] Component
[17:54:04] [PASSED] DIN
[17:54:04] [PASSED] DP
[17:54:04] [PASSED] TV
[17:54:04] [PASSED] eDP
[17:54:04] [PASSED] Virtual
[17:54:04] [PASSED] DSI
[17:54:04] [PASSED] DPI
[17:54:04] [PASSED] Writeback
[17:54:04] [PASSED] SPI
[17:54:04] [PASSED] USB
[17:54:04] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[17:54:04] ============ [PASSED] drmm_connector_hdmi_init =============
[17:54:04] ============= drmm_connector_init (3 subtests) =============
[17:54:04] [PASSED] drm_test_drmm_connector_init
[17:54:04] [PASSED] drm_test_drmm_connector_init_null_ddc
[17:54:04] ========= drm_test_drmm_connector_init_type_valid =========
[17:54:04] [PASSED] Unknown
[17:54:04] [PASSED] VGA
[17:54:04] [PASSED] DVI-I
[17:54:04] [PASSED] DVI-D
[17:54:04] [PASSED] DVI-A
[17:54:04] [PASSED] Composite
[17:54:04] [PASSED] SVIDEO
[17:54:04] [PASSED] LVDS
[17:54:04] [PASSED] Component
[17:54:04] [PASSED] DIN
[17:54:04] [PASSED] DP
[17:54:04] [PASSED] HDMI-A
[17:54:04] [PASSED] HDMI-B
[17:54:04] [PASSED] TV
[17:54:04] [PASSED] eDP
[17:54:04] [PASSED] Virtual
[17:54:04] [PASSED] DSI
[17:54:04] [PASSED] DPI
[17:54:04] [PASSED] Writeback
[17:54:04] [PASSED] SPI
[17:54:04] [PASSED] USB
[17:54:04] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[17:54:04] =============== [PASSED] drmm_connector_init ===============
[17:54:04] ========= drm_connector_dynamic_init (6 subtests) ==========
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_init
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_init_properties
[17:54:04] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[17:54:04] [PASSED] Unknown
[17:54:04] [PASSED] VGA
[17:54:04] [PASSED] DVI-I
[17:54:04] [PASSED] DVI-D
[17:54:04] [PASSED] DVI-A
[17:54:04] [PASSED] Composite
[17:54:04] [PASSED] SVIDEO
[17:54:04] [PASSED] LVDS
[17:54:04] [PASSED] Component
[17:54:04] [PASSED] DIN
[17:54:04] [PASSED] DP
[17:54:04] [PASSED] HDMI-A
[17:54:04] [PASSED] HDMI-B
[17:54:04] [PASSED] TV
[17:54:04] [PASSED] eDP
[17:54:04] [PASSED] Virtual
[17:54:04] [PASSED] DSI
[17:54:04] [PASSED] DPI
[17:54:04] [PASSED] Writeback
[17:54:04] [PASSED] SPI
[17:54:04] [PASSED] USB
[17:54:04] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[17:54:04] ======== drm_test_drm_connector_dynamic_init_name =========
[17:54:04] [PASSED] Unknown
[17:54:04] [PASSED] VGA
[17:54:04] [PASSED] DVI-I
[17:54:04] [PASSED] DVI-D
[17:54:04] [PASSED] DVI-A
[17:54:04] [PASSED] Composite
[17:54:04] [PASSED] SVIDEO
[17:54:04] [PASSED] LVDS
[17:54:04] [PASSED] Component
[17:54:04] [PASSED] DIN
[17:54:04] [PASSED] DP
[17:54:04] [PASSED] HDMI-A
[17:54:04] [PASSED] HDMI-B
[17:54:04] [PASSED] TV
[17:54:04] [PASSED] eDP
[17:54:04] [PASSED] Virtual
[17:54:04] [PASSED] DSI
[17:54:04] [PASSED] DPI
[17:54:04] [PASSED] Writeback
[17:54:04] [PASSED] SPI
[17:54:04] [PASSED] USB
[17:54:04] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[17:54:04] =========== [PASSED] drm_connector_dynamic_init ============
[17:54:04] ==== drm_connector_dynamic_register_early (4 subtests) =====
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[17:54:04] ====== [PASSED] drm_connector_dynamic_register_early =======
[17:54:04] ======= drm_connector_dynamic_register (7 subtests) ========
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[17:54:04] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[17:54:04] ========= [PASSED] drm_connector_dynamic_register ==========
[17:54:04] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[17:54:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[17:54:04] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[17:54:04] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[17:54:04] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[17:54:04] ========== drm_test_get_tv_mode_from_name_valid ===========
[17:54:04] [PASSED] NTSC
[17:54:04] [PASSED] NTSC-443
[17:54:04] [PASSED] NTSC-J
[17:54:04] [PASSED] PAL
[17:54:04] [PASSED] PAL-M
[17:54:04] [PASSED] PAL-N
[17:54:04] [PASSED] SECAM
[17:54:04] [PASSED] Mono
[17:54:04] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[17:54:04] [PASSED] drm_test_get_tv_mode_from_name_truncated
[17:54:04] ============ [PASSED] drm_get_tv_mode_from_name ============
[17:54:04] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[17:54:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[17:54:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[17:54:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[17:54:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[17:54:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[17:54:04] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[17:54:04] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[17:54:04] [PASSED] VIC 96
[17:54:04] [PASSED] VIC 97
[17:54:04] [PASSED] VIC 101
[17:54:04] [PASSED] VIC 102
[17:54:04] [PASSED] VIC 106
[17:54:04] [PASSED] VIC 107
[17:54:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[17:54:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[17:54:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[17:54:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[17:54:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[17:54:04] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[17:54:04] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[17:54:04] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[17:54:04] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[17:54:04] [PASSED] Automatic
[17:54:04] [PASSED] Full
[17:54:04] [PASSED] Limited 16:235
[17:54:04] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[17:54:04] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[17:54:04] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[17:54:04] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[17:54:04] === drm_test_drm_hdmi_connector_get_output_format_name ====
[17:54:04] [PASSED] RGB
[17:54:04] [PASSED] YUV 4:2:0
[17:54:04] [PASSED] YUV 4:2:2
[17:54:04] [PASSED] YUV 4:4:4
[17:54:04] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[17:54:04] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[17:54:04] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[17:54:04] ============= drm_damage_helper (21 subtests) ==============
[17:54:04] [PASSED] drm_test_damage_iter_no_damage
[17:54:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[17:54:04] [PASSED] drm_test_damage_iter_no_damage_src_moved
[17:54:04] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[17:54:04] [PASSED] drm_test_damage_iter_no_damage_not_visible
[17:54:04] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[17:54:04] [PASSED] drm_test_damage_iter_no_damage_no_fb
[17:54:04] [PASSED] drm_test_damage_iter_simple_damage
[17:54:04] [PASSED] drm_test_damage_iter_single_damage
[17:54:04] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[17:54:04] [PASSED] drm_test_damage_iter_single_damage_outside_src
[17:54:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[17:54:04] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[17:54:04] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[17:54:04] [PASSED] drm_test_damage_iter_single_damage_src_moved
[17:54:04] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[17:54:04] [PASSED] drm_test_damage_iter_damage
[17:54:04] [PASSED] drm_test_damage_iter_damage_one_intersect
[17:54:04] [PASSED] drm_test_damage_iter_damage_one_outside
[17:54:04] [PASSED] drm_test_damage_iter_damage_src_moved
[17:54:04] [PASSED] drm_test_damage_iter_damage_not_visible
[17:54:04] ================ [PASSED] drm_damage_helper ================
[17:54:04] ============== drm_dp_mst_helper (3 subtests) ==============
[17:54:04] ============== drm_test_dp_mst_calc_pbn_mode ==============
[17:54:04] [PASSED] Clock 154000 BPP 30 DSC disabled
[17:54:04] [PASSED] Clock 234000 BPP 30 DSC disabled
[17:54:04] [PASSED] Clock 297000 BPP 24 DSC disabled
[17:54:04] [PASSED] Clock 332880 BPP 24 DSC enabled
[17:54:04] [PASSED] Clock 324540 BPP 24 DSC enabled
[17:54:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[17:54:04] ============== drm_test_dp_mst_calc_pbn_div ===============
[17:54:04] [PASSED] Link rate 2000000 lane count 4
[17:54:04] [PASSED] Link rate 2000000 lane count 2
[17:54:04] [PASSED] Link rate 2000000 lane count 1
[17:54:04] [PASSED] Link rate 1350000 lane count 4
[17:54:04] [PASSED] Link rate 1350000 lane count 2
[17:54:04] [PASSED] Link rate 1350000 lane count 1
[17:54:04] [PASSED] Link rate 1000000 lane count 4
[17:54:04] [PASSED] Link rate 1000000 lane count 2
[17:54:04] [PASSED] Link rate 1000000 lane count 1
[17:54:04] [PASSED] Link rate 810000 lane count 4
[17:54:04] [PASSED] Link rate 810000 lane count 2
[17:54:04] [PASSED] Link rate 810000 lane count 1
[17:54:04] [PASSED] Link rate 540000 lane count 4
[17:54:04] [PASSED] Link rate 540000 lane count 2
[17:54:04] [PASSED] Link rate 540000 lane count 1
[17:54:04] [PASSED] Link rate 270000 lane count 4
[17:54:04] [PASSED] Link rate 270000 lane count 2
[17:54:04] [PASSED] Link rate 270000 lane count 1
[17:54:04] [PASSED] Link rate 162000 lane count 4
[17:54:04] [PASSED] Link rate 162000 lane count 2
[17:54:04] [PASSED] Link rate 162000 lane count 1
[17:54:04] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[17:54:04] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[17:54:04] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[17:54:04] [PASSED] DP_POWER_UP_PHY with port number
[17:54:04] [PASSED] DP_POWER_DOWN_PHY with port number
[17:54:04] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[17:54:04] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[17:54:04] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[17:54:04] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[17:54:04] [PASSED] DP_QUERY_PAYLOAD with port number
[17:54:04] [PASSED] DP_QUERY_PAYLOAD with VCPI
[17:54:04] [PASSED] DP_REMOTE_DPCD_READ with port number
[17:54:04] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[17:54:04] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[17:54:04] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[17:54:04] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[17:54:04] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[17:54:04] [PASSED] DP_REMOTE_I2C_READ with port number
[17:54:04] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[17:54:04] [PASSED] DP_REMOTE_I2C_READ with transactions array
[17:54:04] [PASSED] DP_REMOTE_I2C_WRITE with port number
[17:54:04] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[17:54:04] [PASSED] DP_REMOTE_I2C_WRITE with data array
[17:54:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[17:54:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[17:54:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[17:54:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[17:54:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[17:54:04] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[17:54:04] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[17:54:04] ================ [PASSED] drm_dp_mst_helper ================
[17:54:04] ================== drm_exec (7 subtests) ===================
[17:54:04] [PASSED] sanitycheck
[17:54:04] [PASSED] test_lock
[17:54:04] [PASSED] test_lock_unlock
[17:54:04] [PASSED] test_duplicates
[17:54:04] [PASSED] test_prepare
[17:54:04] [PASSED] test_prepare_array
[17:54:04] [PASSED] test_multiple_loops
[17:54:04] ==================== [PASSED] drm_exec =====================
[17:54:04] =========== drm_format_helper_test (17 subtests) ===========
[17:54:04] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[17:54:04] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[17:54:04] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[17:54:04] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[17:54:04] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[17:54:04] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[17:54:04] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[17:54:04] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[17:54:04] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[17:54:04] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[17:54:04] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[17:54:04] ============== drm_test_fb_xrgb8888_to_mono ===============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[17:54:04] ==================== drm_test_fb_swab =====================
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ================ [PASSED] drm_test_fb_swab =================
[17:54:04] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[17:54:04] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[17:54:04] [PASSED] single_pixel_source_buffer
[17:54:04] [PASSED] single_pixel_clip_rectangle
[17:54:04] [PASSED] well_known_colors
[17:54:04] [PASSED] destination_pitch
[17:54:04] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[17:54:04] ================= drm_test_fb_clip_offset =================
[17:54:04] [PASSED] pass through
[17:54:04] [PASSED] horizontal offset
[17:54:04] [PASSED] vertical offset
[17:54:04] [PASSED] horizontal and vertical offset
[17:54:04] [PASSED] horizontal offset (custom pitch)
[17:54:04] [PASSED] vertical offset (custom pitch)
[17:54:04] [PASSED] horizontal and vertical offset (custom pitch)
[17:54:04] ============= [PASSED] drm_test_fb_clip_offset =============
[17:54:04] =================== drm_test_fb_memcpy ====================
[17:54:04] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[17:54:04] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[17:54:04] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[17:54:04] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[17:54:04] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[17:54:04] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[17:54:04] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[17:54:04] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[17:54:04] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[17:54:04] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[17:54:04] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[17:54:04] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[17:54:04] =============== [PASSED] drm_test_fb_memcpy ================
[17:54:04] ============= [PASSED] drm_format_helper_test ==============
[17:54:04] ================= drm_format (18 subtests) =================
[17:54:04] [PASSED] drm_test_format_block_width_invalid
[17:54:04] [PASSED] drm_test_format_block_width_one_plane
[17:54:04] [PASSED] drm_test_format_block_width_two_plane
[17:54:04] [PASSED] drm_test_format_block_width_three_plane
[17:54:04] [PASSED] drm_test_format_block_width_tiled
[17:54:04] [PASSED] drm_test_format_block_height_invalid
[17:54:04] [PASSED] drm_test_format_block_height_one_plane
[17:54:04] [PASSED] drm_test_format_block_height_two_plane
[17:54:04] [PASSED] drm_test_format_block_height_three_plane
[17:54:04] [PASSED] drm_test_format_block_height_tiled
[17:54:04] [PASSED] drm_test_format_min_pitch_invalid
[17:54:04] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[17:54:04] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[17:54:04] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[17:54:04] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[17:54:04] [PASSED] drm_test_format_min_pitch_two_plane
[17:54:04] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[17:54:04] [PASSED] drm_test_format_min_pitch_tiled
[17:54:04] =================== [PASSED] drm_format ====================
[17:54:04] ============== drm_framebuffer (10 subtests) ===============
[17:54:04] ========== drm_test_framebuffer_check_src_coords ==========
[17:54:04] [PASSED] Success: source fits into fb
[17:54:04] [PASSED] Fail: overflowing fb with x-axis coordinate
[17:54:04] [PASSED] Fail: overflowing fb with y-axis coordinate
[17:54:04] [PASSED] Fail: overflowing fb with source width
[17:54:04] [PASSED] Fail: overflowing fb with source height
[17:54:04] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[17:54:04] [PASSED] drm_test_framebuffer_cleanup
[17:54:04] =============== drm_test_framebuffer_create ===============
[17:54:04] [PASSED] ABGR8888 normal sizes
[17:54:04] [PASSED] ABGR8888 max sizes
[17:54:04] [PASSED] ABGR8888 pitch greater than min required
[17:54:04] [PASSED] ABGR8888 pitch less than min required
[17:54:04] [PASSED] ABGR8888 Invalid width
[17:54:04] [PASSED] ABGR8888 Invalid buffer handle
[17:54:04] [PASSED] No pixel format
[17:54:04] [PASSED] ABGR8888 Width 0
[17:54:04] [PASSED] ABGR8888 Height 0
[17:54:04] [PASSED] ABGR8888 Out of bound height * pitch combination
[17:54:04] [PASSED] ABGR8888 Large buffer offset
[17:54:04] [PASSED] ABGR8888 Buffer offset for inexistent plane
[17:54:04] [PASSED] ABGR8888 Invalid flag
[17:54:04] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[17:54:04] [PASSED] ABGR8888 Valid buffer modifier
[17:54:04] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[17:54:04] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[17:54:04] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[17:54:04] [PASSED] NV12 Normal sizes
[17:54:04] [PASSED] NV12 Max sizes
[17:54:04] [PASSED] NV12 Invalid pitch
[17:54:04] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[17:54:04] [PASSED] NV12 different modifier per-plane
[17:54:04] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[17:54:04] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[17:54:04] [PASSED] NV12 Modifier for inexistent plane
[17:54:04] [PASSED] NV12 Handle for inexistent plane
[17:54:04] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[17:54:04] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[17:54:04] [PASSED] YVU420 Normal sizes
[17:54:04] [PASSED] YVU420 Max sizes
[17:54:04] [PASSED] YVU420 Invalid pitch
[17:54:04] [PASSED] YVU420 Different pitches
[17:54:04] [PASSED] YVU420 Different buffer offsets/pitches
[17:54:04] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[17:54:04] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[17:54:04] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[17:54:04] [PASSED] YVU420 Valid modifier
[17:54:04] [PASSED] YVU420 Different modifiers per plane
[17:54:04] [PASSED] YVU420 Modifier for inexistent plane
[17:54:04] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[17:54:04] [PASSED] X0L2 Normal sizes
[17:54:04] [PASSED] X0L2 Max sizes
[17:54:04] [PASSED] X0L2 Invalid pitch
[17:54:04] [PASSED] X0L2 Pitch greater than minimum required
[17:54:04] [PASSED] X0L2 Handle for inexistent plane
[17:54:04] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[17:54:04] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[17:54:04] [PASSED] X0L2 Valid modifier
[17:54:04] [PASSED] X0L2 Modifier for inexistent plane
[17:54:04] =========== [PASSED] drm_test_framebuffer_create ===========
[17:54:04] [PASSED] drm_test_framebuffer_free
[17:54:04] [PASSED] drm_test_framebuffer_init
[17:54:04] [PASSED] drm_test_framebuffer_init_bad_format
[17:54:04] [PASSED] drm_test_framebuffer_init_dev_mismatch
[17:54:04] [PASSED] drm_test_framebuffer_lookup
[17:54:04] [PASSED] drm_test_framebuffer_lookup_inexistent
[17:54:04] [PASSED] drm_test_framebuffer_modifiers_not_supported
[17:54:04] ================= [PASSED] drm_framebuffer =================
[17:54:04] ================ drm_gem_shmem (8 subtests) ================
[17:54:04] [PASSED] drm_gem_shmem_test_obj_create
[17:54:04] [PASSED] drm_gem_shmem_test_obj_create_private
[17:54:04] [PASSED] drm_gem_shmem_test_pin_pages
[17:54:04] [PASSED] drm_gem_shmem_test_vmap
[17:54:04] [PASSED] drm_gem_shmem_test_get_sg_table
[17:54:04] [PASSED] drm_gem_shmem_test_get_pages_sgt
[17:54:04] [PASSED] drm_gem_shmem_test_madvise
[17:54:04] [PASSED] drm_gem_shmem_test_purge
[17:54:04] ================== [PASSED] drm_gem_shmem ==================
[17:54:04] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[17:54:04] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[17:54:04] [PASSED] Automatic
[17:54:04] [PASSED] Full
[17:54:04] [PASSED] Limited 16:235
[17:54:04] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[17:54:04] [PASSED] drm_test_check_disable_connector
[17:54:04] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[17:54:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[17:54:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[17:54:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[17:54:04] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[17:54:04] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[17:54:04] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[17:54:04] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[17:54:04] [PASSED] drm_test_check_output_bpc_dvi
[17:54:04] [PASSED] drm_test_check_output_bpc_format_vic_1
[17:54:04] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[17:54:04] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[17:54:04] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[17:54:04] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[17:54:04] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[17:54:04] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[17:54:04] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[17:54:04] ============ drm_test_check_hdmi_color_format =============
[17:54:04] [PASSED] AUTO -> RGB
[17:54:04] [PASSED] YCBCR422 -> YUV422
[17:54:04] [PASSED] YCBCR420 -> YUV420
[17:54:04] [PASSED] YCBCR444 -> YUV444
[17:54:04] [PASSED] RGB -> RGB
[17:54:04] ======== [PASSED] drm_test_check_hdmi_color_format =========
[17:54:04] ======== drm_test_check_hdmi_color_format_420_only ========
[17:54:04] [PASSED] RGB should fail
[17:54:04] [PASSED] YUV444 should fail
[17:54:04] [PASSED] YUV422 should fail
[17:54:04] [PASSED] YUV420 should work
[17:54:04] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[17:54:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[17:54:04] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[17:54:04] [PASSED] drm_test_check_broadcast_rgb_value
[17:54:04] [PASSED] drm_test_check_bpc_8_value
[17:54:04] [PASSED] drm_test_check_bpc_10_value
[17:54:04] [PASSED] drm_test_check_bpc_12_value
[17:54:04] [PASSED] drm_test_check_format_value
[17:54:04] [PASSED] drm_test_check_tmds_char_value
[17:54:04] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[17:54:04] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[17:54:04] [PASSED] drm_test_check_mode_valid
[17:54:04] [PASSED] drm_test_check_mode_valid_reject
[17:54:04] [PASSED] drm_test_check_mode_valid_reject_rate
[17:54:04] [PASSED] drm_test_check_mode_valid_reject_max_clock
[17:54:04] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[17:54:04] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[17:54:04] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[17:54:04] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[17:54:04] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[17:54:04] [PASSED] drm_test_check_infoframes
[17:54:04] [PASSED] drm_test_check_reject_avi_infoframe
[17:54:04] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[17:54:04] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[17:54:04] [PASSED] drm_test_check_reject_audio_infoframe
[17:54:04] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[17:54:04] ================= drm_managed (2 subtests) =================
[17:54:04] [PASSED] drm_test_managed_release_action
[17:54:04] [PASSED] drm_test_managed_run_action
[17:54:04] =================== [PASSED] drm_managed ===================
[17:54:04] =================== drm_mm (6 subtests) ====================
[17:54:04] [PASSED] drm_test_mm_init
[17:54:04] [PASSED] drm_test_mm_debug
[17:54:04] [PASSED] drm_test_mm_align32
[17:54:04] [PASSED] drm_test_mm_align64
[17:54:04] [PASSED] drm_test_mm_lowest
[17:54:04] [PASSED] drm_test_mm_highest
[17:54:04] ===================== [PASSED] drm_mm ======================
[17:54:04] ============= drm_modes_analog_tv (5 subtests) =============
[17:54:04] [PASSED] drm_test_modes_analog_tv_mono_576i
[17:54:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[17:54:04] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[17:54:04] [PASSED] drm_test_modes_analog_tv_pal_576i
[17:54:04] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[17:54:04] =============== [PASSED] drm_modes_analog_tv ===============
[17:54:04] ============== drm_plane_helper (2 subtests) ===============
[17:54:04] =============== drm_test_check_plane_state ================
[17:54:04] [PASSED] clipping_simple
[17:54:04] [PASSED] clipping_rotate_reflect
[17:54:04] [PASSED] positioning_simple
[17:54:04] [PASSED] upscaling
[17:54:04] [PASSED] downscaling
[17:54:04] [PASSED] rounding1
[17:54:04] [PASSED] rounding2
[17:54:04] [PASSED] rounding3
[17:54:04] [PASSED] rounding4
[17:54:04] =========== [PASSED] drm_test_check_plane_state ============
[17:54:04] =========== drm_test_check_invalid_plane_state ============
[17:54:04] [PASSED] positioning_invalid
[17:54:04] [PASSED] upscaling_invalid
[17:54:04] [PASSED] downscaling_invalid
[17:54:04] ======= [PASSED] drm_test_check_invalid_plane_state ========
[17:54:04] ================ [PASSED] drm_plane_helper =================
[17:54:04] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[17:54:04] ====== drm_test_connector_helper_tv_get_modes_check =======
[17:54:04] [PASSED] None
[17:54:04] [PASSED] PAL
[17:54:04] [PASSED] NTSC
[17:54:04] [PASSED] Both, NTSC Default
[17:54:04] [PASSED] Both, PAL Default
[17:54:04] [PASSED] Both, NTSC Default, with PAL on command-line
[17:54:04] [PASSED] Both, PAL Default, with NTSC on command-line
[17:54:04] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[17:54:04] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[17:54:04] ================== drm_rect (9 subtests) ===================
[17:54:04] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[17:54:04] [PASSED] drm_test_rect_clip_scaled_not_clipped
[17:54:04] [PASSED] drm_test_rect_clip_scaled_clipped
[17:54:04] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[17:54:04] ================= drm_test_rect_intersect =================
[17:54:04] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[17:54:04] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[17:54:04] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[17:54:04] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[17:54:04] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[17:54:04] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[17:54:04] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[17:54:04] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[17:54:04] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[17:54:04] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[17:54:04] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[17:54:04] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[17:54:04] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[17:54:04] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[17:54:04] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[17:54:04] ============= [PASSED] drm_test_rect_intersect =============
[17:54:04] ================ drm_test_rect_calc_hscale ================
[17:54:04] [PASSED] normal use
[17:54:04] [PASSED] out of max range
[17:54:04] [PASSED] out of min range
[17:54:04] [PASSED] zero dst
[17:54:04] [PASSED] negative src
[17:54:04] [PASSED] negative dst
[17:54:04] ============ [PASSED] drm_test_rect_calc_hscale ============
[17:54:04] ================ drm_test_rect_calc_vscale ================
[17:54:04] [PASSED] normal use
[17:54:04] [PASSED] out of max range
[17:54:04] [PASSED] out of min range
[17:54:04] [PASSED] zero dst
[17:54:04] [PASSED] negative src
[17:54:04] [PASSED] negative dst
[17:54:04] ============ [PASSED] drm_test_rect_calc_vscale ============
[17:54:04] ================== drm_test_rect_rotate ===================
[17:54:04] [PASSED] reflect-x
[17:54:04] [PASSED] reflect-y
[17:54:04] [PASSED] rotate-0
[17:54:04] [PASSED] rotate-90
[17:54:04] [PASSED] rotate-180
[17:54:04] [PASSED] rotate-270
[17:54:04] ============== [PASSED] drm_test_rect_rotate ===============
[17:54:04] ================ drm_test_rect_rotate_inv =================
[17:54:04] [PASSED] reflect-x
[17:54:04] [PASSED] reflect-y
[17:54:04] [PASSED] rotate-0
[17:54:04] [PASSED] rotate-90
[17:54:04] [PASSED] rotate-180
[17:54:04] [PASSED] rotate-270
[17:54:04] ============ [PASSED] drm_test_rect_rotate_inv =============
[17:54:04] ==================== [PASSED] drm_rect =====================
[17:54:04] ============ drm_sysfb_modeset_test (1 subtest) ============
[17:54:04] ============ drm_test_sysfb_build_fourcc_list =============
[17:54:04] [PASSED] no native formats
[17:54:04] [PASSED] XRGB8888 as native format
[17:54:04] [PASSED] remove duplicates
[17:54:04] [PASSED] convert alpha formats
[17:54:04] [PASSED] random formats
[17:54:04] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[17:54:04] ============= [PASSED] drm_sysfb_modeset_test ==============
[17:54:04] ================== drm_fixp (2 subtests) ===================
[17:54:04] [PASSED] drm_test_int2fixp
[17:54:04] [PASSED] drm_test_sm2fixp
[17:54:04] ==================== [PASSED] drm_fixp =====================
[17:54:04] ============================================================
[17:54:04] Testing complete. Ran 637 tests: passed: 637
[17:54:04] Elapsed time: 26.615s total, 1.843s configuring, 24.556s building, 0.182s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[17:54:04] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[17:54:06] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[17:54:16] Starting KUnit Kernel (1/1)...
[17:54:16] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[17:54:16] ================= ttm_device (5 subtests) ==================
[17:54:16] [PASSED] ttm_device_init_basic
[17:54:16] [PASSED] ttm_device_init_multiple
[17:54:16] [PASSED] ttm_device_fini_basic
[17:54:16] [PASSED] ttm_device_init_no_vma_man
[17:54:16] ================== ttm_device_init_pools ==================
[17:54:16] [PASSED] No DMA allocations, no DMA32 required
[17:54:16] [PASSED] DMA allocations, DMA32 required
[17:54:16] [PASSED] No DMA allocations, DMA32 required
[17:54:16] [PASSED] DMA allocations, no DMA32 required
[17:54:16] ============== [PASSED] ttm_device_init_pools ==============
[17:54:16] =================== [PASSED] ttm_device ====================
[17:54:16] ================== ttm_pool (8 subtests) ===================
[17:54:16] ================== ttm_pool_alloc_basic ===================
[17:54:16] [PASSED] One page
[17:54:16] [PASSED] More than one page
[17:54:16] [PASSED] Above the allocation limit
[17:54:16] [PASSED] One page, with coherent DMA mappings enabled
[17:54:16] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:54:16] ============== [PASSED] ttm_pool_alloc_basic ===============
[17:54:16] ============== ttm_pool_alloc_basic_dma_addr ==============
[17:54:16] [PASSED] One page
[17:54:16] [PASSED] More than one page
[17:54:16] [PASSED] Above the allocation limit
[17:54:16] [PASSED] One page, with coherent DMA mappings enabled
[17:54:16] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[17:54:16] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[17:54:16] [PASSED] ttm_pool_alloc_order_caching_match
[17:54:16] [PASSED] ttm_pool_alloc_caching_mismatch
[17:54:16] [PASSED] ttm_pool_alloc_order_mismatch
[17:54:16] [PASSED] ttm_pool_free_dma_alloc
[17:54:16] [PASSED] ttm_pool_free_no_dma_alloc
[17:54:16] [PASSED] ttm_pool_fini_basic
[17:54:16] ==================== [PASSED] ttm_pool =====================
[17:54:16] ================ ttm_resource (8 subtests) =================
[17:54:16] ================= ttm_resource_init_basic =================
[17:54:16] [PASSED] Init resource in TTM_PL_SYSTEM
[17:54:16] [PASSED] Init resource in TTM_PL_VRAM
[17:54:16] [PASSED] Init resource in a private placement
[17:54:16] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[17:54:16] ============= [PASSED] ttm_resource_init_basic =============
[17:54:16] [PASSED] ttm_resource_init_pinned
[17:54:16] [PASSED] ttm_resource_fini_basic
[17:54:16] [PASSED] ttm_resource_manager_init_basic
[17:54:16] [PASSED] ttm_resource_manager_usage_basic
[17:54:16] [PASSED] ttm_resource_manager_set_used_basic
[17:54:16] [PASSED] ttm_sys_man_alloc_basic
[17:54:16] [PASSED] ttm_sys_man_free_basic
[17:54:16] ================== [PASSED] ttm_resource ===================
[17:54:16] =================== ttm_tt (15 subtests) ===================
[17:54:16] ==================== ttm_tt_init_basic ====================
[17:54:16] [PASSED] Page-aligned size
[17:54:16] [PASSED] Extra pages requested
[17:54:16] ================ [PASSED] ttm_tt_init_basic ================
[17:54:16] [PASSED] ttm_tt_init_misaligned
[17:54:16] [PASSED] ttm_tt_fini_basic
[17:54:16] [PASSED] ttm_tt_fini_sg
[17:54:16] [PASSED] ttm_tt_fini_shmem
[17:54:16] [PASSED] ttm_tt_create_basic
[17:54:16] [PASSED] ttm_tt_create_invalid_bo_type
[17:54:16] [PASSED] ttm_tt_create_ttm_exists
[17:54:16] [PASSED] ttm_tt_create_failed
[17:54:16] [PASSED] ttm_tt_destroy_basic
[17:54:16] [PASSED] ttm_tt_populate_null_ttm
[17:54:16] [PASSED] ttm_tt_populate_populated_ttm
[17:54:16] [PASSED] ttm_tt_unpopulate_basic
[17:54:16] [PASSED] ttm_tt_unpopulate_empty_ttm
[17:54:16] [PASSED] ttm_tt_swapin_basic
[17:54:16] ===================== [PASSED] ttm_tt ======================
[17:54:16] =================== ttm_bo (14 subtests) ===================
[17:54:16] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[17:54:16] [PASSED] Cannot be interrupted and sleeps
[17:54:16] [PASSED] Cannot be interrupted, locks straight away
[17:54:16] [PASSED] Can be interrupted, sleeps
[17:54:16] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[17:54:16] [PASSED] ttm_bo_reserve_locked_no_sleep
[17:54:16] [PASSED] ttm_bo_reserve_no_wait_ticket
[17:54:16] [PASSED] ttm_bo_reserve_double_resv
[17:54:16] [PASSED] ttm_bo_reserve_interrupted
[17:54:16] [PASSED] ttm_bo_reserve_deadlock
[17:54:16] [PASSED] ttm_bo_unreserve_basic
[17:54:16] [PASSED] ttm_bo_unreserve_pinned
[17:54:16] [PASSED] ttm_bo_unreserve_bulk
[17:54:16] [PASSED] ttm_bo_fini_basic
[17:54:16] [PASSED] ttm_bo_fini_shared_resv
[17:54:16] [PASSED] ttm_bo_pin_basic
[17:54:16] [PASSED] ttm_bo_pin_unpin_resource
[17:54:16] [PASSED] ttm_bo_multiple_pin_one_unpin
[17:54:16] ===================== [PASSED] ttm_bo ======================
[17:54:16] ============== ttm_bo_validate (22 subtests) ===============
[17:54:16] ============== ttm_bo_init_reserved_sys_man ===============
[17:54:16] [PASSED] Buffer object for userspace
[17:54:16] [PASSED] Kernel buffer object
[17:54:16] [PASSED] Shared buffer object
[17:54:16] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[17:54:16] ============== ttm_bo_init_reserved_mock_man ==============
[17:54:16] [PASSED] Buffer object for userspace
[17:54:16] [PASSED] Kernel buffer object
[17:54:16] [PASSED] Shared buffer object
[17:54:16] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[17:54:16] [PASSED] ttm_bo_init_reserved_resv
[17:54:16] ================== ttm_bo_validate_basic ==================
[17:54:16] [PASSED] Buffer object for userspace
[17:54:16] [PASSED] Kernel buffer object
[17:54:16] [PASSED] Shared buffer object
[17:54:16] ============== [PASSED] ttm_bo_validate_basic ==============
[17:54:16] [PASSED] ttm_bo_validate_invalid_placement
[17:54:16] ============= ttm_bo_validate_same_placement ==============
[17:54:16] [PASSED] System manager
[17:54:16] [PASSED] VRAM manager
[17:54:16] ========= [PASSED] ttm_bo_validate_same_placement ==========
[17:54:16] [PASSED] ttm_bo_validate_failed_alloc
[17:54:16] [PASSED] ttm_bo_validate_pinned
[17:54:16] [PASSED] ttm_bo_validate_busy_placement
[17:54:16] ================ ttm_bo_validate_multihop =================
[17:54:16] [PASSED] Buffer object for userspace
[17:54:16] [PASSED] Kernel buffer object
[17:54:16] [PASSED] Shared buffer object
[17:54:16] ============ [PASSED] ttm_bo_validate_multihop =============
[17:54:16] ========== ttm_bo_validate_no_placement_signaled ==========
[17:54:16] [PASSED] Buffer object in system domain, no page vector
[17:54:16] [PASSED] Buffer object in system domain with an existing page vector
[17:54:16] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[17:54:16] ======== ttm_bo_validate_no_placement_not_signaled ========
[17:54:16] [PASSED] Buffer object for userspace
[17:54:16] [PASSED] Kernel buffer object
[17:54:16] [PASSED] Shared buffer object
[17:54:16] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[17:54:16] [PASSED] ttm_bo_validate_move_fence_signaled
[17:54:16] ========= ttm_bo_validate_move_fence_not_signaled =========
[17:54:16] [PASSED] Waits for GPU
[17:54:16] [PASSED] Tries to lock straight away
[17:54:16] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[17:54:16] [PASSED] ttm_bo_validate_swapout
[17:54:16] [PASSED] ttm_bo_validate_happy_evict
[17:54:16] [PASSED] ttm_bo_validate_all_pinned_evict
[17:54:16] [PASSED] ttm_bo_validate_allowed_only_evict
[17:54:16] [PASSED] ttm_bo_validate_deleted_evict
[17:54:16] [PASSED] ttm_bo_validate_busy_domain_evict
[17:54:16] [PASSED] ttm_bo_validate_evict_gutting
[17:54:16] [PASSED] ttm_bo_validate_recrusive_evict
[17:54:16] ================= [PASSED] ttm_bo_validate =================
[17:54:16] ============================================================
[17:54:16] Testing complete. Ran 102 tests: passed: 102
[17:54:16] Elapsed time: 12.092s total, 1.743s configuring, 10.084s building, 0.216s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 7+ messages in thread* ✓ Xe.CI.BAT: success for series starting with [1/2] mm/shmem: add shmem_backup_folio() helper
2026-07-21 17:47 [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper Matthew Brost
2026-07-21 17:47 ` [PATCH 2/2] drm/ttm: use shmem_backup_folio() for folio backup Matthew Brost
2026-07-21 17:54 ` ✓ CI.KUnit: success for series starting with [1/2] mm/shmem: add shmem_backup_folio() helper Patchwork
@ 2026-07-21 18:43 ` Patchwork
2026-07-22 5:11 ` ✓ Xe.CI.FULL: " Patchwork
2026-07-22 9:43 ` [PATCH 1/2] " Christoph Hellwig
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-07-21 18:43 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 891 bytes --]
== Series Details ==
Series: series starting with [1/2] mm/shmem: add shmem_backup_folio() helper
URL : https://patchwork.freedesktop.org/series/170838/
State : success
== Summary ==
CI Bug Log - changes from xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8_BAT -> xe-pw-170838v1_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 13)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8 -> xe-pw-170838v1
IGT_9017: 9017
xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8: 9c2361b13a219d0c445fb25e28354eca850da3a8
xe-pw-170838v1: 170838v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/index.html
[-- Attachment #2: Type: text/html, Size: 1439 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* ✓ Xe.CI.FULL: success for series starting with [1/2] mm/shmem: add shmem_backup_folio() helper
2026-07-21 17:47 [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper Matthew Brost
` (2 preceding siblings ...)
2026-07-21 18:43 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-07-22 5:11 ` Patchwork
2026-07-22 9:43 ` [PATCH 1/2] " Christoph Hellwig
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2026-07-22 5:11 UTC (permalink / raw)
To: Matthew Brost; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 16603 bytes --]
== Series Details ==
Series: series starting with [1/2] mm/shmem: add shmem_backup_folio() helper
URL : https://patchwork.freedesktop.org/series/170838/
State : success
== Summary ==
CI Bug Log - changes from xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8_FULL -> xe-pw-170838v1_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-170838v1_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@y-tiled-16bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#1124]) +1 other test skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_big_fb@y-tiled-16bpp-rotate-270.html
* igt@kms_bw@linear-tiling-3-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#367])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_bw@linear-tiling-3-displays-target-2560x1440p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2887]) +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html
* igt@kms_chamelium_color_pipeline@plane-lut3d-green-only:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#7358])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html
* igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2252]) +1 other test skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html
* igt@kms_content_protection@dp-mst-type-1-suspend-resume:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#6974])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html
* igt@kms_cursor_crc@cursor-rapid-movement-32x10:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2320])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html
* igt@kms_dp_link_training@non-uhbr-mst:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#4354] / [Intel XE#5882])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_dp_link_training@non-uhbr-mst.html
* igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#8265])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
- shard-lnl: [PASS][10] -> [FAIL][11] ([Intel XE#301])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
- shard-lnl: [PASS][12] -> [FAIL][13] ([Intel XE#301] / [Intel XE#3149]) +1 other test fail
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-lnl-5/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
* igt@kms_flip@flip-vs-wf_vblank-interruptible:
- shard-lnl: [PASS][14] -> [FAIL][15] ([Intel XE#3098]) +1 other test fail
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-lnl-2/igt@kms_flip@flip-vs-wf_vblank-interruptible.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-lnl-2/igt@kms_flip@flip-vs-wf_vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#7178] / [Intel XE#7349])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#4141]) +1 other test skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#7061] / [Intel XE#7356])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#2311]) +10 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbchdr-tiling-y:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#7399])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbchdr-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt:
- shard-bmg: NOTRUN -> [SKIP][21] ([Intel XE#2313]) +12 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
* igt@kms_hdmi_inject@inject-audio:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#7308])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_pm_dc@dc5-psr:
- shard-lnl: [PASS][23] -> [FAIL][24] ([Intel XE#8399])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-lnl-2/igt@kms_pm_dc@dc5-psr.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-lnl-2/igt@kms_pm_dc@dc5-psr.html
* igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#1489]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr@fbc-psr2-sprite-plane-onoff:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2234] / [Intel XE#2850])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_psr@fbc-psr2-sprite-plane-onoff.html
* igt@kms_tv_load_detect@load-detect:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#2450] / [Intel XE#5857])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@kms_tv_load_detect@load-detect.html
* igt@xe_evict@evict-threads-small-multi-queue:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#8370])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_evict@evict-threads-small-multi-queue.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr.html
* igt@xe_exec_fault_mode@many-multi-queue-userptr-rebind-prefetch:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#8374])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_exec_fault_mode@many-multi-queue-userptr-rebind-prefetch.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#8364]) +4 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_exec_multi_queue@many-execs-preempt-mode-close-fd.html
* igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#8378])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-invalidate.html
* igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run:
- shard-bmg: [PASS][33] -> [ABORT][34] ([Intel XE#8007])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-bmg-7/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-9/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run.html
* igt@xe_pxp@pxp-stale-bo-exec-post-rpm:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#4733] / [Intel XE#7417])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_pxp@pxp-stale-bo-exec-post-rpm.html
* igt@xe_query@multigpu-query-gt-list:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#944])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_query@multigpu-query-gt-list.html
#### Possible fixes ####
* igt@kms_flip@2x-modeset-vs-vblank-race-interruptible@ad-dp2-hdmi-a3:
- shard-bmg: [FAIL][37] ([Intel XE#3098]) -> [PASS][38] +1 other test pass
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-bmg-2/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible@ad-dp2-hdmi-a3.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-8/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible@ad-dp2-hdmi-a3.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [INCOMPLETE][39] ([Intel XE#6321] / [Intel XE#8355]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-bmg-10/igt@xe_evict@evict-mixed-many-threads-small.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-10/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-bmg: [ABORT][41] ([Intel XE#8007]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-bmg-4/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-3/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
* igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority@numvfs-random-gt0-rcs0:
- shard-bmg: [FAIL][43] ([Intel XE#7992]) -> [PASS][44] +1 other test pass
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-bmg-10/igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority@numvfs-random-gt0-rcs0.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-10/igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority@numvfs-random-gt0-rcs0.html
* igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority@numvfs-random-gt1-vcs0:
- shard-bmg: [FAIL][45] ([Intel XE#8340]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-bmg-10/igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority@numvfs-random-gt1-vcs0.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-10/igt@xe_sriov_scheduling@nonpreempt-engine-resets-low-priority@numvfs-random-gt1-vcs0.html
#### Warnings ####
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [FAIL][47] ([Intel XE#1729] / [Intel XE#7424]) -> [SKIP][48] ([Intel XE#2426] / [Intel XE#5848])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2450
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#5857]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5857
[Intel XE#5882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5882
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308
[Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
[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#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
[Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8340
[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#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#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8 -> xe-pw-170838v1
IGT_9017: 9017
xe-5449-9c2361b13a219d0c445fb25e28354eca850da3a8: 9c2361b13a219d0c445fb25e28354eca850da3a8
xe-pw-170838v1: 170838v1
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-170838v1/index.html
[-- Attachment #2: Type: text/html, Size: 18122 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper
2026-07-21 17:47 [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper Matthew Brost
` (3 preceding siblings ...)
2026-07-22 5:11 ` ✓ Xe.CI.FULL: " Patchwork
@ 2026-07-22 9:43 ` Christoph Hellwig
2026-07-22 20:11 ` Matthew Brost
4 siblings, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2026-07-22 9:43 UTC (permalink / raw)
To: Matthew Brost
Cc: intel-xe, dri-devel, linux-mm, linux-kernel, Hugh Dickins,
Baolin Wang, Andrew Morton, Christian Koenig, Huang Rui,
Matthew Auld, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter, Christoph Hellwig
On Tue, Jul 21, 2026 at 10:47:22AM -0700, Matthew Brost wrote:
> Add a new generic helper, shmem_backup_folio(), that copies the pages
> of an arbitrary source folio into a range of a shmem-backed file,
> optionally issuing writeback for each destination folio. It is
> extracted from drivers/gpu/drm/ttm's existing shmem-backup loop so
> that other subsystems (starting with TTM in a follow-up patch) can
> share the same implementation.
Hmm, what is the difference to just doing a ITER_BVEC write with a bvec
containing the folio for this the pure write to shmem part of this?
You'd probably want a kernel_write_iter helper wrapping
__kernel_write_iter for the writecount, but otherwise this sounds
like a normal write.
We'd want something for the writeback part, preferably a purely
range based API to be generic.
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper
2026-07-22 9:43 ` [PATCH 1/2] " Christoph Hellwig
@ 2026-07-22 20:11 ` Matthew Brost
0 siblings, 0 replies; 7+ messages in thread
From: Matthew Brost @ 2026-07-22 20:11 UTC (permalink / raw)
To: Christoph Hellwig
Cc: intel-xe, dri-devel, linux-mm, linux-kernel, Hugh Dickins,
Baolin Wang, Andrew Morton, Christian Koenig, Huang Rui,
Matthew Auld, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
David Airlie, Simona Vetter
On Wed, Jul 22, 2026 at 11:43:50AM +0200, Christoph Hellwig wrote:
> On Tue, Jul 21, 2026 at 10:47:22AM -0700, Matthew Brost wrote:
> > Add a new generic helper, shmem_backup_folio(), that copies the pages
> > of an arbitrary source folio into a range of a shmem-backed file,
> > optionally issuing writeback for each destination folio. It is
> > extracted from drivers/gpu/drm/ttm's existing shmem-backup loop so
> > that other subsystems (starting with TTM in a follow-up patch) can
> > share the same implementation.
>
> Hmm, what is the difference to just doing a ITER_BVEC write with a bvec
> containing the folio for this the pure write to shmem part of this?
Thanks for the pointer here. I'm somewhat ignorant of filesystem-related
details.
There is slightly less GFP control since kernel reserves can't be dipped
into for the forward process, but perhaps that doesn't matter. There are
also slightly different locking chains (more on that below).
>
> You'd probably want a kernel_write_iter helper wrapping
> __kernel_write_iter for the writecount, but otherwise this sounds
> like a normal write.
>
I tried writing a `kernel_write_iter()` wrapper around
__kernel_write_iter() that performs file_start_write()/file_end_write(),
as suggested by the comment above __kernel_write_iter(), but lockdep
[1] isn't happy.
We have a hard requirement in DRM to shrink under dma-resv locks which
creates the circle:
pipe->mutex -> mmap_lock -> dma_resv -> sb_writers -> pipe->mutex
If I simply export __kernel_write_iter(), bypassing
file_start_write()/file_end_write() and therefore bypassing sb_writers,
this seems to work.
I think this is safe for shmem files, but it's difficult to say with
100% certainty given my lack of filesystem knowledge, or whether
exposing a dangerous low-level bypass function for files would be
acceptable.
> We'd want something for the writeback part, preferably a purely
> range based API to be generic.
I found filemap_fdatawrite_range for this part.
Matt
[1] Lockdep splat:
[ 105.374023] ======================================================
[ 105.375386] WARNING: possible circular locking dependency detected
[ 105.375396] 7.2.0-rc4-xe-01637-g40a493568fe3 #1290 Not tainted
[ 105.375406] ------------------------------------------------------
[ 105.375416] cat/3121 is trying to acquire lock:
[ 105.375425] ffff888105677460 (&pipe->mutex){+.+.}-{3:3}, at: iter_file_splice_write+0xb9/0x550
[ 105.375444]
but task is already holding lock:
[ 105.375453] ffff888112889420 (sb_writers#5){.+.+}-{0:0}, at: __do_splice+0xc4/0x180
[ 105.375468]
which lock already depends on the new lock.
[ 105.375480]
the existing dependency chain (in reverse order) is:
[ 105.375492]
-> #3 (sb_writers#5){.+.+}-{0:0}:
[ 105.375503] kernel_write_iter+0xaa/0x270
[ 105.375513] ttm_backup_backup_folio+0x95/0x130 [ttm]
[ 105.375529] ttm_pool_backup+0x376/0x560 [ttm]
[ 105.375541] ttm_tt_backup+0x32/0x60 [ttm]
[ 105.375552] ttm_bo_shrink+0x76/0x140 [ttm]
[ 105.375564] xe_bo_shrink+0x19e/0x290 [xe]
[ 105.375642] __xe_shrinker_walk+0xfb/0x310 [xe]
[ 105.375803] xe_shrinker_walk+0x36/0xc0 [xe]
[ 105.375885] xe_shrinker_scan+0x110/0x1e0 [xe]
[ 105.376067] do_shrink_slab+0x151/0x6c0
[ 105.376076] shrink_slab+0x140/0x8b0
[ 105.376083] drop_slab+0x3e/0x90
[ 105.376092] drop_caches_sysctl_handler+0x74/0xc0
[ 105.376102] proc_sys_call_handler+0x16c/0x230
[ 105.376112] vfs_write+0x3ae/0x560
[ 105.376119] ksys_write+0x66/0xe0
[ 105.376127] do_syscall_64+0xca/0x540
[ 105.376136] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 105.376146]
-> #2 (reservation_ww_class_mutex){+.+.}-{3:3}:
[ 105.376159] __ww_mutex_lock.constprop.0+0xca/0x1960
[ 105.376170] ww_mutex_lock_interruptible+0x26/0x90
[ 105.376180] xe_gem_object_mmap+0x1d/0x120 [xe]
[ 105.376241] drm_gem_mmap_obj+0x6c/0x190 [drm]
[ 105.376417] drm_gem_mmap+0x44/0xb0 [drm]
[ 105.376446] __mmap_region+0x8d0/0x10b0
[ 105.376453] mmap_region+0x157/0x180
[ 105.376459] do_mmap+0x4fb/0x660
[ 105.376467] vm_mmap_pgoff+0xae/0x190
[ 105.376473] ksys_mmap_pgoff+0x15e/0x200
[ 105.376480] do_syscall_64+0xca/0x540
[ 105.376486] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 105.376494]
-> #1 (&mm->mmap_lock){++++}-{3:3}:
[ 105.376503] __might_fault+0x4a/0x70
[ 105.376509] _copy_from_iter+0x4a/0x740
[ 105.376517] copy_page_from_iter+0x7a/0x100
[ 105.376524] anon_pipe_write+0x30f/0x7e0
[ 105.376531] vfs_write+0x43c/0x560
[ 105.376537] ksys_write+0xbc/0xe0
[ 105.376543] do_syscall_64+0xca/0x540
[ 105.376549] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 105.376556]
-> #0 (&pipe->mutex){+.+.}-{3:3}:
[ 105.376565] __lock_acquire+0x13c1/0x2400
[ 105.376573] lock_acquire+0xcb/0x310
[ 105.376822] __mutex_lock+0x9d/0x10f0
[ 105.377067] iter_file_splice_write+0xb9/0x550
[ 105.377311] do_splice+0x360/0x9f0
[ 105.377551] __do_splice+0xc4/0x180
[ 105.377786] __x64_sys_splice+0x89/0x110
[ 105.378022] do_syscall_64+0xca/0x540
[ 105.378255] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 105.378500]
other info that might help us debug this:
[ 105.379182] Chain exists of:
&pipe->mutex --> reservation_ww_class_mutex --> sb_writers#5
[ 105.379856] Possible unsafe locking scenario:
[ 105.380297] CPU0 CPU1
[ 105.380517] ---- ----
[ 105.380736] rlock(sb_writers#5);
[ 105.380954] lock(reservation_ww_class_mutex);
[ 105.381174] lock(sb_writers#5);
[ 105.381393] lock(&pipe->mutex);
[ 105.381609]
*** DEADLOCK ***
[ 105.382240] 1 lock held by cat/3121:
[ 105.382452] #0: ffff888112889420 (sb_writers#5){.+.+}-{0:0}, at: __do_splice+0xc4/0x180
[ 105.382675]
stack backtrace:
[ 105.383108] CPU: 10 UID: 0 PID: 3121 Comm: cat Not tainted 7.2.0-rc4-xe-01637-g40a493568fe3 #1290 PREEMPT(full)
[ 105.383110] Hardware name: Intel Corporation Raptor Lake Client Platform/RPL-S ADP-S DDR5 UDIMM CRB, BIOS RPLSFWI1.R00.5045.A00.2401260733 01/26/2024
[ 105.383111] Call Trace:
[ 105.383111] <TASK>
[ 105.383112] dump_stack_lvl+0x82/0xd0
[ 105.383115] print_circular_bug+0x2d2/0x400
[ 105.383116] check_noncircular+0x12d/0x150
[ 105.383117] ? kernel_text_address+0x5b/0xc0
[ 105.383121] __lock_acquire+0x13c1/0x2400
[ 105.383123] lock_acquire+0xcb/0x310
[ 105.383124] ? iter_file_splice_write+0xb9/0x550
[ 105.383126] __mutex_lock+0x9d/0x10f0
[ 105.383128] ? iter_file_splice_write+0xb9/0x550
[ 105.383128] ? _raw_spin_unlock_irqrestore+0x41/0x70
[ 105.383130] ? iter_file_splice_write+0xb9/0x550
[ 105.383131] ? __kmalloc_noprof+0x3e0/0x5b0
[ 105.383133] ? iter_file_splice_write+0xa3/0x550
[ 105.383134] ? iter_file_splice_write+0xb9/0x550
[ 105.383135] iter_file_splice_write+0xb9/0x550
[ 105.383138] do_splice+0x360/0x9f0
[ 105.383139] __do_splice+0xc4/0x180
[ 105.383141] __x64_sys_splice+0x89/0x110
[ 105.383142] do_syscall_64+0xca/0x540
[ 105.383144] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 105.383145] RIP: 0033:0x5601751088ae
[ 105.383146] Code: 55 48 89 e5 53 49 89 f0 8b 3f 31 db 48 ba 01 00 00 00 00 00 00 00 4d 85 c0 74 3e b8 13 01 00 00 31 f6 45 31 d2 45 31 c9 0f 05 <48> 3d 01 f0 ff ff 0f 9d c1 48 85 c0 40 0f 98 c6 40 84 f1 75 05 49
[ 105.383147] RSP: 002b:00007ffdccdc35f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000113
[ 105.383148] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00005601751088ae
[ 105.383149] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000009
[ 105.383150] RBP: 00007ffdccdc3600 R08: 000000000000013e R09: 0000000000000000
[ 105.383150] R10: 0000000000000000 R11: 0000000000000246 R12: 000000000000000a
[ 105.383151] R13: 00007ffdccdd36c0 R14: 00000000001a02ef R15: 00007ffdccdd36d0
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-07-22 20:11 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-21 17:47 [PATCH 1/2] mm/shmem: add shmem_backup_folio() helper Matthew Brost
2026-07-21 17:47 ` [PATCH 2/2] drm/ttm: use shmem_backup_folio() for folio backup Matthew Brost
2026-07-21 17:54 ` ✓ CI.KUnit: success for series starting with [1/2] mm/shmem: add shmem_backup_folio() helper Patchwork
2026-07-21 18:43 ` ✓ Xe.CI.BAT: " Patchwork
2026-07-22 5:11 ` ✓ Xe.CI.FULL: " Patchwork
2026-07-22 9:43 ` [PATCH 1/2] " Christoph Hellwig
2026-07-22 20:11 ` Matthew Brost
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.