* [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