All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
@ 2025-01-16 15:53 Brian Geffon
  2025-01-16 22:45 ` ✗ Fi.CI.SPARSE: warning for drm/i915: Fix page cleanup on DMA remap failure (rev3) Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Brian Geffon @ 2025-01-16 15:53 UTC (permalink / raw)
  To: intel-gfx
  Cc: chris.p.wilson, jani.saarinen, tomasz.mistat, vidya.srinivas,
	ville.syrjala, jani.nikula, linux-kernel, dri-devel,
	Joonas Lahtinen, Brian Geffon, stable, Tomasz Figa

When converting to folios the cleanup path of shmem_get_pages() was
missed. When a DMA remap fails and the max segment size is greater than
PAGE_SIZE it will attempt to retry the remap with a PAGE_SIZEd segment
size. The cleanup code isn't properly using the folio apis and as a
result isn't handling compound pages correctly.

v1 -> v2:
  (Ville) Fixed locations where we were not clearing mapping unevictable.

Cc: stable@vger.kernel.org
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Vidya Srinivas <vidya.srinivas@intel.com>
Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13487
Link: https://lore.kernel.org/lkml/20250116135636.410164-1-bgeffon@google.com/
Fixes: 0b62af28f249 ("i915: convert shmem_sg_free_table() to use a folio_batch")
Signed-off-by: Brian Geffon <bgeffon@google.com>
Suggested-by: Tomasz Figa <tfiga@google.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_object.h |  3 +--
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c  | 23 +++++++++-------------
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c    |  7 ++++---
 3 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
index 3dc61cbd2e11..0f122a12d4a5 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -843,8 +843,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			 size_t size, struct intel_memory_region *mr,
 			 struct address_space *mapping,
 			 unsigned int max_segment);
-void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
-			 bool dirty, bool backup);
+void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup);
 void __shmem_writeback(size_t size, struct address_space *mapping);
 
 #ifdef CONFIG_MMU_NOTIFIER
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index fe69f2c8527d..b320d9dfd6d3 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -29,16 +29,13 @@ static void check_release_folio_batch(struct folio_batch *fbatch)
 	cond_resched();
 }
 
-void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
-			 bool dirty, bool backup)
+void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup)
 {
 	struct sgt_iter sgt_iter;
 	struct folio_batch fbatch;
 	struct folio *last = NULL;
 	struct page *page;
 
-	mapping_clear_unevictable(mapping);
-
 	folio_batch_init(&fbatch);
 	for_each_sgt_page(page, sgt_iter, st) {
 		struct folio *folio = page_folio(page);
@@ -180,10 +177,10 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	return 0;
 err_sg:
 	sg_mark_end(sg);
+	mapping_clear_unevictable(mapping);
 	if (sg != st->sgl) {
-		shmem_sg_free_table(st, mapping, false, false);
+		shmem_sg_free_table(st, false, false);
 	} else {
-		mapping_clear_unevictable(mapping);
 		sg_free_table(st);
 	}
 
@@ -209,8 +206,6 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
 	struct address_space *mapping = obj->base.filp->f_mapping;
 	unsigned int max_segment = i915_sg_segment_size(i915->drm.dev);
 	struct sg_table *st;
-	struct sgt_iter sgt_iter;
-	struct page *page;
 	int ret;
 
 	/*
@@ -239,9 +234,8 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
 		 * for PAGE_SIZE chunks instead may be helpful.
 		 */
 		if (max_segment > PAGE_SIZE) {
-			for_each_sgt_page(page, sgt_iter, st)
-				put_page(page);
-			sg_free_table(st);
+			/* Leave the mapping unevictable while we retry */
+			shmem_sg_free_table(st, false, false);
 			kfree(st);
 
 			max_segment = PAGE_SIZE;
@@ -265,7 +259,8 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
 	return 0;
 
 err_pages:
-	shmem_sg_free_table(st, mapping, false, false);
+	mapping_clear_unevictable(mapping);
+	shmem_sg_free_table(st, false, false);
 	/*
 	 * shmemfs first checks if there is enough memory to allocate the page
 	 * and reports ENOSPC should there be insufficient, along with the usual
@@ -402,8 +397,8 @@ void i915_gem_object_put_pages_shmem(struct drm_i915_gem_object *obj, struct sg_
 	if (i915_gem_object_needs_bit17_swizzle(obj))
 		i915_gem_object_save_bit_17_swizzle(obj, pages);
 
-	shmem_sg_free_table(pages, file_inode(obj->base.filp)->i_mapping,
-			    obj->mm.dirty, obj->mm.madv == I915_MADV_WILLNEED);
+	mapping_clear_unevictable(file_inode(obj->base.filp)->i_mapping);
+	shmem_sg_free_table(pages, obj->mm.dirty, obj->mm.madv == I915_MADV_WILLNEED);
 	kfree(pages);
 	obj->mm.dirty = false;
 }
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 10d8673641f7..37f51a04b838 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -232,7 +232,8 @@ static int i915_ttm_tt_shmem_populate(struct ttm_device *bdev,
 	return 0;
 
 err_free_st:
-	shmem_sg_free_table(st, filp->f_mapping, false, false);
+	mapping_clear_unevictable(filp->f_mapping);
+	shmem_sg_free_table(st, false, false);
 
 	return err;
 }
@@ -243,8 +244,8 @@ static void i915_ttm_tt_shmem_unpopulate(struct ttm_tt *ttm)
 	bool backup = ttm->page_flags & TTM_TT_FLAG_SWAPPED;
 	struct sg_table *st = &i915_tt->cached_rsgt.table;
 
-	shmem_sg_free_table(st, file_inode(i915_tt->filp)->i_mapping,
-			    backup, backup);
+	mapping_clear_unevictable(file_inode(i915_tt->filp)->i_mapping);
+	shmem_sg_free_table(st, backup, backup);
 }
 
 static void i915_ttm_tt_release(struct kref *ref)
-- 
2.48.0.rc2.279.g1de40edade-goog


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* ✗ Fi.CI.SPARSE: warning for drm/i915: Fix page cleanup on DMA remap failure (rev3)
  2025-01-16 15:53 [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Brian Geffon
@ 2025-01-16 22:45 ` Patchwork
  2025-01-16 22:58 ` ✓ i915.CI.BAT: success " Patchwork
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2025-01-16 22:45 UTC (permalink / raw)
  To: Brian Geffon; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Fix page cleanup on DMA remap failure (rev3)
URL   : https://patchwork.freedesktop.org/series/143614/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* ✓ i915.CI.BAT: success for drm/i915: Fix page cleanup on DMA remap failure (rev3)
  2025-01-16 15:53 [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Brian Geffon
  2025-01-16 22:45 ` ✗ Fi.CI.SPARSE: warning for drm/i915: Fix page cleanup on DMA remap failure (rev3) Patchwork
@ 2025-01-16 22:58 ` Patchwork
  2025-01-17 20:36 ` ✗ i915.CI.Full: failure " Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2025-01-16 22:58 UTC (permalink / raw)
  To: Brian Geffon; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 5349 bytes --]

== Series Details ==

Series: drm/i915: Fix page cleanup on DMA remap failure (rev3)
URL   : https://patchwork.freedesktop.org/series/143614/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_15968 -> Patchwork_143614v3
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/index.html

Participating hosts (42 -> 42)
------------------------------

  Additional (1): fi-blb-e6850 
  Missing    (1): fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_143614v3:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_module_load@load:
    - {bat-mtlp-9}:       [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/bat-mtlp-9/igt@i915_module_load@load.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/bat-mtlp-9/igt@i915_module_load@load.html

  
Known issues
------------

  Here are the changes found in Patchwork_143614v3 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@basic-hwmon:
    - fi-pnv-d510:        NOTRUN -> [SKIP][3] +3 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/fi-pnv-d510/igt@debugfs_test@basic-hwmon.html

  * igt@gem_exec_gttfill@basic:
    - fi-pnv-d510:        NOTRUN -> [ABORT][4] ([i915#13169])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/fi-pnv-d510/igt@gem_exec_gttfill@basic.html

  * igt@i915_pm_rpm@module-reload:
    - fi-blb-e6850:       NOTRUN -> [SKIP][5] +33 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/fi-blb-e6850/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live:
    - bat-arlh-3:         [PASS][6] -> [DMESG-FAIL][7] ([i915#12061] / [i915#12435])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/bat-arlh-3/igt@i915_selftest@live.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/bat-arlh-3/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - bat-arlh-3:         [PASS][8] -> [DMESG-FAIL][9] ([i915#12061])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/bat-arlh-3/igt@i915_selftest@live@workarounds.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/bat-arlh-3/igt@i915_selftest@live@workarounds.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-dg2-11:         [PASS][10] -> [SKIP][11] ([i915#9197]) +2 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  
#### Possible fixes ####

  * igt@dmabuf@all-tests:
    - bat-apl-1:          [INCOMPLETE][12] ([i915#12904]) -> [PASS][13] +1 other test pass
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/bat-apl-1/igt@dmabuf@all-tests.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/bat-apl-1/igt@dmabuf@all-tests.html

  * igt@i915_module_load@load:
    - fi-pnv-d510:        [ABORT][14] ([i915#13203]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/fi-pnv-d510/igt@i915_module_load@load.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/fi-pnv-d510/igt@i915_module_load@load.html

  * igt@i915_selftest@live:
    - fi-glk-j4005:       [INCOMPLETE][16] -> [PASS][17] +1 other test pass
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/fi-glk-j4005/igt@i915_selftest@live.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/fi-glk-j4005/igt@i915_selftest@live.html
    - bat-adlp-11:        [INCOMPLETE][18] -> [PASS][19] +1 other test pass
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/bat-adlp-11/igt@i915_selftest@live.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/bat-adlp-11/igt@i915_selftest@live.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12435
  [i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
  [i915#13169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13169
  [i915#13203]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13203
  [i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197


Build changes
-------------

  * Linux: CI_DRM_15968 -> Patchwork_143614v3

  CI-20190529: 20190529
  CI_DRM_15968: 94cf137e747640246cf996a17ca3cebdbd7cbdde @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8195: 8195
  Patchwork_143614v3: 94cf137e747640246cf996a17ca3cebdbd7cbdde @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/index.html

[-- Attachment #2: Type: text/html, Size: 6292 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* ✗ i915.CI.Full: failure for drm/i915: Fix page cleanup on DMA remap failure (rev3)
  2025-01-16 15:53 [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Brian Geffon
  2025-01-16 22:45 ` ✗ Fi.CI.SPARSE: warning for drm/i915: Fix page cleanup on DMA remap failure (rev3) Patchwork
  2025-01-16 22:58 ` ✓ i915.CI.BAT: success " Patchwork
@ 2025-01-17 20:36 ` Patchwork
  2025-01-23  3:06 ` [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Srinivas, Vidya
  2025-01-27 18:47 ` Ville Syrjälä
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2025-01-17 20:36 UTC (permalink / raw)
  To: Brian Geffon; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 100281 bytes --]

== Series Details ==

Series: drm/i915: Fix page cleanup on DMA remap failure (rev3)
URL   : https://patchwork.freedesktop.org/series/143614/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_15968_full -> Patchwork_143614v3_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_143614v3_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_143614v3_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (11 -> 12)
------------------------------

  Additional (1): shard-glk-0 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_143614v3_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@kms:
    - shard-mtlp:         [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-5/igt@gem_eio@kms.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-4/igt@gem_eio@kms.html

  * igt@gem_lmem_swapping@basic:
    - shard-dg2:          NOTRUN -> [SKIP][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@gem_lmem_swapping@basic.html

  * igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1:
    - shard-snb:          [PASS][4] -> [INCOMPLETE][5] +1 other test incomplete
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-snb7/igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb5/igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1.html

  
Known issues
------------

  Here are the changes found in Patchwork_143614v3_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@crc32:
    - shard-dg1:          NOTRUN -> [SKIP][6] ([i915#6230])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@api_intel_bb@crc32.html

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-dg1:          NOTRUN -> [SKIP][7] ([i915#8411])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-tglu-1:       NOTRUN -> [SKIP][8] ([i915#11078])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@device_reset@unbind-reset-rebind:
    - shard-tglu:         [PASS][9] -> [ABORT][10] ([i915#12817] / [i915#5507])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-tglu-9/igt@device_reset@unbind-reset-rebind.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-2/igt@device_reset@unbind-reset-rebind.html

  * igt@drm_fdinfo@isolation@vecs0:
    - shard-dg1:          NOTRUN -> [SKIP][11] ([i915#8414]) +12 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@drm_fdinfo@isolation@vecs0.html

  * igt@drm_fdinfo@most-busy-idle-check-all@vecs1:
    - shard-dg2:          NOTRUN -> [SKIP][12] ([i915#8414]) +17 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@drm_fdinfo@most-busy-idle-check-all@vecs1.html

  * igt@gem_busy@semaphore:
    - shard-dg2:          NOTRUN -> [SKIP][13] ([i915#3936])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@gem_busy@semaphore.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-dg1:          NOTRUN -> [SKIP][14] ([i915#9323]) +1 other test skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@large-ctrl-surf-copy:
    - shard-rkl:          NOTRUN -> [SKIP][15] ([i915#13008])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@gem_ccs@large-ctrl-surf-copy.html
    - shard-tglu-1:       NOTRUN -> [SKIP][16] ([i915#13008])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@gem_ccs@large-ctrl-surf-copy.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-dg1:          NOTRUN -> [SKIP][17] ([i915#7697])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_create@create-ext-set-pat:
    - shard-dg2:          NOTRUN -> [SKIP][18] ([i915#8562])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_persistence@heartbeat-hang:
    - shard-dg1:          NOTRUN -> [SKIP][19] ([i915#8555])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@gem_ctx_persistence@heartbeat-hang.html

  * igt@gem_ctx_persistence@heartbeat-hostile:
    - shard-dg2:          NOTRUN -> [SKIP][20] ([i915#8555])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_ctx_persistence@heartbeat-hostile.html

  * igt@gem_ctx_persistence@saturated-hostile-nopreempt:
    - shard-dg2:          NOTRUN -> [SKIP][21] ([i915#5882]) +7 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_ctx_persistence@saturated-hostile-nopreempt.html

  * igt@gem_eio@kms:
    - shard-tglu-1:       NOTRUN -> [DMESG-WARN][22] ([i915#13363])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@bonded-pair:
    - shard-dg2:          NOTRUN -> [SKIP][23] ([i915#4771])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@gem_exec_balancer@bonded-pair.html

  * igt@gem_exec_balancer@bonded-semaphore:
    - shard-dg1:          NOTRUN -> [SKIP][24] ([i915#4812]) +3 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@gem_exec_balancer@bonded-semaphore.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-tglu:         NOTRUN -> [SKIP][25] ([i915#4525])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_capture@capture-recoverable:
    - shard-tglu-1:       NOTRUN -> [SKIP][26] ([i915#6344])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@gem_exec_capture@capture-recoverable.html

  * igt@gem_exec_fence@submit3:
    - shard-dg2:          NOTRUN -> [SKIP][27] ([i915#4812]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_exec_fence@submit3.html

  * igt@gem_exec_flush@basic-uc-prw-default:
    - shard-dg1:          NOTRUN -> [SKIP][28] ([i915#3539])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@gem_exec_flush@basic-uc-prw-default.html
    - shard-dg2:          NOTRUN -> [SKIP][29] ([i915#3539])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_exec_flush@basic-uc-prw-default.html

  * igt@gem_exec_flush@basic-uc-ro-default:
    - shard-dg2:          NOTRUN -> [SKIP][30] ([i915#3539] / [i915#4852]) +3 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@gem_exec_flush@basic-uc-ro-default.html

  * igt@gem_exec_flush@basic-uc-rw-default:
    - shard-dg1:          NOTRUN -> [SKIP][31] ([i915#3539] / [i915#4852]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@gem_exec_flush@basic-uc-rw-default.html

  * igt@gem_exec_reloc@basic-gtt-active:
    - shard-dg2:          NOTRUN -> [SKIP][32] ([i915#3281]) +10 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_exec_reloc@basic-gtt-active.html

  * igt@gem_exec_reloc@basic-wc-read:
    - shard-dg1:          NOTRUN -> [SKIP][33] ([i915#3281]) +5 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@gem_exec_reloc@basic-wc-read.html

  * igt@gem_exec_reloc@basic-wc-read-noreloc:
    - shard-rkl:          NOTRUN -> [SKIP][34] ([i915#3281]) +6 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@gem_exec_reloc@basic-wc-read-noreloc.html

  * igt@gem_exec_schedule@preempt-queue-chain:
    - shard-dg2:          NOTRUN -> [SKIP][35] ([i915#4537] / [i915#4812]) +2 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_exec_schedule@preempt-queue-chain.html

  * igt@gem_fence_thrash@bo-write-verify-y:
    - shard-dg2:          NOTRUN -> [SKIP][36] ([i915#4860]) +3 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_fence_thrash@bo-write-verify-y.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-interruptible:
    - shard-dg1:          NOTRUN -> [SKIP][37] ([i915#4860])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-glk:          NOTRUN -> [SKIP][38] ([i915#4613])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk5/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@parallel-random-verify:
    - shard-rkl:          NOTRUN -> [SKIP][39] ([i915#4613]) +2 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@gem_lmem_swapping@parallel-random-verify.html
    - shard-tglu-1:       NOTRUN -> [SKIP][40] ([i915#4613]) +1 other test skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@gem_lmem_swapping@parallel-random-verify.html

  * igt@gem_lmem_swapping@parallel-random-verify-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][41] ([i915#4613]) +2 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@gem_lmem_swapping@parallel-random-verify-ccs.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2:          NOTRUN -> [TIMEOUT][42] ([i915#5493]) +1 other test timeout
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-8/igt@gem_lmem_swapping@smem-oom@lmem0.html
    - shard-dg1:          NOTRUN -> [TIMEOUT][43] ([i915#5493]) +1 other test timeout
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_media_vme:
    - shard-rkl:          NOTRUN -> [SKIP][44] ([i915#284])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@gem_media_vme.html

  * igt@gem_mmap@big-bo:
    - shard-mtlp:         NOTRUN -> [SKIP][45] ([i915#4083])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@gem_mmap@big-bo.html

  * igt@gem_mmap_gtt@basic:
    - shard-mtlp:         NOTRUN -> [SKIP][46] ([i915#4077]) +1 other test skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@gem_mmap_gtt@basic.html

  * igt@gem_mmap_wc@invalid-flags:
    - shard-dg2:          NOTRUN -> [SKIP][47] ([i915#4083]) +11 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_mmap_wc@invalid-flags.html

  * igt@gem_mmap_wc@write-read:
    - shard-dg1:          NOTRUN -> [SKIP][48] ([i915#4083]) +10 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@gem_mmap_wc@write-read.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-snoop:
    - shard-rkl:          NOTRUN -> [SKIP][49] ([i915#3282]) +1 other test skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html

  * igt@gem_pread@bench:
    - shard-dg1:          NOTRUN -> [SKIP][50] ([i915#3282]) +3 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@gem_pread@bench.html

  * igt@gem_pwrite@basic-random:
    - shard-dg2:          NOTRUN -> [SKIP][51] ([i915#3282]) +3 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@gem_pwrite@basic-random.html

  * igt@gem_pxp@create-protected-buffer:
    - shard-rkl:          NOTRUN -> [TIMEOUT][52] ([i915#12964]) +1 other test timeout
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@gem_pxp@create-protected-buffer.html

  * igt@gem_pxp@display-protected-crc:
    - shard-dg2:          NOTRUN -> [SKIP][53] ([i915#4270]) +3 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_pxp@display-protected-crc.html

  * igt@gem_pxp@hw-rejects-pxp-buffer:
    - shard-rkl:          NOTRUN -> [TIMEOUT][54] ([i915#12917] / [i915#12964])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@gem_pxp@hw-rejects-pxp-buffer.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-tglu-1:       NOTRUN -> [SKIP][55] ([i915#13398])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_pxp@verify-pxp-stale-ctx-execution:
    - shard-dg1:          NOTRUN -> [SKIP][56] ([i915#4270]) +3 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@gem_pxp@verify-pxp-stale-ctx-execution.html

  * igt@gem_render_copy@y-tiled-ccs-to-y-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][57] ([i915#5190] / [i915#8428]) +9 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_render_copy@y-tiled-ccs-to-y-tiled.html

  * igt@gem_set_tiling_vs_blt@tiled-to-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][58] ([i915#4079]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html

  * igt@gem_tiled_partial_pwrite_pread@writes:
    - shard-dg2:          NOTRUN -> [SKIP][59] ([i915#4077]) +14 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_tiled_partial_pwrite_pread@writes.html

  * igt@gem_tiled_partial_pwrite_pread@writes-after-reads:
    - shard-dg1:          NOTRUN -> [SKIP][60] ([i915#4077]) +14 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@gem_tiled_partial_pwrite_pread@writes-after-reads.html

  * igt@gem_tiled_pread_pwrite:
    - shard-dg1:          NOTRUN -> [SKIP][61] ([i915#4079])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@gem_tiled_pread_pwrite.html

  * igt@gem_userptr_blits@coherency-sync:
    - shard-tglu:         NOTRUN -> [SKIP][62] ([i915#3297]) +1 other test skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@gem_userptr_blits@coherency-sync.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-dg2:          NOTRUN -> [SKIP][63] ([i915#3297] / [i915#4880])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@readonly-unsync:
    - shard-dg2:          NOTRUN -> [SKIP][64] ([i915#3297])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_userptr_blits@readonly-unsync.html

  * igt@gem_userptr_blits@sd-probe:
    - shard-dg2:          NOTRUN -> [SKIP][65] ([i915#3297] / [i915#4958])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gem_userptr_blits@sd-probe.html
    - shard-dg1:          NOTRUN -> [SKIP][66] ([i915#3297] / [i915#4958])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@gem_userptr_blits@sd-probe.html

  * igt@gem_userptr_blits@unsync-unmap-after-close:
    - shard-dg1:          NOTRUN -> [SKIP][67] ([i915#3297]) +1 other test skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@gem_userptr_blits@unsync-unmap-after-close.html

  * igt@gem_vm_create@invalid-create:
    - shard-snb:          NOTRUN -> [SKIP][68] +82 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb2/igt@gem_vm_create@invalid-create.html

  * igt@gen7_exec_parse@bitmasks:
    - shard-dg2:          NOTRUN -> [SKIP][69] +16 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@gen7_exec_parse@bitmasks.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-glk:          [PASS][70] -> [ABORT][71] ([i915#5566])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk7/igt@gen9_exec_parse@allowed-single.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk9/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@bb-start-far:
    - shard-tglu-1:       NOTRUN -> [SKIP][72] ([i915#2527] / [i915#2856]) +1 other test skip
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@gen9_exec_parse@bb-start-far.html

  * igt@gen9_exec_parse@bb-start-out:
    - shard-rkl:          NOTRUN -> [SKIP][73] ([i915#2527]) +2 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@gen9_exec_parse@bb-start-out.html

  * igt@gen9_exec_parse@bb-start-param:
    - shard-dg1:          NOTRUN -> [SKIP][74] ([i915#2527]) +1 other test skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@gen9_exec_parse@bb-start-param.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2:          NOTRUN -> [SKIP][75] ([i915#2856]) +4 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@gen9_exec_parse@unaligned-access.html

  * igt@gen9_exec_parse@unaligned-jump:
    - shard-tglu:         NOTRUN -> [SKIP][76] ([i915#2527] / [i915#2856]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@gen9_exec_parse@unaligned-jump.html

  * igt@i915_fb_tiling:
    - shard-dg1:          NOTRUN -> [SKIP][77] ([i915#4881])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@i915_fb_tiling.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-dg1:          NOTRUN -> [DMESG-WARN][78] ([i915#13475])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_freq_api@freq-reset-multiple:
    - shard-rkl:          NOTRUN -> [SKIP][79] ([i915#8399])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@i915_pm_freq_api@freq-reset-multiple.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-tglu:         NOTRUN -> [WARN][80] ([i915#2681]) +1 other test warn
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0:
    - shard-dg1:          [PASS][81] -> [FAIL][82] ([i915#12739] / [i915#3591])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-13/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@gt0-vecs0.html

  * igt@i915_pm_rpm@gem-execbuf-stress:
    - shard-rkl:          NOTRUN -> [SKIP][83] ([i915#13328])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@i915_pm_rpm@gem-execbuf-stress.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-dg2:          NOTRUN -> [SKIP][84] ([i915#11681] / [i915#6621]) +1 other test skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@i915_pm_rps@min-max-config-loaded.html

  * igt@i915_pm_rps@thresholds-idle-park:
    - shard-dg2:          NOTRUN -> [SKIP][85] ([i915#11681])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@i915_pm_rps@thresholds-idle-park.html
    - shard-dg1:          NOTRUN -> [SKIP][86] ([i915#11681])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@i915_pm_rps@thresholds-idle-park.html

  * igt@i915_pm_rps@thresholds-idle@gt0:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][87] ([i915#12964]) +12 other tests dmesg-warn
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@i915_pm_rps@thresholds-idle@gt0.html

  * igt@i915_power@sanity:
    - shard-rkl:          NOTRUN -> [SKIP][88] ([i915#7984])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@i915_power@sanity.html

  * igt@i915_selftest@live@workarounds:
    - shard-mtlp:         [PASS][89] -> [DMESG-FAIL][90] ([i915#12061]) +1 other test dmesg-fail
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-2/igt@i915_selftest@live@workarounds.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-4/igt@i915_selftest@live@workarounds.html

  * igt@i915_selftest@mock:
    - shard-snb:          NOTRUN -> [DMESG-WARN][91] ([i915#9311]) +1 other test dmesg-warn
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb2/igt@i915_selftest@mock.html

  * igt@i915_selftest@mock@memory_region:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][92] ([i915#9311]) +1 other test dmesg-warn
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@i915_selftest@mock@memory_region.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
    - shard-dg2:          NOTRUN -> [SKIP][93] ([i915#4212]) +1 other test skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
    - shard-dg1:          NOTRUN -> [SKIP][94] ([i915#4212]) +2 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@kms_addfb_basic@tile-pitch-mismatch.html

  * igt@kms_addfb_basic@unused-offsets:
    - shard-dg1:          [PASS][95] -> [DMESG-WARN][96] ([i915#4423]) +4 other tests dmesg-warn
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-14/igt@kms_addfb_basic@unused-offsets.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@kms_addfb_basic@unused-offsets.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][97] ([i915#8709]) +11 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs.html

  * igt@kms_async_flips@invalid-async-flip:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([i915#12967] / [i915#6228])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@kms_async_flips@invalid-async-flip.html

  * igt@kms_atomic_transition@modeset-transition:
    - shard-glk:          [PASS][99] -> [FAIL][100] ([i915#12238])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk6/igt@kms_atomic_transition@modeset-transition.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk8/igt@kms_atomic_transition@modeset-transition.html

  * igt@kms_atomic_transition@modeset-transition@2x-outputs:
    - shard-glk:          [PASS][101] -> [FAIL][102] ([i915#11859])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk6/igt@kms_atomic_transition@modeset-transition@2x-outputs.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk8/igt@kms_atomic_transition@modeset-transition@2x-outputs.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-dg2:          NOTRUN -> [SKIP][103] ([i915#1769] / [i915#3555])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][104] ([i915#5286]) +4 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-tglu-1:       NOTRUN -> [SKIP][105] ([i915#5286]) +1 other test skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-dg1:          NOTRUN -> [SKIP][106] ([i915#4538] / [i915#5286]) +6 other tests skip
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-tglu:         NOTRUN -> [SKIP][107] ([i915#5286])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [PASS][108] -> [DMESG-FAIL][109] ([i915#11627] / [i915#13314])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@linear-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][110] ([i915#3638]) +2 other tests skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_big_fb@linear-64bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-0:
    - shard-dg2:          NOTRUN -> [SKIP][111] ([i915#4538] / [i915#5190]) +13 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][112] ([i915#3638]) +3 other tests skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb:
    - shard-dg2:          NOTRUN -> [SKIP][113] ([i915#5190]) +1 other test skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@kms_big_fb@y-tiled-addfb.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-270:
    - shard-dg1:          NOTRUN -> [SKIP][114] ([i915#4538]) +6 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][115] ([i915#6095]) +156 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
    - shard-tglu:         NOTRUN -> [SKIP][116] ([i915#6095]) +24 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][117] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-4/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][118] ([i915#10307] / [i915#6095]) +156 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-1/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][119] ([i915#12313]) +2 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][120] ([i915#12313]) +1 other test skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][121] ([i915#6095]) +64 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-5/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-dg1:          NOTRUN -> [SKIP][122] ([i915#12805])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
    - shard-dg2:          NOTRUN -> [SKIP][123] ([i915#12805])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-8/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-b-dp-4:
    - shard-dg2:          NOTRUN -> [SKIP][124] ([i915#6095]) +17 other tests skip
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-mc-ccs@pipe-b-dp-4.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][125] ([i915#12796])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk7/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][126] ([i915#6095]) +49 other tests skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][127] ([i915#12313]) +2 other tests skip
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-dg2:          NOTRUN -> [SKIP][128] ([i915#11616] / [i915#7213])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_cdclk@mode-transition.html
    - shard-dg1:          NOTRUN -> [SKIP][129] ([i915#3742])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_cdclk@mode-transition.html
    - shard-tglu:         NOTRUN -> [SKIP][130] ([i915#3742])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][131] ([i915#7213]) +3 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html

  * igt@kms_cdclk@plane-scaling:
    - shard-rkl:          NOTRUN -> [SKIP][132] ([i915#3742])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_edid@hdmi-edid-read:
    - shard-rkl:          NOTRUN -> [SKIP][133] ([i915#11151] / [i915#7828]) +5 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_chamelium_edid@hdmi-edid-read.html

  * igt@kms_chamelium_edid@hdmi-edid-stress-resolution-4k:
    - shard-tglu:         NOTRUN -> [SKIP][134] ([i915#11151] / [i915#7828]) +4 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-4k.html

  * igt@kms_chamelium_edid@hdmi-mode-timings:
    - shard-mtlp:         NOTRUN -> [SKIP][135] ([i915#11151] / [i915#7828])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_chamelium_edid@hdmi-mode-timings.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-dg2:          NOTRUN -> [SKIP][136] ([i915#11151] / [i915#7828]) +12 other tests skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium_frames@hdmi-crc-single:
    - shard-tglu-1:       NOTRUN -> [SKIP][137] ([i915#11151] / [i915#7828]) +3 other tests skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_chamelium_frames@hdmi-crc-single.html

  * igt@kms_chamelium_hpd@dp-hpd-after-suspend:
    - shard-dg1:          NOTRUN -> [SKIP][138] ([i915#11151] / [i915#7828]) +11 other tests skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html

  * igt@kms_content_protection@atomic:
    - shard-dg1:          NOTRUN -> [SKIP][139] ([i915#7116] / [i915#9424])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-dg2:          NOTRUN -> [TIMEOUT][140] ([i915#7173]) +3 other tests timeout
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-dg2:          NOTRUN -> [SKIP][141] ([i915#3299]) +1 other test skip
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-dg1:          NOTRUN -> [SKIP][142] ([i915#3299])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-tglu:         NOTRUN -> [SKIP][143] ([i915#3116] / [i915#3299])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@legacy:
    - shard-rkl:          NOTRUN -> [SKIP][144] ([i915#7118] / [i915#9424])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_content_protection@legacy.html
    - shard-tglu-1:       NOTRUN -> [SKIP][145] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic-type-1:
    - shard-dg2:          NOTRUN -> [SKIP][146] ([i915#9424])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_content_protection@lic-type-1.html
    - shard-dg1:          NOTRUN -> [SKIP][147] ([i915#9424])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_content_protection@lic-type-1.html
    - shard-tglu:         NOTRUN -> [SKIP][148] ([i915#6944] / [i915#9424])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_content_protection@lic-type-1.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-tglu-1:       NOTRUN -> [SKIP][149] ([i915#13049])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-tglu-1:       NOTRUN -> [SKIP][150] ([i915#3555]) +2 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-dg2:          NOTRUN -> [SKIP][151] ([i915#13049]) +1 other test skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_cursor_crc@cursor-random-512x512.html
    - shard-dg1:          NOTRUN -> [SKIP][152] ([i915#13049])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_cursor_crc@cursor-random-512x512.html
    - shard-tglu:         NOTRUN -> [SKIP][153] ([i915#13049])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x32:
    - shard-rkl:          NOTRUN -> [SKIP][154] ([i915#3555]) +7 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html

  * igt@kms_cursor_crc@cursor-rapid-movement-64x21:
    - shard-mtlp:         NOTRUN -> [SKIP][155] ([i915#8814])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_cursor_crc@cursor-rapid-movement-64x21.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][156] ([i915#4103] / [i915#4213]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - shard-rkl:          NOTRUN -> [SKIP][157] ([i915#4103])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - shard-tglu-1:       NOTRUN -> [SKIP][158] ([i915#4103]) +1 other test skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-tglu:         NOTRUN -> [SKIP][159] ([i915#4103])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-rkl:          NOTRUN -> [SKIP][160] +16 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][161] ([i915#13046] / [i915#5354]) +6 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-snb:          [PASS][162] -> [FAIL][163] ([i915#2346])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-snb1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
    - shard-dg1:          NOTRUN -> [SKIP][164] ([i915#9067])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html

  * igt@kms_cursor_legacy@short-flip-before-cursor-atomic-transitions:
    - shard-dg1:          NOTRUN -> [DMESG-WARN][165] ([i915#4423])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_cursor_legacy@short-flip-before-cursor-atomic-transitions.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-dg1:          NOTRUN -> [SKIP][166] ([i915#9723])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][167] ([i915#9723])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-dg2:          NOTRUN -> [SKIP][168] ([i915#3555]) +5 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_display_modes@mst-extended-mode-negative:
    - shard-tglu:         NOTRUN -> [SKIP][169] ([i915#8588])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_display_modes@mst-extended-mode-negative.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][170] ([i915#3804])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-7/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html

  * igt@kms_draw_crc@draw-method-mmap-wc:
    - shard-dg2:          NOTRUN -> [SKIP][171] ([i915#8812])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@kms_draw_crc@draw-method-mmap-wc.html

  * igt@kms_dsc@dsc-basic:
    - shard-dg1:          NOTRUN -> [SKIP][172] ([i915#3555] / [i915#3840]) +1 other test skip
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_dsc@dsc-basic.html
    - shard-mtlp:         NOTRUN -> [SKIP][173] ([i915#3555] / [i915#3840] / [i915#9159])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_dsc@dsc-basic.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-dg2:          NOTRUN -> [SKIP][174] ([i915#3840])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-dg2:          NOTRUN -> [SKIP][175] ([i915#3555] / [i915#3840])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_dsc@dsc-with-bpc-formats.html
    - shard-tglu:         NOTRUN -> [SKIP][176] ([i915#3555] / [i915#3840])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_fbcon_fbt@psr:
    - shard-rkl:          NOTRUN -> [SKIP][177] ([i915#3955])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_fbcon_fbt@psr.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-dg2:          NOTRUN -> [SKIP][178] ([i915#3469])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-dg1:          NOTRUN -> [SKIP][179] ([i915#4854])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-4x:
    - shard-rkl:          NOTRUN -> [SKIP][180] ([i915#1839])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-tglu:         NOTRUN -> [SKIP][181] ([i915#9337])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr1:
    - shard-dg2:          NOTRUN -> [SKIP][182] ([i915#658])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-flip-vs-panning-vs-hang:
    - shard-mtlp:         NOTRUN -> [SKIP][183] ([i915#3637])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_flip@2x-flip-vs-panning-vs-hang.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-dg2:          NOTRUN -> [SKIP][184] ([i915#9934]) +14 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip@2x-plain-flip-fb-recreate:
    - shard-tglu:         NOTRUN -> [SKIP][185] ([i915#3637]) +1 other test skip
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_flip@2x-plain-flip-fb-recreate.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
    - shard-tglu-1:       NOTRUN -> [SKIP][186] ([i915#3637]) +4 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html

  * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
    - shard-rkl:          NOTRUN -> [SKIP][187] ([i915#9934]) +5 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
    - shard-dg1:          NOTRUN -> [SKIP][188] ([i915#9934]) +8 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a1:
    - shard-tglu:         [PASS][189] -> [FAIL][190] ([i915#11989]) +3 other tests fail
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-tglu-8/igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a1.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-6/igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a3:
    - shard-dg2:          NOTRUN -> [FAIL][191] ([i915#11989]) +3 other tests fail
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_flip@flip-vs-blocking-wf-vblank@c-hdmi-a3.html

  * igt@kms_flip@flip-vs-fences-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][192] ([i915#8381]) +2 other tests skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_flip@flip-vs-fences-interruptible.html
    - shard-dg1:          NOTRUN -> [SKIP][193] ([i915#8381])
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_flip@flip-vs-fences-interruptible.html

  * igt@kms_flip@plain-flip-fb-recreate:
    - shard-rkl:          [PASS][194] -> [FAIL][195] ([i915#11989]) +2 other tests fail
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-rkl-3/igt@kms_flip@plain-flip-fb-recreate.html
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-5/igt@kms_flip@plain-flip-fb-recreate.html

  * igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a3:
    - shard-dg2:          [PASS][196] -> [FAIL][197] ([i915#11989]) +3 other tests fail
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg2-5/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a3.html
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-2/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a3.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][198] ([i915#2672]) +2 other tests skip
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][199] ([i915#2672] / [i915#3555])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode:
    - shard-dg2:          NOTRUN -> [SKIP][200] ([i915#2672]) +5 other tests skip
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html
    - shard-tglu:         NOTRUN -> [SKIP][201] ([i915#2587] / [i915#2672])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][202] ([i915#2587] / [i915#2672] / [i915#3555])
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode:
    - shard-tglu-1:       NOTRUN -> [SKIP][203] ([i915#2587] / [i915#2672]) +2 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode:
    - shard-dg1:          NOTRUN -> [SKIP][204] ([i915#2587] / [i915#2672]) +4 other tests skip
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][205] ([i915#2672] / [i915#3555]) +2 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][206] ([i915#2672] / [i915#3555]) +1 other test skip
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][207] ([i915#2672] / [i915#3555]) +4 other tests skip
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
    - shard-dg2:          NOTRUN -> [SKIP][208] ([i915#2672] / [i915#3555] / [i915#5190]) +2 other tests skip
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
    - shard-dg2:          NOTRUN -> [SKIP][209] ([i915#2672] / [i915#3555]) +4 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render:
    - shard-dg2:          [PASS][210] -> [FAIL][211] ([i915#6880])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg2-4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt:
    - shard-dg2:          NOTRUN -> [FAIL][212] ([i915#6880])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][213] +52 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt:
    - shard-snb:          [PASS][214] -> [SKIP][215]
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-snb5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - shard-dg2:          NOTRUN -> [SKIP][216] ([i915#10055])
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][217] ([i915#8708]) +1 other test skip
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][218] ([i915#3458]) +19 other tests skip
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][219] ([i915#3023]) +16 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt:
    - shard-dg2:          NOTRUN -> [SKIP][220] ([i915#5354]) +38 other tests skip
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][221] ([i915#8708]) +23 other tests skip
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
    - shard-dg1:          NOTRUN -> [SKIP][222] ([i915#3458]) +19 other tests skip
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-dg1:          NOTRUN -> [SKIP][223] ([i915#5439])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-rkl:          NOTRUN -> [SKIP][224] ([i915#9766])
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
    - shard-tglu-1:       NOTRUN -> [SKIP][225] ([i915#9766])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
    - shard-dg2:          NOTRUN -> [SKIP][226] ([i915#9766])
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][227] +40 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][228] ([i915#1825]) +26 other tests skip
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-move:
    - shard-mtlp:         NOTRUN -> [SKIP][229] ([i915#1825]) +2 other tests skip
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][230] ([i915#8708]) +18 other tests skip
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html

  * igt@kms_hdr@bpc-switch:
    - shard-tglu-1:       NOTRUN -> [SKIP][231] ([i915#3555] / [i915#8228])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_hdr@bpc-switch.html

  * igt@kms_hdr@bpc-switch-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][232] ([i915#3555] / [i915#8228])
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_hdr@bpc-switch-dpms.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-dg2:          NOTRUN -> [SKIP][233] ([i915#3555] / [i915#8228]) +1 other test skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-8/igt@kms_hdr@invalid-metadata-sizes.html
    - shard-dg1:          NOTRUN -> [SKIP][234] ([i915#3555] / [i915#8228])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][235] ([i915#12394] / [i915#13522])
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_joiner@basic-force-ultra-joiner.html
    - shard-rkl:          NOTRUN -> [SKIP][236] ([i915#12394] / [i915#13522])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-2/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][237] ([i915#10656])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_joiner@invalid-modeset-big-joiner.html
    - shard-tglu:         NOTRUN -> [SKIP][238] ([i915#10656])
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_joiner@invalid-modeset-big-joiner.html
    - shard-dg2:          NOTRUN -> [SKIP][239] ([i915#10656])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][240] ([i915#12388])
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][241] ([i915#12394] / [i915#13522])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - shard-mtlp:         NOTRUN -> [SKIP][242] ([i915#10656] / [i915#13522])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][243] ([i915#12339])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-dg1:          NOTRUN -> [SKIP][244] ([i915#6301])
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_panel_fitting@legacy:
    - shard-dg2:          NOTRUN -> [SKIP][245] ([i915#6301])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-dg2:          NOTRUN -> [SKIP][246] ([i915#8821])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-dg2:          NOTRUN -> [SKIP][247] ([i915#3555] / [i915#8806])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers:
    - shard-dg2:          NOTRUN -> [SKIP][248] ([i915#12247] / [i915#9423])
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][249] ([i915#12247]) +4 other tests skip
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers@pipe-c.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-a:
    - shard-tglu-1:       NOTRUN -> [SKIP][250] ([i915#12247]) +4 other tests skip
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-a.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b:
    - shard-rkl:          NOTRUN -> [SKIP][251] ([i915#12247]) +2 other tests skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a:
    - shard-dg1:          NOTRUN -> [SKIP][252] ([i915#12247]) +14 other tests skip
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25:
    - shard-dg2:          NOTRUN -> [SKIP][253] ([i915#12247] / [i915#6953] / [i915#9423])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-c:
    - shard-dg2:          NOTRUN -> [SKIP][254] ([i915#12247]) +7 other tests skip
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-c.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-dg1:          NOTRUN -> [SKIP][255] ([i915#5354])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][256] ([i915#3361])
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-rkl:          NOTRUN -> [SKIP][257] ([i915#9685])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-2/igt@kms_pm_dc@dc6-psr.html
    - shard-tglu:         NOTRUN -> [SKIP][258] ([i915#9685])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-dg2:          NOTRUN -> [SKIP][259] ([i915#8430])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-rkl:          [PASS][260] -> [SKIP][261] ([i915#9519])
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-rkl-7/igt@kms_pm_rpm@dpms-lpsp.html
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-tglu:         NOTRUN -> [SKIP][262] ([i915#9519])
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg1:          NOTRUN -> [SKIP][263] ([i915#9519]) +2 other tests skip
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          NOTRUN -> [SKIP][264] ([i915#12916])
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-dg2:          NOTRUN -> [SKIP][265] ([i915#6524] / [i915#6805])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_prime@basic-crc-hybrid.html
    - shard-dg1:          NOTRUN -> [SKIP][266] ([i915#6524])
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_prime@basic-crc-hybrid.html
    - shard-tglu:         NOTRUN -> [SKIP][267] ([i915#6524])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
    - shard-glk:          NOTRUN -> [SKIP][268] ([i915#11520])
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk5/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf:
    - shard-tglu:         NOTRUN -> [SKIP][269] ([i915#11520]) +3 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-dg2:          NOTRUN -> [SKIP][270] ([i915#11520]) +10 other tests skip
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][271] ([i915#11520]) +8 other tests skip
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area.html
    - shard-snb:          NOTRUN -> [SKIP][272] ([i915#11520]) +2 other tests skip
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb2/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-tglu-1:       NOTRUN -> [SKIP][273] ([i915#11520]) +4 other tests skip
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-sf:
    - shard-dg1:          NOTRUN -> [SKIP][274] ([i915#11520]) +10 other tests skip
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-dg2:          NOTRUN -> [SKIP][275] ([i915#9683]) +1 other test skip
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-pr-no-drrs:
    - shard-rkl:          NOTRUN -> [SKIP][276] ([i915#1072] / [i915#9732]) +13 other tests skip
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_psr@fbc-pr-no-drrs.html

  * igt@kms_psr@fbc-pr-sprite-render:
    - shard-dg1:          NOTRUN -> [SKIP][277] ([i915#1072] / [i915#9732]) +25 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_psr@fbc-pr-sprite-render.html

  * igt@kms_psr@fbc-psr-no-drrs:
    - shard-tglu:         NOTRUN -> [SKIP][278] ([i915#9732]) +10 other tests skip
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_psr@fbc-psr-no-drrs.html

  * igt@kms_psr@fbc-psr-primary-page-flip@edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][279] ([i915#9688]) +3 other tests skip
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_psr@fbc-psr-primary-page-flip@edp-1.html

  * igt@kms_psr@psr-sprite-mmap-cpu:
    - shard-tglu-1:       NOTRUN -> [SKIP][280] ([i915#9732]) +9 other tests skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_psr@psr-sprite-mmap-cpu.html

  * igt@kms_psr@psr2-cursor-blt:
    - shard-dg2:          NOTRUN -> [SKIP][281] ([i915#1072] / [i915#9732]) +25 other tests skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@kms_psr@psr2-cursor-blt.html

  * igt@kms_psr@psr2-cursor-plane-onoff:
    - shard-glk:          NOTRUN -> [SKIP][282] +17 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk5/igt@kms_psr@psr2-cursor-plane-onoff.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-rkl:          NOTRUN -> [SKIP][283] ([i915#5289])
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-270:
    - shard-dg2:          NOTRUN -> [SKIP][284] ([i915#12755] / [i915#5190])
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@kms_rotation_crc@primary-y-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-tglu:         NOTRUN -> [SKIP][285] ([i915#5289])
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
    - shard-dg2:          NOTRUN -> [SKIP][286] ([i915#12755]) +1 other test skip
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html

  * igt@kms_scaling_modes@scaling-mode-center:
    - shard-tglu:         NOTRUN -> [SKIP][287] ([i915#3555]) +2 other tests skip
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_scaling_modes@scaling-mode-center.html

  * igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xrgb1555:
    - shard-rkl:          [PASS][288] -> [DMESG-WARN][289] ([i915#12964]) +10 other tests dmesg-warn
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-rkl-2/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xrgb1555.html
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-3/igt@kms_selftest@drm_format_helper@drm_format_helper_test-drm_test_fb_xrgb8888_to_xrgb1555.html

  * igt@kms_setmode@clone-exclusive-crtc:
    - shard-dg1:          NOTRUN -> [SKIP][290] ([i915#3555]) +5 other tests skip
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@kms_setmode@clone-exclusive-crtc.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-dg1:          NOTRUN -> [SKIP][291] ([i915#8623])
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_tiled_display@basic-test-pattern.html
    - shard-mtlp:         NOTRUN -> [SKIP][292] ([i915#8623])
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [DMESG-FAIL][293] ([i915#12964]) +1 other test dmesg-fail
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vrr@max-min:
    - shard-dg1:          NOTRUN -> [SKIP][294] ([i915#9906])
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_vrr@max-min.html
    - shard-tglu:         NOTRUN -> [SKIP][295] ([i915#9906])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@kms_vrr@max-min.html

  * igt@kms_vrr@negative-basic:
    - shard-dg1:          NOTRUN -> [SKIP][296] ([i915#3555] / [i915#9906])
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_vrr@negative-basic.html

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-dg2:          NOTRUN -> [SKIP][297] ([i915#9906]) +2 other tests skip
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@kms_vrr@seamless-rr-switch-virtual.html
    - shard-rkl:          NOTRUN -> [SKIP][298] ([i915#9906]) +1 other test skip
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@kms_vrr@seamless-rr-switch-virtual.html
    - shard-tglu-1:       NOTRUN -> [SKIP][299] ([i915#9906])
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@perf@global-sseu-config:
    - shard-dg2:          NOTRUN -> [SKIP][300] ([i915#7387])
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@perf@global-sseu-config.html

  * igt@perf@non-zero-reason:
    - shard-dg2:          NOTRUN -> [FAIL][301] ([i915#9100]) +1 other test fail
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-10/igt@perf@non-zero-reason.html

  * igt@perf@per-context-mode-unprivileged:
    - shard-dg1:          NOTRUN -> [SKIP][302] ([i915#2433])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-17/igt@perf@per-context-mode-unprivileged.html

  * igt@perf_pmu@rc6-all-gts:
    - shard-tglu:         NOTRUN -> [SKIP][303] ([i915#8516])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@perf_pmu@rc6-all-gts.html

  * igt@perf_pmu@rc6@other-idle-gt0:
    - shard-dg2:          NOTRUN -> [SKIP][304] ([i915#8516])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@perf_pmu@rc6@other-idle-gt0.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-rkl:          NOTRUN -> [SKIP][305] ([i915#3708])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-1/igt@prime_vgem@fence-flip-hang.html

  * igt@prime_vgem@fence-write-hang:
    - shard-tglu:         NOTRUN -> [SKIP][306] +37 other tests skip
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-4/igt@prime_vgem@fence-write-hang.html
    - shard-dg2:          NOTRUN -> [SKIP][307] ([i915#3708])
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-5/igt@prime_vgem@fence-write-hang.html
    - shard-dg1:          NOTRUN -> [SKIP][308] ([i915#3708])
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@prime_vgem@fence-write-hang.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-dg1:          NOTRUN -> [SKIP][309] ([i915#9917])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-14/igt@sriov_basic@enable-vfs-autoprobe-off.html

  
#### Possible fixes ####

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-dg2:          [ABORT][310] ([i915#13427]) -> [PASS][311]
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg2-2/igt@gem_create@create-ext-cpu-access-big.html
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-3/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_eio@reset-stress:
    - shard-dg1:          [FAIL][312] ([i915#12543] / [i915#5784]) -> [PASS][313]
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-12/igt@gem_eio@reset-stress.html
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-13/igt@gem_eio@reset-stress.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-glk:          [ABORT][314] ([i915#9820]) -> [PASS][315]
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk8/igt@i915_module_load@reload-with-fault-injection.html
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk5/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-glk:          [FAIL][316] ([i915#3591]) -> [PASS][317] +1 other test pass
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk6/igt@i915_pm_rc6_residency@rc6-idle.html
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk4/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0:
    - shard-dg1:          [FAIL][318] ([i915#3591]) -> [PASS][319]
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-13/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html

  * igt@i915_pm_rps@engine-order:
    - shard-glk:          [FAIL][320] -> [PASS][321]
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk7/igt@i915_pm_rps@engine-order.html
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk1/igt@i915_pm_rps@engine-order.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          [INCOMPLETE][322] ([i915#12796]) -> [PASS][323]
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk5/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk7/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-random-128x128@pipe-c-hdmi-a-1:
    - shard-glk:          [DMESG-FAIL][324] ([i915#118]) -> [PASS][325] +1 other test pass
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk8/igt@kms_cursor_crc@cursor-random-128x128@pipe-c-hdmi-a-1.html
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk3/igt@kms_cursor_crc@cursor-random-128x128@pipe-c-hdmi-a-1.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions:
    - shard-snb:          [SKIP][326] -> [PASS][327]
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-snb4/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb5/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-tglu:         [FAIL][328] ([i915#2346]) -> [PASS][329]
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-tglu-6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_flip@2x-flip-vs-fences@ab-vga1-hdmi-a1:
    - shard-snb:          [INCOMPLETE][330] -> [PASS][331] +1 other test pass
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-snb4/igt@kms_flip@2x-flip-vs-fences@ab-vga1-hdmi-a1.html
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb7/igt@kms_flip@2x-flip-vs-fences@ab-vga1-hdmi-a1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank:
    - shard-snb:          [FAIL][332] ([i915#11989]) -> [PASS][333] +3 other tests pass
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-snb4/igt@kms_flip@flip-vs-blocking-wf-vblank.html
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb7/igt@kms_flip@flip-vs-blocking-wf-vblank.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1:
    - shard-mtlp:         [FAIL][334] ([i915#11989]) -> [PASS][335] +7 other tests pass
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-3/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-6/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@d-edp1:
    - shard-mtlp:         [FAIL][336] ([i915#11989] / [i915#12740]) -> [PASS][337] +1 other test pass
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-3/igt@kms_flip@flip-vs-blocking-wf-vblank@d-edp1.html
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-6/igt@kms_flip@flip-vs-blocking-wf-vblank@d-edp1.html

  * igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1:
    - shard-glk:          [FAIL][338] ([i915#13027]) -> [PASS][339] +1 other test pass
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk3/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html

  * igt@kms_flip@plain-flip-ts-check-interruptible:
    - shard-tglu:         [FAIL][340] ([i915#11989]) -> [PASS][341] +4 other tests pass
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-tglu-3/igt@kms_flip@plain-flip-ts-check-interruptible.html
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-2/igt@kms_flip@plain-flip-ts-check-interruptible.html

  * igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a1:
    - shard-tglu:         [FAIL][342] -> [PASS][343]
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-tglu-3/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a1.html
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-tglu-2/igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a1.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg2:          [SKIP][344] ([i915#9519]) -> [PASS][345] +2 other tests pass
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg2-4/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-rkl:          [SKIP][346] ([i915#9519]) -> [PASS][347] +1 other test pass
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-rkl-5/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-7/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@testdisplay:
    - shard-rkl:          [DMESG-WARN][348] ([i915#12964]) -> [PASS][349] +8 other tests pass
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-rkl-4/igt@testdisplay.html
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-2/igt@testdisplay.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s3:
    - shard-rkl:          [INCOMPLETE][350] ([i915#13304]) -> [DMESG-FAIL][351] ([i915#12964]) +1 other test dmesg-fail
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-rkl-5/igt@gem_exec_suspend@basic-s3.html
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-rkl-2/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-glk:          [ABORT][352] ([i915#13263] / [i915#13449]) -> [ABORT][353] ([i915#13449])
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk4/igt@gem_tiled_swapping@non-threaded.html
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk4/igt@gem_tiled_swapping@non-threaded.html

  * igt@i915_selftest@mock:
    - shard-glk:          [DMESG-WARN][354] ([i915#1982] / [i915#9311]) -> [DMESG-WARN][355] ([i915#9311])
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-glk1/igt@i915_selftest@mock.html
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-glk5/igt@i915_selftest@mock.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-dg1:          [SKIP][356] ([i915#4538]) -> [SKIP][357] ([i915#4423] / [i915#4538])
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-14/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_content_protection@atomic:
    - shard-dg2:          [TIMEOUT][358] ([i915#7173]) -> [SKIP][359] ([i915#7118] / [i915#9424])
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg2-10/igt@kms_content_protection@atomic.html
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-1/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@lic-type-1:
    - shard-snb:          [SKIP][360] -> [INCOMPLETE][361] ([i915#8816])
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-snb4/igt@kms_content_protection@lic-type-1.html
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-snb5/igt@kms_content_protection@lic-type-1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling:
    - shard-mtlp:         [ABORT][362] ([i915#8810]) -> [SKIP][363] ([i915#3555] / [i915#8810] / [i915#8813])
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-6/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling.html
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode:
    - shard-mtlp:         [ABORT][364] ([i915#8810]) -> [SKIP][365] ([i915#3555] / [i915#8810])
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-6/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode.html
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-3/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
    - shard-dg1:          [SKIP][366] ([i915#2587] / [i915#2672] / [i915#3555] / [i915#4423]) -> [SKIP][367] ([i915#2587] / [i915#2672] / [i915#3555])
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-13/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode:
    - shard-dg1:          [SKIP][368] ([i915#2587] / [i915#2672] / [i915#4423]) -> [SKIP][369] ([i915#2587] / [i915#2672])
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-13/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-12/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt:
    - shard-dg2:          [SKIP][370] ([i915#10433] / [i915#3458]) -> [SKIP][371] ([i915#3458])
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-dg2:          [SKIP][372] ([i915#3458]) -> [SKIP][373] ([i915#10433] / [i915#3458]) +2 other tests skip
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-dg1:          [SKIP][374] -> [SKIP][375] ([i915#4423])
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-mtlp:         [SKIP][376] ([i915#12713]) -> [SKIP][377] ([i915#1187] / [i915#12713])
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-mtlp-3/igt@kms_hdr@brightness-with-hdr.html
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-mtlp-1/igt@kms_hdr@brightness-with-hdr.html
    - shard-dg1:          [SKIP][378] ([i915#12713]) -> [SKIP][379] ([i915#1187] / [i915#12713])
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15968/shard-dg1-17/igt@kms_hdr@brightness-with-hdr.html
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/shard-dg1-13/igt@kms_hdr@brightness-with-hdr.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#10055]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10055
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11527
  [i915#11616]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11616
  [i915#11627]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11627
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118
  [i915#11859]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11859
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [i915#11989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11989
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12238]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12238
  [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
  [i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
  [i915#12394]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12394
  [i915#12543]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12543
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12739
  [i915#12740]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12740
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12796]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12796
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#12817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12817
  [i915#12916]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12916
  [i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917
  [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
  [i915#12967]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12967
  [i915#13008]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13008
  [i915#13027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13027
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13263]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13263
  [i915#13304]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13304
  [i915#13314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13314
  [i915#13328]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13328
  [i915#13363]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13363
  [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
  [i915#13427]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13427
  [i915#13449]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13449
  [i915#13475]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13475
  [i915#13522]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13522
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
  [i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
  [i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2433
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681
  [i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
  [i915#3361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#3936]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3936
  [i915#3955]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3955
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
  [i915#4881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4881
  [i915#4958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4958
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
  [i915#5507]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5507
  [i915#5566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5566
  [i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784
  [i915#5882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5882
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6228
  [i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issu

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_143614v3/index.html

[-- Attachment #2: Type: text/html, Size: 122386 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
  2025-01-16 15:53 [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Brian Geffon
                   ` (2 preceding siblings ...)
  2025-01-17 20:36 ` ✗ i915.CI.Full: failure " Patchwork
@ 2025-01-23  3:06 ` Srinivas, Vidya
  2025-01-24 15:19   ` Brian Geffon
  2025-01-27 18:47 ` Ville Syrjälä
  4 siblings, 1 reply; 9+ messages in thread
From: Srinivas, Vidya @ 2025-01-23  3:06 UTC (permalink / raw)
  To: Brian Geffon, intel-gfx@lists.freedesktop.org
  Cc: Wilson, Chris P, Saarinen, Jani, Mistat, Tomasz,
	ville.syrjala@linux.intel.com, jani.nikula@linux.intel.com,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Joonas Lahtinen, stable@vger.kernel.org, Tomasz Figa

Hello Brian, Many thanks for the fix. I am adding my tested-by.
Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>


> -----Original Message-----
> From: Brian Geffon <bgeffon@google.com>
> Sent: 16 January 2025 21:24
> To: intel-gfx@lists.freedesktop.org
> Cc: Wilson, Chris P <chris.p.wilson@intel.com>; Saarinen, Jani
> <jani.saarinen@intel.com>; Mistat, Tomasz <tomasz.mistat@intel.com>;
> Srinivas, Vidya <vidya.srinivas@intel.com>; ville.syrjala@linux.intel.com;
> jani.nikula@linux.intel.com; linux-kernel@vger.kernel.org; dri-
> devel@lists.freedesktop.org; Joonas Lahtinen
> <joonas.lahtinen@linux.intel.com>; Brian Geffon <bgeffon@google.com>;
> stable@vger.kernel.org; Tomasz Figa <tfiga@google.com>
> Subject: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
> 
> When converting to folios the cleanup path of shmem_get_pages() was
> missed. When a DMA remap fails and the max segment size is greater than
> PAGE_SIZE it will attempt to retry the remap with a PAGE_SIZEd segment size.
> The cleanup code isn't properly using the folio apis and as a result isn't
> handling compound pages correctly.
> 
> v1 -> v2:
>   (Ville) Fixed locations where we were not clearing mapping unevictable.
> 
> Cc: stable@vger.kernel.org
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Vidya Srinivas <vidya.srinivas@intel.com>
> Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13487
> Link: https://lore.kernel.org/lkml/20250116135636.410164-1-
> bgeffon@google.com/
> Fixes: 0b62af28f249 ("i915: convert shmem_sg_free_table() to use a
> folio_batch")
> Signed-off-by: Brian Geffon <bgeffon@google.com>
> Suggested-by: Tomasz Figa <tfiga@google.com>
> ---
>  drivers/gpu/drm/i915/gem/i915_gem_object.h |  3 +--
> drivers/gpu/drm/i915/gem/i915_gem_shmem.c  | 23 +++++++++-------------
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.c    |  7 ++++---
>  3 files changed, 14 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> index 3dc61cbd2e11..0f122a12d4a5 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> @@ -843,8 +843,7 @@ int shmem_sg_alloc_table(struct drm_i915_private
> *i915, struct sg_table *st,
>  			 size_t size, struct intel_memory_region *mr,
>  			 struct address_space *mapping,
>  			 unsigned int max_segment);
> -void shmem_sg_free_table(struct sg_table *st, struct address_space
> *mapping,
> -			 bool dirty, bool backup);
> +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup);
>  void __shmem_writeback(size_t size, struct address_space *mapping);
> 
>  #ifdef CONFIG_MMU_NOTIFIER
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> index fe69f2c8527d..b320d9dfd6d3 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> @@ -29,16 +29,13 @@ static void check_release_folio_batch(struct
> folio_batch *fbatch)
>  	cond_resched();
>  }
> 
> -void shmem_sg_free_table(struct sg_table *st, struct address_space
> *mapping,
> -			 bool dirty, bool backup)
> +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup)
>  {
>  	struct sgt_iter sgt_iter;
>  	struct folio_batch fbatch;
>  	struct folio *last = NULL;
>  	struct page *page;
> 
> -	mapping_clear_unevictable(mapping);
> -
>  	folio_batch_init(&fbatch);
>  	for_each_sgt_page(page, sgt_iter, st) {
>  		struct folio *folio = page_folio(page); @@ -180,10 +177,10
> @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table
> *st,
>  	return 0;
>  err_sg:
>  	sg_mark_end(sg);
> +	mapping_clear_unevictable(mapping);
>  	if (sg != st->sgl) {
> -		shmem_sg_free_table(st, mapping, false, false);
> +		shmem_sg_free_table(st, false, false);
>  	} else {
> -		mapping_clear_unevictable(mapping);
>  		sg_free_table(st);
>  	}
> 
> @@ -209,8 +206,6 @@ static int shmem_get_pages(struct
> drm_i915_gem_object *obj)
>  	struct address_space *mapping = obj->base.filp->f_mapping;
>  	unsigned int max_segment = i915_sg_segment_size(i915->drm.dev);
>  	struct sg_table *st;
> -	struct sgt_iter sgt_iter;
> -	struct page *page;
>  	int ret;
> 
>  	/*
> @@ -239,9 +234,8 @@ static int shmem_get_pages(struct
> drm_i915_gem_object *obj)
>  		 * for PAGE_SIZE chunks instead may be helpful.
>  		 */
>  		if (max_segment > PAGE_SIZE) {
> -			for_each_sgt_page(page, sgt_iter, st)
> -				put_page(page);
> -			sg_free_table(st);
> +			/* Leave the mapping unevictable while we retry */
> +			shmem_sg_free_table(st, false, false);
>  			kfree(st);
> 
>  			max_segment = PAGE_SIZE;
> @@ -265,7 +259,8 @@ static int shmem_get_pages(struct
> drm_i915_gem_object *obj)
>  	return 0;
> 
>  err_pages:
> -	shmem_sg_free_table(st, mapping, false, false);
> +	mapping_clear_unevictable(mapping);
> +	shmem_sg_free_table(st, false, false);
>  	/*
>  	 * shmemfs first checks if there is enough memory to allocate the
> page
>  	 * and reports ENOSPC should there be insufficient, along with the
> usual @@ -402,8 +397,8 @@ void
> i915_gem_object_put_pages_shmem(struct drm_i915_gem_object *obj,
> struct sg_
>  	if (i915_gem_object_needs_bit17_swizzle(obj))
>  		i915_gem_object_save_bit_17_swizzle(obj, pages);
> 
> -	shmem_sg_free_table(pages, file_inode(obj->base.filp)->i_mapping,
> -			    obj->mm.dirty, obj->mm.madv ==
> I915_MADV_WILLNEED);
> +	mapping_clear_unevictable(file_inode(obj->base.filp)->i_mapping);
> +	shmem_sg_free_table(pages, obj->mm.dirty, obj->mm.madv ==
> +I915_MADV_WILLNEED);
>  	kfree(pages);
>  	obj->mm.dirty = false;
>  }
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> index 10d8673641f7..37f51a04b838 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> @@ -232,7 +232,8 @@ static int i915_ttm_tt_shmem_populate(struct
> ttm_device *bdev,
>  	return 0;
> 
>  err_free_st:
> -	shmem_sg_free_table(st, filp->f_mapping, false, false);
> +	mapping_clear_unevictable(filp->f_mapping);
> +	shmem_sg_free_table(st, false, false);
> 
>  	return err;
>  }
> @@ -243,8 +244,8 @@ static void i915_ttm_tt_shmem_unpopulate(struct
> ttm_tt *ttm)
>  	bool backup = ttm->page_flags & TTM_TT_FLAG_SWAPPED;
>  	struct sg_table *st = &i915_tt->cached_rsgt.table;
> 
> -	shmem_sg_free_table(st, file_inode(i915_tt->filp)->i_mapping,
> -			    backup, backup);
> +	mapping_clear_unevictable(file_inode(i915_tt->filp)->i_mapping);
> +	shmem_sg_free_table(st, backup, backup);
>  }
> 
>  static void i915_ttm_tt_release(struct kref *ref)
> --
> 2.48.0.rc2.279.g1de40edade-goog


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
  2025-01-23  3:06 ` [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Srinivas, Vidya
@ 2025-01-24 15:19   ` Brian Geffon
  2025-01-27  4:02     ` Srinivas, Vidya
  0 siblings, 1 reply; 9+ messages in thread
From: Brian Geffon @ 2025-01-24 15:19 UTC (permalink / raw)
  To: Srinivas, Vidya
  Cc: intel-gfx@lists.freedesktop.org, Wilson, Chris P, Saarinen, Jani,
	Mistat, Tomasz, ville.syrjala@linux.intel.com,
	jani.nikula@linux.intel.com, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, Joonas Lahtinen,
	stable@vger.kernel.org, Tomasz Figa

On Wed, Jan 22, 2025 at 10:07 PM Srinivas, Vidya
<vidya.srinivas@intel.com> wrote:
>
> Hello Brian, Many thanks for the fix. I am adding my tested-by.
> Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>

Thanks for testing Vidya.

Can we get a maintainer to take a look?

>
>
> > -----Original Message-----
> > From: Brian Geffon <bgeffon@google.com>
> > Sent: 16 January 2025 21:24
> > To: intel-gfx@lists.freedesktop.org
> > Cc: Wilson, Chris P <chris.p.wilson@intel.com>; Saarinen, Jani
> > <jani.saarinen@intel.com>; Mistat, Tomasz <tomasz.mistat@intel.com>;
> > Srinivas, Vidya <vidya.srinivas@intel.com>; ville.syrjala@linux.intel.com;
> > jani.nikula@linux.intel.com; linux-kernel@vger.kernel.org; dri-
> > devel@lists.freedesktop.org; Joonas Lahtinen
> > <joonas.lahtinen@linux.intel.com>; Brian Geffon <bgeffon@google.com>;
> > stable@vger.kernel.org; Tomasz Figa <tfiga@google.com>
> > Subject: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
> >
> > When converting to folios the cleanup path of shmem_get_pages() was
> > missed. When a DMA remap fails and the max segment size is greater than
> > PAGE_SIZE it will attempt to retry the remap with a PAGE_SIZEd segment size.
> > The cleanup code isn't properly using the folio apis and as a result isn't
> > handling compound pages correctly.
> >
> > v1 -> v2:
> >   (Ville) Fixed locations where we were not clearing mapping unevictable.
> >
> > Cc: stable@vger.kernel.org
> > Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> > Cc: Vidya Srinivas <vidya.srinivas@intel.com>
> > Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13487
> > Link: https://lore.kernel.org/lkml/20250116135636.410164-1-
> > bgeffon@google.com/
> > Fixes: 0b62af28f249 ("i915: convert shmem_sg_free_table() to use a
> > folio_batch")
> > Signed-off-by: Brian Geffon <bgeffon@google.com>
> > Suggested-by: Tomasz Figa <tfiga@google.com>
> > ---
> >  drivers/gpu/drm/i915/gem/i915_gem_object.h |  3 +--
> > drivers/gpu/drm/i915/gem/i915_gem_shmem.c  | 23 +++++++++-------------
> >  drivers/gpu/drm/i915/gem/i915_gem_ttm.c    |  7 ++++---
> >  3 files changed, 14 insertions(+), 19 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > index 3dc61cbd2e11..0f122a12d4a5 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > @@ -843,8 +843,7 @@ int shmem_sg_alloc_table(struct drm_i915_private
> > *i915, struct sg_table *st,
> >                        size_t size, struct intel_memory_region *mr,
> >                        struct address_space *mapping,
> >                        unsigned int max_segment);
> > -void shmem_sg_free_table(struct sg_table *st, struct address_space
> > *mapping,
> > -                      bool dirty, bool backup);
> > +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup);
> >  void __shmem_writeback(size_t size, struct address_space *mapping);
> >
> >  #ifdef CONFIG_MMU_NOTIFIER
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > index fe69f2c8527d..b320d9dfd6d3 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > @@ -29,16 +29,13 @@ static void check_release_folio_batch(struct
> > folio_batch *fbatch)
> >       cond_resched();
> >  }
> >
> > -void shmem_sg_free_table(struct sg_table *st, struct address_space
> > *mapping,
> > -                      bool dirty, bool backup)
> > +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup)
> >  {
> >       struct sgt_iter sgt_iter;
> >       struct folio_batch fbatch;
> >       struct folio *last = NULL;
> >       struct page *page;
> >
> > -     mapping_clear_unevictable(mapping);
> > -
> >       folio_batch_init(&fbatch);
> >       for_each_sgt_page(page, sgt_iter, st) {
> >               struct folio *folio = page_folio(page); @@ -180,10 +177,10
> > @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table
> > *st,
> >       return 0;
> >  err_sg:
> >       sg_mark_end(sg);
> > +     mapping_clear_unevictable(mapping);
> >       if (sg != st->sgl) {
> > -             shmem_sg_free_table(st, mapping, false, false);
> > +             shmem_sg_free_table(st, false, false);
> >       } else {
> > -             mapping_clear_unevictable(mapping);
> >               sg_free_table(st);
> >       }
> >
> > @@ -209,8 +206,6 @@ static int shmem_get_pages(struct
> > drm_i915_gem_object *obj)
> >       struct address_space *mapping = obj->base.filp->f_mapping;
> >       unsigned int max_segment = i915_sg_segment_size(i915->drm.dev);
> >       struct sg_table *st;
> > -     struct sgt_iter sgt_iter;
> > -     struct page *page;
> >       int ret;
> >
> >       /*
> > @@ -239,9 +234,8 @@ static int shmem_get_pages(struct
> > drm_i915_gem_object *obj)
> >                * for PAGE_SIZE chunks instead may be helpful.
> >                */
> >               if (max_segment > PAGE_SIZE) {
> > -                     for_each_sgt_page(page, sgt_iter, st)
> > -                             put_page(page);
> > -                     sg_free_table(st);
> > +                     /* Leave the mapping unevictable while we retry */
> > +                     shmem_sg_free_table(st, false, false);
> >                       kfree(st);
> >
> >                       max_segment = PAGE_SIZE;
> > @@ -265,7 +259,8 @@ static int shmem_get_pages(struct
> > drm_i915_gem_object *obj)
> >       return 0;
> >
> >  err_pages:
> > -     shmem_sg_free_table(st, mapping, false, false);
> > +     mapping_clear_unevictable(mapping);
> > +     shmem_sg_free_table(st, false, false);
> >       /*
> >        * shmemfs first checks if there is enough memory to allocate the
> > page
> >        * and reports ENOSPC should there be insufficient, along with the
> > usual @@ -402,8 +397,8 @@ void
> > i915_gem_object_put_pages_shmem(struct drm_i915_gem_object *obj,
> > struct sg_
> >       if (i915_gem_object_needs_bit17_swizzle(obj))
> >               i915_gem_object_save_bit_17_swizzle(obj, pages);
> >
> > -     shmem_sg_free_table(pages, file_inode(obj->base.filp)->i_mapping,
> > -                         obj->mm.dirty, obj->mm.madv ==
> > I915_MADV_WILLNEED);
> > +     mapping_clear_unevictable(file_inode(obj->base.filp)->i_mapping);
> > +     shmem_sg_free_table(pages, obj->mm.dirty, obj->mm.madv ==
> > +I915_MADV_WILLNEED);
> >       kfree(pages);
> >       obj->mm.dirty = false;
> >  }
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > index 10d8673641f7..37f51a04b838 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > @@ -232,7 +232,8 @@ static int i915_ttm_tt_shmem_populate(struct
> > ttm_device *bdev,
> >       return 0;
> >
> >  err_free_st:
> > -     shmem_sg_free_table(st, filp->f_mapping, false, false);
> > +     mapping_clear_unevictable(filp->f_mapping);
> > +     shmem_sg_free_table(st, false, false);
> >
> >       return err;
> >  }
> > @@ -243,8 +244,8 @@ static void i915_ttm_tt_shmem_unpopulate(struct
> > ttm_tt *ttm)
> >       bool backup = ttm->page_flags & TTM_TT_FLAG_SWAPPED;
> >       struct sg_table *st = &i915_tt->cached_rsgt.table;
> >
> > -     shmem_sg_free_table(st, file_inode(i915_tt->filp)->i_mapping,
> > -                         backup, backup);
> > +     mapping_clear_unevictable(file_inode(i915_tt->filp)->i_mapping);
> > +     shmem_sg_free_table(st, backup, backup);
> >  }
> >
> >  static void i915_ttm_tt_release(struct kref *ref)
> > --
> > 2.48.0.rc2.279.g1de40edade-goog
>

Thanks
Brian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
  2025-01-24 15:19   ` Brian Geffon
@ 2025-01-27  4:02     ` Srinivas, Vidya
  0 siblings, 0 replies; 9+ messages in thread
From: Srinivas, Vidya @ 2025-01-27  4:02 UTC (permalink / raw)
  To: Brian Geffon
  Cc: intel-gfx@lists.freedesktop.org, Wilson, Chris P, Saarinen, Jani,
	Mistat, Tomasz, ville.syrjala@linux.intel.com,
	jani.nikula@linux.intel.com, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, Joonas Lahtinen,
	stable@vger.kernel.org, Tomasz Figa



> -----Original Message-----
> From: Brian Geffon <bgeffon@google.com>
> Sent: 24 January 2025 20:50
> To: Srinivas, Vidya <vidya.srinivas@intel.com>
> Cc: intel-gfx@lists.freedesktop.org; Wilson, Chris P
> <chris.p.wilson@intel.com>; Saarinen, Jani <jani.saarinen@intel.com>;
> Mistat, Tomasz <tomasz.mistat@intel.com>; ville.syrjala@linux.intel.com;
> jani.nikula@linux.intel.com; linux-kernel@vger.kernel.org; dri-
> devel@lists.freedesktop.org; Joonas Lahtinen
> <joonas.lahtinen@linux.intel.com>; stable@vger.kernel.org; Tomasz Figa
> <tfiga@google.com>
> Subject: Re: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
> 
> On Wed, Jan 22, 2025 at 10:07 PM Srinivas, Vidya <vidya.srinivas@intel.com>
> wrote:
> >
> > Hello Brian, Many thanks for the fix. I am adding my tested-by.
> > Tested-by: Vidya Srinivas <vidya.srinivas@intel.com>
> 
> Thanks for testing Vidya.
> 
> Can we get a maintainer to take a look?

Hello Brian, Thank you so much.
Tomasz has left a comment on gitlab, I think he will help on review.

Regards
Vidya

> 
> >
> >
> > > -----Original Message-----
> > > From: Brian Geffon <bgeffon@google.com>
> > > Sent: 16 January 2025 21:24
> > > To: intel-gfx@lists.freedesktop.org
> > > Cc: Wilson, Chris P <chris.p.wilson@intel.com>; Saarinen, Jani
> > > <jani.saarinen@intel.com>; Mistat, Tomasz <tomasz.mistat@intel.com>;
> > > Srinivas, Vidya <vidya.srinivas@intel.com>;
> > > ville.syrjala@linux.intel.com; jani.nikula@linux.intel.com;
> > > linux-kernel@vger.kernel.org; dri- devel@lists.freedesktop.org;
> > > Joonas Lahtinen <joonas.lahtinen@linux.intel.com>; Brian Geffon
> > > <bgeffon@google.com>; stable@vger.kernel.org; Tomasz Figa
> > > <tfiga@google.com>
> > > Subject: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
> > >
> > > When converting to folios the cleanup path of shmem_get_pages() was
> > > missed. When a DMA remap fails and the max segment size is greater
> > > than PAGE_SIZE it will attempt to retry the remap with a PAGE_SIZEd
> segment size.
> > > The cleanup code isn't properly using the folio apis and as a result
> > > isn't handling compound pages correctly.
> > >
> > > v1 -> v2:
> > >   (Ville) Fixed locations where we were not clearing mapping unevictable.
> > >
> > > Cc: stable@vger.kernel.org
> > > Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> > > Cc: Vidya Srinivas <vidya.srinivas@intel.com>
> > > Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13487
> > > Link: https://lore.kernel.org/lkml/20250116135636.410164-1-
> > > bgeffon@google.com/
> > > Fixes: 0b62af28f249 ("i915: convert shmem_sg_free_table() to use a
> > > folio_batch")
> > > Signed-off-by: Brian Geffon <bgeffon@google.com>
> > > Suggested-by: Tomasz Figa <tfiga@google.com>
> > > ---
> > >  drivers/gpu/drm/i915/gem/i915_gem_object.h |  3 +--
> > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c  | 23 +++++++++------------
> -
> > >  drivers/gpu/drm/i915/gem/i915_gem_ttm.c    |  7 ++++---
> > >  3 files changed, 14 insertions(+), 19 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > > b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > > index 3dc61cbd2e11..0f122a12d4a5 100644
> > > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > > @@ -843,8 +843,7 @@ int shmem_sg_alloc_table(struct
> drm_i915_private
> > > *i915, struct sg_table *st,
> > >                        size_t size, struct intel_memory_region *mr,
> > >                        struct address_space *mapping,
> > >                        unsigned int max_segment); -void
> > > shmem_sg_free_table(struct sg_table *st, struct address_space
> > > *mapping,
> > > -                      bool dirty, bool backup);
> > > +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool
> > > +backup);
> > >  void __shmem_writeback(size_t size, struct address_space *mapping);
> > >
> > >  #ifdef CONFIG_MMU_NOTIFIER
> > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > > b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > > index fe69f2c8527d..b320d9dfd6d3 100644
> > > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > > @@ -29,16 +29,13 @@ static void check_release_folio_batch(struct
> > > folio_batch *fbatch)
> > >       cond_resched();
> > >  }
> > >
> > > -void shmem_sg_free_table(struct sg_table *st, struct address_space
> > > *mapping,
> > > -                      bool dirty, bool backup)
> > > +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool
> > > +backup)
> > >  {
> > >       struct sgt_iter sgt_iter;
> > >       struct folio_batch fbatch;
> > >       struct folio *last = NULL;
> > >       struct page *page;
> > >
> > > -     mapping_clear_unevictable(mapping);
> > > -
> > >       folio_batch_init(&fbatch);
> > >       for_each_sgt_page(page, sgt_iter, st) {
> > >               struct folio *folio = page_folio(page); @@ -180,10
> > > +177,10 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915,
> > > struct sg_table *st,
> > >       return 0;
> > >  err_sg:
> > >       sg_mark_end(sg);
> > > +     mapping_clear_unevictable(mapping);
> > >       if (sg != st->sgl) {
> > > -             shmem_sg_free_table(st, mapping, false, false);
> > > +             shmem_sg_free_table(st, false, false);
> > >       } else {
> > > -             mapping_clear_unevictable(mapping);
> > >               sg_free_table(st);
> > >       }
> > >
> > > @@ -209,8 +206,6 @@ static int shmem_get_pages(struct
> > > drm_i915_gem_object *obj)
> > >       struct address_space *mapping = obj->base.filp->f_mapping;
> > >       unsigned int max_segment = i915_sg_segment_size(i915->drm.dev);
> > >       struct sg_table *st;
> > > -     struct sgt_iter sgt_iter;
> > > -     struct page *page;
> > >       int ret;
> > >
> > >       /*
> > > @@ -239,9 +234,8 @@ static int shmem_get_pages(struct
> > > drm_i915_gem_object *obj)
> > >                * for PAGE_SIZE chunks instead may be helpful.
> > >                */
> > >               if (max_segment > PAGE_SIZE) {
> > > -                     for_each_sgt_page(page, sgt_iter, st)
> > > -                             put_page(page);
> > > -                     sg_free_table(st);
> > > +                     /* Leave the mapping unevictable while we retry */
> > > +                     shmem_sg_free_table(st, false, false);
> > >                       kfree(st);
> > >
> > >                       max_segment = PAGE_SIZE; @@ -265,7 +259,8 @@
> > > static int shmem_get_pages(struct drm_i915_gem_object *obj)
> > >       return 0;
> > >
> > >  err_pages:
> > > -     shmem_sg_free_table(st, mapping, false, false);
> > > +     mapping_clear_unevictable(mapping);
> > > +     shmem_sg_free_table(st, false, false);
> > >       /*
> > >        * shmemfs first checks if there is enough memory to allocate
> > > the page
> > >        * and reports ENOSPC should there be insufficient, along with
> > > the usual @@ -402,8 +397,8 @@ void
> > > i915_gem_object_put_pages_shmem(struct drm_i915_gem_object *obj,
> > > struct sg_
> > >       if (i915_gem_object_needs_bit17_swizzle(obj))
> > >               i915_gem_object_save_bit_17_swizzle(obj, pages);
> > >
> > > -     shmem_sg_free_table(pages, file_inode(obj->base.filp)->i_mapping,
> > > -                         obj->mm.dirty, obj->mm.madv ==
> > > I915_MADV_WILLNEED);
> > > +     mapping_clear_unevictable(file_inode(obj->base.filp)->i_mapping);
> > > +     shmem_sg_free_table(pages, obj->mm.dirty, obj->mm.madv ==
> > > +I915_MADV_WILLNEED);
> > >       kfree(pages);
> > >       obj->mm.dirty = false;
> > >  }
> > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > > b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > > index 10d8673641f7..37f51a04b838 100644
> > > --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > > @@ -232,7 +232,8 @@ static int i915_ttm_tt_shmem_populate(struct
> > > ttm_device *bdev,
> > >       return 0;
> > >
> > >  err_free_st:
> > > -     shmem_sg_free_table(st, filp->f_mapping, false, false);
> > > +     mapping_clear_unevictable(filp->f_mapping);
> > > +     shmem_sg_free_table(st, false, false);
> > >
> > >       return err;
> > >  }
> > > @@ -243,8 +244,8 @@ static void i915_ttm_tt_shmem_unpopulate(struct
> > > ttm_tt *ttm)
> > >       bool backup = ttm->page_flags & TTM_TT_FLAG_SWAPPED;
> > >       struct sg_table *st = &i915_tt->cached_rsgt.table;
> > >
> > > -     shmem_sg_free_table(st, file_inode(i915_tt->filp)->i_mapping,
> > > -                         backup, backup);
> > > +     mapping_clear_unevictable(file_inode(i915_tt->filp)->i_mapping);
> > > +     shmem_sg_free_table(st, backup, backup);
> > >  }
> > >
> > >  static void i915_ttm_tt_release(struct kref *ref)
> > > --
> > > 2.48.0.rc2.279.g1de40edade-goog
> >
> 
> Thanks
> Brian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
  2025-01-16 15:53 [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Brian Geffon
                   ` (3 preceding siblings ...)
  2025-01-23  3:06 ` [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Srinivas, Vidya
@ 2025-01-27 18:47 ` Ville Syrjälä
  2025-01-27 20:28   ` Brian Geffon
  4 siblings, 1 reply; 9+ messages in thread
From: Ville Syrjälä @ 2025-01-27 18:47 UTC (permalink / raw)
  To: Brian Geffon
  Cc: intel-gfx, chris.p.wilson, jani.saarinen, tomasz.mistat,
	vidya.srinivas, jani.nikula, linux-kernel, dri-devel,
	Joonas Lahtinen, stable, Tomasz Figa

On Thu, Jan 16, 2025 at 10:53:40AM -0500, Brian Geffon wrote:
> When converting to folios the cleanup path of shmem_get_pages() was
> missed. When a DMA remap fails and the max segment size is greater than
> PAGE_SIZE it will attempt to retry the remap with a PAGE_SIZEd segment
> size. The cleanup code isn't properly using the folio apis and as a
> result isn't handling compound pages correctly.
> 
> v1 -> v2:
>   (Ville) Fixed locations where we were not clearing mapping unevictable.
> 
> Cc: stable@vger.kernel.org
> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> Cc: Vidya Srinivas <vidya.srinivas@intel.com>
> Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13487
> Link: https://lore.kernel.org/lkml/20250116135636.410164-1-bgeffon@google.com/
> Fixes: 0b62af28f249 ("i915: convert shmem_sg_free_table() to use a folio_batch")
> Signed-off-by: Brian Geffon <bgeffon@google.com>
> Suggested-by: Tomasz Figa <tfiga@google.com>
> ---
>  drivers/gpu/drm/i915/gem/i915_gem_object.h |  3 +--
>  drivers/gpu/drm/i915/gem/i915_gem_shmem.c  | 23 +++++++++-------------
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.c    |  7 ++++---
>  3 files changed, 14 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> index 3dc61cbd2e11..0f122a12d4a5 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> @@ -843,8 +843,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
>  			 size_t size, struct intel_memory_region *mr,
>  			 struct address_space *mapping,
>  			 unsigned int max_segment);
> -void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
> -			 bool dirty, bool backup);
> +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup);
>  void __shmem_writeback(size_t size, struct address_space *mapping);
>  
>  #ifdef CONFIG_MMU_NOTIFIER
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> index fe69f2c8527d..b320d9dfd6d3 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> @@ -29,16 +29,13 @@ static void check_release_folio_batch(struct folio_batch *fbatch)
>  	cond_resched();
>  }
>  
> -void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
> -			 bool dirty, bool backup)
> +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup)

This still makes the alloc vs. free completely asymmetric.
This is not what we want because it just makes it very easy
to make it mistake in the caller.

I think the correct fix is to simply call the current
shmem_sg_free_table() from the now broken failure path.
mapping_{set,clear}_unevictable() just seems to be some
bit operation so AFAICS the slight ping-pong should be
inconsequential.

>  {
>  	struct sgt_iter sgt_iter;
>  	struct folio_batch fbatch;
>  	struct folio *last = NULL;
>  	struct page *page;
>  
> -	mapping_clear_unevictable(mapping);
> -
>  	folio_batch_init(&fbatch);
>  	for_each_sgt_page(page, sgt_iter, st) {
>  		struct folio *folio = page_folio(page);
> @@ -180,10 +177,10 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
>  	return 0;
>  err_sg:
>  	sg_mark_end(sg);
> +	mapping_clear_unevictable(mapping);
>  	if (sg != st->sgl) {
> -		shmem_sg_free_table(st, mapping, false, false);
> +		shmem_sg_free_table(st, false, false);
>  	} else {
> -		mapping_clear_unevictable(mapping);
>  		sg_free_table(st);
>  	}
>  
> @@ -209,8 +206,6 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
>  	struct address_space *mapping = obj->base.filp->f_mapping;
>  	unsigned int max_segment = i915_sg_segment_size(i915->drm.dev);
>  	struct sg_table *st;
> -	struct sgt_iter sgt_iter;
> -	struct page *page;
>  	int ret;
>  
>  	/*
> @@ -239,9 +234,8 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
>  		 * for PAGE_SIZE chunks instead may be helpful.
>  		 */
>  		if (max_segment > PAGE_SIZE) {
> -			for_each_sgt_page(page, sgt_iter, st)
> -				put_page(page);
> -			sg_free_table(st);
> +			/* Leave the mapping unevictable while we retry */
> +			shmem_sg_free_table(st, false, false);
>  			kfree(st);
>  
>  			max_segment = PAGE_SIZE;
> @@ -265,7 +259,8 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
>  	return 0;
>  
>  err_pages:
> -	shmem_sg_free_table(st, mapping, false, false);
> +	mapping_clear_unevictable(mapping);
> +	shmem_sg_free_table(st, false, false);
>  	/*
>  	 * shmemfs first checks if there is enough memory to allocate the page
>  	 * and reports ENOSPC should there be insufficient, along with the usual
> @@ -402,8 +397,8 @@ void i915_gem_object_put_pages_shmem(struct drm_i915_gem_object *obj, struct sg_
>  	if (i915_gem_object_needs_bit17_swizzle(obj))
>  		i915_gem_object_save_bit_17_swizzle(obj, pages);
>  
> -	shmem_sg_free_table(pages, file_inode(obj->base.filp)->i_mapping,
> -			    obj->mm.dirty, obj->mm.madv == I915_MADV_WILLNEED);
> +	mapping_clear_unevictable(file_inode(obj->base.filp)->i_mapping);
> +	shmem_sg_free_table(pages, obj->mm.dirty, obj->mm.madv == I915_MADV_WILLNEED);
>  	kfree(pages);
>  	obj->mm.dirty = false;
>  }
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> index 10d8673641f7..37f51a04b838 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> @@ -232,7 +232,8 @@ static int i915_ttm_tt_shmem_populate(struct ttm_device *bdev,
>  	return 0;
>  
>  err_free_st:
> -	shmem_sg_free_table(st, filp->f_mapping, false, false);
> +	mapping_clear_unevictable(filp->f_mapping);
> +	shmem_sg_free_table(st, false, false);
>  
>  	return err;
>  }
> @@ -243,8 +244,8 @@ static void i915_ttm_tt_shmem_unpopulate(struct ttm_tt *ttm)
>  	bool backup = ttm->page_flags & TTM_TT_FLAG_SWAPPED;
>  	struct sg_table *st = &i915_tt->cached_rsgt.table;
>  
> -	shmem_sg_free_table(st, file_inode(i915_tt->filp)->i_mapping,
> -			    backup, backup);
> +	mapping_clear_unevictable(file_inode(i915_tt->filp)->i_mapping);
> +	shmem_sg_free_table(st, backup, backup);
>  }
>  
>  static void i915_ttm_tt_release(struct kref *ref)
> -- 
> 2.48.0.rc2.279.g1de40edade-goog

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure
  2025-01-27 18:47 ` Ville Syrjälä
@ 2025-01-27 20:28   ` Brian Geffon
  0 siblings, 0 replies; 9+ messages in thread
From: Brian Geffon @ 2025-01-27 20:28 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: intel-gfx, chris.p.wilson, jani.saarinen, tomasz.mistat,
	vidya.srinivas, jani.nikula, linux-kernel, dri-devel,
	Joonas Lahtinen, stable, Tomasz Figa

On Mon, Jan 27, 2025 at 1:47 PM Ville Syrjälä
<ville.syrjala@linux.intel.com> wrote:
>
> On Thu, Jan 16, 2025 at 10:53:40AM -0500, Brian Geffon wrote:
> > When converting to folios the cleanup path of shmem_get_pages() was
> > missed. When a DMA remap fails and the max segment size is greater than
> > PAGE_SIZE it will attempt to retry the remap with a PAGE_SIZEd segment
> > size. The cleanup code isn't properly using the folio apis and as a
> > result isn't handling compound pages correctly.
> >
> > v1 -> v2:
> >   (Ville) Fixed locations where we were not clearing mapping unevictable.
> >
> > Cc: stable@vger.kernel.org
> > Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
> > Cc: Vidya Srinivas <vidya.srinivas@intel.com>
> > Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13487
> > Link: https://lore.kernel.org/lkml/20250116135636.410164-1-bgeffon@google.com/
> > Fixes: 0b62af28f249 ("i915: convert shmem_sg_free_table() to use a folio_batch")
> > Signed-off-by: Brian Geffon <bgeffon@google.com>
> > Suggested-by: Tomasz Figa <tfiga@google.com>
> > ---
> >  drivers/gpu/drm/i915/gem/i915_gem_object.h |  3 +--
> >  drivers/gpu/drm/i915/gem/i915_gem_shmem.c  | 23 +++++++++-------------
> >  drivers/gpu/drm/i915/gem/i915_gem_ttm.c    |  7 ++++---
> >  3 files changed, 14 insertions(+), 19 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > index 3dc61cbd2e11..0f122a12d4a5 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
> > @@ -843,8 +843,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
> >                        size_t size, struct intel_memory_region *mr,
> >                        struct address_space *mapping,
> >                        unsigned int max_segment);
> > -void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
> > -                      bool dirty, bool backup);
> > +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup);
> >  void __shmem_writeback(size_t size, struct address_space *mapping);
> >
> >  #ifdef CONFIG_MMU_NOTIFIER
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > index fe69f2c8527d..b320d9dfd6d3 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> > @@ -29,16 +29,13 @@ static void check_release_folio_batch(struct folio_batch *fbatch)
> >       cond_resched();
> >  }
> >
> > -void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
> > -                      bool dirty, bool backup)
> > +void shmem_sg_free_table(struct sg_table *st, bool dirty, bool backup)
>
> This still makes the alloc vs. free completely asymmetric.
> This is not what we want because it just makes it very easy
> to make it mistake in the caller.
>
> I think the correct fix is to simply call the current
> shmem_sg_free_table() from the now broken failure path.
> mapping_{set,clear}_unevictable() just seems to be some
> bit operation so AFAICS the slight ping-pong should be
> inconsequential.

Ok, I guess that's true, it'll be set unevictable again in the call to
shmem_sg_alloc_table() after it jumps back to rebuild_st. I'll send a
v3 which should then become a 1 line change.

>
> >  {
> >       struct sgt_iter sgt_iter;
> >       struct folio_batch fbatch;
> >       struct folio *last = NULL;
> >       struct page *page;
> >
> > -     mapping_clear_unevictable(mapping);
> > -
> >       folio_batch_init(&fbatch);
> >       for_each_sgt_page(page, sgt_iter, st) {
> >               struct folio *folio = page_folio(page);
> > @@ -180,10 +177,10 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
> >       return 0;
> >  err_sg:
> >       sg_mark_end(sg);
> > +     mapping_clear_unevictable(mapping);
> >       if (sg != st->sgl) {
> > -             shmem_sg_free_table(st, mapping, false, false);
> > +             shmem_sg_free_table(st, false, false);
> >       } else {
> > -             mapping_clear_unevictable(mapping);
> >               sg_free_table(st);
> >       }
> >
> > @@ -209,8 +206,6 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
> >       struct address_space *mapping = obj->base.filp->f_mapping;
> >       unsigned int max_segment = i915_sg_segment_size(i915->drm.dev);
> >       struct sg_table *st;
> > -     struct sgt_iter sgt_iter;
> > -     struct page *page;
> >       int ret;
> >
> >       /*
> > @@ -239,9 +234,8 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
> >                * for PAGE_SIZE chunks instead may be helpful.
> >                */
> >               if (max_segment > PAGE_SIZE) {
> > -                     for_each_sgt_page(page, sgt_iter, st)
> > -                             put_page(page);
> > -                     sg_free_table(st);
> > +                     /* Leave the mapping unevictable while we retry */
> > +                     shmem_sg_free_table(st, false, false);
> >                       kfree(st);
> >
> >                       max_segment = PAGE_SIZE;
> > @@ -265,7 +259,8 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
> >       return 0;
> >
> >  err_pages:
> > -     shmem_sg_free_table(st, mapping, false, false);
> > +     mapping_clear_unevictable(mapping);
> > +     shmem_sg_free_table(st, false, false);
> >       /*
> >        * shmemfs first checks if there is enough memory to allocate the page
> >        * and reports ENOSPC should there be insufficient, along with the usual
> > @@ -402,8 +397,8 @@ void i915_gem_object_put_pages_shmem(struct drm_i915_gem_object *obj, struct sg_
> >       if (i915_gem_object_needs_bit17_swizzle(obj))
> >               i915_gem_object_save_bit_17_swizzle(obj, pages);
> >
> > -     shmem_sg_free_table(pages, file_inode(obj->base.filp)->i_mapping,
> > -                         obj->mm.dirty, obj->mm.madv == I915_MADV_WILLNEED);
> > +     mapping_clear_unevictable(file_inode(obj->base.filp)->i_mapping);
> > +     shmem_sg_free_table(pages, obj->mm.dirty, obj->mm.madv == I915_MADV_WILLNEED);
> >       kfree(pages);
> >       obj->mm.dirty = false;
> >  }
> > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > index 10d8673641f7..37f51a04b838 100644
> > --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> > @@ -232,7 +232,8 @@ static int i915_ttm_tt_shmem_populate(struct ttm_device *bdev,
> >       return 0;
> >
> >  err_free_st:
> > -     shmem_sg_free_table(st, filp->f_mapping, false, false);
> > +     mapping_clear_unevictable(filp->f_mapping);
> > +     shmem_sg_free_table(st, false, false);
> >
> >       return err;
> >  }
> > @@ -243,8 +244,8 @@ static void i915_ttm_tt_shmem_unpopulate(struct ttm_tt *ttm)
> >       bool backup = ttm->page_flags & TTM_TT_FLAG_SWAPPED;
> >       struct sg_table *st = &i915_tt->cached_rsgt.table;
> >
> > -     shmem_sg_free_table(st, file_inode(i915_tt->filp)->i_mapping,
> > -                         backup, backup);
> > +     mapping_clear_unevictable(file_inode(i915_tt->filp)->i_mapping);
> > +     shmem_sg_free_table(st, backup, backup);
> >  }
> >
> >  static void i915_ttm_tt_release(struct kref *ref)
> > --
> > 2.48.0.rc2.279.g1de40edade-goog
>
> --
> Ville Syrjälä
> Intel

Thanks,
Brian

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-01-27 20:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-16 15:53 [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Brian Geffon
2025-01-16 22:45 ` ✗ Fi.CI.SPARSE: warning for drm/i915: Fix page cleanup on DMA remap failure (rev3) Patchwork
2025-01-16 22:58 ` ✓ i915.CI.BAT: success " Patchwork
2025-01-17 20:36 ` ✗ i915.CI.Full: failure " Patchwork
2025-01-23  3:06 ` [PATCH v2] drm/i915: Fix page cleanup on DMA remap failure Srinivas, Vidya
2025-01-24 15:19   ` Brian Geffon
2025-01-27  4:02     ` Srinivas, Vidya
2025-01-27 18:47 ` Ville Syrjälä
2025-01-27 20:28   ` Brian Geffon

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.