Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
@ 2026-09-02  8:25 Krzysztof Karas
  2026-09-02  8:25 ` [PATCH v6 1/7] drm/i915/shmem: Validate max_segment Krzysztof Karas
                   ` (8 more replies)
  0 siblings, 9 replies; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

It was observed that allocating large objects via i915 driver
(igt-gpu-tools/tests/gem_exec_big/single) the folios and their
pages were not handled properly leading to buffer corruptions
during relocations.
Furthermore, using iommu driver in this context would leave
residual mappings in memory that could not be released, hogging
available RAM even after the process ended.

v6:
 * split max_segment validation into its own patch;
 * added Fixes: tags and Cc: stable to the fixup patches;
 * repaired bits pointed out by checkpatch;
 * ran local regression checks and automated review process via
   Claude Opus and added Assisted-by: tags.

Krzysztof Karas (7):
  drm/i915/shmem: Validate max_segment
  drm/i915/gem: Count mapped pages in a folio
  drm/i915/gem: Free sg table on failure to acquire second folio
  iommu/dma: Catch scatterlist length overflows
  drm/i915/gem: Pull out size validation into a separate function
  drm/i915/gem: Read and shrink memory in a separate function
  drm/i915/gem: Remove iterator and use while loop

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 172 ++++++++++++++--------
 drivers/iommu/dma-iommu.c                 |  17 ++-
 2 files changed, 124 insertions(+), 65 deletions(-)

-- 
2.34.1


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

* [PATCH v6 1/7] drm/i915/shmem: Validate max_segment
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
@ 2026-09-02  8:25 ` Krzysztof Karas
  2026-09-10 21:55   ` Andi Shyti
  2026-09-02  8:25 ` [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

There is nothing preventing user of shmem_sg_alloc_table() from
passing max_segment smaller than PAGE_SIZE, which would result
in nr_pages = max_segment / PAGE_SIZE == 0 and cause a
non-terminating loop.

Suggested-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Assisted-by: GitHub Copilot:claude-opus-5
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v6:
 * split max_segment validation out into a new patch;
 * ran final checks with Claude Opus and added a tag.

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index bf9e7480f0f5..4b5ce9a2f74f 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -85,6 +85,9 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	if (size > resource_size(&mr->region))
 		return -ENOMEM;
 
+	if (max_segment < PAGE_SIZE)
+		return -EINVAL;
+
 	if (sg_alloc_table(st, page_count, GFP_KERNEL | __GFP_NOWARN))
 		return -ENOMEM;
 
-- 
2.34.1


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

* [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
  2026-09-02  8:25 ` [PATCH v6 1/7] drm/i915/shmem: Validate max_segment Krzysztof Karas
@ 2026-09-02  8:25 ` Krzysztof Karas
  2026-09-10 22:08   ` Andi Shyti
  2026-09-17  9:59   ` Janusz Krzysztofik
  2026-09-02  8:25 ` [PATCH v6 3/7] drm/i915/gem: Free sg table on failure to acquire second folio Krzysztof Karas
                   ` (6 subsequent siblings)
  8 siblings, 2 replies; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

Before addition of commit 029ae067431a
("drm/i915: Fix potential overflow of shmem scatterlist length")
and after folios were introduced complete folios were always
allocated, possibly overloading the scatterlist capacity which
was never truly limited to PAGE_SIZE when requested via
max_segment. The above commit addressed scatterlist overloading,
but unintentionally disabled PAGE_SIZE as a valid max_segment
value and failed to take care of remaining pages from folios
above max_segment boundary.
This created a state, where multitude of scatterlists were used
for the same folio, but never counting enough of its pages to
jump to the next folio.

Furthermore, current do-while loop goes over the same folio
multiple times, increasing the refcount each time, and breaks
get/put symmetry: many shmem_read_folio_gfp() gets and only one
put in i915_gem_object_put_pages_shmem() per folio.

Track how many pages have already been counted in a folio and
use that number as an offset on consecutive allocations from the
same folio to ensure it is fully covered before reading next
folio.

Fixes: 029ae067431a ("drm/i915: Fix potential overflow of shmem scatterlist length")
Cc: stable@vger.kernel.org
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/15816
Assisted-by: GitHub Copilot:claude-opus-5
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v6:
 * moved max_segment check into its own patch;
 * moved comment about gcc warnings above block of
   initializations;
 * removed
   WARN_ON_ONCE(folio_page_index >= folio_nr_pages(folio))
   block (Andi);
 * restored original condition (folio_pfn(folio) != next_pfn)
   (Janusz);
 * dropped folio_page_index and folio initializations;
 * expanded the commit message to contain information about
   previously unexplained folio reference leaks;
 * ran final checks with Claude Opus and added a tag.

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 112 +++++++++++++---------
 1 file changed, 67 insertions(+), 45 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 4b5ce9a2f74f..8e5f2a7d5f6b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -70,7 +70,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	unsigned int page_count; /* restricted by sg_alloc_table */
 	unsigned long i;
 	struct scatterlist *sg;
-	unsigned long next_pfn = 0;	/* suppress gcc warning */
+	/* suppress gcc warnings */
+	unsigned long next_pfn = 0;
+	unsigned long folio_start = 0;
+	unsigned long folio_end = 0;
+	struct folio *folio;
 	gfp_t noreclaim;
 	int ret;
 
@@ -104,7 +108,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	sg = st->sgl;
 	st->nents = 0;
 	for (i = 0; i < page_count; i++) {
-		struct folio *folio;
+		unsigned long folio_page_index;
 		unsigned long nr_pages;
 		const unsigned int shrink[] = {
 			I915_SHRINK_BOUND | I915_SHRINK_UNBOUND,
@@ -112,51 +116,58 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 		}, *s = shrink;
 		gfp_t gfp = noreclaim;
 
-		do {
-			cond_resched();
-			folio = shmem_read_folio_gfp(mapping, i, gfp);
-			if (!IS_ERR(folio))
-				break;
+		/* Grab the next folio if we exhausted the current one. */
+		if (!i || i > folio_end) {
+			do {
+				cond_resched();
+				folio = shmem_read_folio_gfp(mapping, i, gfp);
+				if (!IS_ERR(folio))
+					break;
 
-			if (!*s) {
-				ret = PTR_ERR(folio);
-				goto err_sg;
-			}
+				if (!*s) {
+					ret = PTR_ERR(folio);
+					goto err_sg;
+				}
 
-			i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++);
-
-			/*
-			 * We've tried hard to allocate the memory by reaping
-			 * our own buffer, now let the real VM do its job and
-			 * go down in flames if truly OOM.
-			 *
-			 * However, since graphics tend to be disposable,
-			 * defer the oom here by reporting the ENOMEM back
-			 * to userspace.
-			 */
-			if (!*s) {
-				/* reclaim and warn, but no oom */
-				gfp = mapping_gfp_mask(mapping);
+				i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++);
 
 				/*
-				 * Our bo are always dirty and so we require
-				 * kswapd to reclaim our pages (direct reclaim
-				 * does not effectively begin pageout of our
-				 * buffers on its own). However, direct reclaim
-				 * only waits for kswapd when under allocation
-				 * congestion. So as a result __GFP_RECLAIM is
-				 * unreliable and fails to actually reclaim our
-				 * dirty pages -- unless you try over and over
-				 * again with !__GFP_NORETRY. However, we still
-				 * want to fail this allocation rather than
-				 * trigger the out-of-memory killer and for
-				 * this we want __GFP_RETRY_MAYFAIL.
-				 */
-				gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
-			}
-		} while (1);
-
-		nr_pages = min3(folio_nr_pages(folio),
+				* We've tried hard to allocate the memory by reaping
+				* our own buffer, now let the real VM do its job and
+				* go down in flames if truly OOM.
+				*
+				* However, since graphics tend to be disposable,
+				* defer the oom here by reporting the ENOMEM back
+				* to userspace.
+				*/
+				if (!*s) {
+					/* reclaim and warn, but no oom */
+					gfp = mapping_gfp_mask(mapping);
+
+					/*
+					 * Our bo are always dirty and so we require
+					 * kswapd to reclaim our pages (direct reclaim
+					 * does not effectively begin pageout of our
+					 * buffers on its own). However, direct reclaim
+					 * only waits for kswapd when under allocation
+					 * congestion. So as a result __GFP_RECLAIM is
+					 * unreliable and fails to actually reclaim our
+					 * dirty pages -- unless you try over and over
+					 * again with !__GFP_NORETRY. However, we still
+					 * want to fail this allocation rather than
+					 * trigger the out-of-memory killer and for
+					 * this we want __GFP_RETRY_MAYFAIL.
+					 */
+					gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
+				}
+			} while (1);
+
+			folio_start = folio_pgoff(folio);
+			folio_end = folio_start + folio_nr_pages(folio) - 1;
+		}
+
+		folio_page_index = i - folio_start;
+		nr_pages = min3(folio_nr_pages(folio) - folio_page_index,
 				page_count - i, max_segment / PAGE_SIZE);
 
 		if (!i ||
@@ -166,13 +177,24 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 				sg = sg_next(sg);
 
 			st->nents++;
-			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
+			sg_set_page(sg, folio_page(folio, folio_page_index),
+				    nr_pages * PAGE_SIZE, 0);
 		} else {
+			/*
+			 * If our prediction about folio placement is true and
+			 * scatterlist still has space left for more pages,
+			 * then we land here.
+			 */
 			nr_pages = min(nr_pages, (max_segment - sg->length) / PAGE_SIZE);
 
 			sg->length += nr_pages * PAGE_SIZE;
 		}
-		next_pfn = folio_pfn(folio) + nr_pages;
+
+		/*
+		 * We assume folios are placed one after the other in memory
+		 * and predict where the next folio begins.
+		 */
+		next_pfn = folio_pfn(folio) + folio_page_index + nr_pages;
 		i += nr_pages - 1;
 
 		/* Check that the i965g/gm workaround works. */
-- 
2.34.1


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

* [PATCH v6 3/7] drm/i915/gem: Free sg table on failure to acquire second folio
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
  2026-09-02  8:25 ` [PATCH v6 1/7] drm/i915/shmem: Validate max_segment Krzysztof Karas
  2026-09-02  8:25 ` [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas
@ 2026-09-02  8:25 ` Krzysztof Karas
  2026-09-10 22:11   ` Andi Shyti
  2026-09-02  8:25 ` [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows Krzysztof Karas
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

We should release folios if the first entry was populated, but
loop failed before sg advanced (st->nents == 1 && sg == st->sgl).

Fixes: 957ad9a02be6 ("drm/i915/gem: Avoid iterating an empty list")
Cc: stable@vger.kernel.org
Assisted-by: GitHub Copilot:claude-opus-5
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v6:
 * added missing subject version prefix;
 * added fixes tag and CC to stable kernel;
 * extended commit message to contain exact failing condition;
 * ran final checks with Claude Opus and added a tag.

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 8e5f2a7d5f6b..a84c804726d8 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -209,7 +209,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	return 0;
 err_sg:
 	sg_mark_end(sg);
-	if (sg != st->sgl) {
+	if (st->nents) {
 		shmem_sg_free_table(st, mapping, false, false);
 	} else {
 		mapping_clear_unevictable(mapping);
-- 
2.34.1


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

* [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (2 preceding siblings ...)
  2026-09-02  8:25 ` [PATCH v6 3/7] drm/i915/gem: Free sg table on failure to acquire second folio Krzysztof Karas
@ 2026-09-02  8:25 ` Krzysztof Karas
  2026-09-10 22:21   ` Andi Shyti
  2026-09-10 22:25   ` Andi Shyti
  2026-09-02  8:25 ` [PATCH v6 5/7] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas
                   ` (4 subsequent siblings)
  8 siblings, 2 replies; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

It is possible, when a very large mapping uses only one
scatterlist, that padding overflows scatterlist's length field.
This results in:
 1) silently wrapping the value
 2) smaller than desired mappings produced by iommu_map_sg
 3) leaving mapped bytes in memory (no iommu_unmap)

Address this issue by adding overflow detection for scatterlist
length field.

Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging")
Cc: stable@vger.kernel.org
Assisted-by: GitHub Copilot:claude-opus-5
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v6:
 * dropped overflow checks on s_length + s_iova_off and removed
   s_length_tmp variable along with
   s_length_tmp != 0 && s_length == 0 test(Robin);
 * dropped useless limits.h include;
 * addedd Fixes tag and CC to linux stable;
 * ran final checks with Claude Opus and added a tag.

 drivers/iommu/dma-iommu.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 58c624513cd4..05cfd51016e6 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1477,6 +1477,10 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
 		sg_dma_len(s) = s_length;
 		s->offset -= s_iova_off;
 		s_length = iova_align(iovad, s_length + s_iova_off);
+		if (overflows_type(s_length, s->length)) {
+			ret = -EOVERFLOW;
+			goto out_restore_sg;
+		}
 		s->length = s_length;
 
 		/*
@@ -1493,7 +1497,18 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
 		 *   time through here (i.e. before it has a meaningful value).
 		 */
 		if (pad_len && pad_len < s_length - 1) {
-			prev->length += pad_len;
+			unsigned int new_prev_len;
+			/*
+			 * For large mappings spanning multiple GBs we
+			 * may not be able to fit all needed padding into
+			 * sg->length.
+			 */
+			if (check_add_overflow(prev->length, pad_len, &new_prev_len)) {
+				ret = -EOVERFLOW;
+				goto out_restore_sg;
+			}
+
+			prev->length = new_prev_len;
 			iova_len += pad_len;
 		}
 
-- 
2.34.1


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

* [PATCH v6 5/7] drm/i915/gem: Pull out size validation into a separate function
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (3 preceding siblings ...)
  2026-09-02  8:25 ` [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows Krzysztof Karas
@ 2026-09-02  8:25 ` Krzysztof Karas
  2026-09-10 22:27   ` Andi Shyti
  2026-09-02  8:25 ` [PATCH v6 6/7] drm/i915/gem: Read and shrink memory in " Krzysztof Karas
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

shmem_sg_alloc_table is a very large and hard to read function,
so reduce the number of operations it is responsible for by
placing "size" validation and page_count assignment in a new
helper.

Assisted-by: GitHub Copilot:claude-opus-5
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v6:
 * renamed helper from set_page_count_from_size() to
   validate_set_page_count();
 * fixed line alignment to satisfy checkpatch complaints;
 * ran final checks with Claude Opus and added a tag.

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 30 +++++++++++++++--------
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index a84c804726d8..3915633e52fd 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -62,6 +62,23 @@ void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
 	sg_free_table(st);
 }
 
+static int validate_set_page_count(size_t size, unsigned int *page_count,
+				   struct intel_memory_region *mr)
+{
+	if (overflows_type(size / PAGE_SIZE, *page_count))
+		return -E2BIG;
+
+	/*
+	 * If there's no chance of allocating enough pages for the whole
+	 * object, bail early.
+	 */
+	if (size > resource_size(&mr->region))
+		return -ENOMEM;
+
+	*page_count = size / PAGE_SIZE;
+	return 0;
+}
+
 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,
@@ -78,16 +95,9 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	gfp_t noreclaim;
 	int ret;
 
-	if (overflows_type(size / PAGE_SIZE, page_count))
-		return -E2BIG;
-
-	page_count = size / PAGE_SIZE;
-	/*
-	 * If there's no chance of allocating enough pages for the whole
-	 * object, bail early.
-	 */
-	if (size > resource_size(&mr->region))
-		return -ENOMEM;
+	ret = validate_set_page_count(size, &page_count, mr);
+	if (ret < 0)
+		return ret;
 
 	if (max_segment < PAGE_SIZE)
 		return -EINVAL;
-- 
2.34.1


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

* [PATCH v6 6/7] drm/i915/gem: Read and shrink memory in a separate function
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (4 preceding siblings ...)
  2026-09-02  8:25 ` [PATCH v6 5/7] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas
@ 2026-09-02  8:25 ` Krzysztof Karas
  2026-09-10 22:30   ` Andi Shyti
  2026-09-02  8:25 ` [PATCH v6 7/7] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

Continue unloading shmem_sg_alloc_table by placing reading
folios and shrink call into a new helper.
Make the code a bit more reader-friendly by removing moving
over structure elements and replacing it with a sequence of
instructions.

Assisted-by: GitHub Copilot:claude-opus-5
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v6:
 * switched to passing gfp by pointer, because in v5 the mask
   was local to the helper, so
   GEM_BUG_ON(gfp & __GFP_DMA32 && ...) checked a mask that was
   never used for the allocation;
 * dropped useless folio = NULL initialiser;
 * ran final checks with Claude Opus and added a tag.

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 103 ++++++++++++----------
 1 file changed, 56 insertions(+), 47 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 3915633e52fd..0fa34a4ae466 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -79,6 +79,56 @@ static int validate_set_page_count(size_t size, unsigned int *page_count,
 	return 0;
 }
 
+static struct folio *shmem_shrink_get_folio(struct address_space *mapping,
+					    unsigned long folio_index,
+					    gfp_t *gfp, unsigned int page_count,
+					    struct drm_i915_private *i915)
+{
+	struct folio *folio;
+
+	cond_resched();
+	folio = shmem_read_folio_gfp(mapping, folio_index, *gfp);
+	if (IS_ERR(folio)) {
+		i915_gem_shrink(NULL, i915, 2 * page_count, NULL,
+				I915_SHRINK_BOUND | I915_SHRINK_UNBOUND);
+
+		/*
+		 * We've tried hard to allocate the memory by reaping
+		 * our own buffer, now let the real VM do its job and
+		 * go down in flames if truly OOM.
+		 *
+		 * However, since graphics tend to be disposable,
+		 * defer the oom here by reporting the ENOMEM back
+		 * to userspace.
+		 *
+		 * Reclaim and warn, but no oom.
+		 */
+		*gfp = mapping_gfp_mask(mapping);
+
+		/*
+		 * Our bo are always dirty and so we require
+		 * kswapd to reclaim our pages (direct reclaim
+		 * does not effectively begin pageout of our
+		 * buffers on its own). However, direct reclaim
+		 * only waits for kswapd when under allocation
+		 * congestion. So as a result __GFP_RECLAIM is
+		 * unreliable and fails to actually reclaim our
+		 * dirty pages -- unless you try over and over
+		 * again with !__GFP_NORETRY. However, we still
+		 * want to fail this allocation rather than
+		 * trigger the out-of-memory killer and for
+		 * this we want __GFP_RETRY_MAYFAIL.
+		 */
+		*gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
+
+		/* Retry once after shrinking and gfp modification. */
+		cond_resched();
+		folio = shmem_read_folio_gfp(mapping, folio_index, *gfp);
+	}
+
+	return folio;
+}
+
 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,
@@ -120,57 +170,16 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	for (i = 0; i < page_count; i++) {
 		unsigned long folio_page_index;
 		unsigned long nr_pages;
-		const unsigned int shrink[] = {
-			I915_SHRINK_BOUND | I915_SHRINK_UNBOUND,
-			0,
-		}, *s = shrink;
 		gfp_t gfp = noreclaim;
 
 		/* Grab the next folio if we exhausted the current one. */
 		if (!i || i > folio_end) {
-			do {
-				cond_resched();
-				folio = shmem_read_folio_gfp(mapping, i, gfp);
-				if (!IS_ERR(folio))
-					break;
-
-				if (!*s) {
-					ret = PTR_ERR(folio);
-					goto err_sg;
-				}
-
-				i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++);
-
-				/*
-				* We've tried hard to allocate the memory by reaping
-				* our own buffer, now let the real VM do its job and
-				* go down in flames if truly OOM.
-				*
-				* However, since graphics tend to be disposable,
-				* defer the oom here by reporting the ENOMEM back
-				* to userspace.
-				*/
-				if (!*s) {
-					/* reclaim and warn, but no oom */
-					gfp = mapping_gfp_mask(mapping);
-
-					/*
-					 * Our bo are always dirty and so we require
-					 * kswapd to reclaim our pages (direct reclaim
-					 * does not effectively begin pageout of our
-					 * buffers on its own). However, direct reclaim
-					 * only waits for kswapd when under allocation
-					 * congestion. So as a result __GFP_RECLAIM is
-					 * unreliable and fails to actually reclaim our
-					 * dirty pages -- unless you try over and over
-					 * again with !__GFP_NORETRY. However, we still
-					 * want to fail this allocation rather than
-					 * trigger the out-of-memory killer and for
-					 * this we want __GFP_RETRY_MAYFAIL.
-					 */
-					gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
-				}
-			} while (1);
+			folio = shmem_shrink_get_folio(mapping, i, &gfp,
+						       page_count, i915);
+			if (IS_ERR(folio)) {
+				ret = PTR_ERR(folio);
+				goto err_sg;
+			}
 
 			folio_start = folio_pgoff(folio);
 			folio_end = folio_start + folio_nr_pages(folio) - 1;
-- 
2.34.1


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

* [PATCH v6 7/7] drm/i915/gem: Remove iterator and use while loop
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (5 preceding siblings ...)
  2026-09-02  8:25 ` [PATCH v6 6/7] drm/i915/gem: Read and shrink memory in " Krzysztof Karas
@ 2026-09-02  8:25 ` Krzysztof Karas
  2026-09-10 22:33   ` Andi Shyti
  2026-09-02  9:29 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Patchwork
  2026-09-02 23:28 ` ✓ i915.CI.Full: " Patchwork
  8 siblings, 1 reply; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-02  8:25 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas

Change the main "for" loop into "while" to get rid of obscure
iterator "i" and use a more descriptive name to indicate how
many pages were already covered. Detect first loop with
st->nents.

Assisted-by: GitHub Copilot:claude-opus-5
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v6:
 * restored shrinking to 2 * page_count, as v5 silently narrowed
   it to page_count - pages_done;
 * ran final checks with Claude Opus and added a tag.

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 0fa34a4ae466..88ad23928d9a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -135,7 +135,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			 unsigned int max_segment)
 {
 	unsigned int page_count; /* restricted by sg_alloc_table */
-	unsigned long i;
+	unsigned long pages_done = 0;
 	struct scatterlist *sg;
 	/* suppress gcc warnings */
 	unsigned long next_pfn = 0;
@@ -167,15 +167,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 
 	sg = st->sgl;
 	st->nents = 0;
-	for (i = 0; i < page_count; i++) {
+	while (pages_done < page_count) {
 		unsigned long folio_page_index;
 		unsigned long nr_pages;
 		gfp_t gfp = noreclaim;
 
 		/* Grab the next folio if we exhausted the current one. */
-		if (!i || i > folio_end) {
-			folio = shmem_shrink_get_folio(mapping, i, &gfp,
-						       page_count, i915);
+		if (!pages_done || pages_done > folio_end) {
+			folio = shmem_shrink_get_folio(mapping, pages_done,
+						       &gfp, page_count, i915);
 			if (IS_ERR(folio)) {
 				ret = PTR_ERR(folio);
 				goto err_sg;
@@ -185,14 +185,14 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			folio_end = folio_start + folio_nr_pages(folio) - 1;
 		}
 
-		folio_page_index = i - folio_start;
+		folio_page_index = pages_done - folio_start;
 		nr_pages = min3(folio_nr_pages(folio) - folio_page_index,
-				page_count - i, max_segment / PAGE_SIZE);
+				page_count - pages_done, max_segment / PAGE_SIZE);
 
-		if (!i ||
+		if (!st->nents ||
 		    sg->length >= max_segment ||
 		    folio_pfn(folio) != next_pfn) {
-			if (i)
+			if (st->nents)
 				sg = sg_next(sg);
 
 			st->nents++;
@@ -214,7 +214,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 		 * and predict where the next folio begins.
 		 */
 		next_pfn = folio_pfn(folio) + folio_page_index + nr_pages;
-		i += nr_pages - 1;
+		pages_done += nr_pages;
 
 		/* Check that the i965g/gm workaround works. */
 		GEM_BUG_ON(gfp & __GFP_DMA32 && next_pfn >= 0x00100000UL);
-- 
2.34.1


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

* ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (6 preceding siblings ...)
  2026-09-02  8:25 ` [PATCH v6 7/7] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas
@ 2026-09-02  9:29 ` Patchwork
  2026-09-02 23:28 ` ✓ i915.CI.Full: " Patchwork
  8 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2026-09-02  9:29 UTC (permalink / raw)
  To: Krzysztof Karas; +Cc: intel-gfx

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

== Series Details ==

Series: drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
URL   : https://patchwork.freedesktop.org/series/173197/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_19069 -> Patchwork_173197v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 36)
------------------------------

  Missing    (1): bat-dg2-13 

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

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

### IGT changes ###

#### Possible fixes ####

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - fi-kbl-7567u:       [DMESG-WARN][1] ([i915#15673]) -> [PASS][2] +51 other tests pass
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html

  
  [i915#15673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15673


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

  * Linux: CI_DRM_19069 -> Patchwork_173197v1

  CI-20190529: 20190529
  CI_DRM_19069: c53467440a5196138d2d6610e269a43b6b47bf6b @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_9079: 9079
  Patchwork_173197v1: c53467440a5196138d2d6610e269a43b6b47bf6b @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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

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

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

* ✓ i915.CI.Full: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
  2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (7 preceding siblings ...)
  2026-09-02  9:29 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Patchwork
@ 2026-09-02 23:28 ` Patchwork
  8 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2026-09-02 23:28 UTC (permalink / raw)
  To: Krzysztof Karas; +Cc: intel-gfx

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

== Series Details ==

Series: drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
URL   : https://patchwork.freedesktop.org/series/173197/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_19069_full -> Patchwork_173197v1_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@blit-reloc-purge-cache:
    - shard-rkl:          NOTRUN -> [SKIP][1] ([i915#8411]) +1 other test skip
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@api_intel_bb@blit-reloc-purge-cache.html

  * igt@device_reset@cold-reset-bound:
    - shard-rkl:          NOTRUN -> [SKIP][2] ([i915#11078])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@device_reset@cold-reset-bound.html

  * igt@fbdev@pan:
    - shard-snb:          NOTRUN -> [FAIL][3] ([i915#15792])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-snb6/igt@fbdev@pan.html

  * igt@gem_ccs@block-multicopy-inplace:
    - shard-tglu:         NOTRUN -> [SKIP][4] ([i915#3555] / [i915#9323])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@gem_ccs@block-multicopy-inplace.html

  * igt@gem_ccs@ctrl-surf-copy-new-ctx:
    - shard-rkl:          NOTRUN -> [SKIP][5] ([i915#9323])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@gem_ccs@ctrl-surf-copy-new-ctx.html

  * igt@gem_ccs@suspend-resume@tile64-compressed-compfmt0-smem-lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][6] ([i915#13356] / [i915#16348])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg2-5/igt@gem_ccs@suspend-resume@tile64-compressed-compfmt0-smem-lmem0.html

  * igt@gem_close_race@multigpu-basic-process:
    - shard-rkl:          NOTRUN -> [SKIP][7] ([i915#7697])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@gem_close_race@multigpu-basic-process.html

  * igt@gem_ctx_persistence@legacy-engines-mixed:
    - shard-snb:          NOTRUN -> [SKIP][8] ([i915#1099]) +7 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-snb6/igt@gem_ctx_persistence@legacy-engines-mixed.html

  * igt@gem_eio@suspend:
    - shard-rkl:          [PASS][9] -> [ABORT][10] ([i915#15131])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@gem_eio@suspend.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@gem_eio@suspend.html

  * igt@gem_eio@unwedge-stress:
    - shard-snb:          NOTRUN -> [FAIL][11] ([i915#8898]) +1 other test fail
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-snb7/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-keep-in-fence:
    - shard-rkl:          NOTRUN -> [SKIP][12] ([i915#4525])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@gem_exec_balancer@parallel-keep-in-fence.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-tglu:         NOTRUN -> [SKIP][13] ([i915#4525])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_exec_reloc@basic-write-read:
    - shard-rkl:          NOTRUN -> [SKIP][14] ([i915#3281]) +5 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@gem_exec_reloc@basic-write-read.html

  * igt@gem_exec_suspend@basic-s0:
    - shard-dg2:          [PASS][15] -> [INCOMPLETE][16] ([i915#13356]) +1 other test incomplete
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg2-3/igt@gem_exec_suspend@basic-s0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg2-3/igt@gem_exec_suspend@basic-s0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglu:         NOTRUN -> [SKIP][17] ([i915#2190])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-glk:          NOTRUN -> [SKIP][18] ([i915#4613]) +1 other test skip
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk1/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-rkl:          NOTRUN -> [SKIP][19] ([i915#4613]) +1 other test skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_lmem_swapping@random-engines:
    - shard-tglu:         NOTRUN -> [SKIP][20] ([i915#4613]) +1 other test skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@verify:
    - shard-tglu-1:       NOTRUN -> [SKIP][21] ([i915#4613])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@gem_lmem_swapping@verify.html

  * igt@gem_partial_pwrite_pread@reads:
    - shard-rkl:          NOTRUN -> [SKIP][22] ([i915#3282]) +4 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@gem_partial_pwrite_pread@reads.html

  * igt@gem_pread@exhaustion:
    - shard-snb:          NOTRUN -> [WARN][23] ([i915#2658])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-snb7/igt@gem_pread@exhaustion.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-glk11:        NOTRUN -> [WARN][24] ([i915#14702] / [i915#2658])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk11/igt@gem_pwrite@basic-exhaustion.html

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

  * igt@gem_softpin@noreloc-s3:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][26] ([i915#13809] / [i915#16193])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk10/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-rkl:          NOTRUN -> [SKIP][27] ([i915#3297]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_userptr_blits@readonly-pwrite-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][28] ([i915#3297])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@gem_userptr_blits@readonly-pwrite-unsync.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-rkl:          [PASS][29] -> [INCOMPLETE][30] ([i915#13356])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@gem_workarounds@suspend-resume-fd.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen9_exec_parse@basic-rejected-ctx-param:
    - shard-snb:          NOTRUN -> [SKIP][31] +874 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-snb6/igt@gen9_exec_parse@basic-rejected-ctx-param.html

  * igt@gen9_exec_parse@bb-chained:
    - shard-tglu:         NOTRUN -> [SKIP][32] ([i915#2527] / [i915#2856])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@gen9_exec_parse@bb-chained.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-rkl:          NOTRUN -> [SKIP][33] ([i915#2527]) +4 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@gen9_exec_parse@shadow-peek.html

  * igt@i915_pm_freq_api@freq-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][34] ([i915#8399])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@i915_pm_freq_api@freq-suspend.html

  * igt@i915_query@hwconfig_table:
    - shard-rkl:          NOTRUN -> [SKIP][35] ([i915#6245])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@i915_query@hwconfig_table.html

  * igt@i915_query@query-topology-known-pci-ids:
    - shard-tglu-1:       NOTRUN -> [SKIP][36] ([i915#16109])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@i915_query@query-topology-known-pci-ids.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-glk:          NOTRUN -> [INCOMPLETE][37] ([i915#16182] / [i915#4817])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk8/igt@i915_suspend@basic-s3-without-i915.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-rkl:          [PASS][38] -> [INCOMPLETE][39] ([i915#4817])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@i915_suspend@fence-restore-untiled.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@i915_suspend@fence-restore-untiled.html
    - shard-glk:          [PASS][40] -> [INCOMPLETE][41] ([i915#16182] / [i915#4817])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-glk5/igt@i915_suspend@fence-restore-untiled.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk1/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_async_flips@async-flip-suspend-resume:
    - shard-rkl:          [PASS][42] -> [INCOMPLETE][43] ([i915#12761])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-8/igt@kms_async_flips@async-flip-suspend-resume.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_async_flips@async-flip-suspend-resume.html

  * igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][44] ([i915#12761])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html

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

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1:
    - shard-tglu:         [PASS][46] -> [ABORT][47] ([i915#16837] / [i915#16844]) +1 other test abort
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-9/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-b-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-180:
    - shard-mtlp:         [PASS][48] -> [FAIL][49] ([i915#15733] / [i915#5138])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-mtlp-4/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-mtlp-2/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][50] ([i915#5286])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-180:
    - shard-tglu:         NOTRUN -> [SKIP][51] ([i915#5286]) +1 other test skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html

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

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][53] ([i915#3828])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-tglu-1:       NOTRUN -> [SKIP][54] ([i915#3828])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

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

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc:
    - shard-tglu-1:       NOTRUN -> [SKIP][56] ([i915#6095]) +9 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][57] ([i915#6095]) +87 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][58] ([i915#6095]) +24 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][59] ([i915#10307] / [i915#6095]) +75 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg2-4/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][60] ([i915#10307] / [i915#10434] / [i915#6095]) +3 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][61] ([i915#12805])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
    - shard-glk:          NOTRUN -> [INCOMPLETE][62] ([i915#14694] / [i915#15582]) +1 other test incomplete
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk1/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][63] ([i915#12313])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][64] ([i915#14098] / [i915#6095]) +57 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1:
    - shard-dg1:          NOTRUN -> [SKIP][65] ([i915#6095]) +183 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-15/igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_chamelium_audio@dp-audio-after-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][66] ([i915#11151])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_chamelium_audio@dp-audio-after-suspend.html

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

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

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - shard-rkl:          NOTRUN -> [SKIP][69] ([i915#11151] / [i915#7828]) +11 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_content_protection@content-type-change:
    - shard-tglu-1:       NOTRUN -> [SKIP][70] ([i915#15865]) +1 other test skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_content_protection@content-type-change.html

  * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
    - shard-rkl:          NOTRUN -> [SKIP][71] ([i915#15330])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html

  * igt@kms_content_protection@legacy:
    - shard-rkl:          NOTRUN -> [SKIP][72] ([i915#15865])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@mei-interface:
    - shard-tglu:         NOTRUN -> [SKIP][73] ([i915#15865])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_content_protection@mei-interface.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [FAIL][74] ([i915#13566]) +1 other test fail
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-rkl:          NOTRUN -> [SKIP][75] ([i915#3555]) +4 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x170:
    - shard-tglu-1:       NOTRUN -> [SKIP][76] ([i915#13049])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-32x32:
    - shard-tglu:         NOTRUN -> [SKIP][77] ([i915#3555]) +4 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_cursor_crc@cursor-sliding-32x32.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][78] ([i915#13049])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][79] ([i915#12358] / [i915#14152] / [i915#7882])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk11/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][80] ([i915#12358] / [i915#14152])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk11/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          [PASS][81] -> [INCOMPLETE][82] ([i915#12358] / [i915#14152])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-1/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_edge_walk@128x128-left-edge:
    - shard-tglu:         [PASS][83] -> [DMESG-WARN][84] ([i915#16685]) +3 other tests dmesg-warn
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-10/igt@kms_cursor_edge_walk@128x128-left-edge.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-8/igt@kms_cursor_edge_walk@128x128-left-edge.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          NOTRUN -> [FAIL][85] ([i915#15804])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-rkl:          NOTRUN -> [SKIP][86] ([i915#4103]) +1 other test skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-tglu:         NOTRUN -> [SKIP][87] ([i915#4103])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglu-1:       NOTRUN -> [SKIP][88] ([i915#13691])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_display_modes@extended-mode-basic.html

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

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-tglu:         NOTRUN -> [SKIP][90] ([i915#13748])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dp_linktrain_fallback@dsc-fallback:
    - shard-rkl:          NOTRUN -> [SKIP][91] ([i915#13707])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_dp_linktrain_fallback@dsc-fallback.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-tglu-1:       NOTRUN -> [SKIP][92] ([i915#16361])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_dsc@dsc-with-formats-bigjoiner:
    - shard-rkl:          NOTRUN -> [SKIP][93] ([i915#16361]) +1 other test skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_dsc@dsc-with-formats-bigjoiner.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner:
    - shard-tglu:         NOTRUN -> [SKIP][94] ([i915#16361])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_dsc@dsc-with-output-formats-with-bpc-bigjoiner.html

  * igt@kms_feature_discovery@chamelium:
    - shard-rkl:          NOTRUN -> [SKIP][95] ([i915#16084])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-2x:
    - shard-tglu:         NOTRUN -> [SKIP][96] ([i915#16081])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_feature_discovery@display-2x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-rkl:          NOTRUN -> [SKIP][97] ([i915#16599])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#9934]) +3 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-tglu:         NOTRUN -> [SKIP][99] ([i915#3637] / [i915#9934]) +1 other test skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][100] ([i915#12314] / [i915#12745] / [i915#4839] / [i915#6113])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk5/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@2x-flip-vs-suspend@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][101] ([i915#12314] / [i915#12745])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk5/igt@kms_flip@2x-flip-vs-suspend@ac-hdmi-a1-hdmi-a2.html

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

  * igt@kms_flip@dpms-vs-vblank-race-interruptible:
    - shard-tglu:         [PASS][103] -> [ABORT][104] ([i915#16876])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-4/igt@kms_flip@dpms-vs-vblank-race-interruptible.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-8/igt@kms_flip@dpms-vs-vblank-race-interruptible.html

  * igt@kms_flip@dpms-vs-vblank-race-interruptible@d-hdmi-a1:
    - shard-tglu:         [PASS][105] -> [ABORT][106] ([i915#16876] / [i915#16881])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-4/igt@kms_flip@dpms-vs-vblank-race-interruptible@d-hdmi-a1.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-8/igt@kms_flip@dpms-vs-vblank-race-interruptible@d-hdmi-a1.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank:
    - shard-dg1:          [PASS][107] -> [FAIL][108] ([i915#14600]) +1 other test fail
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-18/igt@kms_flip@flip-vs-absolute-wf_vblank.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-18/igt@kms_flip@flip-vs-absolute-wf_vblank.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][109] ([i915#12745] / [i915#4839])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk9/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
    - shard-glk:          NOTRUN -> [INCOMPLETE][110] ([i915#12745])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk9/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
    - shard-tglu:         NOTRUN -> [SKIP][111] ([i915#15643])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
    - shard-rkl:          NOTRUN -> [SKIP][112] ([i915#15643]) +1 other test skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-p010-4tile-to-p016-4tile:
    - shard-tglu-1:       NOTRUN -> [SKIP][113] ([i915#15643]) +1 other test skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-p010-4tile-to-p016-4tile.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][114] ([i915#1825]) +3 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-tglu:         NOTRUN -> [SKIP][115] ([i915#5439])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff:
    - shard-rkl:          [PASS][116] -> [SKIP][117] ([i915#15989]) +9 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-onoff:
    - shard-tglu-1:       NOTRUN -> [SKIP][118] ([i915#15989]) +4 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-shrfb-pgflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][119] +82 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-plflip-blt:
    - shard-tglu:         NOTRUN -> [SKIP][120] +38 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-rkl:          NOTRUN -> [SKIP][121] ([i915#15102]) +40 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render:
    - shard-glk10:        NOTRUN -> [SKIP][122] +73 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk10/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-draw-render:
    - shard-glk11:        NOTRUN -> [SKIP][123] +97 other tests skip
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk11/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-move:
    - shard-tglu-1:       NOTRUN -> [SKIP][124] +24 other tests skip
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-blt:
    - shard-rkl:          NOTRUN -> [SKIP][125] ([i915#15989]) +21 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-cpu:
    - shard-glk:          [PASS][126] -> [SKIP][127] +2 other tests skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-glk8/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-cpu.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk2/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-render:
    - shard-tglu:         NOTRUN -> [SKIP][128] ([i915#15989]) +6 other tests skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-cpu:
    - shard-tglu-1:       NOTRUN -> [SKIP][129] ([i915#15102]) +11 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw:
    - shard-glk:          NOTRUN -> [SKIP][130] +285 other tests skip
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk8/igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary:
    - shard-tglu:         NOTRUN -> [SKIP][131] ([i915#15102]) +20 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-tglu-1:       NOTRUN -> [SKIP][132] ([i915#3555] / [i915#8228])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][133] ([i915#16644] / [i915#3555] / [i915#8228])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][134] ([i915#3555] / [i915#8228])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][135] ([i915#15458]) +1 other test skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_mst@mst-suspend-read-crc:
    - shard-rkl:          NOTRUN -> [SKIP][136] ([i915#16451])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_mst@mst-suspend-read-crc.html

  * igt@kms_panel_fitting@legacy:
    - shard-tglu-1:       NOTRUN -> [SKIP][137] ([i915#6301])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
    - shard-tglu:         NOTRUN -> [SKIP][138] ([i915#15709])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-7:
    - shard-tglu-1:       NOTRUN -> [SKIP][139] ([i915#16386]) +1 other test skip
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-7.html

  * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier:
    - shard-rkl:          NOTRUN -> [SKIP][140] ([i915#15709]) +3 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier.html

  * igt@kms_plane@planar-pixel-format-settings@nv12-tile4-src-y:
    - shard-tglu-1:       NOTRUN -> [SKIP][141] ([i915#16112])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_plane@planar-pixel-format-settings@nv12-tile4-src-y.html

  * igt@kms_plane@plane-panning-bottom-right-suspend:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][142] ([i915#13026]) +1 other test incomplete
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk10/igt@kms_plane@plane-panning-bottom-right-suspend.html

  * igt@kms_plane_alpha_blend@alpha-basic:
    - shard-glk11:        NOTRUN -> [FAIL][143] ([i915#12178])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk11/igt@kms_plane_alpha_blend@alpha-basic.html

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1:
    - shard-glk11:        NOTRUN -> [FAIL][144] ([i915#7862]) +1 other test fail
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk11/igt@kms_plane_alpha_blend@alpha-basic@pipe-a-hdmi-a-1.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-tglu-1:       NOTRUN -> [SKIP][145] ([i915#13958])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_plane_multiple@tiling-4:
    - shard-rkl:          NOTRUN -> [SKIP][146] ([i915#14259])
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_plane_multiple@tiling-4.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][147] ([i915#12343] / [i915#5354])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc5-retention-flops:
    - shard-rkl:          NOTRUN -> [SKIP][148] ([i915#3828])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_pm_dc@dc5-retention-flops.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-dg1:          [PASS][149] -> [SKIP][150] ([i915#15073]) +1 other test skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-14/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-13/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-dg2:          [PASS][151] -> [SKIP][152] ([i915#15073]) +1 other test skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg2-6/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg2-4/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
    - shard-rkl:          [PASS][153] -> [SKIP][154] ([i915#15073])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-rkl:          NOTRUN -> [SKIP][155] ([i915#6524])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_prime@basic-crc-hybrid.html

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

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
    - shard-tglu:         NOTRUN -> [SKIP][157] ([i915#11520]) +3 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][158] ([i915#11520]) +5 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk9/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html

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

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

  * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
    - shard-snb:          NOTRUN -> [SKIP][161] ([i915#11520]) +15 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-snb5/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf:
    - shard-rkl:          NOTRUN -> [SKIP][162] ([i915#11520]) +10 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html

  * igt@kms_psr@fbc-psr2-cursor-blt:
    - shard-tglu-1:       NOTRUN -> [SKIP][163] ([i915#9732]) +4 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-1/igt@kms_psr@fbc-psr2-cursor-blt.html

  * igt@kms_psr@psr2-cursor-blt:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#1072] / [i915#9732]) +18 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_psr@psr2-cursor-blt.html

  * igt@kms_psr@psr2-cursor-plane-onoff:
    - shard-tglu:         NOTRUN -> [SKIP][165] ([i915#9732]) +7 other tests skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_psr@psr2-cursor-plane-onoff.html

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

  * igt@kms_selftest@drm_framebuffer:
    - shard-snb:          NOTRUN -> [ABORT][167] ([i915#13179]) +1 other test abort
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-snb7/igt@kms_selftest@drm_framebuffer.html

  * igt@kms_vblank@ts-continuation-suspend:
    - shard-rkl:          [PASS][168] -> [INCOMPLETE][169] ([i915#12276])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@kms_vblank@ts-continuation-suspend.html
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_vblank@ts-continuation-suspend.html

  * igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][170] ([i915#12276])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vrr@max-min:
    - shard-rkl:          NOTRUN -> [SKIP][171] ([i915#9906]) +1 other test skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_vrr@max-min.html

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

  * igt@perf@gen12-group-concurrent-oa-buffer-read:
    - shard-mtlp:         [PASS][173] -> [FAIL][174] ([i915#10538])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-mtlp-6/igt@perf@gen12-group-concurrent-oa-buffer-read.html
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-mtlp-1/igt@perf@gen12-group-concurrent-oa-buffer-read.html

  * igt@perf@per-context-mode-unprivileged:
    - shard-rkl:          NOTRUN -> [SKIP][175] ([i915#2435])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@perf@per-context-mode-unprivileged.html

  * igt@perf@unprivileged-single-ctx-counters:
    - shard-rkl:          NOTRUN -> [SKIP][176] ([i915#2433])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@perf@unprivileged-single-ctx-counters.html

  * igt@prime_udl@share-import-addfb:
    - shard-tglu:         NOTRUN -> [SKIP][177] ([i915#16420])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@prime_udl@share-import-addfb.html

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

  
#### Possible fixes ####

  * igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0:
    - shard-dg2:          [INCOMPLETE][179] ([i915#13356] / [i915#16348]) -> [PASS][180]
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg2-5/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0.html
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg2-5/igt@gem_ccs@suspend-resume@xmajor-compressed-compfmt0-smem-lmem0.html

  * igt@gem_exec_big@single:
    - shard-tglu:         [FAIL][181] ([i915#15816]) -> [PASS][182]
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-8/igt@gem_exec_big@single.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-10/igt@gem_exec_big@single.html
    - shard-mtlp:         [FAIL][183] ([i915#15871]) -> [PASS][184]
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-mtlp-8/igt@gem_exec_big@single.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-mtlp-5/igt@gem_exec_big@single.html

  * igt@i915_power@sanity:
    - shard-mtlp:         [SKIP][185] ([i915#7984]) -> [PASS][186]
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-mtlp-1/igt@i915_power@sanity.html
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-mtlp-7/igt@i915_power@sanity.html

  * igt@i915_suspend@forcewake:
    - shard-rkl:          [INCOMPLETE][187] ([i915#4817]) -> [PASS][188] +1 other test pass
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-3/igt@i915_suspend@forcewake.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-2/igt@i915_suspend@forcewake.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][189] ([i915#15662]) -> [PASS][190] +1 other test pass
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-10/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [FAIL][191] ([i915#15733] / [i915#5138]) -> [PASS][192]
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-mtlp-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-mtlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          [INCOMPLETE][193] ([i915#14694] / [i915#15582]) -> [PASS][194] +1 other test pass
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-3/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-2.html
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-4/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_edge_walk@256x256-top-edge:
    - shard-dg1:          [DMESG-WARN][195] ([i915#16685]) -> [PASS][196]
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-13/igt@kms_cursor_edge_walk@256x256-top-edge.html
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-16/igt@kms_cursor_edge_walk@256x256-top-edge.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [FAIL][197] ([i915#15804]) -> [PASS][198]
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-rkl:          [INCOMPLETE][199] ([i915#9878]) -> [PASS][200]
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_fbcon_fbt@fbc-suspend.html
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-7/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank:
    - shard-tglu:         [ABORT][201] ([i915#16857] / [i915#16876]) -> [PASS][202] +1 other test pass
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-6/igt@kms_flip@flip-vs-blocking-wf-vblank.html
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-6/igt@kms_flip@flip-vs-blocking-wf-vblank.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-rkl:          [INCOMPLETE][203] ([i915#16276] / [i915#6113]) -> [PASS][204]
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_flip@flip-vs-suspend.html
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-shrfb-draw-render:
    - shard-rkl:          [SKIP][205] ([i915#15989]) -> [PASS][206] +2 other tests pass
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-shrfb-draw-render.html
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-render:
    - shard-glk:          [SKIP][207] -> [PASS][208] +11 other tests pass
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-glk1/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-render.html
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-glk8/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-render.html

  * igt@kms_hdr@bpc-switch:
    - shard-rkl:          [SKIP][209] ([i915#16644] / [i915#3555] / [i915#8228]) -> [PASS][210]
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_hdr@bpc-switch.html
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_hdr@bpc-switch.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling:
    - shard-dg1:          [DMESG-WARN][211] ([i915#4423]) -> [PASS][212]
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-12/igt@kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling.html
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-18/igt@kms_plane_scaling@planes-downscale-factor-0-75-unity-scaling.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg2:          [SKIP][213] ([i915#15073]) -> [PASS][214]
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg2-6/igt@kms_pm_rpm@modeset-lpsp.html
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp.html
    - shard-rkl:          [SKIP][215] ([i915#15073]) -> [PASS][216] +1 other test pass
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-7/igt@kms_pm_rpm@modeset-lpsp.html
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-5/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-rkl:          [SKIP][217] ([i915#14544] / [i915#15073]) -> [PASS][218]
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-dg1:          [SKIP][219] ([i915#15073]) -> [PASS][220]
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-14/igt@kms_pm_rpm@modeset-non-lpsp.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-17/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@perf_pmu@busy-double-start@vcs1:
    - shard-mtlp:         [FAIL][221] ([i915#4349]) -> [PASS][222] +2 other tests pass
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-mtlp-1/igt@perf_pmu@busy-double-start@vcs1.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-mtlp-4/igt@perf_pmu@busy-double-start@vcs1.html

  
#### Warnings ####

  * igt@device_reset@unbind-cold-reset-rebind:
    - shard-rkl:          [SKIP][223] ([i915#11078] / [i915#14544]) -> [SKIP][224] ([i915#11078])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@device_reset@unbind-cold-reset-rebind.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@device_reset@unbind-cold-reset-rebind.html

  * igt@gem_ctx_sseu@mmap-args:
    - shard-rkl:          [SKIP][225] ([i915#14544] / [i915#280]) -> [SKIP][226] ([i915#280])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@gem_ctx_sseu@mmap-args.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@gem_ctx_sseu@mmap-args.html

  * igt@gem_eio@kms:
    - shard-tglu:         [ABORT][227] ([i915#16837] / [i915#16844]) -> [ABORT][228] ([i915#16837])
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-tglu-7/igt@gem_eio@kms.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-tglu-4/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@parallel:
    - shard-rkl:          [SKIP][229] ([i915#14544] / [i915#4525]) -> [SKIP][230] ([i915#4525]) +1 other test skip
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@gem_exec_balancer@parallel.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@gem_exec_balancer@parallel.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-rkl:          [SKIP][231] ([i915#4525]) -> [SKIP][232] ([i915#14544] / [i915#4525])
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@gem_exec_balancer@parallel-balancer.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_reloc@basic-cpu-gtt-active:
    - shard-rkl:          [SKIP][233] ([i915#3281]) -> [SKIP][234] ([i915#14544] / [i915#3281])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@gem_exec_reloc@basic-cpu-gtt-active.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@gem_exec_reloc@basic-cpu-gtt-active.html

  * igt@gem_exec_reloc@basic-wc-gtt:
    - shard-rkl:          [SKIP][235] ([i915#14544] / [i915#3281]) -> [SKIP][236] ([i915#3281]) +3 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@gem_exec_reloc@basic-wc-gtt.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@gem_exec_reloc@basic-wc-gtt.html

  * igt@gem_lmem_swapping@basic:
    - shard-rkl:          [SKIP][237] ([i915#4613]) -> [SKIP][238] ([i915#14544] / [i915#4613])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@gem_lmem_swapping@basic.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@gem_lmem_swapping@basic.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-rkl:          [SKIP][239] ([i915#14544] / [i915#4613]) -> [SKIP][240] ([i915#4613]) +1 other test skip
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-random.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_partial_pwrite_pread@reads-snoop:
    - shard-rkl:          [SKIP][241] ([i915#3282]) -> [SKIP][242] ([i915#14544] / [i915#3282])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@gem_partial_pwrite_pread@reads-snoop.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@gem_partial_pwrite_pread@reads-snoop.html

  * igt@gem_set_tiling_vs_blt@untiled-to-tiled:
    - shard-rkl:          [SKIP][243] ([i915#14544] / [i915#8411]) -> [SKIP][244] ([i915#8411])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html

  * igt@gem_userptr_blits@readonly-pwrite-unsync:
    - shard-rkl:          [SKIP][245] ([i915#14544] / [i915#3297]) -> [SKIP][246] ([i915#3297]) +1 other test skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@gem_userptr_blits@readonly-pwrite-unsync.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@gem_userptr_blits@readonly-pwrite-unsync.html

  * igt@gen7_exec_parse@basic-rejected:
    - shard-rkl:          [SKIP][247] -> [SKIP][248] ([i915#14544]) +18 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@gen7_exec_parse@basic-rejected.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@gen7_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@bb-start-param:
    - shard-rkl:          [SKIP][249] ([i915#14544] / [i915#2527]) -> [SKIP][250] ([i915#2527]) +2 other tests skip
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@gen9_exec_parse@bb-start-param.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@gen9_exec_parse@bb-start-param.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-rkl:          [SKIP][251] ([i915#14498] / [i915#14544]) -> [SKIP][252] ([i915#14498])
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@i915_pm_rc6_residency@rc6-idle.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-rkl:          [SKIP][253] ([i915#12454] / [i915#12712] / [i915#14544]) -> [SKIP][254] ([i915#12454] / [i915#12712])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-0:
    - shard-rkl:          [SKIP][255] ([i915#5286]) -> [SKIP][256] ([i915#14544] / [i915#5286]) +1 other test skip
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-8/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180:
    - shard-rkl:          [SKIP][257] ([i915#14544] / [i915#5286]) -> [SKIP][258] ([i915#5286]) +5 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-rkl:          [SKIP][259] ([i915#3638]) -> [SKIP][260] ([i915#14544] / [i915#3638])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_big_fb@linear-32bpp-rotate-90.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-rkl:          [SKIP][261] ([i915#14544] / [i915#3828]) -> [SKIP][262] ([i915#3828])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-rkl:          [SKIP][263] ([i915#12313] / [i915#14544]) -> [SKIP][264] ([i915#12313])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          [SKIP][265] ([i915#14544] / [i915#6095]) -> [SKIP][266] ([i915#6095]) +3 other tests skip
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          [SKIP][267] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][268] ([i915#14098] / [i915#6095]) +7 other tests skip
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][269] ([i915#6095]) -> [SKIP][270] ([i915#14544] / [i915#6095]) +1 other test skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          [SKIP][271] ([i915#14098] / [i915#6095]) -> [SKIP][272] ([i915#14098] / [i915#14544] / [i915#6095]) +1 other test skip
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d:
    - shard-rkl:          [SKIP][273] ([i915#14544] / [i915#16471]) -> [SKIP][274] ([i915#16471])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_chamelium_color_pipeline@plane-lut1d.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_chamelium_color_pipeline@plane-lut1d.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-rkl:          [SKIP][275] ([i915#11151] / [i915#7828]) -> [SKIP][276] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium_hpd@dp-hpd:
    - shard-rkl:          [SKIP][277] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][278] ([i915#11151] / [i915#7828]) +3 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_chamelium_hpd@dp-hpd.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_chamelium_hpd@dp-hpd.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-rkl:          [SKIP][279] ([i915#14544] / [i915#15330] / [i915#3116]) -> [SKIP][280] ([i915#15330] / [i915#3116])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_content_protection@dp-mst-type-1.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-dg1:          [SKIP][281] ([i915#15865]) -> [SKIP][282] ([i915#15865] / [i915#4423])
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-18/igt@kms_content_protection@legacy.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-18/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic-type-1:
    - shard-rkl:          [SKIP][283] ([i915#15865]) -> [SKIP][284] ([i915#14544] / [i915#15865])
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@kms_content_protection@lic-type-1.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_content_protection@lic-type-1.html

  * igt@kms_content_protection@mei-interface:
    - shard-rkl:          [SKIP][285] ([i915#14544] / [i915#15865]) -> [SKIP][286] ([i915#15865]) +1 other test skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_content_protection@mei-interface.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@kms_content_protection@mei-interface.html

  * igt@kms_cursor_crc@cursor-random-32x10:
    - shard-rkl:          [SKIP][287] ([i915#14544] / [i915#3555]) -> [SKIP][288] ([i915#3555]) +4 other tests skip
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_cursor_crc@cursor-random-32x10.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@kms_cursor_crc@cursor-random-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x170:
    - shard-rkl:          [SKIP][289] ([i915#13049]) -> [SKIP][290] ([i915#13049] / [i915#14544])
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-rkl:          [ABORT][291] ([i915#15132]) -> [INCOMPLETE][292] ([i915#12358] / [i915#14152])
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-1/igt@kms_cursor_crc@cursor-suspend.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-rkl:          [SKIP][293] ([i915#13748] / [i915#14544]) -> [SKIP][294] ([i915#13748])
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_dp_link_training@uhbr-mst.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dsc@dsc-basic-bigjoiner:
    - shard-rkl:          [SKIP][295] ([i915#14544] / [i915#16361]) -> [SKIP][296] ([i915#16361]) +1 other test skip
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_dsc@dsc-basic-bigjoiner.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_dsc@dsc-basic-bigjoiner.html

  * igt@kms_dsc@dsc-with-output-formats-ultrajoiner:
    - shard-rkl:          [SKIP][297] ([i915#16361]) -> [SKIP][298] ([i915#14544] / [i915#16361])
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_dsc@dsc-with-output-formats-ultrajoiner.html
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_dsc@dsc-with-output-formats-ultrajoiner.html

  * igt@kms_feature_discovery@psr1:
    - shard-rkl:          [SKIP][299] ([i915#14544] / [i915#658]) -> [SKIP][300] ([i915#658])
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_feature_discovery@psr1.html
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-rkl:          [SKIP][301] ([i915#14544] / [i915#9934]) -> [SKIP][302] ([i915#9934]) +2 other tests skip
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
    - shard-rkl:          [SKIP][303] ([i915#14544] / [i915#15643]) -> [SKIP][304] ([i915#15643]) +1 other test skip
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html

  * igt@kms_force_connector_basic@force-load-detect:
    - shard-mtlp:         [SKIP][305] ([i915#15672]) -> [SKIP][306]
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-mtlp-1/igt@kms_force_connector_basic@force-load-detect.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-mtlp-7/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
    - shard-rkl:          [SKIP][307] ([i915#14544]) -> [SKIP][308] +47 other tests skip
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-rkl:          [INCOMPLETE][309] ([i915#10056]) -> [ABORT][310] ([i915#15132])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-rkl:          [SKIP][311] ([i915#15102]) -> [SKIP][312] ([i915#14544] / [i915#15102]) +6 other tests skip
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-rkl:          [SKIP][313] ([i915#14544] / [i915#15102]) -> [SKIP][314] ([i915#15102]) +15 other tests skip
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite:
    - shard-dg1:          [SKIP][315] ([i915#15102] / [i915#4423]) -> [SKIP][316] ([i915#15102])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-12/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][317] ([i915#1825]) -> [SKIP][318] ([i915#14544] / [i915#1825]) +2 other tests skip
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-rkl:          [SKIP][319] ([i915#14544] / [i915#1825]) -> [SKIP][320] ([i915#1825]) +2 other tests skip
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-indfb-draw-pwrite:
    - shard-dg1:          [SKIP][321] ([i915#4423]) -> [SKIP][322]
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-12/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-indfb-draw-pwrite.html
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-rkl:          [INCOMPLETE][323] ([i915#15436]) -> [SKIP][324] ([i915#16644] / [i915#3555] / [i915#8228])
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_hdr@static-toggle-suspend.html
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-rkl:          [SKIP][325] ([i915#14544] / [i915#15460]) -> [SKIP][326] ([i915#15460])
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_joiner@basic-big-joiner.html
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-rkl:          [SKIP][327] ([i915#14544] / [i915#15459]) -> [SKIP][328] ([i915#15459])
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-rkl:          [SKIP][329] ([i915#15458]) -> [SKIP][330] ([i915#14544] / [i915#15458])
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_joiner@invalid-modeset-ultra-joiner.html
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
    - shard-rkl:          [SKIP][331] ([i915#14544] / [i915#15709]) -> [SKIP][332] ([i915#15709]) +2 other tests skip
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html

  * igt@kms_pm_dc@dc5-psr-suspend-resume:
    - shard-rkl:          [SKIP][333] ([i915#14544] / [i915#16914]) -> [SKIP][334] ([i915#16914])
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_pm_dc@dc5-psr-suspend-resume.html
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_pm_dc@dc5-psr-suspend-resume.html

  * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
    - shard-rkl:          [SKIP][335] ([i915#11520] / [i915#14544]) -> [SKIP][336] ([i915#11520]) +4 other tests skip
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-rkl:          [SKIP][337] ([i915#11520]) -> [SKIP][338] ([i915#11520] / [i915#14544]) +1 other test skip
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-5/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr@pr-cursor-mmap-gtt:
    - shard-dg1:          [SKIP][339] ([i915#1072] / [i915#9732]) -> [SKIP][340] ([i915#1072] / [i915#4423] / [i915#9732])
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-dg1-18/igt@kms_psr@pr-cursor-mmap-gtt.html
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-dg1-18/igt@kms_psr@pr-cursor-mmap-gtt.html

  * igt@kms_psr@pr-cursor-plane-onoff:
    - shard-rkl:          [SKIP][341] ([i915#1072] / [i915#9732]) -> [SKIP][342] ([i915#1072] / [i915#14544] / [i915#9732]) +3 other tests skip
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_psr@pr-cursor-plane-onoff.html
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_psr@pr-cursor-plane-onoff.html

  * igt@kms_psr@psr-cursor-render:
    - shard-rkl:          [SKIP][343] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][344] ([i915#1072] / [i915#9732]) +10 other tests skip
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_psr@psr-cursor-render.html
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-8/igt@kms_psr@psr-cursor-render.html

  * igt@kms_scaling_modes@scaling-mode-none:
    - shard-rkl:          [SKIP][345] ([i915#3555]) -> [SKIP][346] ([i915#14544] / [i915#3555])
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@kms_scaling_modes@scaling-mode-none.html
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@kms_scaling_modes@scaling-mode-none.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-rkl:          [SKIP][347] ([i915#14544] / [i915#8623]) -> [SKIP][348] ([i915#8623])
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-6/igt@kms_tiled_display@basic-test-pattern.html
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-3/igt@kms_tiled_display@basic-test-pattern.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - shard-rkl:          [SKIP][349] ([i915#2436]) -> [SKIP][350] ([i915#14544] / [i915#2436])
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_19069/shard-rkl-4/igt@perf@gen8-unprivileged-single-ctx-counters.html
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_173197v1/shard-rkl-6/igt@perf@gen8-unprivileged-single-ctx-counters.html

  
  [i915#10056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10056
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10538
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099
  [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#12178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12178
  [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12314
  [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#12358]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12358
  [i915#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454
  [i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#13026]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13026
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
  [i915#13809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13809
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152
  [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259
  [i915#14498]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14498
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14600
  [i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694
  [i915#14702]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14702
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
  [i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#15436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15436
  [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
  [i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459
  [i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460
  [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#15662]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15662
  [i915#15672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15672
  [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
  [i915#15733]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15733
  [i915#15792]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15792
  [i915#15804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15804
  [i915#15816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15816
  [i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865
  [i915#15871]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15871
  [i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989
  [i915#16081]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16081
  [i915#16084]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16084
  [i915#16109]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16109
  [i915#16112]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16112
  [i915#16182]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16182
  [i915#16193]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16193
  [i915#16276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16276
  [i915#16348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16348
  [i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361
  [i915#16386]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16386
  [i915#16420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16420
  [i915#16451]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16451
  [i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471
  [i915#16599]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16599
  [i915#16644]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16644
  [i915#16685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16685
  [i915#16837]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16837
  [i915#16844]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16844
  [i915#16857]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16857
  [i915#16876]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16876
  [i915#16881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16881
  [i915#16914]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16914
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#2433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2433
  [i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435
  [i915#2436]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2436
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [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#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [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#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [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#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
  [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862
  [i915#7882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7882
  [i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8898]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8898
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * Linux: CI_DRM_19069 -> Patchwork_173197v1

  CI-20190529: 20190529
  CI_DRM_19069: c53467440a5196138d2d6610e269a43b6b47bf6b @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_9079: 9079
  Patchwork_173197v1: c53467440a5196138d2d6610e269a43b6b47bf6b @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [PATCH v6 1/7] drm/i915/shmem: Validate max_segment
  2026-09-02  8:25 ` [PATCH v6 1/7] drm/i915/shmem: Validate max_segment Krzysztof Karas
@ 2026-09-10 21:55   ` Andi Shyti
  2026-09-11  6:22     ` Krzysztof Karas
  0 siblings, 1 reply; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 21:55 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Krzysztof,

> +	if (max_segment < PAGE_SIZE)
> +		return -EINVAL;

should we also check here whether max_segment is page-aligned? I
think the loop coming later assumes that. If max_segment is not
aligned nr_pages can be == 0, right?

Andi

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

* Re: [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio
  2026-09-02  8:25 ` [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas
@ 2026-09-10 22:08   ` Andi Shyti
  2026-09-17  9:59   ` Janusz Krzysztofik
  1 sibling, 0 replies; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 22:08 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Krzysztof,

> -		next_pfn = folio_pfn(folio) + nr_pages;
> +
> +		/*
> +		 * We assume folios are placed one after the other in memory
> +		 * and predict where the next folio begins.
> +		 */
> +		next_pfn = folio_pfn(folio) + folio_page_index + nr_pages;

referring to the comment, we are not really "assuming" anything
here; we are storing the next PFN so that continguous physcal
pages can be merged into the same SG entry.

Thanks,
Andi

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

* Re: [PATCH v6 3/7] drm/i915/gem: Free sg table on failure to acquire second folio
  2026-09-02  8:25 ` [PATCH v6 3/7] drm/i915/gem: Free sg table on failure to acquire second folio Krzysztof Karas
@ 2026-09-10 22:11   ` Andi Shyti
  0 siblings, 0 replies; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 22:11 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Krzysztof,

On Wed, Sep 02, 2026 at 08:25:21AM +0000, Krzysztof Karas wrote:
> We should release folios if the first entry was populated, but
> loop failed before sg advanced (st->nents == 1 && sg == st->sgl).
> 
> Fixes: 957ad9a02be6 ("drm/i915/gem: Avoid iterating an empty list")
> Cc: stable@vger.kernel.org
> Assisted-by: GitHub Copilot:claude-opus-5
> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>

Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>

Thanks,
Andi

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

* Re: [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows
  2026-09-02  8:25 ` [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows Krzysztof Karas
@ 2026-09-10 22:21   ` Andi Shyti
  2026-10-01 10:21     ` Krzysztof Karas
  2026-09-10 22:25   ` Andi Shyti
  1 sibling, 1 reply; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 22:21 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Krzysztof,

...

> @@ -1477,6 +1477,10 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
>  		sg_dma_len(s) = s_length;
>  		s->offset -= s_iova_off;
>  		s_length = iova_align(iovad, s_length + s_iova_off);
> +		if (overflows_type(s_length, s->length)) {
> +			ret = -EOVERFLOW;

the value of ret here doesn't really matter because it returns
anyway an -EINVAL. We can completely remove this assignment.

> +			goto out_restore_sg;
> +		}
>  		s->length = s_length;
>  
>  		/*
> @@ -1493,7 +1497,18 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
>  		 *   time through here (i.e. before it has a meaningful value).
>  		 */
>  		if (pad_len && pad_len < s_length - 1) {
> -			prev->length += pad_len;
> +			unsigned int new_prev_len;

Please add a blank line here.

> +			/*
> +			 * For large mappings spanning multiple GBs we
> +			 * may not be able to fit all needed padding into
> +			 * sg->length.
> +			 */
> +			if (check_add_overflow(prev->length, pad_len, &new_prev_len)) {
> +				ret = -EOVERFLOW;

same goes here.

Thanks,
Andi

> +				goto out_restore_sg;
> +			}

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

* Re: [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows
  2026-09-02  8:25 ` [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows Krzysztof Karas
  2026-09-10 22:21   ` Andi Shyti
@ 2026-09-10 22:25   ` Andi Shyti
  2026-09-11  6:20     ` Krzysztof Karas
  1 sibling, 1 reply; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 22:25 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Krzysztof,

one more thing here.

>  drivers/iommu/dma-iommu.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)

Can we send this patch separately? It just complicates things
if added in this series. Besides, pleasee add iommy maintainers
in the Cc list. You can use get_maintainers.pl

Andi

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

* Re: [PATCH v6 5/7] drm/i915/gem: Pull out size validation into a separate function
  2026-09-02  8:25 ` [PATCH v6 5/7] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas
@ 2026-09-10 22:27   ` Andi Shyti
  0 siblings, 0 replies; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 22:27 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Krzysztof,

...

> -	if (overflows_type(size / PAGE_SIZE, page_count))
> -		return -E2BIG;
> -
> -	page_count = size / PAGE_SIZE;
> -	/*
> -	 * If there's no chance of allocating enough pages for the whole
> -	 * object, bail early.
> -	 */
> -	if (size > resource_size(&mr->region))
> -		return -ENOMEM;
> +	ret = validate_set_page_count(size, &page_count, mr);
> +	if (ret < 0)

this can be "if (ret)". Otherwise:

Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>

Thanks,
Andi

> +		return ret;

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

* Re: [PATCH v6 6/7] drm/i915/gem: Read and shrink memory in a separate function
  2026-09-02  8:25 ` [PATCH v6 6/7] drm/i915/gem: Read and shrink memory in " Krzysztof Karas
@ 2026-09-10 22:30   ` Andi Shyti
  2026-09-11  6:18     ` Krzysztof Karas
  0 siblings, 1 reply; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 22:30 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

On Wed, Sep 02, 2026 at 08:25:24AM +0000, Krzysztof Karas wrote:
> Continue unloading shmem_sg_alloc_table by placing reading
> folios and shrink call into a new helper.
> Make the code a bit more reader-friendly by removing moving

"by removing moving"?

> over structure elements and replacing it with a sequence of
> instructions.
> 
> Assisted-by: GitHub Copilot:claude-opus-5
> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>

Looks correct to me:

Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>

Thanks,
Andi

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

* Re: [PATCH v6 7/7] drm/i915/gem: Remove iterator and use while loop
  2026-09-02  8:25 ` [PATCH v6 7/7] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas
@ 2026-09-10 22:33   ` Andi Shyti
  0 siblings, 0 replies; 23+ messages in thread
From: Andi Shyti @ 2026-09-10 22:33 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Krzysztof,

On Wed, Sep 02, 2026 at 08:25:25AM +0000, Krzysztof Karas wrote:
> Change the main "for" loop into "while" to get rid of obscure
> iterator "i" and use a more descriptive name to indicate how
> many pages were already covered. Detect first loop with
> st->nents.
> 
> Assisted-by: GitHub Copilot:claude-opus-5
> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>

Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>

Thanks,
Andi

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

* Re: [PATCH v6 6/7] drm/i915/gem: Read and shrink memory in a separate function
  2026-09-10 22:30   ` Andi Shyti
@ 2026-09-11  6:18     ` Krzysztof Karas
  0 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-11  6:18 UTC (permalink / raw)
  To: Andi Shyti
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Andi,

On 2026-09-11 at 00:30:58 +0200, Andi Shyti wrote:
> On Wed, Sep 02, 2026 at 08:25:24AM +0000, Krzysztof Karas wrote:
> > Continue unloading shmem_sg_alloc_table by placing reading
> > folios and shrink call into a new helper.
> > Make the code a bit more reader-friendly by removing moving
> 
> "by removing moving"?
Nice catch, it slipped through all my automated spell checks :)

> 
> > over structure elements and replacing it with a sequence of
> > instructions.
> > 
> > Assisted-by: GitHub Copilot:claude-opus-5
> > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
> 
> Looks correct to me:
> 
> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Thank you!

> 
> Thanks,
> Andi

-- 
Best Regards,
Krzysztof

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

* Re: [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows
  2026-09-10 22:25   ` Andi Shyti
@ 2026-09-11  6:20     ` Krzysztof Karas
  0 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-11  6:20 UTC (permalink / raw)
  To: Andi Shyti
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Andi,

On 2026-09-11 at 00:25:46 +0200, Andi Shyti wrote:
> Hi Krzysztof,
> 
> one more thing here.
> 
> >  drivers/iommu/dma-iommu.c | 17 ++++++++++++++++-
> >  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> Can we send this patch separately? It just complicates things
> if added in this series. Besides, pleasee add iommy maintainers
> in the Cc list. You can use get_maintainers.pl
I do not mind, if this makes things easier.

> 
> Andi

-- 
Best Regards,
Krzysztof

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

* Re: [PATCH v6 1/7] drm/i915/shmem: Validate max_segment
  2026-09-10 21:55   ` Andi Shyti
@ 2026-09-11  6:22     ` Krzysztof Karas
  0 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Karas @ 2026-09-11  6:22 UTC (permalink / raw)
  To: Andi Shyti
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Andi,

On 2026-09-10 at 23:55:34 +0200, Andi Shyti wrote:
> Hi Krzysztof,
> 
> > +	if (max_segment < PAGE_SIZE)
> > +		return -EINVAL;
> 
> should we also check here whether max_segment is page-aligned? I
> think the loop coming later assumes that. If max_segment is not
> aligned nr_pages can be == 0, right?
I'll address that along with your other comments on the series
in v7 (+ the iommu patch is going to be separated).

Thanks for looking at this!

> 
> Andi

-- 
Best Regards,
Krzysztof

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

* Re: [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio
  2026-09-02  8:25 ` [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas
  2026-09-10 22:08   ` Andi Shyti
@ 2026-09-17  9:59   ` Janusz Krzysztofik
  1 sibling, 0 replies; 23+ messages in thread
From: Janusz Krzysztofik @ 2026-09-17  9:59 UTC (permalink / raw)
  To: Krzysztof Karas, intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Michał Grzelak,
	Sebastian Brzezinka, Krzysztof Niemiec

Hi Krzysztof,

Since you are going to submit another version, here are still some comments
of mine for you to consider.

On Wed, 2026-09-02 at 08:25 +0000, Krzysztof Karas wrote:
> Before addition of commit 029ae067431a
> ("drm/i915: Fix potential overflow of shmem scatterlist length")
> and after folios were introduced complete folios were always
> allocated, possibly overloading the scatterlist capacity which
> was never truly limited to PAGE_SIZE when requested via
> max_segment. The above commit addressed scatterlist overloading,
> but unintentionally disabled PAGE_SIZE as a valid max_segment
> value and failed to take care of remaining pages from folios
> above max_segment boundary.
> This created a state, where multitude of scatterlists were used
> for the same folio, but never counting enough of its pages to
> jump to the next folio.
> 
> Furthermore, current do-while loop goes over the same folio
> multiple times, increasing the refcount each time, and breaks
> get/put symmetry: many shmem_read_folio_gfp() gets and only one
> put in i915_gem_object_put_pages_shmem() per folio.
> 
> Track how many pages have already been counted in a folio and
> use that number as an offset on consecutive allocations from the
> same folio to ensure it is fully covered before reading next
> folio.
> 
> Fixes: 029ae067431a ("drm/i915: Fix potential overflow of shmem scatterlist length")
> Cc: stable@vger.kernel.org
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/15816
> Assisted-by: GitHub Copilot:claude-opus-5
> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> v6:
>  * moved max_segment check into its own patch;
>  * moved comment about gcc warnings above block of
>    initializations;
>  * removed
>    WARN_ON_ONCE(folio_page_index >= folio_nr_pages(folio))
>    block (Andi);
>  * restored original condition (folio_pfn(folio) != next_pfn)
>    (Janusz);
>  * dropped folio_page_index and folio initializations;
>  * expanded the commit message to contain information about
>    previously unexplained folio reference leaks;
>  * ran final checks with Claude Opus and added a tag.
> 
>  drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 112 +++++++++++++---------
>  1 file changed, 67 insertions(+), 45 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> index 4b5ce9a2f74f..8e5f2a7d5f6b 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> @@ -70,7 +70,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
>  	unsigned int page_count; /* restricted by sg_alloc_table */
>  	unsigned long i;
>  	struct scatterlist *sg;
> -	unsigned long next_pfn = 0;	/* suppress gcc warning */
> +	/* suppress gcc warnings */
> +	unsigned long next_pfn = 0;
> +	unsigned long folio_start = 0;
> +	unsigned long folio_end = 0;
> +	struct folio *folio;
>  	gfp_t noreclaim;
>  	int ret;
>  
> @@ -104,7 +108,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
>  	sg = st->sgl;
>  	st->nents = 0;
>  	for (i = 0; i < page_count; i++) {
> -		struct folio *folio;
> +		unsigned long folio_page_index;
>  		unsigned long nr_pages;
>  		const unsigned int shrink[] = {
>  			I915_SHRINK_BOUND | I915_SHRINK_UNBOUND,
> @@ -112,51 +116,58 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
>  		}, *s = shrink;
>  		gfp_t gfp = noreclaim;
>  
> -		do {
> -			cond_resched();
> -			folio = shmem_read_folio_gfp(mapping, i, gfp);
> -			if (!IS_ERR(folio))
> -				break;
> +		/* Grab the next folio if we exhausted the current one. */
> +		if (!i || i > folio_end) {
> +			do {
> +				cond_resched();
> +				folio = shmem_read_folio_gfp(mapping, i, gfp);
> +				if (!IS_ERR(folio))
> +					break;
>  
> -			if (!*s) {
> -				ret = PTR_ERR(folio);
> -				goto err_sg;
> -			}
> +				if (!*s) {
> +					ret = PTR_ERR(folio);
> +					goto err_sg;
> +				}
>  
> -			i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++);
> -
> -			/*
> -			 * We've tried hard to allocate the memory by reaping
> -			 * our own buffer, now let the real VM do its job and
> -			 * go down in flames if truly OOM.
> -			 *
> -			 * However, since graphics tend to be disposable,
> -			 * defer the oom here by reporting the ENOMEM back
> -			 * to userspace.
> -			 */
> -			if (!*s) {
> -				/* reclaim and warn, but no oom */
> -				gfp = mapping_gfp_mask(mapping);
> +				i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++);
>  
>  				/*
> -				 * Our bo are always dirty and so we require
> -				 * kswapd to reclaim our pages (direct reclaim
> -				 * does not effectively begin pageout of our
> -				 * buffers on its own). However, direct reclaim
> -				 * only waits for kswapd when under allocation
> -				 * congestion. So as a result __GFP_RECLAIM is
> -				 * unreliable and fails to actually reclaim our
> -				 * dirty pages -- unless you try over and over
> -				 * again with !__GFP_NORETRY. However, we still
> -				 * want to fail this allocation rather than
> -				 * trigger the out-of-memory killer and for
> -				 * this we want __GFP_RETRY_MAYFAIL.
> -				 */
> -				gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
> -			}
> -		} while (1);
> -
> -		nr_pages = min3(folio_nr_pages(folio),
> +				* We've tried hard to allocate the memory by reaping
> +				* our own buffer, now let the real VM do its job and
> +				* go down in flames if truly OOM.
> +				*
> +				* However, since graphics tend to be disposable,
> +				* defer the oom here by reporting the ENOMEM back
> +				* to userspace.
> +				*/
> +				if (!*s) {
> +					/* reclaim and warn, but no oom */
> +					gfp = mapping_gfp_mask(mapping);
> +
> +					/*
> +					 * Our bo are always dirty and so we require
> +					 * kswapd to reclaim our pages (direct reclaim
> +					 * does not effectively begin pageout of our
> +					 * buffers on its own). However, direct reclaim
> +					 * only waits for kswapd when under allocation
> +					 * congestion. So as a result __GFP_RECLAIM is
> +					 * unreliable and fails to actually reclaim our
> +					 * dirty pages -- unless you try over and over
> +					 * again with !__GFP_NORETRY. However, we still
> +					 * want to fail this allocation rather than
> +					 * trigger the out-of-memory killer and for
> +					 * this we want __GFP_RETRY_MAYFAIL.
> +					 */
> +					gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN;
> +				}
> +			} while (1);
> +
> +			folio_start = folio_pgoff(folio);
> +			folio_end = folio_start + folio_nr_pages(folio) - 1;
> +		}
> +
> +		folio_page_index = i - folio_start;

While your point about the need to address more than one reference to a
folio unnecessarily being held was valid, I'm still not sure if what you
propose is the most simple way to resolve it.  For me, checking if next_pfn
is still inside the current folio range and omitting shmem_read_folio_gfp()
if true would be a good enough way to avoid re-getting it.

Moreover, I haven't heard from you about my idea of reusing that already
maintained next_pfn for calculation of folio_page_index, then still
simplifying the code changes that way.  Can you see any cons?

Thanks,
Janusz


> +		nr_pages = min3(folio_nr_pages(folio) - folio_page_index,
>  				page_count - i, max_segment / PAGE_SIZE);
>  
>  		if (!i ||
> @@ -166,13 +177,24 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
>  				sg = sg_next(sg);
>  
>  			st->nents++;
> -			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
> +			sg_set_page(sg, folio_page(folio, folio_page_index),
> +				    nr_pages * PAGE_SIZE, 0);
>  		} else {
> +			/*
> +			 * If our prediction about folio placement is true and
> +			 * scatterlist still has space left for more pages,
> +			 * then we land here.
> +			 */
>  			nr_pages = min(nr_pages, (max_segment - sg->length) / PAGE_SIZE);
>  
>  			sg->length += nr_pages * PAGE_SIZE;
>  		}
> -		next_pfn = folio_pfn(folio) + nr_pages;
> +
> +		/*
> +		 * We assume folios are placed one after the other in memory
> +		 * and predict where the next folio begins.
> +		 */
> +		next_pfn = folio_pfn(folio) + folio_page_index + nr_pages;
>  		i += nr_pages - 1;
>  
>  		/* Check that the i965g/gm workaround works. */

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

* Re: [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows
  2026-09-10 22:21   ` Andi Shyti
@ 2026-10-01 10:21     ` Krzysztof Karas
  0 siblings, 0 replies; 23+ messages in thread
From: Krzysztof Karas @ 2026-10-01 10:21 UTC (permalink / raw)
  To: Andi Shyti
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi Andi,

On 2026-09-11 at 00:21:15 +0200, Andi Shyti wrote:
> Hi Krzysztof,
> 
> ...
> 
> > @@ -1477,6 +1477,10 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
> >  		sg_dma_len(s) = s_length;
> >  		s->offset -= s_iova_off;
> >  		s_length = iova_align(iovad, s_length + s_iova_off);
> > +		if (overflows_type(s_length, s->length)) {
> > +			ret = -EOVERFLOW;
> 
> the value of ret here doesn't really matter because it returns
> anyway an -EINVAL. We can completely remove this assignment.
Assigning an error to ret here lets us return that EINVAL.
Without the assignment, we'd be checking against an
uninitialized variable. I'd rather have this temporary error set
than use garbage value.

> 
> > +			goto out_restore_sg;
> > +		}
> >  		s->length = s_length;
> >  
> >  		/*
> > @@ -1493,7 +1497,18 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
> >  		 *   time through here (i.e. before it has a meaningful value).
> >  		 */
> >  		if (pad_len && pad_len < s_length - 1) {
> > -			prev->length += pad_len;
> > +			unsigned int new_prev_len;
> 
> Please add a blank line here.
> 
> > +			/*
> > +			 * For large mappings spanning multiple GBs we
> > +			 * may not be able to fit all needed padding into
> > +			 * sg->length.
> > +			 */
> > +			if (check_add_overflow(prev->length, pad_len, &new_prev_len)) {
> > +				ret = -EOVERFLOW;
> 
> same goes here.
> 
> Thanks,
> Andi
> 
> > +				goto out_restore_sg;
> > +			}

-- 
Best Regards,
Krzysztof

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

end of thread, other threads:[~2026-10-01 10:21 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-02  8:25 [PATCH v6 0/7] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
2026-09-02  8:25 ` [PATCH v6 1/7] drm/i915/shmem: Validate max_segment Krzysztof Karas
2026-09-10 21:55   ` Andi Shyti
2026-09-11  6:22     ` Krzysztof Karas
2026-09-02  8:25 ` [PATCH v6 2/7] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas
2026-09-10 22:08   ` Andi Shyti
2026-09-17  9:59   ` Janusz Krzysztofik
2026-09-02  8:25 ` [PATCH v6 3/7] drm/i915/gem: Free sg table on failure to acquire second folio Krzysztof Karas
2026-09-10 22:11   ` Andi Shyti
2026-09-02  8:25 ` [PATCH v6 4/7] iommu/dma: Catch scatterlist length overflows Krzysztof Karas
2026-09-10 22:21   ` Andi Shyti
2026-10-01 10:21     ` Krzysztof Karas
2026-09-10 22:25   ` Andi Shyti
2026-09-11  6:20     ` Krzysztof Karas
2026-09-02  8:25 ` [PATCH v6 5/7] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas
2026-09-10 22:27   ` Andi Shyti
2026-09-02  8:25 ` [PATCH v6 6/7] drm/i915/gem: Read and shrink memory in " Krzysztof Karas
2026-09-10 22:30   ` Andi Shyti
2026-09-11  6:18     ` Krzysztof Karas
2026-09-02  8:25 ` [PATCH v6 7/7] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas
2026-09-10 22:33   ` Andi Shyti
2026-09-02  9:29 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Patchwork
2026-09-02 23:28 ` ✓ i915.CI.Full: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox