Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
@ 2026-07-01 10:44 Krzysztof Karas
  2026-07-01 10:44 ` [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic Krzysztof Karas
                   ` (6 more replies)
  0 siblings, 7 replies; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-01 10:44 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Joerg Roedel, 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.

Krzysztof Karas (3):
  drm/i915/gem: split shared memory allocation table logic
  drm/i915/shmem: Count mapped pages in a folio
  drivers/iommu: Catch scatterlist length overflows

 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 191 +++++++++++++---------
 drivers/iommu/dma-iommu.c                 |  14 +-
 2 files changed, 129 insertions(+), 76 deletions(-)

-- 
2.34.1


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

* [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic
  2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
@ 2026-07-01 10:44 ` Krzysztof Karas
  2026-07-01 14:38   ` Andi Shyti
  2026-07-01 10:44 ` [PATCH v2 2/3] drm/i915/shmem: Count mapped pages in a folio Krzysztof Karas
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-01 10:44 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Joerg Roedel, Michał Grzelak,
	Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec,
	Krzysztof Karas

shmem_sg_alloc_table is a complex and hard to read function.
Split its logic into smaller pieces to improve readability and
reduce indentation. Change the main "for" loop into "while" to
get rid of obscure iterator "i" and be more explicit in
traversing scatterlist.

Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 176 ++++++++++++----------
 1 file changed, 100 insertions(+), 76 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 06543ae60706..b5ae7e5f80a0 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -62,22 +62,12 @@ void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping,
 	sg_free_table(st);
 }
 
-int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
-			 size_t size, struct intel_memory_region *mr,
-			 struct address_space *mapping,
-			 unsigned int max_segment)
+static int validate_size(size_t size, unsigned int page_count,
+			 struct intel_memory_region *mr)
 {
-	unsigned int page_count; /* restricted by sg_alloc_table */
-	unsigned long i;
-	struct scatterlist *sg;
-	unsigned long next_pfn = 0;	/* suppress gcc warning */
-	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.
@@ -85,7 +75,81 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	if (size > resource_size(&mr->region))
 		return -ENOMEM;
 
-	if (sg_alloc_table(st, page_count, GFP_KERNEL | __GFP_NOWARN))
+	return 0;
+}
+
+static struct folio *shmem_shrink_get_folio(struct address_space *mapping,
+					    unsigned long folio_index,
+					    gfp_t gfp, unsigned int pages_left,
+					    struct drm_i915_private *i915)
+{
+#define MAX_READS 2
+	struct folio *folio;
+	unsigned int i;
+
+	for (i = 0; i < MAX_READS; i++) {
+		cond_resched();
+		folio = shmem_read_folio_gfp(mapping, folio_index, gfp);
+		if (!IS_ERR(folio) || i == MAX_READS - 1)
+			return folio;
+
+		i915_gem_shrink(NULL, i915, 2 * pages_left, 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;
+	}
+
+	/* Should never happen */
+	WARN_ON_ONCE(1);
+	return ERR_PTR(-EINVAL);
+}
+
+int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
+			 size_t size, struct intel_memory_region *mr,
+			 struct address_space *mapping,
+			 unsigned int max_segment)
+{
+	unsigned int pages_left; /* restricted by sg_alloc_table */
+	unsigned long next_pfn = 0; /* suppress gcc warning */
+	unsigned long pages_done = 0;
+	struct scatterlist *sg;
+	gfp_t noreclaim;
+	int ret;
+
+	pages_left = size / PAGE_SIZE;
+
+	ret = validate_size(size, pages_left, mr);
+	if (ret < 0)
+		return ret;
+
+	if (sg_alloc_table(st, pages_left, GFP_KERNEL | __GFP_NOWARN))
 		return -ENOMEM;
 
 	/*
@@ -98,73 +162,32 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	noreclaim = mapping_gfp_constraint(mapping, ~__GFP_RECLAIM);
 	noreclaim |= __GFP_NORETRY | __GFP_NOWARN;
 
-	sg = st->sgl;
 	st->nents = 0;
-	for (i = 0; i < page_count; i++) {
-		struct folio *folio;
+	sg = st->sgl;
+
+	while (pages_left) {
 		unsigned long nr_pages;
-		const unsigned int shrink[] = {
-			I915_SHRINK_BOUND | I915_SHRINK_UNBOUND,
-			0,
-		}, *s = shrink;
 		gfp_t gfp = noreclaim;
+		struct folio *folio;
 
-		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);
-
-		nr_pages = min_array(((unsigned long[]) {
-					folio_nr_pages(folio),
-					page_count - i,
-					max_segment / PAGE_SIZE,
-				      }), 3);
-
-		if (!i ||
-		    sg->length >= max_segment ||
-		    folio_pfn(folio) != next_pfn) {
-			if (i)
-				sg = sg_next(sg);
+		folio = shmem_shrink_get_folio(mapping, pages_done, gfp,
+					       pages_left, i915);
+		if (IS_ERR(folio)) {
+			ret = PTR_ERR(folio);
+			goto err_sg;
+		}
 
+		nr_pages = min_array(((unsigned long[]){
+					     folio_nr_pages(folio),
+					     pages_left,
+					     max_segment / PAGE_SIZE,
+				     }), 3);
+		if (!st->nents) {
+			st->nents++;
+			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
+		} else if (sg->length >= max_segment ||
+			   folio_pfn(folio) != next_pfn) {
+			sg = sg_next(sg);
 			st->nents++;
 			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
 		} else {
@@ -174,7 +197,8 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 			sg->length += nr_pages * PAGE_SIZE;
 		}
 		next_pfn = folio_pfn(folio) + nr_pages;
-		i += nr_pages - 1;
+		pages_done += nr_pages;
+		pages_left -= 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] 19+ messages in thread

* [PATCH v2 2/3] drm/i915/shmem: Count mapped pages in a folio
  2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
  2026-07-01 10:44 ` [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic Krzysztof Karas
@ 2026-07-01 10:44 ` Krzysztof Karas
  2026-07-01 10:44 ` [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows Krzysztof Karas
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-01 10:44 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Joerg Roedel, Michał Grzelak,
	Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec,
	Krzysztof Karas

With addition of commit 029ae067431a
("drm/i915: Fix potential overflow of shmem scatterlist length")
max_segment size was included in calculating the number of pages
for the scatterlist. This meant that segment sizes considerably
smaller than number of pages in a folio (see shmem_get_pages(),
rebuild_st label for context), were not enough to jump to the
next folio, which has never been a problem before folios have
been introduced. In result, sg_set_folio() was called multiple
times with nr_pages smaller than folio size, using multitude of
scatterlists, all pointing to the beginning pages of the folio
and never fully covering its range of pages.

Track how many pages have already been counted in a folio to
ensure it is fully covered before reading next folio.

Fixes: 029ae067431a ("drm/i915: Fix potential overflow of shmem scatterlist length")
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/15816
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 43 ++++++++++++++++-------
 1 file changed, 31 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index b5ae7e5f80a0..0e4929efbfe5 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -138,7 +138,10 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 {
 	unsigned int pages_left; /* restricted by sg_alloc_table */
 	unsigned long next_pfn = 0; /* suppress gcc warning */
+	unsigned long folio_start = 0;
 	unsigned long pages_done = 0;
+	unsigned long folio_end = 0;
+	struct folio *folio = NULL;
 	struct scatterlist *sg;
 	gfp_t noreclaim;
 	int ret;
@@ -166,37 +169,53 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st,
 	sg = st->sgl;
 
 	while (pages_left) {
+		unsigned long folio_pages_done = 0;
 		unsigned long nr_pages;
 		gfp_t gfp = noreclaim;
-		struct folio *folio;
 
-		folio = shmem_shrink_get_folio(mapping, pages_done, gfp,
-					       pages_left, i915);
-		if (IS_ERR(folio)) {
-			ret = PTR_ERR(folio);
+		/* Grab the next folio if we exhausted the current one. */
+		if (!pages_done || pages_done > folio_end) {
+			folio = shmem_shrink_get_folio(mapping, pages_done, gfp,
+						       pages_left, 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;
+		}
+
+		folio_pages_done = pages_done - folio_start;
+		if (WARN_ON_ONCE(folio_pages_done >= folio_nr_pages(folio))) {
+			ret = -EINVAL;
+			folio_put(folio);
 			goto err_sg;
 		}
 
 		nr_pages = min_array(((unsigned long[]){
-					     folio_nr_pages(folio),
+					     folio_nr_pages(folio) - folio_pages_done,
 					     pages_left,
-					     max_segment / PAGE_SIZE,
+					     max_t(unsigned int, 1, max_segment / PAGE_SIZE),
 				     }), 3);
 		if (!st->nents) {
 			st->nents++;
-			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
+			sg_set_page(sg, folio_page(folio, 0), nr_pages * PAGE_SIZE, 0);
 		} else if (sg->length >= max_segment ||
-			   folio_pfn(folio) != next_pfn) {
+			   folio_pfn(folio) + folio_pages_done != next_pfn) {
 			sg = sg_next(sg);
 			st->nents++;
-			sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0);
+			sg_set_page(sg, folio_page(folio, folio_pages_done),
+				    nr_pages * PAGE_SIZE, 0);
 		} else {
 			nr_pages = min_t(unsigned long, nr_pages,
-					 (max_segment - sg->length) / PAGE_SIZE);
+						max_t(unsigned long, 1,
+						      (max_segment - sg->length) / PAGE_SIZE));
 
 			sg->length += nr_pages * PAGE_SIZE;
 		}
-		next_pfn = folio_pfn(folio) + nr_pages;
+
+		next_pfn = folio_pfn(folio) + folio_pages_done + nr_pages;
 		pages_done += nr_pages;
 		pages_left -= nr_pages;
 
-- 
2.34.1


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

* [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
  2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
  2026-07-01 10:44 ` [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic Krzysztof Karas
  2026-07-01 10:44 ` [PATCH v2 2/3] drm/i915/shmem: Count mapped pages in a folio Krzysztof Karas
@ 2026-07-01 10:44 ` Krzysztof Karas
  2026-07-01 11:59   ` Robin Murphy
       [not found]   ` <20260703162236.GX7525@ziepe.ca>
  2026-07-01 15:36 ` [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Andi Shyti
                   ` (3 subsequent siblings)
  6 siblings, 2 replies; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-01 10:44 UTC (permalink / raw)
  To: intel-gfx, dri-devel, iommu
  Cc: Andi Shyti, Robin Murphy, Joerg Roedel, Michał Grzelak,
	Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec,
	Krzysztof Karas

It is possible, when a very large mapping uses a single
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 previous
scatterlist length field.

Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
---
v2:
 * Address overflows instead of unmapping erroneously mapped
 memory (Robin).
 * Put this patch last for easier reproduction of the issue.

 drivers/iommu/dma-iommu.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 9abaec0703ef..c403057577df 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1493,8 +1493,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;
-			iova_len += pad_len;
+			if (overflows_type(prev->length + pad_len, prev->length)) {
+				/*
+				 * For large mappings spanning multiple GBs we
+				 * may not be able to fit all needed padding into
+				 * sg->length.
+				 */
+				ret = -EOVERFLOW;
+				goto out_restore_sg;
+			} else {
+				prev->length += pad_len;
+				iova_len += pad_len;
+			}
 		}
 
 		iova_len += s_length;
-- 
2.34.1


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

* Re: [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
  2026-07-01 10:44 ` [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows Krzysztof Karas
@ 2026-07-01 11:59   ` Robin Murphy
  2026-07-02  6:22     ` Krzysztof Karas
       [not found]   ` <20260703162236.GX7525@ziepe.ca>
  1 sibling, 1 reply; 19+ messages in thread
From: Robin Murphy @ 2026-07-01 11:59 UTC (permalink / raw)
  To: Krzysztof Karas, intel-gfx, dri-devel, iommu, Joerg Roedel,
	Will Deacon
  Cc: Andi Shyti, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

On 01/07/2026 11:44 am, Krzysztof Karas wrote:
> It is possible, when a very large mapping uses a single
> 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 previous
> scatterlist length field.

Awesome, thanks for figuring it out! Looks like this must date all the 
way back:

Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging")

> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
> ---
> v2:
>   * Address overflows instead of unmapping erroneously mapped
>   memory (Robin).
>   * Put this patch last for easier reproduction of the issue.
> 
>   drivers/iommu/dma-iommu.c | 14 ++++++++++++--
>   1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index 9abaec0703ef..c403057577df 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -1493,8 +1493,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;
> -			iova_len += pad_len;
> +			if (overflows_type(prev->length + pad_len, prev->length)) {
> +				/*
> +				 * For large mappings spanning multiple GBs we
> +				 * may not be able to fit all needed padding into
> +				 * sg->length.
> +				 */
> +				ret = -EOVERFLOW;
> +				goto out_restore_sg;
> +			} else {

Nit: we don't really need an "else" after a goto, but it's hardly a big 
deal (however if you did want to respin, note also that the preferred 
title tag here is "iommu/dma: ..."). Either way,

Reviewed-by: Robin Murphy <robin.murphy@arm.com>

I'd imagine Joerg can take this as an IOMMU fix, but FWIW if you did 
want an ack to take it through drm-fixes to keep it with the i915 
patches, I wouldn't foresee any significant risk of conflicts.

Thanks,
Robin.

> +				prev->length += pad_len;
> +				iova_len += pad_len;
> +			}
>   		}
>   
>   		iova_len += s_length;


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

* Re: [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic
  2026-07-01 10:44 ` [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic Krzysztof Karas
@ 2026-07-01 14:38   ` Andi Shyti
  2026-07-02  6:18     ` Krzysztof Karas
  0 siblings, 1 reply; 19+ messages in thread
From: Andi Shyti @ 2026-07-01 14:38 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Joerg Roedel, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

Hi Krzysztof,

On Wed, Jul 01, 2026 at 10:44:35AM +0000, Krzysztof Karas wrote:
> shmem_sg_alloc_table is a complex and hard to read function.
> Split its logic into smaller pieces to improve readability and
> reduce indentation. Change the main "for" loop into "while" to
> get rid of obscure iterator "i" and be more explicit in
> traversing scatterlist.

any chance we can split this cleanup into smaller pieces?

> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>

...

> +static struct folio *shmem_shrink_get_folio(struct address_space *mapping,
> +					    unsigned long folio_index,
> +					    gfp_t gfp, unsigned int pages_left,
> +					    struct drm_i915_private *i915)
> +{
> +#define MAX_READS 2

This MAX_READS here is very ugly! Just use 2 and explain it in a
comment. In the 'if' below you can check out of "if (... || i)"
and still explain it in a comment.

> +	struct folio *folio;
> +	unsigned int i;
> +
> +	for (i = 0; i < MAX_READS; i++) {
> +		cond_resched();
> +		folio = shmem_read_folio_gfp(mapping, folio_index, gfp);
> +		if (!IS_ERR(folio) || i == MAX_READS - 1)
> +			return folio;
> +
> +		i915_gem_shrink(NULL, i915, 2 * pages_left, NULL,

/pages_left/page_count/

> +				I915_SHRINK_BOUND | I915_SHRINK_UNBOUND);
> +

...

> +	}
> +
> +	/* Should never happen */
> +	WARN_ON_ONCE(1);

no need.

Thanks,
Andi

> +	return ERR_PTR(-EINVAL);
> +}

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

* Re: [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
  2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (2 preceding siblings ...)
  2026-07-01 10:44 ` [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows Krzysztof Karas
@ 2026-07-01 15:36 ` Andi Shyti
  2026-07-02  6:10   ` Krzysztof Karas
  2026-07-01 15:44 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev3) Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 19+ messages in thread
From: Andi Shyti @ 2026-07-01 15:36 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Joerg Roedel, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

Hi Krzysztof,

> Krzysztof Karas (3):
>   drm/i915/gem: split shared memory allocation table logic
>   drm/i915/shmem: Count mapped pages in a folio

Please move the refactoring after the fix. We don't want to
create a dependency between a fix and a code refactoring, as
that makes it harder for maintainers to backport the fix.

Thanks,
Andi

>   drivers/iommu: Catch scatterlist length overflows
> 
>  drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 191 +++++++++++++---------
>  drivers/iommu/dma-iommu.c                 |  14 +-
>  2 files changed, 129 insertions(+), 76 deletions(-)
> 
> -- 
> 2.34.1
> 

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

* ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev3)
  2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (3 preceding siblings ...)
  2026-07-01 15:36 ` [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Andi Shyti
@ 2026-07-01 15:44 ` Patchwork
  2026-07-02  6:33 ` ✓ i915.CI.Full: " Patchwork
  2026-07-09  8:23 ` ✗ i915.CI.BAT: failure for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev4) Patchwork
  6 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-07-01 15:44 UTC (permalink / raw)
  To: Krzysztof Karas; +Cc: intel-gfx

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from CI_DRM_18742 -> Patchwork_169199v3
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (41 -> 40)
------------------------------

  Additional (1): bat-adls-6 
  Missing    (2): bat-dg2-13 fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@dmabuf@all-tests:
    - bat-adls-6:         NOTRUN -> [SKIP][1] ([i915#15931])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@dmabuf@all-tests.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-adls-6:         NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_tiled_pread_basic@basic:
    - bat-adls-6:         NOTRUN -> [SKIP][3] ([i915#15656])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@gem_tiled_pread_basic@basic.html

  * igt@intel_hwmon@hwmon-read:
    - bat-adls-6:         NOTRUN -> [SKIP][4] ([i915#7707]) +1 other test skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@intel_hwmon@hwmon-read.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-adls-6:         NOTRUN -> [SKIP][5] ([i915#4103]) +1 other test skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
    - bat-adls-6:         NOTRUN -> [SKIP][6] ([i915#16361])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-adls-6:         NOTRUN -> [SKIP][7]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pm_backlight@basic-brightness:
    - bat-adls-6:         NOTRUN -> [SKIP][8] ([i915#5354])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_psr@psr-primary-mmap-gtt:
    - bat-adls-6:         NOTRUN -> [SKIP][9] ([i915#1072] / [i915#9732]) +3 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-adls-6:         NOTRUN -> [SKIP][10] ([i915#3555])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-read:
    - bat-adls-6:         NOTRUN -> [SKIP][11] ([i915#3291]) +2 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/bat-adls-6/igt@prime_vgem@basic-fence-read.html

  
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#15656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15656
  [i915#15931]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15931
  [i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361
  [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732


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

  * Linux: CI_DRM_18742 -> Patchwork_169199v3

  CI-20190529: 20190529
  CI_DRM_18742: 4fbfb18b2b1f241b50813f2e1d654587c6f09a96 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_169199v3: 4fbfb18b2b1f241b50813f2e1d654587c6f09a96 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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

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

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

* Re: [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
  2026-07-01 15:36 ` [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Andi Shyti
@ 2026-07-02  6:10   ` Krzysztof Karas
  0 siblings, 0 replies; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-02  6:10 UTC (permalink / raw)
  To: Andi Shyti
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Joerg Roedel, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

Hi Andi,

thanks for reviewing.

On 2026-07-01 at 17:36:54 +0200, Andi Shyti wrote:
> Hi Krzysztof,
> 
> > Krzysztof Karas (3):
> >   drm/i915/gem: split shared memory allocation table logic
> >   drm/i915/shmem: Count mapped pages in a folio
> 
> Please move the refactoring after the fix. We don't want to
> create a dependency between a fix and a code refactoring, as
> that makes it harder for maintainers to backport the fix.
Sure.

> 
> Thanks,
> Andi
> 
> >   drivers/iommu: Catch scatterlist length overflows
> > 
> >  drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 191 +++++++++++++---------
> >  drivers/iommu/dma-iommu.c                 |  14 +-
> >  2 files changed, 129 insertions(+), 76 deletions(-)
> > 
> > -- 
> > 2.34.1
> > 

-- 
Best Regards,
Krzysztof

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

* Re: [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic
  2026-07-01 14:38   ` Andi Shyti
@ 2026-07-02  6:18     ` Krzysztof Karas
  2026-07-02 12:01       ` Robin Murphy
  0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-02  6:18 UTC (permalink / raw)
  To: Andi Shyti
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy,
	Joerg Roedel, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

Hi Andi,

thanks for reviewing!

On 2026-07-01 at 16:38:11 +0200, Andi Shyti wrote:
> Hi Krzysztof,
> 
> On Wed, Jul 01, 2026 at 10:44:35AM +0000, Krzysztof Karas wrote:
> > shmem_sg_alloc_table is a complex and hard to read function.
> > Split its logic into smaller pieces to improve readability and
> > reduce indentation. Change the main "for" loop into "while" to
> > get rid of obscure iterator "i" and be more explicit in
> > traversing scatterlist.
> 
> any chance we can split this cleanup into smaller pieces?
Yeah, I'll work something out.

> 
> > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
> 
> ...
> 
> > +static struct folio *shmem_shrink_get_folio(struct address_space *mapping,
> > +					    unsigned long folio_index,
> > +					    gfp_t gfp, unsigned int pages_left,
> > +					    struct drm_i915_private *i915)
> > +{
> > +#define MAX_READS 2
> 
> This MAX_READS here is very ugly! Just use 2 and explain it in a
> comment. In the 'if' below you can check out of "if (... || i)"
> and still explain it in a comment.
If we are on the topic of personal preferences, I'd prefer
moving this to a variable instead of leaving a magic number
buried in the code. The comment is unnecessary if you figure out
what this loop does and in the end "2" is just a number somebody
picked way back.

> 
> > +	struct folio *folio;
> > +	unsigned int i;
> > +
> > +	for (i = 0; i < MAX_READS; i++) {
> > +		cond_resched();
> > +		folio = shmem_read_folio_gfp(mapping, folio_index, gfp);
> > +		if (!IS_ERR(folio) || i == MAX_READS - 1)
> > +			return folio;
> > +
> > +		i915_gem_shrink(NULL, i915, 2 * pages_left, NULL,
> 
> /pages_left/page_count/
I mean, sure, but is there a reason for using "count" instead of
"left"?

> 
> > +				I915_SHRINK_BOUND | I915_SHRINK_UNBOUND);
> > +
> 
> ...
> 
> > +	}
> > +
> > +	/* Should never happen */
> > +	WARN_ON_ONCE(1);
> 
> no need.
Okay, I'll remove it.

> 
> Thanks,
> Andi
> 
> > +	return ERR_PTR(-EINVAL);
> > +}

-- 
Best Regards,
Krzysztof

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

* Re: [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
  2026-07-01 11:59   ` Robin Murphy
@ 2026-07-02  6:22     ` Krzysztof Karas
  2026-07-02 12:17       ` Robin Murphy
  0 siblings, 1 reply; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-02  6:22 UTC (permalink / raw)
  To: Robin Murphy
  Cc: intel-gfx, dri-devel, iommu, Joerg Roedel, Will Deacon,
	Andi Shyti, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

Hi Robin,

thanks for a quick response!

On 2026-07-01 at 12:59:29 +0100, Robin Murphy wrote:
> On 01/07/2026 11:44 am, Krzysztof Karas wrote:
> > It is possible, when a very large mapping uses a single
> > 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 previous
> > scatterlist length field.
> 
> Awesome, thanks for figuring it out! Looks like this must date all the way
> back:
> 
> Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging")
Okay, thanks for pinpointing this commit, I'll add the tag in
the next version of this series.

> 
> > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
> > ---
> > v2:
> >   * Address overflows instead of unmapping erroneously mapped
> >   memory (Robin).
> >   * Put this patch last for easier reproduction of the issue.
> > 
> >   drivers/iommu/dma-iommu.c | 14 ++++++++++++--
> >   1 file changed, 12 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> > index 9abaec0703ef..c403057577df 100644
> > --- a/drivers/iommu/dma-iommu.c
> > +++ b/drivers/iommu/dma-iommu.c
> > @@ -1493,8 +1493,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;
> > -			iova_len += pad_len;
> > +			if (overflows_type(prev->length + pad_len, prev->length)) {
> > +				/*
> > +				 * For large mappings spanning multiple GBs we
> > +				 * may not be able to fit all needed padding into
> > +				 * sg->length.
> > +				 */
> > +				ret = -EOVERFLOW;
> > +				goto out_restore_sg;
> > +			} else {
> 
> Nit: we don't really need an "else" after a goto, but it's hardly a big deal
> (however if you did want to respin, note also that the preferred title tag
> here is "iommu/dma: ...").
I'll be making another version anyway, so I can remove the
"else" and change the title :)

> Either way,
> 
> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Thanks!

would this r-b still hold after above minor changes, or would
you prefer to have one final look at the finished change and
then decide whether you give your r-b?

> 
> I'd imagine Joerg can take this as an IOMMU fix, but FWIW if you did want an
> ack to take it through drm-fixes to keep it with the i915 patches, I
> wouldn't foresee any significant risk of conflicts.
> 
> Thanks,
> Robin.
> 
> > +				prev->length += pad_len;
> > +				iova_len += pad_len;
> > +			}
> >   		}
> >   		iova_len += s_length;
> 

-- 
Best Regards,
Krzysztof

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

* ✓ i915.CI.Full: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev3)
  2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (4 preceding siblings ...)
  2026-07-01 15:44 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev3) Patchwork
@ 2026-07-02  6:33 ` Patchwork
  2026-07-09  8:23 ` ✗ i915.CI.BAT: failure for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev4) Patchwork
  6 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-07-02  6:33 UTC (permalink / raw)
  To: Krzysztof Karas; +Cc: intel-gfx

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from CI_DRM_18742_full -> Patchwork_169199v3_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@dmabuf@all-tests:
    - shard-tglu:         NOTRUN -> [SKIP][1] ([i915#15931])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@dmabuf@all-tests.html

  * igt@gem_basic@multigpu-create-close:
    - shard-rkl:          NOTRUN -> [SKIP][2] ([i915#7697])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@gem_basic@multigpu-create-close.html
    - shard-tglu-1:       NOTRUN -> [SKIP][3] ([i915#7697])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@gem_basic@multigpu-create-close.html

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - shard-glk:          NOTRUN -> [INCOMPLETE][4] ([i915#13356] / [i915#16466]) +1 other test incomplete
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk2/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_exec_balancer@parallel:
    - shard-tglu:         NOTRUN -> [SKIP][5] ([i915#4525]) +1 other test skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@gem_exec_balancer@parallel.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-rkl:          NOTRUN -> [SKIP][6] ([i915#4525]) +1 other test skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_balancer@parallel-out-fence:
    - shard-tglu-1:       NOTRUN -> [SKIP][7] ([i915#4525])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@gem_exec_balancer@parallel-out-fence.html

  * igt@gem_exec_reloc@basic-wc-read-noreloc:
    - shard-dg2:          NOTRUN -> [SKIP][8] ([i915#3281])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@gem_exec_reloc@basic-wc-read-noreloc.html

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

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-tglu:         NOTRUN -> [SKIP][10] ([i915#4613] / [i915#7582])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-rkl:          NOTRUN -> [SKIP][11] ([i915#4613]) +2 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gem_lmem_swapping@heavy-verify-random.html

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

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

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

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

  * igt@gem_readwrite@read-write:
    - shard-rkl:          NOTRUN -> [SKIP][16] ([i915#3282]) +3 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@gem_readwrite@read-write.html

  * igt@gem_set_tiling_vs_blt@untiled-to-tiled:
    - shard-rkl:          NOTRUN -> [SKIP][17] ([i915#8411])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html

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

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-tglu:         NOTRUN -> [SKIP][19] ([i915#3297] / [i915#3323])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@unsync-unmap-after-close:
    - shard-rkl:          NOTRUN -> [SKIP][20] ([i915#3297])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@gem_userptr_blits@unsync-unmap-after-close.html
    - shard-tglu-1:       NOTRUN -> [SKIP][21] ([i915#3297])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@gem_userptr_blits@unsync-unmap-after-close.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-dg2:          [PASS][22] -> [ABORT][23] ([i915#15152])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-1/igt@gem_workarounds@suspend-resume-fd.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-10/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - shard-tglu-1:       NOTRUN -> [SKIP][24] ([i915#2527] / [i915#2856])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@gen9_exec_parse@batch-invalid-length.html

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

  * igt@gen9_exec_parse@cmd-crossing-page:
    - shard-tglu:         NOTRUN -> [SKIP][26] ([i915#2527] / [i915#2856]) +2 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@gen9_exec_parse@cmd-crossing-page.html

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

  * igt@i915_query@test-query-geometry-subslices:
    - shard-tglu:         NOTRUN -> [SKIP][28] ([i915#5723])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@i915_query@test-query-geometry-subslices.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - shard-dg2:          NOTRUN -> [SKIP][29] ([i915#4212])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_async_flips@async-flip-suspend-resume:
    - shard-rkl:          [PASS][30] -> [INCOMPLETE][31] ([i915#12761])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_async_flips@async-flip-suspend-resume.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/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][32] ([i915#12761])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-rkl:          NOTRUN -> [SKIP][33] ([i915#9531])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
    - shard-tglu-1:       NOTRUN -> [SKIP][34] ([i915#9531])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-0:
    - shard-rkl:          NOTRUN -> [SKIP][35] ([i915#5286]) +3 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_big_fb@4-tiled-64bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-180:
    - shard-tglu:         NOTRUN -> [SKIP][36] ([i915#5286]) +3 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html

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

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][38] ([i915#3828]) +1 other test skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html

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

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][40] ([i915#3638])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

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

  * igt@kms_ccs@bad-pixel-format-yf-tiled-ccs@pipe-c-hdmi-a-2:
    - shard-glk10:        NOTRUN -> [SKIP][42] +140 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk10/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][43] ([i915#12313]) +1 other test skip
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][44] ([i915#14098] / [i915#6095]) +26 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][45] ([i915#10307] / [i915#6095]) +88 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/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-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][46] ([i915#6095]) +34 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][47] ([i915#6095]) +37 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][48] ([i915#6095]) +11 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-7/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-3.html

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

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-tglu-1:       NOTRUN -> [SKIP][50] ([i915#6095]) +9 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_cdclk@mode-transition:
    - shard-rkl:          NOTRUN -> [SKIP][51] ([i915#3742])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_cdclk@mode-transition.html
    - shard-tglu-1:       NOTRUN -> [SKIP][52] ([i915#3742])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_cdclk@mode-transition.html

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

  * igt@kms_chamelium_audio@dp-audio:
    - shard-tglu:         NOTRUN -> [SKIP][54] ([i915#11151] / [i915#7828]) +5 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_chamelium_audio@dp-audio.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d:
    - shard-rkl:          NOTRUN -> [SKIP][55] ([i915#16471])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d.html
    - shard-tglu-1:       NOTRUN -> [SKIP][56] ([i915#16471])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4:
    - shard-tglu:         NOTRUN -> [SKIP][57] ([i915#16471])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4.html

  * igt@kms_chamelium_edid@vga-edid-read:
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#11151] / [i915#7828]) +3 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_chamelium_edid@vga-edid-read.html

  * igt@kms_chamelium_hpd@hdmi-hpd-fast:
    - shard-tglu-1:       NOTRUN -> [SKIP][59] ([i915#11151] / [i915#7828])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_chamelium_hpd@hdmi-hpd-fast.html

  * igt@kms_chamelium_hpd@vga-hpd-without-ddc:
    - shard-dg2:          NOTRUN -> [SKIP][60] ([i915#11151] / [i915#7828])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_chamelium_hpd@vga-hpd-without-ddc.html

  * igt@kms_color@deep-color:
    - shard-tglu:         NOTRUN -> [SKIP][61] ([i915#3555] / [i915#9979])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_color@deep-color.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][62] ([i915#15865])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-tglu:         NOTRUN -> [SKIP][63] ([i915#15865]) +3 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_content_protection@atomic-hdcp14.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][64] ([i915#15330] / [i915#3116])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-3:
    - shard-dg2:          NOTRUN -> [FAIL][65] ([i915#7173])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-10/igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-3.html

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

  * igt@kms_cursor_crc@cursor-random-512x170:
    - shard-tglu:         NOTRUN -> [SKIP][67] ([i915#13049]) +1 other test skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_cursor_crc@cursor-random-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][68] ([i915#13049]) +1 other test skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-rkl:          [PASS][69] -> [INCOMPLETE][70] ([i915#12358] / [i915#14152])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_cursor_crc@cursor-suspend.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][71] ([i915#12358] / [i915#14152])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-rkl:          NOTRUN -> [SKIP][72] ([i915#4103])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

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

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

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-tglu:         NOTRUN -> [SKIP][75] ([i915#13749])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-rkl:          NOTRUN -> [SKIP][76] ([i915#13748])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_dp_link_training@uhbr-mst.html
    - shard-tglu-1:       NOTRUN -> [SKIP][77] ([i915#13748])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dsc@dsc-fractional-bpp-bigjoiner:
    - shard-tglu:         NOTRUN -> [SKIP][78] ([i915#16361]) +3 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-rkl:          NOTRUN -> [SKIP][79] ([i915#16361]) +2 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_dsc@dsc-with-output-formats.html

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

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][81] ([i915#3955]) +1 other test skip
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_fbcon_fbt@psr-suspend.html
    - shard-tglu-1:       NOTRUN -> [SKIP][82] ([i915#3469])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@psr2:
    - shard-tglu:         NOTRUN -> [SKIP][83] ([i915#658])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-blocking-absolute-wf_vblank:
    - shard-tglu:         NOTRUN -> [SKIP][84] ([i915#3637] / [i915#9934]) +7 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_flip@2x-blocking-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-modeset-vs-hang:
    - shard-dg2:          NOTRUN -> [SKIP][85] ([i915#9934])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html

  * igt@kms_flip@2x-flip-vs-panning-interruptible:
    - shard-tglu-1:       NOTRUN -> [SKIP][86] ([i915#3637] / [i915#9934])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_flip@2x-flip-vs-panning-interruptible.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-glk11:        NOTRUN -> [INCOMPLETE][87] ([i915#12745] / [i915#4839])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk11/igt@kms_flip@2x-flip-vs-suspend.html

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

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

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

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][91] ([i915#15643]) +1 other test skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][92] ([i915#15643]) +1 other test skip
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][93] ([i915#15990] / [i915#8708])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][94] ([i915#1825]) +3 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][95] ([i915#15989]) +15 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt.html
    - shard-tglu-1:       NOTRUN -> [SKIP][96] ([i915#15989]) +6 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-1p-primscrn-pri-indfb-draw-mmap-gtt.html

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

  * igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([i915#15990])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbchdr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen:
    - shard-tglu:         NOTRUN -> [SKIP][99] +69 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][100] ([i915#15102] / [i915#3023]) +7 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

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

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-render:
    - shard-dg2:          NOTRUN -> [SKIP][102] ([i915#15102]) +1 other test skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-rkl:          NOTRUN -> [SKIP][103] ([i915#15102]) +20 other tests skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-shrfb-draw-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][104] ([i915#15989]) +16 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@hdr-1p-rte:
    - shard-dg2:          NOTRUN -> [SKIP][105] ([i915#15989]) +1 other test skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_frontbuffer_tracking@hdr-1p-rte.html

  * igt@kms_frontbuffer_tracking@hdr-2p-primscrn-shrfb-pgflip-blt:
    - shard-tglu-1:       NOTRUN -> [SKIP][106] +28 other tests skip
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][107] ([i915#15991])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-wc:
    - shard-rkl:          [PASS][108] -> [SKIP][109] ([i915#15989]) +5 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-wc.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_frontbuffer_tracking@hdr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@hdr-rgb565-draw-mmap-cpu:
    - shard-dg2:          [PASS][110] -> [SKIP][111] ([i915#15989]) +3 other tests skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-10/igt@kms_frontbuffer_tracking@hdr-rgb565-draw-mmap-cpu.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-7/igt@kms_frontbuffer_tracking@hdr-rgb565-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@hdr-suspend:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][112] ([i915#16056])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk10/igt@kms_frontbuffer_tracking@hdr-suspend.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][113] ([i915#15102]) +13 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-glk11:        NOTRUN -> [SKIP][114] +93 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk11/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move:
    - shard-dg2:          NOTRUN -> [SKIP][115] ([i915#15991] / [i915#5354]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@psrhdr-farfromfence-mmap-gtt:
    - shard-tglu:         NOTRUN -> [SKIP][116] ([i915#15102]) +35 other tests skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_frontbuffer_tracking@psrhdr-farfromfence-mmap-gtt.html

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

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

  * igt@kms_hdr@static-swap:
    - shard-rkl:          NOTRUN -> [SKIP][119] ([i915#3555] / [i915#8228]) +1 other test skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_hdr@static-swap.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][120] ([i915#15460])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_joiner@basic-big-joiner.html
    - shard-tglu-1:       NOTRUN -> [SKIP][121] ([i915#15460])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][122] ([i915#15460])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][123] ([i915#15458])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-tglu:         NOTRUN -> [SKIP][124] ([i915#15815])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_pipe_stress@stress-xrgb8888-yftiled:
    - shard-tglu:         NOTRUN -> [SKIP][125] ([i915#14712])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html

  * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping:
    - shard-rkl:          NOTRUN -> [SKIP][126] ([i915#15709]) +1 other test skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping.html
    - shard-tglu-1:       NOTRUN -> [SKIP][127] ([i915#15709])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping:
    - shard-tglu:         NOTRUN -> [SKIP][128] ([i915#15709]) +2 other tests skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-5:
    - shard-rkl:          NOTRUN -> [SKIP][129] ([i915#16386]) +1 other test skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-5.html

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

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-rkl:          NOTRUN -> [SKIP][131] ([i915#13958])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_plane_multiple@2x-tiling-none.html

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

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][133] ([i915#15329]) +9 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html

  * igt@kms_pm_backlight@fade:
    - shard-tglu-1:       NOTRUN -> [SKIP][134] ([i915#12343] / [i915#9812])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][135] ([i915#12343] / [i915#5354]) +1 other test skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-rkl:          NOTRUN -> [SKIP][136] ([i915#15073])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
    - shard-tglu-1:       NOTRUN -> [SKIP][137] ([i915#15073])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-dg2:          [PASS][138] -> [SKIP][139] ([i915#15073]) +3 other tests skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-8/igt@kms_pm_rpm@modeset-lpsp-stress.html
    - shard-dg1:          [PASS][140] -> [SKIP][141] ([i915#15073])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg1-15/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg1-16/igt@kms_pm_rpm@modeset-lpsp-stress.html

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

  * igt@kms_prime@d3hot:
    - shard-rkl:          NOTRUN -> [SKIP][143] ([i915#6524])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_prime@d3hot.html

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

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf:
    - shard-dg2:          NOTRUN -> [SKIP][145] ([i915#11520])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-glk11:        NOTRUN -> [SKIP][146] ([i915#11520]) +2 other tests skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk11/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf:
    - shard-glk:          NOTRUN -> [SKIP][147] ([i915#11520]) +2 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
    - shard-rkl:          NOTRUN -> [SKIP][148] ([i915#11520]) +4 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
    - shard-tglu-1:       NOTRUN -> [SKIP][149] ([i915#11520]) +1 other test skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
    - shard-glk10:        NOTRUN -> [SKIP][150] ([i915#11520]) +4 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk10/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-dg2:          NOTRUN -> [SKIP][151] ([i915#9683])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-rkl:          NOTRUN -> [SKIP][152] ([i915#9683])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_psr2_su@page_flip-p010.html
    - shard-tglu-1:       NOTRUN -> [SKIP][153] ([i915#9683])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@fbc-pr-sprite-plane-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][154] ([i915#1072] / [i915#9732]) +12 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_psr@fbc-pr-sprite-plane-onoff.html

  * igt@kms_psr@fbc-psr2-cursor-mmap-gtt:
    - shard-glk:          NOTRUN -> [SKIP][155] +169 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk2/igt@kms_psr@fbc-psr2-cursor-mmap-gtt.html

  * igt@kms_psr@pr-sprite-mmap-cpu:
    - shard-tglu:         NOTRUN -> [SKIP][156] ([i915#9732]) +13 other tests skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_psr@pr-sprite-mmap-cpu.html

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

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-rkl:          NOTRUN -> [SKIP][158] ([i915#15949])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

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

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

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

  * igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free:
    - shard-dg2:          NOTRUN -> [ABORT][163] ([i915#13179]) +1 other test abort
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-5/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#3555]) +1 other test skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_setmode@invalid-clone-exclusive-crtc.html
    - shard-tglu-1:       NOTRUN -> [SKIP][165] ([i915#3555]) +1 other test skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-tglu:         NOTRUN -> [SKIP][166] ([i915#8623])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vblank@ts-continuation-suspend:
    - shard-rkl:          [PASS][167] -> [ABORT][168] ([i915#15132])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-5/igt@kms_vblank@ts-continuation-suspend.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-1/igt@kms_vblank@ts-continuation-suspend.html

  * igt@kms_vblank@ts-continuation-suspend@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [ABORT][169] ([i915#15132])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-1/igt@kms_vblank@ts-continuation-suspend@pipe-c-hdmi-a-2.html

  * igt@kms_vrr@max-min:
    - shard-tglu:         NOTRUN -> [SKIP][170] ([i915#9906])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-10/igt@kms_vrr@max-min.html

  * igt@perf_pmu@module-unload:
    - shard-glk:          NOTRUN -> [ABORT][171] ([i915#15778])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk9/igt@perf_pmu@module-unload.html
    - shard-tglu-1:       NOTRUN -> [INCOMPLETE][172] ([i915#13029] / [i915#13520])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-1/igt@perf_pmu@module-unload.html

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

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

  
#### Possible fixes ####

  * igt@gem_exec_big@single:
    - shard-tglu:         [FAIL][175] ([i915#15816]) -> [PASS][176]
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-tglu-10/igt@gem_exec_big@single.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-tglu-4/igt@gem_exec_big@single.html

  * igt@i915_suspend@forcewake:
    - shard-rkl:          [INCOMPLETE][177] ([i915#4817]) -> [PASS][178]
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@i915_suspend@forcewake.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@i915_suspend@forcewake.html

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

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-rkl:          [INCOMPLETE][181] ([i915#16276] / [i915#6113]) -> [PASS][182]
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-3/igt@kms_flip@flip-vs-suspend-interruptible.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-pwrite:
    - shard-dg2:          [SKIP][183] ([i915#15989]) -> [PASS][184] +5 other tests pass
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-1/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-pwrite.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-10/igt@kms_frontbuffer_tracking@hdr-1p-offscreen-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@hdr-1p-pri-indfb-multidraw:
    - shard-rkl:          [SKIP][185] ([i915#15989]) -> [PASS][186] +4 other tests pass
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-5/igt@kms_frontbuffer_tracking@hdr-1p-pri-indfb-multidraw.html
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-1/igt@kms_frontbuffer_tracking@hdr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@hdr-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-glk:          [SKIP][187] -> [PASS][188] +24 other tests pass
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-glk4/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-cur-indfb-draw-mmap-wc.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk8/igt@kms_frontbuffer_tracking@hdr-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-dg1:          [SKIP][189] ([i915#15073]) -> [PASS][190] +2 other tests pass
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg1-18/igt@kms_pm_rpm@dpms-lpsp.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg1-14/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-dg2:          [SKIP][191] ([i915#15073]) -> [PASS][192]
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-4/igt@kms_pm_rpm@dpms-non-lpsp.html
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-8/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-rkl:          [SKIP][193] ([i915#15073]) -> [PASS][194]
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-3/igt@kms_pm_rpm@modeset-lpsp.html
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@perf_pmu@busy-double-start@ccs0:
    - shard-mtlp:         [FAIL][195] ([i915#4349]) -> [PASS][196]
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-mtlp-5/igt@perf_pmu@busy-double-start@ccs0.html
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-mtlp-6/igt@perf_pmu@busy-double-start@ccs0.html

  
#### Warnings ####

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-rkl:          [SKIP][197] ([i915#14544] / [i915#6335]) -> [SKIP][198] ([i915#6335])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@gem_create@create-ext-cpu-access-big.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-rkl:          [SKIP][199] ([i915#14544] / [i915#280]) -> [SKIP][200] ([i915#280])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@gem_ctx_sseu@invalid-args.html
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_exec_capture@capture-recoverable:
    - shard-rkl:          [SKIP][201] ([i915#6344]) -> [SKIP][202] ([i915#14544] / [i915#6344])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@gem_exec_capture@capture-recoverable.html
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@gem_exec_capture@capture-recoverable.html

  * igt@gem_exec_reloc@basic-gtt-cpu-active:
    - shard-rkl:          [SKIP][203] ([i915#14544] / [i915#3281]) -> [SKIP][204] ([i915#3281]) +3 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-cpu-active.html
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gem_exec_reloc@basic-gtt-cpu-active.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-rkl:          [SKIP][205] ([i915#4613]) -> [SKIP][206] ([i915#14544] / [i915#4613])
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@gem_lmem_swapping@parallel-multi.html
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_set_tiling_vs_blt@tiled-to-tiled:
    - shard-rkl:          [SKIP][207] ([i915#14544] / [i915#8411]) -> [SKIP][208] ([i915#8411])
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html

  * igt@gem_userptr_blits@coherency-unsync:
    - shard-rkl:          [SKIP][209] ([i915#14544] / [i915#3297]) -> [SKIP][210] ([i915#3297])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@gem_userptr_blits@coherency-unsync.html
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gem_userptr_blits@coherency-unsync.html

  * igt@gem_userptr_blits@forbidden-operations:
    - shard-rkl:          [SKIP][211] ([i915#14544] / [i915#3282] / [i915#3297]) -> [SKIP][212] ([i915#3282] / [i915#3297])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@gem_userptr_blits@forbidden-operations.html
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gem_userptr_blits@forbidden-operations.html

  * igt@gen9_exec_parse@unaligned-jump:
    - shard-rkl:          [SKIP][213] ([i915#14544] / [i915#2527]) -> [SKIP][214] ([i915#2527])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@gen9_exec_parse@unaligned-jump.html
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@gen9_exec_parse@unaligned-jump.html

  * igt@i915_pm_freq_mult@media-freq@gt0:
    - shard-rkl:          [SKIP][215] ([i915#14544] / [i915#6590]) -> [SKIP][216] ([i915#6590]) +1 other test skip
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@i915_pm_freq_mult@media-freq@gt0.html
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@i915_pm_freq_mult@media-freq@gt0.html

  * igt@intel_hwmon@hwmon-write:
    - shard-rkl:          [SKIP][217] ([i915#14544] / [i915#7707]) -> [SKIP][218] ([i915#7707])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@intel_hwmon@hwmon-write.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@intel_hwmon@hwmon-write.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-180:
    - shard-rkl:          [SKIP][219] ([i915#14544] / [i915#5286]) -> [SKIP][220] ([i915#5286]) +3 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_big_fb@4-tiled-32bpp-rotate-180.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_big_fb@4-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-rkl:          [SKIP][221] ([i915#5286]) -> [SKIP][222] ([i915#14544] / [i915#5286])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-dg1:          [SKIP][223] ([i915#4423] / [i915#4538] / [i915#5286]) -> [SKIP][224] ([i915#4538] / [i915#5286])
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg1-17/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg1-18/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-rkl:          [SKIP][225] ([i915#14544] / [i915#3638]) -> [SKIP][226] ([i915#3638])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs:
    - shard-rkl:          [SKIP][227] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][228] ([i915#14098] / [i915#6095]) +9 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][229] ([i915#14544] / [i915#6095]) -> [SKIP][230] ([i915#6095]) +8 other tests skip
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d:
    - shard-rkl:          [SKIP][231] ([i915#14544] / [i915#16471]) -> [SKIP][232] ([i915#16471]) +1 other test skip
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d.html

  * igt@kms_chamelium_hpd@dp-hpd-fast:
    - shard-rkl:          [SKIP][233] ([i915#11151] / [i915#7828]) -> [SKIP][234] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_chamelium_hpd@dp-hpd-fast.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_chamelium_hpd@dp-hpd-fast.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - shard-rkl:          [SKIP][235] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][236] ([i915#11151] / [i915#7828]) +2 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-fast.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_content_protection@dp-mst-type-1-suspend-resume:
    - shard-rkl:          [SKIP][237] ([i915#14544] / [i915#15330]) -> [SKIP][238] ([i915#15330])
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html

  * igt@kms_content_protection@lic-type-0-hdcp14:
    - shard-dg2:          [SKIP][239] ([i915#15865]) -> [FAIL][240] ([i915#7173])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-1/igt@kms_content_protection@lic-type-0-hdcp14.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-10/igt@kms_content_protection@lic-type-0-hdcp14.html

  * igt@kms_cursor_crc@cursor-offscreen-512x170:
    - shard-dg2:          [SKIP][241] ([i915#13049] / [i915#3359]) -> [SKIP][242] ([i915#13049])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-10/igt@kms_cursor_crc@cursor-offscreen-512x170.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-7/igt@kms_cursor_crc@cursor-offscreen-512x170.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-rkl:          [SKIP][243] ([i915#13049]) -> [SKIP][244] ([i915#13049] / [i915#14544])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_cursor_crc@cursor-random-512x512.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
    - shard-rkl:          [SKIP][245] ([i915#14544]) -> [SKIP][246] +24 other tests skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html

  * igt@kms_dp_link_training@non-uhbr-sst:
    - shard-rkl:          [SKIP][247] ([i915#13749] / [i915#14544]) -> [SKIP][248] ([i915#13749])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_dp_link_training@non-uhbr-sst.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_dp_link_training@non-uhbr-sst.html

  * igt@kms_dsc@dsc-basic:
    - shard-rkl:          [SKIP][249] ([i915#16361]) -> [SKIP][250] ([i915#14544] / [i915#16361])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_dsc@dsc-basic.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_dsc@dsc-basic.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc-ultrajoiner:
    - shard-rkl:          [SKIP][251] ([i915#14544] / [i915#16361]) -> [SKIP][252] ([i915#16361])
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_dsc@dsc-with-output-formats-with-bpc-ultrajoiner.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_dsc@dsc-with-output-formats-with-bpc-ultrajoiner.html

  * igt@kms_flip@2x-blocking-wf_vblank:
    - shard-rkl:          [SKIP][253] ([i915#14544] / [i915#9934]) -> [SKIP][254] ([i915#9934])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_flip@2x-blocking-wf_vblank.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_flip@2x-blocking-wf_vblank.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-glk:          [INCOMPLETE][255] ([i915#12745] / [i915#4839] / [i915#6113]) -> [INCOMPLETE][256] ([i915#12314] / [i915#12745] / [i915#4839])
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-glk3/igt@kms_flip@flip-vs-suspend-interruptible.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk8/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1:
    - shard-glk:          [INCOMPLETE][257] ([i915#12745]) -> [INCOMPLETE][258] ([i915#12314] / [i915#12745])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-glk3/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-glk8/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling:
    - shard-rkl:          [SKIP][259] ([i915#14544] / [i915#15643]) -> [SKIP][260] ([i915#15643]) +1 other test skip
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][261] ([i915#14544] / [i915#1825]) -> [SKIP][262] ([i915#1825]) +1 other test skip
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-rkl:          [SKIP][263] ([i915#1825]) -> [SKIP][264] ([i915#14544] / [i915#1825])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
    - shard-dg2:          [SKIP][265] ([i915#15102]) -> [SKIP][266] ([i915#10433] / [i915#15102]) +1 other test skip
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][267] ([i915#14544] / [i915#15102]) -> [SKIP][268] ([i915#15102]) +9 other tests skip
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite:
    - shard-rkl:          [SKIP][269] ([i915#15102] / [i915#3023]) -> [SKIP][270] ([i915#14544] / [i915#15102] / [i915#3023]) +3 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
    - shard-rkl:          [SKIP][271] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][272] ([i915#15102] / [i915#3023]) +6 other tests skip
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
    - shard-dg2:          [SKIP][273] ([i915#10433] / [i915#15102]) -> [SKIP][274] ([i915#15102]) +3 other tests skip
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][275] ([i915#15102]) -> [SKIP][276] ([i915#14544] / [i915#15102]) +2 other tests skip
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-draw-mmap-gtt.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][277] -> [SKIP][278] ([i915#14544]) +9 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-mtlp:         [SKIP][279] ([i915#12713] / [i915#16490]) -> [SKIP][280] ([i915#1187] / [i915#12713] / [i915#16490])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-mtlp-3/igt@kms_hdr@brightness-with-hdr.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-mtlp-1/igt@kms_hdr@brightness-with-hdr.html
    - shard-rkl:          [SKIP][281] ([i915#1187] / [i915#12713]) -> [SKIP][282] ([i915#12713])
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-3/igt@kms_hdr@brightness-with-hdr.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-8/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier-source-clamping:
    - shard-rkl:          [SKIP][283] ([i915#14544] / [i915#15709]) -> [SKIP][284] ([i915#15709])
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier-source-clamping.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier:
    - shard-rkl:          [SKIP][285] ([i915#15709]) -> [SKIP][286] ([i915#14544] / [i915#15709])
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html

  * igt@kms_plane_multiple@2x-tiling-x:
    - shard-rkl:          [SKIP][287] ([i915#13958] / [i915#14544]) -> [SKIP][288] ([i915#13958])
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-x.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_plane_multiple@2x-tiling-x.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-rkl:          [SKIP][289] ([i915#14544] / [i915#15739]) -> [SKIP][290] ([i915#15739])
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_pm_dc@dc9-dpms.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-dg1:          [SKIP][291] ([i915#9340]) -> [SKIP][292] ([i915#3828])
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg1-19/igt@kms_pm_lpsp@kms-lpsp.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg1-15/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf:
    - shard-rkl:          [SKIP][293] ([i915#11520] / [i915#14544]) -> [SKIP][294] ([i915#11520]) +1 other test skip
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-rkl:          [SKIP][295] ([i915#14544] / [i915#9683]) -> [SKIP][296] ([i915#9683])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_psr2_su@page_flip-nv12.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr@psr-cursor-mmap-cpu:
    - shard-rkl:          [SKIP][297] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][298] ([i915#1072] / [i915#9732]) +2 other tests skip
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_psr@psr-cursor-mmap-cpu.html
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_psr@psr-cursor-mmap-cpu.html

  * igt@kms_psr@psr2-cursor-plane-move:
    - shard-rkl:          [SKIP][299] ([i915#1072] / [i915#9732]) -> [SKIP][300] ([i915#1072] / [i915#14544] / [i915#9732]) +3 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_psr@psr2-cursor-plane-move.html
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_psr@psr2-cursor-plane-move.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-rkl:          [SKIP][301] ([i915#14544] / [i915#15949]) -> [SKIP][302] ([i915#15949])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-dg2:          [SKIP][303] ([i915#15867] / [i915#5190]) -> [SKIP][304] ([i915#12755] / [i915#15867] / [i915#5190])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-dg2-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-dg2-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-rkl:          [SKIP][305] ([i915#14544] / [i915#5289]) -> [SKIP][306] ([i915#5289])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-rkl:          [SKIP][307] ([i915#14544] / [i915#3555]) -> [SKIP][308] ([i915#3555]) +2 other tests skip
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@kms_setmode@basic-clone-single-crtc.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-rkl:          [SKIP][309] ([i915#9906]) -> [SKIP][310] ([i915#14544] / [i915#9906])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@kms_vrr@seamless-rr-switch-virtual.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - shard-rkl:          [SKIP][311] ([i915#2436]) -> [SKIP][312] ([i915#14544] / [i915#2436])
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-2/igt@perf@gen8-unprivileged-single-ctx-counters.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-6/igt@perf@gen8-unprivileged-single-ctx-counters.html

  * igt@perf@unprivileged-single-ctx-counters:
    - shard-rkl:          [SKIP][313] ([i915#14544] / [i915#2433]) -> [SKIP][314] ([i915#2433])
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18742/shard-rkl-6/igt@perf@unprivileged-single-ctx-counters.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v3/shard-rkl-3/igt@perf@unprivileged-single-ctx-counters.html

  
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [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#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
  [i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
  [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#13520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13520
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13781
  [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#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132
  [i915#15152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15152
  [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
  [i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
  [i915#15733]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15733
  [i915#15739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15739
  [i915#15778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15778
  [i915#15815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15815
  [i915#15816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15816
  [i915#15865]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15865
  [i915#15867]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15867
  [i915#15931]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15931
  [i915#15949]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15949
  [i915#15989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15989
  [i915#15990]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15990
  [i915#15991]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15991
  [i915#16056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16056
  [i915#16276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16276
  [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#16466]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16466
  [i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471
  [i915#16490]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16490
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#2433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2433
  [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#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3359
  [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
  [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#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [i915#3955]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3955
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [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#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [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#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113
  [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
  [i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6590]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6590
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7582
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [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#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934
  [i915#9979]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9979


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

  * Linux: CI_DRM_18742 -> Patchwork_169199v3

  CI-20190529: 20190529
  CI_DRM_18742: 4fbfb18b2b1f241b50813f2e1d654587c6f09a96 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8989: a8e2cbd2854d7980a9eccecc6e0c801d0824b88f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_169199v3: 4fbfb18b2b1f241b50813f2e1d654587c6f09a96 @ 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_169199v3/index.html

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

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

* Re: [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic
  2026-07-02  6:18     ` Krzysztof Karas
@ 2026-07-02 12:01       ` Robin Murphy
  0 siblings, 0 replies; 19+ messages in thread
From: Robin Murphy @ 2026-07-02 12:01 UTC (permalink / raw)
  To: Krzysztof Karas, Andi Shyti
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Joerg Roedel,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

On 02/07/2026 7:18 am, Krzysztof Karas wrote:
> Hi Andi,
> 
> thanks for reviewing!
> 
> On 2026-07-01 at 16:38:11 +0200, Andi Shyti wrote:
>> Hi Krzysztof,
>>
>> On Wed, Jul 01, 2026 at 10:44:35AM +0000, Krzysztof Karas wrote:
>>> shmem_sg_alloc_table is a complex and hard to read function.
>>> Split its logic into smaller pieces to improve readability and
>>> reduce indentation. Change the main "for" loop into "while" to
>>> get rid of obscure iterator "i" and be more explicit in
>>> traversing scatterlist.
>>
>> any chance we can split this cleanup into smaller pieces?
> Yeah, I'll work something out.
> 
>>
>>> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
>>
>> ...
>>
>>> +static struct folio *shmem_shrink_get_folio(struct address_space *mapping,
>>> +					    unsigned long folio_index,
>>> +					    gfp_t gfp, unsigned int pages_left,
>>> +					    struct drm_i915_private *i915)
>>> +{
>>> +#define MAX_READS 2
>>
>> This MAX_READS here is very ugly! Just use 2 and explain it in a
>> comment. In the 'if' below you can check out of "if (... || i)"
>> and still explain it in a comment.
> If we are on the topic of personal preferences, I'd prefer
> moving this to a variable instead of leaving a magic number
> buried in the code. The comment is unnecessary if you figure out
> what this loop does and in the end "2" is just a number somebody
> picked way back.

FWIW since I'm looking at the thread - indeed if it's just a retry loop 
and the actual index value isn't significant, then often a count-down 
loop can be the most self-explanatory, e.g.:

	int retries = 2;

	while (retries--) {
		...
	}

Or perhaps in this case:

	do {
		folio = shmem_read_folio();
		if (IS_ERR(folio))
			i915_gem_shrink();
	while (!IS_ERR(folio) && --retries);
	return folio;

Cheers,
Robin.

>>
>>> +	struct folio *folio;
>>> +	unsigned int i;
>>> +
>>> +	for (i = 0; i < MAX_READS; i++) {
>>> +		cond_resched();
>>> +		folio = shmem_read_folio_gfp(mapping, folio_index, gfp);
>>> +		if (!IS_ERR(folio) || i == MAX_READS - 1)
>>> +			return folio;
>>> +
>>> +		i915_gem_shrink(NULL, i915, 2 * pages_left, NULL,
>>
>> /pages_left/page_count/
> I mean, sure, but is there a reason for using "count" instead of
> "left"?
> 
>>
>>> +				I915_SHRINK_BOUND | I915_SHRINK_UNBOUND);
>>> +
>>
>> ...
>>
>>> +	}
>>> +
>>> +	/* Should never happen */
>>> +	WARN_ON_ONCE(1);
>>
>> no need.
> Okay, I'll remove it.
> 
>>
>> Thanks,
>> Andi
>>
>>> +	return ERR_PTR(-EINVAL);
>>> +}
> 


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

* Re: [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
  2026-07-02  6:22     ` Krzysztof Karas
@ 2026-07-02 12:17       ` Robin Murphy
  0 siblings, 0 replies; 19+ messages in thread
From: Robin Murphy @ 2026-07-02 12:17 UTC (permalink / raw)
  To: Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Joerg Roedel, Will Deacon,
	Andi Shyti, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

On 02/07/2026 7:22 am, Krzysztof Karas wrote:
> Hi Robin,
> 
> thanks for a quick response!
> 
> On 2026-07-01 at 12:59:29 +0100, Robin Murphy wrote:
>> On 01/07/2026 11:44 am, Krzysztof Karas wrote:
>>> It is possible, when a very large mapping uses a single
>>> 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 previous
>>> scatterlist length field.
>>
>> Awesome, thanks for figuring it out! Looks like this must date all the way
>> back:
>>
>> Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging")
> Okay, thanks for pinpointing this commit, I'll add the tag in
> the next version of this series.
> 
>>
>>> Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
>>> ---
>>> v2:
>>>    * Address overflows instead of unmapping erroneously mapped
>>>    memory (Robin).
>>>    * Put this patch last for easier reproduction of the issue.
>>>
>>>    drivers/iommu/dma-iommu.c | 14 ++++++++++++--
>>>    1 file changed, 12 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
>>> index 9abaec0703ef..c403057577df 100644
>>> --- a/drivers/iommu/dma-iommu.c
>>> +++ b/drivers/iommu/dma-iommu.c
>>> @@ -1493,8 +1493,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;
>>> -			iova_len += pad_len;
>>> +			if (overflows_type(prev->length + pad_len, prev->length)) {
>>> +				/*
>>> +				 * For large mappings spanning multiple GBs we
>>> +				 * may not be able to fit all needed padding into
>>> +				 * sg->length.
>>> +				 */
>>> +				ret = -EOVERFLOW;
>>> +				goto out_restore_sg;
>>> +			} else {
>>
>> Nit: we don't really need an "else" after a goto, but it's hardly a big deal
>> (however if you did want to respin, note also that the preferred title tag
>> here is "iommu/dma: ...").
> I'll be making another version anyway, so I can remove the
> "else" and change the title :)

Cool :)

>> Either way,
>>
>> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
> Thanks!
> 
> would this r-b still hold after above minor changes, or would
> you prefer to have one final look at the finished change and
> then decide whether you give your r-b?

Indeed if it's just those tweaks then feel free to keep it, that's 
usually what I mean by "either way".

Cheers,
Robin.

> 
>>
>> I'd imagine Joerg can take this as an IOMMU fix, but FWIW if you did want an
>> ack to take it through drm-fixes to keep it with the i915 patches, I
>> wouldn't foresee any significant risk of conflicts.
>>
>> Thanks,
>> Robin.
>>
>>> +				prev->length += pad_len;
>>> +				iova_len += pad_len;
>>> +			}
>>>    		}
>>>    		iova_len += s_length;
>>
> 


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

* Re: [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
       [not found]   ` <20260703162236.GX7525@ziepe.ca>
@ 2026-07-03 18:58     ` Robin Murphy
       [not found]       ` <20260703203502.GC1978949@ziepe.ca>
  0 siblings, 1 reply; 19+ messages in thread
From: Robin Murphy @ 2026-07-03 18:58 UTC (permalink / raw)
  To: Jason Gunthorpe, Krzysztof Karas
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Joerg Roedel,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

On 03/07/2026 5:22 pm, Jason Gunthorpe wrote:
> On Wed, Jul 01, 2026 at 10:44:37AM +0000, Krzysztof Karas wrote:
>> It is possible, when a very large mapping uses a single
>> 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 previous
>> scatterlist length field.
> 
> Urk, this is unfortunate, it means we cannot map certain kinds of
> scatterlists? Meaning there is a condition that makes a scatterlist
> ill formed?
> 
> This seems like something that needs to be more clearly documented and
> we need to ensure at least the common scatterlist builders don't hit
> it..

Well, it's taken 10 years to be caught by a test which seemingly expects 
the mapping of a single absurdly giant scatterlist to fail anyway, so 
combined with the great urgency to get rid of scatterlists, I hardly see 
it being a big deal... This will always have returned an error due to 
the "ret < iova_len" condition at the end, the fix just means we can now 
error out earlier without passing a mangled list to iommu_map_sg() and 
corrupting the pagetable in the process.

Certainly if a list was initially malformed with an individual segment 
longer than the segment boundary mask then it's not going to do any 
favours here, but I suspect this is likely just regular iova_granule 
rounding overflowing when the segment boundary is the maximum 4GB, since 
the largest representable segment length is 4GB - 1. Note the 
off-by-an-exact-multiple-of-4GB error in Krzysztof's logging from the v1 
thread:

[   79.915571] iommu_dma_map_sg: ret = 7138717696, iova_len = 20023619584

Quite simply this code was never written with the expectation of mapping 
4GB+ of _physically contiguous_ memory in one go. We could possibly try 
adding a bunch of special-case complexity to allow treating UINT_MAX as 
4GB through iommu_map_sg() if there was a real need to make something 
which never worked start working, but going back to my initial point, it 
really doesn't seem worth the bother.

Thanks,
Robin.

>> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
>> index 9abaec0703ef..c403057577df 100644
>> --- a/drivers/iommu/dma-iommu.c
>> +++ b/drivers/iommu/dma-iommu.c
>> @@ -1493,8 +1493,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;
>> -			iova_len += pad_len;
>> +			if (overflows_type(prev->length + pad_len, prev->length)) {
>> +				/*
>> +				 * For large mappings spanning multiple GBs we
>> +				 * may not be able to fit all needed padding into
>> +				 * sg->length.
>> +				 */
>> +				ret = -EOVERFLOW;
>> +				goto out_restore_sg;
>> +			} else {
>> +				prev->length += pad_len;
>> +				iova_len += pad_len;
>> +			}
> 
> It is better to use
>    check_add_overflow(prev->length, pad_len, &prev->length)
> 
> instead of overflows_type()..
> 
> Jason


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

* Re: [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
       [not found]       ` <20260703203502.GC1978949@ziepe.ca>
@ 2026-07-06  7:43         ` Krzysztof Karas
  2026-07-06 13:08         ` Robin Murphy
  1 sibling, 0 replies; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-06  7:43 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Robin Murphy, intel-gfx, dri-devel, iommu, Andi Shyti,
	Joerg Roedel, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

Hi Jason,

On 2026-07-03 at 17:35:02 -0300, Jason Gunthorpe wrote:
> On Fri, Jul 03, 2026 at 07:58:32PM +0100, Robin Murphy wrote:
> > On 03/07/2026 5:22 pm, Jason Gunthorpe wrote:
> > > On Wed, Jul 01, 2026 at 10:44:37AM +0000, Krzysztof Karas wrote:
> > > > It is possible, when a very large mapping uses a single
> > > > 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 previous
> > > > scatterlist length field.
> > > 
> > > Urk, this is unfortunate, it means we cannot map certain kinds of
> > > scatterlists? Meaning there is a condition that makes a scatterlist
> > > ill formed?
> > > 
> > > This seems like something that needs to be more clearly documented and
> > > we need to ensure at least the common scatterlist builders don't hit
> > > it..
> > 
> > Well, it's taken 10 years to be caught by a test which seemingly expects the
> > mapping of a single absurdly giant scatterlist to fail anyway,
> 
> If your server has 0.5TB of ram a 4G IO isn't actually that large.
> Randomly getting a few contiguous 1G hugetlbfs pages is not even that
> unlikely. Something like FSDAX has a very high chance of getting high
> contiguity pages in files.
> 
> So I wouldn't be quite so dismissive that this is not something a real
> user can hit.
> 
> > here, but I suspect this is likely just regular iova_granule rounding
> > overflowing when the segment boundary is the maximum 4GB, since the largest
> > representable segment length is 4GB - 1. 
> 
> It looks like the iommu_dma_map_sg() algorithm only works reliably if
> the scatterlist entry size is less than UINT_MAX/2, otherwise it can
> risk overflowing when it pads.
> 
> API wise I expect any arbitary input to sg_alloc_table_from_pages() to
> result in a scatterlist that iommu_dma_map_sg() will map. This
> patch highlights there are cornere cases where that isn't true, it
> should be fixed..
> 
Thanks for your input!

> I agree we shouldn't overcomplicate iommu_dma_map_sg(), so the
> simplest fix is to introduce a SG_MAX_LENGTH set to UINT_MAX/2,
> justified by the logic in iommu_dma_map_sg(). Fixup the core sg_alloc
> code to respect that. WARN_ON in iommu_dma_map_sg() if a malformed
> scatterlist entry is presented. Add a WARN_ON under DMA debugging
> kconfig as well for the physical path.
So instead of addressing this in iommu, we should focus on
guarding in sg logic to prevent the overflows? Or would you
rather have this as additional, separate fix placed in this
series?

> 
> DRM would then have to generate scatterlists with a max segment size.
> 
> Jason

-- 
Best Regards,
Krzysztof

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

* Re: [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
       [not found]       ` <20260703203502.GC1978949@ziepe.ca>
  2026-07-06  7:43         ` Krzysztof Karas
@ 2026-07-06 13:08         ` Robin Murphy
       [not found]           ` <20260706144546.GE107792@ziepe.ca>
  1 sibling, 1 reply; 19+ messages in thread
From: Robin Murphy @ 2026-07-06 13:08 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Krzysztof Karas, intel-gfx, dri-devel, iommu, Andi Shyti,
	Joerg Roedel, Michał Grzelak, Janusz Krzysztofik,
	Sebastian Brzezinka, Krzysztof Niemiec

On 2026-07-03 9:35 pm, Jason Gunthorpe wrote:
> On Fri, Jul 03, 2026 at 07:58:32PM +0100, Robin Murphy wrote:
>> On 03/07/2026 5:22 pm, Jason Gunthorpe wrote:
>>> On Wed, Jul 01, 2026 at 10:44:37AM +0000, Krzysztof Karas wrote:
>>>> It is possible, when a very large mapping uses a single
>>>> 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 previous
>>>> scatterlist length field.
>>>
>>> Urk, this is unfortunate, it means we cannot map certain kinds of
>>> scatterlists? Meaning there is a condition that makes a scatterlist
>>> ill formed?
>>>
>>> This seems like something that needs to be more clearly documented and
>>> we need to ensure at least the common scatterlist builders don't hit
>>> it..
>>
>> Well, it's taken 10 years to be caught by a test which seemingly expects the
>> mapping of a single absurdly giant scatterlist to fail anyway,
> 
> If your server has 0.5TB of ram a 4G IO isn't actually that large.
> Randomly getting a few contiguous 1G hugetlbfs pages is not even that
> unlikely. Something like FSDAX has a very high chance of getting high
> contiguity pages in files.

Sure, but how many servers had 0.5TB of RAM in 2015? And how many of 
those were running the arm64 DMA mapping code? As I said, both this 
merging logic and the iommu_map_sg() interface itself were essentially 
written to support media buffers on Android phones which didn't even 
have 4GB of RAM in total. Yes, things have moved on by now, but 
correspondingly it has also been decided that the ~30-year-old 
scatterlist design also doesn't scale to modern use-cases anyway, and is 
being replaced, so limitations of a "legacy" API that don't have any 
meaningful impact to its existing users are hardly something to panic 
about. If DRM does want to be able to *reliably* map massive amounts of 
RAM then it can adopt the new IOMMU API, for this and all the other 
reasons that that new API was promised to be "better".

> So I wouldn't be quite so dismissive that this is not something a real
> user can hit.

I'm not being dismissive - clearly it can be hit. My point is that 
anyone who *does* hit it can only expect it to fail (as indeed this 
particular IGT test seems to), because it has never worked. You cannot 
encode a 4GB scatterlist segment, because it overflows UINT_MAX. And if 
you did try to bodge it and pass a UINT_MAX length segment to 
iommu_map_sg() then that will also fail because it's not aligned to an 
IOMMU page size. It's purely the matter of *how* exactly it fails which 
could do with fixing.

>> here, but I suspect this is likely just regular iova_granule rounding
>> overflowing when the segment boundary is the maximum 4GB, since the largest
>> representable segment length is 4GB - 1.
> 
> It looks like the iommu_dma_map_sg() algorithm only works reliably if
> the scatterlist entry size is less than UINT_MAX/2, otherwise it can
> risk overflowing when it pads.

AFAICS, the overflow can only happen with a 4GB boundary mask, and for 
two conditions:

- rounding up the current segment, when s->length + s->offset > 4GB - 
iova_granule (but still <= 4GB otherwise it's bogus anyway)
- padding the previous segment in the case where the current segment 
would otherwise cross the next boundary, when prev->offset = 0 and 
prev->length + s->length >= 4GB

So yes, limiting any individual segment to <=2GB would end up avoiding 
both those conditions, but it would also impact plenty of cases that 
*do* currently work fine, e.g. 1GB+3GB+3GB. The limitation is really 
that you can't have two consecutive segments where the first starts 
exactly on a 4GB boundary and the sum of both their sizes >=4GB.

> API wise I expect any arbitary input to sg_alloc_table_from_pages() to
> result in a scatterlist that iommu_dma_map_sg() will map. This
> patch highlights there are cornere cases where that isn't true, it
> should be fixed..

Technically sg_alloc_table_from_pages() carries no such assumption, only 
sg_alloc_table_from_pages_segment() (or __sg_alloc_table_from_pages()) 
with the correct dma_seg_boundary value for the given device. But even 
then in the worst case, they should still end up splitting segments at 
4GB-PAGE_SIZE due to the fundamental int limitation, and so only be at 
risk of putting two such segments back-to-back.

> I agree we shouldn't overcomplicate iommu_dma_map_sg(), so the
> simplest fix is to introduce a SG_MAX_LENGTH set to UINT_MAX/2,
> justified by the logic in iommu_dma_map_sg(). Fixup the core sg_alloc
> code to respect that. WARN_ON in iommu_dma_map_sg() if a malformed
> scatterlist entry is presented. Add a WARN_ON under DMA debugging
> kconfig as well for the physical path.

Again, it's not "malformed", it's just an edge case of certain 
otherwise-valid scatterlist layouts that are not supported in this one 
DMA API implementation. Nothing in the DMA API ever guarantees that any 
particular mapping must succeed. Furthermore I don't see that anyone's 
asking for this to actually be supported, just to fail cleanly and 
correctly without inadvertently corrupting state.

Thanks,
Robin.

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

* Re: [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows
       [not found]           ` <20260706144546.GE107792@ziepe.ca>
@ 2026-07-09  7:18             ` Krzysztof Karas
  0 siblings, 0 replies; 19+ messages in thread
From: Krzysztof Karas @ 2026-07-09  7:18 UTC (permalink / raw)
  To: Jason Gunthorpe, Robin Murphy
  Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Joerg Roedel,
	Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka,
	Krzysztof Niemiec

Hi,

On 2026-07-06 at 11:45:46 -0300, Jason Gunthorpe wrote:
> On Mon, Jul 06, 2026 at 02:08:14PM +0100, Robin Murphy wrote:
> 
> > modern use-cases anyway, and is being replaced, so limitations of a "legacy"
> > API that don't have any meaningful impact to its existing users are hardly
> > something to panic about. If DRM does want to be able to *reliably* map
> > massive amounts of RAM then it can adopt the new IOMMU API, for this and all
> > the other reasons that that new API was promised to be "better".
> 
> Yes the new API does solve these issues, and it avoids padding
> destroying the iova contiguity.
> 
> > > So I wouldn't be quite so dismissive that this is not something a real
> > > user can hit.
> > 
> > I'm not being dismissive - clearly it can be hit. My point is that anyone
> > who *does* hit it can only expect it to fail (as indeed this particular IGT
> > test seems to), because it has never worked.
> 
> Today you can allocate memory from hugetlbfs and map it through
> RDMA. The user can set 1G hugetlbfs page size and allocate 16G of
> memory, and RDMA map it. Databases and HPC, for example, love to do
> work loads like this.
> 
> So there is an unlucky hugetlbfs FD that has an internal memory layout
> that will build a scatterlist that cannot be mapped by the iommu.
> 
> The user's application that normally works will fail randomly and
> infrequently for no fault of their own. This isn't "can only expect it
> to fail".
> 
> > So yes, limiting any individual segment to <=2GB would end up avoiding both
> > those conditions, but it would also impact plenty of cases that *do*
> > currently work fine, e.g. 1GB+3GB+3GB. The limitation is really that you
> > can't have two consecutive segments where the first starts exactly on a 4GB
> > boundary and the sum of both their sizes >=4GB.
> 
> Yeah, but that's hard to express.
> 
> My feeling was supporting >2GB without a split is not really so
> important. You are (righly) arguing these huge sizes are usually rare.
> Places like RDMA where they are not rare people already added
> re-assembly logic to join SGLs so HW optimizations for >= 4G mappings
> can be used, so smaller splitting doesn't really matter.
> 
> > > API wise I expect any arbitary input to sg_alloc_table_from_pages() to
> > > result in a scatterlist that iommu_dma_map_sg() will map. This
> > > patch highlights there are cornere cases where that isn't true, it
> > > should be fixed..
> > 
> > Technically sg_alloc_table_from_pages() carries no such assumption,
> > only
> 
> There are lots of callers that just do sg_alloc_table_from_pages()
> then dma_map_sg(). Callers can use this simplified API when they don't
> need any segmentation logic in the DMA API.
> 
> > sg_alloc_table_from_pages_segment() (or __sg_alloc_table_from_pages()) with
> > the correct dma_seg_boundary value for the given device. 
> 
> _segment is the segment size, not boundary. The sg_alloc_table
> functions don't support the seg_boundary limitation.
> 

I do not have any strong feelings for or against any of your
suggestions. We could do one of them or both, as long as you and
community are happy, I'm happy too.

Current fix adjusted to Jason's suggestion:

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 381b60d9e7ce..1a36fd9bf10b 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -1493,7 +1493,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_pad_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_pad_len)) {
+				ret = -EOVERFLOW;
+				goto out_restore_sg;
+			}
+
+			prev->length = new_pad_len;
 			iova_len += pad_len;
 		}


My interpretation of what should be done according to Jason's
point of view:

diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 381b60d9e7ce..4d06010216bb 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -33,6 +33,7 @@
 #include <linux/spinlock.h>
 #include <linux/swiotlb.h>
 #include <linux/vmalloc.h>
+#include <linux/scatterlist.h>
 #include <trace/events/swiotlb.h>
 
 #include "dma-iommu.h"
@@ -1477,6 +1478,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 (WARN_ON_ONCE(s_length > SG_MAX_LENGTH))
+			goto out_restore_sg;
+
 		s->length = s_length;
 
 		/*
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
index 6de1a2434299..04be2fa10359 100644
--- a/include/linux/scatterlist.h
+++ b/include/linux/scatterlist.h
@@ -472,6 +472,12 @@ int sg_alloc_table_from_pages_segment(struct sg_table *sgt, struct page **pages,
 				      unsigned long size,
 				      unsigned int max_segment, gfp_t gfp_mask);
 
+
+/*
+ * Keep enough headroom for segment-merging in DMA/IOMMU paths.
+ */
+#define SG_MAX_LENGTH 			(UINT_MAX / 2U)
+
 /**
  * sg_alloc_table_from_pages - Allocate and initialize an sg table from
  *			       an array of pages
@@ -499,7 +505,7 @@ static inline int sg_alloc_table_from_pages(struct sg_table *sgt,
 					    unsigned long size, gfp_t gfp_mask)
 {
 	return sg_alloc_table_from_pages_segment(sgt, pages, n_pages, offset,
-						 size, UINT_MAX, gfp_mask);
+						 size, SG_MAX_LENGTH, gfp_mask);
 }
 
 #ifdef CONFIG_SGL_ALLOC
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index b7fe91ef35b8..a788345b93a1 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -468,6 +468,7 @@ int sg_alloc_append_table_from_pages(struct sg_append_table *sgt_append,
 	 * The algorithm below requires max_segment to be aligned to PAGE_SIZE
 	 * otherwise it can overshoot.
 	 */
+	max_segment = min(max_segment, SG_MAX_LENGTH);
 	max_segment = ALIGN_DOWN(max_segment, PAGE_SIZE);
 	if (WARN_ON(max_segment < PAGE_SIZE))
 		return -EINVAL;


@Robin @Jason I value your input and would like to reach an
agreement on how to proceed.
If scatterlists are going away soon-ish, then we could go with
the quick-fix version as to not involve too many people.

-- 
Best Regards,
Krzysztof

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

* ✗ i915.CI.BAT: failure for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev4)
  2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
                   ` (5 preceding siblings ...)
  2026-07-02  6:33 ` ✓ i915.CI.Full: " Patchwork
@ 2026-07-09  8:23 ` Patchwork
  6 siblings, 0 replies; 19+ messages in thread
From: Patchwork @ 2026-07-09  8:23 UTC (permalink / raw)
  To: Krzysztof Karas; +Cc: intel-gfx

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

== Series Details ==

Series: drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev4)
URL   : https://patchwork.freedesktop.org/series/169199/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_18791 -> Patchwork_169199v4
====================================================

Summary
-------

  **FAILURE**

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

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

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

  Missing    (2): bat-dg2-13 fi-snb-2520m 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@module-reload:
    - bat-arlh-3:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18791/bat-arlh-3/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_169199v4/bat-arlh-3/igt@i915_pm_rpm@module-reload.html

  


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

  * Linux: CI_DRM_18791 -> Patchwork_169199v4

  CI-20190529: 20190529
  CI_DRM_18791: 031615563ea8f1acce065bea91fe6ce6b0ce965c @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8994: 59469572ae481848d6bd469242aef7c5333b39ad @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_169199v4: 031615563ea8f1acce065bea91fe6ce6b0ce965c @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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

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

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

end of thread, other threads:[~2026-07-09  8:23 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 10:44 [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas
2026-07-01 10:44 ` [PATCH v2 1/3] drm/i915/gem: split shared memory allocation table logic Krzysztof Karas
2026-07-01 14:38   ` Andi Shyti
2026-07-02  6:18     ` Krzysztof Karas
2026-07-02 12:01       ` Robin Murphy
2026-07-01 10:44 ` [PATCH v2 2/3] drm/i915/shmem: Count mapped pages in a folio Krzysztof Karas
2026-07-01 10:44 ` [PATCH v2 3/3] drivers/iommu: Catch scatterlist length overflows Krzysztof Karas
2026-07-01 11:59   ` Robin Murphy
2026-07-02  6:22     ` Krzysztof Karas
2026-07-02 12:17       ` Robin Murphy
     [not found]   ` <20260703162236.GX7525@ziepe.ca>
2026-07-03 18:58     ` Robin Murphy
     [not found]       ` <20260703203502.GC1978949@ziepe.ca>
2026-07-06  7:43         ` Krzysztof Karas
2026-07-06 13:08         ` Robin Murphy
     [not found]           ` <20260706144546.GE107792@ziepe.ca>
2026-07-09  7:18             ` Krzysztof Karas
2026-07-01 15:36 ` [PATCH v2 0/3] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Andi Shyti
2026-07-02  6:10   ` Krzysztof Karas
2026-07-01 15:44 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev3) Patchwork
2026-07-02  6:33 ` ✓ i915.CI.Full: " Patchwork
2026-07-09  8:23 ` ✗ i915.CI.BAT: failure for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu (rev4) Patchwork

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