* [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu
@ 2026-07-13 9:58 Krzysztof Karas
2026-07-13 9:58 ` [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas
` (6 more replies)
0 siblings, 7 replies; 24+ messages in thread
From: Krzysztof Karas @ 2026-07-13 9:58 UTC (permalink / raw)
To: intel-gfx, dri-devel, iommu
Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, 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 (5):
drm/i915/gem: Count mapped pages in a folio
iommu/dma: Catch scatterlist length overflows
drm/i915/gem: Pull out size validation into a separate function
drm/i915/gem: Read and shrink memory in a separate function
drm/i915/gem: Remove iterator and use while loop
drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 176 +++++++++++++---------
drivers/iommu/dma-iommu.c | 13 +-
2 files changed, 119 insertions(+), 70 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 24+ messages in thread* [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas @ 2026-07-13 9:58 ` Krzysztof Karas 2026-07-15 11:18 ` Janusz Krzysztofik 2026-07-13 9:58 ` [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows Krzysztof Karas ` (5 subsequent siblings) 6 siblings, 1 reply; 24+ messages in thread From: Krzysztof Karas @ 2026-07-13 9:58 UTC (permalink / raw) To: intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, 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 a 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 intoduced. 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> --- v3: * Fixed a bug that caused first folio to never be considered. drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 120 +++++++++++++--------- 1 file changed, 70 insertions(+), 50 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..0011d76f5b8c 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -68,10 +68,13 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, unsigned int max_segment) { unsigned int page_count; /* restricted by sg_alloc_table */ - unsigned long i; + unsigned long next_pfn = 0; /* suppress gcc warning */ + unsigned long folio_start = 0; + unsigned long folio_end = 0; + struct folio *folio = NULL; struct scatterlist *sg; - unsigned long next_pfn = 0; /* suppress gcc warning */ gfp_t noreclaim; + unsigned long i; int ret; if (overflows_type(size / PAGE_SIZE, page_count)) @@ -101,7 +104,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, sg = st->sgl; st->nents = 0; for (i = 0; i < page_count; i++) { - struct folio *folio; + unsigned long folio_page_index = 0; unsigned long nr_pages; const unsigned int shrink[] = { I915_SHRINK_BOUND | I915_SHRINK_UNBOUND, @@ -109,71 +112,87 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, }, *s = shrink; gfp_t gfp = noreclaim; - do { - cond_resched(); - folio = shmem_read_folio_gfp(mapping, i, gfp); - if (!IS_ERR(folio)) - break; - - 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); + /* Grab the next folio if we exhausted the current one. */ + if (!i || i > folio_end) { + do { + cond_resched(); + folio = shmem_read_folio_gfp(mapping, i, gfp); + if (!IS_ERR(folio)) + break; + + if (!*s) { + ret = PTR_ERR(folio); + goto err_sg; + } + + i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++); /* - * 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); + * We've tried hard to allocate the memory by reaping + * our own buffer, now let the real VM do its job and + * go down in flames if truly OOM. + * + * However, since graphics tend to be disposable, + * defer the oom here by reporting the ENOMEM back + * to userspace. + */ + if (!*s) { + /* reclaim and warn, but no oom */ + gfp = mapping_gfp_mask(mapping); + + /* + * Our bo are always dirty and so we require + * kswapd to reclaim our pages (direct reclaim + * does not effectively begin pageout of our + * buffers on its own). However, direct reclaim + * only waits for kswapd when under allocation + * congestion. So as a result __GFP_RECLAIM is + * unreliable and fails to actually reclaim our + * dirty pages -- unless you try over and over + * again with !__GFP_NORETRY. However, we still + * want to fail this allocation rather than + * trigger the out-of-memory killer and for + * this we want __GFP_RETRY_MAYFAIL. + */ + gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; + } + } while (1); + + folio_start = folio_pgoff(folio); + folio_end = folio_start + folio_nr_pages(folio) - 1; + } + + folio_page_index = i - folio_start; + if (WARN_ON_ONCE(folio_page_index >= 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_page_index, page_count - i, - max_segment / PAGE_SIZE, + max_t(unsigned int, 1, max_segment / PAGE_SIZE), }), 3); if (!i || sg->length >= max_segment || - folio_pfn(folio) != next_pfn) { + folio_pfn(folio) + folio_page_index != next_pfn) { if (i) sg = sg_next(sg); st->nents++; - sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0); + sg_set_page(sg, folio_page(folio, folio_page_index), + nr_pages * PAGE_SIZE, 0); } else { 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_page_index + nr_pages; i += nr_pages - 1; /* Check that the i965g/gm workaround works. */ @@ -186,6 +205,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, i915_sg_trim(st); return 0; + err_sg: sg_mark_end(sg); if (sg != st->sgl) { -- 2.34.1 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio 2026-07-13 9:58 ` [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas @ 2026-07-15 11:18 ` Janusz Krzysztofik 2026-07-20 8:08 ` Krzysztof Karas 0 siblings, 1 reply; 24+ messages in thread From: Janusz Krzysztofik @ 2026-07-15 11:18 UTC (permalink / raw) To: Krzysztof Karas, intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec Hi Krzysztof, Since reading your commit description I was not really able to understand what the issue you were trying to fix was about, I'm providing some comments based on my understanding of the issue. On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > With addition of commit 029ae067431a > ("drm/i915: Fix potential overflow of shmem scatterlist length") > max_segment size was included in calculating a 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), Two values of max_segment only could and still can be expected, either maximum capacity of a scatterlist, or PAGE_SIZE. Before the blamed commit, that argument was mostly (unintentionally?) not respected when allocating pages from a folio to a scatterlist. IOW, complete folios were always allocated, possibly overloading the scatterlist capacity, virtually never limited to PAGE_SIZE when requested via max_segment. The blamed commit took care of scatterlist overloading, and unintentionally also of respecting the max_segment == PAGE_SIZE case, by limiting the number of folio pages allocated to a single scatterlist not to exceed max_segment, but failed to take care of correctly allocating remaining pages from folios larger than max_segment. That's what this commit description should tell us about, I believe. > were not enough to jump to the > next folio, which has never been a problem before folios have > been intoduced. In result, sg_set_folio() was called multiple > times with nr_pages smaller than folio size, using multitude of > scatterlists, I don't think it matters how many times sg_set_folio() was called or how many scatterlists were used, since we may expect them to be huge when shmem_sg_alloc_table() is called with max_segment == PAGE_SIZE. > all pointing to the beginning pages of the folio > and never fully covering its range of pages. Yeah, that's the real issue. An offset within a folio should be tracked and used when allocating pages still left in the folio. > Track how many pages have already been counted in a folio ... and use that number as an offset on consecutive allocations from the same folio ... > to ensure it is fully covered before reading next folio. > Fixes: 029ae067431a ("drm/i915: Fix potential overflow of shmem scatterlist length") > Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/15816 > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > --- > v3: > * Fixed a bug that caused first folio to never be considered. > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 120 +++++++++++++--------- > 1 file changed, 70 insertions(+), 50 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..0011d76f5b8c 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > @@ -68,10 +68,13 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > unsigned int max_segment) > { > unsigned int page_count; /* restricted by sg_alloc_table */ > - unsigned long i; > + unsigned long next_pfn = 0; /* suppress gcc warning */ > + unsigned long folio_start = 0; > + unsigned long folio_end = 0; > + struct folio *folio = NULL; > struct scatterlist *sg; > - unsigned long next_pfn = 0; /* suppress gcc warning */ > gfp_t noreclaim; > + unsigned long i; > int ret; > > if (overflows_type(size / PAGE_SIZE, page_count)) > @@ -101,7 +104,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > sg = st->sgl; > st->nents = 0; > for (i = 0; i < page_count; i++) { > - struct folio *folio; > + unsigned long folio_page_index = 0; > unsigned long nr_pages; > const unsigned int shrink[] = { > I915_SHRINK_BOUND | I915_SHRINK_UNBOUND, > @@ -109,71 +112,87 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > }, *s = shrink; > gfp_t gfp = noreclaim; > > - do { > - cond_resched(); > - folio = shmem_read_folio_gfp(mapping, i, gfp); > - if (!IS_ERR(folio)) > - break; > - > - 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); > + /* Grab the next folio if we exhausted the current one. */ > + if (!i || i > folio_end) { > + do { > + cond_resched(); > + folio = shmem_read_folio_gfp(mapping, i, gfp); > + if (!IS_ERR(folio)) > + break; > + > + if (!*s) { > + ret = PTR_ERR(folio); > + goto err_sg; > + } > + > + i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++); > > /* > - * 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); > + * We've tried hard to allocate the memory by reaping > + * our own buffer, now let the real VM do its job and > + * go down in flames if truly OOM. > + * > + * However, since graphics tend to be disposable, > + * defer the oom here by reporting the ENOMEM back > + * to userspace. > + */ > + if (!*s) { > + /* reclaim and warn, but no oom */ > + gfp = mapping_gfp_mask(mapping); > + > + /* > + * Our bo are always dirty and so we require > + * kswapd to reclaim our pages (direct reclaim > + * does not effectively begin pageout of our > + * buffers on its own). However, direct reclaim > + * only waits for kswapd when under allocation > + * congestion. So as a result __GFP_RECLAIM is > + * unreliable and fails to actually reclaim our > + * dirty pages -- unless you try over and over > + * again with !__GFP_NORETRY. However, we still > + * want to fail this allocation rather than > + * trigger the out-of-memory killer and for > + * this we want __GFP_RETRY_MAYFAIL. > + */ > + gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; > + } > + } while (1); > + > + folio_start = folio_pgoff(folio); > + folio_end = folio_start + folio_nr_pages(folio) - 1; > + } > + > + folio_page_index = i - folio_start; > + if (WARN_ON_ONCE(folio_page_index >= 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_page_index, > page_count - i, > - max_segment / PAGE_SIZE, > + max_t(unsigned int, 1, max_segment / PAGE_SIZE), Why? This function is never called with max_segment less than PAGE_SIZE, then max_segment / PAGE_SIZE can't drop to 0. If you want to address the unexpected 0 case then I think we should just validate max_segment before using it. > }), 3); > > if (!i || > sg->length >= max_segment || > - folio_pfn(folio) != next_pfn) { > + folio_pfn(folio) + folio_page_index != next_pfn) { > if (i) > sg = sg_next(sg); > > st->nents++; > - sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0); > + sg_set_page(sg, folio_page(folio, folio_page_index), > + nr_pages * PAGE_SIZE, 0); > } else { > 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)); The same as above, we may exepect max_segment not less than PAGE_SIZE. > > sg->length += nr_pages * PAGE_SIZE; The only case for appending more pages to a not yet full scatterlist I can imagine is when first page of next folio is next to the last page of a previous folio assigned here before so contiguity of pages can be preserved. Then, I think the above if conditions should better reflect that only case for clarity. Thanks, Janusz > } > - next_pfn = folio_pfn(folio) + nr_pages; > + > + next_pfn = folio_pfn(folio) + folio_page_index + nr_pages; > i += nr_pages - 1; > > /* Check that the i965g/gm workaround works. */ > @@ -186,6 +205,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > i915_sg_trim(st); > > return 0; > + > err_sg: > sg_mark_end(sg); > if (sg != st->sgl) { ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio 2026-07-15 11:18 ` Janusz Krzysztofik @ 2026-07-20 8:08 ` Krzysztof Karas 0 siblings, 0 replies; 24+ messages in thread From: Krzysztof Karas @ 2026-07-20 8:08 UTC (permalink / raw) To: Janusz Krzysztofik Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec Hi Janusz, On 2026-07-15 at 13:18:21 +0200, Janusz Krzysztofik wrote: > Hi Krzysztof, > > Since reading your commit description I was not really able to understand > what the issue you were trying to fix was about, I'm providing some > comments based on my understanding of the issue. > > On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > > With addition of commit 029ae067431a > > ("drm/i915: Fix potential overflow of shmem scatterlist length") > > max_segment size was included in calculating a 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), > > Two values of max_segment only could and still can be expected, either > maximum capacity of a scatterlist, or PAGE_SIZE. Before the blamed > commit, that argument was mostly (unintentionally?) not respected when > allocating pages from a folio to a scatterlist. IOW, complete folios were > always allocated, possibly overloading the scatterlist capacity, > virtually never limited to PAGE_SIZE when requested via max_segment. > > The blamed commit took care of scatterlist overloading, and > unintentionally also of respecting the max_segment == PAGE_SIZE case, by > limiting the number of folio pages allocated to a single scatterlist not > to exceed max_segment, but failed to take care of correctly allocating > remaining pages from folios larger than max_segment. That's what this > commit description should tell us about, I believe. > > > were not enough to jump to the > > next folio, which has never been a problem before folios have > > been intoduced. In result, sg_set_folio() was called multiple > > times with nr_pages smaller than folio size, using multitude of > > scatterlists, > > I don't think it matters how many times sg_set_folio() was called or how > many scatterlists were used, since we may expect them to be huge when > shmem_sg_alloc_table() is called with max_segment == PAGE_SIZE. > > > all pointing to the beginning pages of the folio > > and never fully covering its range of pages. > > Yeah, that's the real issue. An offset within a folio should be tracked > and used when allocating pages still left in the folio. > > > Track how many pages have already been counted in a folio > > ... and use that number as an offset on consecutive allocations from the > same folio ... Hmm, very well, sounds reasonable. > > > 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> > > --- [...] > > + folio_page_index = i - folio_start; > > + if (WARN_ON_ONCE(folio_page_index >= 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_page_index, > > page_count - i, > > - max_segment / PAGE_SIZE, > > + max_t(unsigned int, 1, max_segment / PAGE_SIZE), > > Why? This function is never called with max_segment less than PAGE_SIZE, > then max_segment / PAGE_SIZE can't drop to 0. If you want to address the > unexpected 0 case then I think we should just validate max_segment before > using it. I do not recall why exactly I added that check here. I think validating max_segment earlier is more visible, so I'll do as you suggest. > > > }), 3); > > > > if (!i || > > sg->length >= max_segment || > > - folio_pfn(folio) != next_pfn) { > > + folio_pfn(folio) + folio_page_index != next_pfn) { > > if (i) > > sg = sg_next(sg); > > > > st->nents++; > > - sg_set_folio(sg, folio, nr_pages * PAGE_SIZE, 0); > > + sg_set_page(sg, folio_page(folio, folio_page_index), > > + nr_pages * PAGE_SIZE, 0); > > } else { > > 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)); > > The same as above, we may exepect max_segment not less than PAGE_SIZE. Yup, got it. > > > > > sg->length += nr_pages * PAGE_SIZE; > > The only case for appending more pages to a not yet full scatterlist I can > imagine is when first page of next folio is next to the last page of a > previous folio assigned here before so contiguity of pages can be > preserved. Then, I think the above if conditions should better reflect > that only case for clarity. I think what we are missing here is the assumption that folios are placed one after another, on which we base next_pfn calculations. If that assumption is wrong and next_pfn is not the address of the next folio, then we land in the "if" instead of "else" block. In any case, I'll add this info in the next version, either via modifying the if conditions or adding a comment here. Thansk for looking at this! -- Best Regards, Krzysztof ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas 2026-07-13 9:58 ` [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas @ 2026-07-13 9:58 ` Krzysztof Karas 2026-07-13 10:13 ` sashiko-bot ` (2 more replies) 2026-07-13 9:58 ` [PATCH v3 3/5] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas ` (4 subsequent siblings) 6 siblings, 3 replies; 24+ messages in thread From: Krzysztof Karas @ 2026-07-13 9:58 UTC (permalink / raw) To: intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas It is possible, when a very large mapping uses only one scatterlist, that padding overflows scatterlist's length field. This results in: 1) silently wrapping the value 2) smaller than desired mappings produced by iommu_map_sg 3) leaving mapped bytes in memory (no iommu_unmap) Address this issue by adding overflow detection for scatterlist length field. Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging") Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> --- v3: * Used check_add_overflow suggested by Jason. I decided not to include previous r-bs due to the change in the core of this patch: overflows_type -> check_add_overflow and I obvserved some folks have heavy preference for one or the other. drivers/iommu/dma-iommu.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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; } -- 2.34.1 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows 2026-07-13 9:58 ` [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows Krzysztof Karas @ 2026-07-13 10:13 ` sashiko-bot 2026-07-16 12:39 ` Andi Shyti 2026-07-16 13:48 ` Robin Murphy 2 siblings, 0 replies; 24+ messages in thread From: sashiko-bot @ 2026-07-13 10:13 UTC (permalink / raw) To: Krzysztof Karas; +Cc: dri-devel Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: Pre-existing issues: - [High] `__invalidate_sg()` corrupts unprocessed scatterlist segments on mapping failure if the scatterlist was previously mapped. - [High] Silent truncation of `s->length` during IOVA alignment leads to IOMMU page table memory leak. -- --- Patch [2]: [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows --- commit 9f9c6b9481d1f01d396391f99642a7f233aa6651 Author: Krzysztof Karas <krzysztof.karas@intel.com> iommu/dma: Catch scatterlist length overflows This commit adds an overflow detection for the scatterlist length field padding in iommu_dma_map_sg(). When a very large mapping uses only one scatterlist, padding could overflow the length field resulting in small mappings and left-over bytes in memory. > diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c > index 9abaec0703efb..39da61b4e549e 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; [Severity: High] This is a pre-existing issue, but does jumping to out_restore_sg here corrupt unprocessed scatterlist segments if the list was previously mapped? If a driver maps, unmaps, and then re-maps a scatterlist, the unmap step does not reset sg_dma_address() to DMA_MAPPING_ERROR. When this new error path triggers, __invalidate_sg() will iterate over all segments. For the unprocessed segments that still contain valid DMA addresses from the previous mapping, __invalidate_sg() will incorrectly assume they were modified: drivers/iommu/dma-iommu.c:__invalidate_sg() { ... if (sg_dma_address(s) != DMA_MAPPING_ERROR) s->offset += sg_dma_address(s); if (sg_dma_len(s)) s->length = sg_dma_len(s); ... } Could this overwrite the physical boundaries of the segments, potentially leading to memory corruption on subsequent DMA operations? > + } > + > + prev->length = new_pad_len; > iova_len += pad_len; > } [Severity: High] This isn't a bug introduced by this patch, but while handling large mappings spanning multiple GBs, can s->length be silently truncated earlier in this loop? Before the padding step, the size_t s_length is aligned and assigned back to s->length (which is a 32-bit unsigned int): drivers/iommu/dma-iommu.c:iommu_dma_map_sg() { ... s_length = iova_align(iovad, s_length + s_iova_off); s->length = s_length; ... } If the aligned size_t exceeds UINT_MAX, it truncates. The iova_len calculation uses the non-truncated size_t, allocating correct IOVA space, but iommu_map_sg() will use the truncated s->length, mapping fewer bytes. Since iommu_map_sg() succeeds in mapping the smaller size, it returns a positive value. This triggers the error path: drivers/iommu/dma-iommu.c:iommu_dma_map_sg() { ... ret = iommu_map_sg(domain, iova, sg, nents, prot, GFP_ATOMIC); if (ret < 0 || ret < iova_len) goto out_free_iova; ... out_free_iova: iommu_dma_free_iova(domain, iova, iova_len, NULL); ... } Because out_free_iova only frees the IOVA allocator region and does not call iommu_unmap(), does this permanently leak the hardware IOMMU page table entries? -- Sashiko AI review · https://sashiko.dev/#/patchset/20260713095812.1014365-1-krzysztof.karas@intel.com?part=2 ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows 2026-07-13 9:58 ` [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows Krzysztof Karas 2026-07-13 10:13 ` sashiko-bot @ 2026-07-16 12:39 ` Andi Shyti 2026-07-16 13:48 ` Robin Murphy 2 siblings, 0 replies; 24+ messages in thread From: Andi Shyti @ 2026-07-16 12:39 UTC (permalink / raw) To: Krzysztof Karas Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec Jason, Robin? Any comment here? Thanks, Andi On Mon, Jul 13, 2026 at 09:58:09AM +0000, Krzysztof Karas wrote: > It is possible, when a very large mapping uses only one > scatterlist, that padding overflows scatterlist's length field. > This results in: > 1) silently wrapping the value > 2) smaller than desired mappings produced by iommu_map_sg > 3) leaving mapped bytes in memory (no iommu_unmap) > > Address this issue by adding overflow detection for scatterlist > length field. > > Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging") > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > --- > v3: > * Used check_add_overflow suggested by Jason. > > I decided not to include previous r-bs due to the change in the > core of this patch: overflows_type -> check_add_overflow and I > obvserved some folks have heavy preference for one or the other. > > drivers/iommu/dma-iommu.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > 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; > } > > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows 2026-07-13 9:58 ` [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows Krzysztof Karas 2026-07-13 10:13 ` sashiko-bot 2026-07-16 12:39 ` Andi Shyti @ 2026-07-16 13:48 ` Robin Murphy 2026-07-20 7:46 ` Krzysztof Karas 2 siblings, 1 reply; 24+ messages in thread From: Robin Murphy @ 2026-07-16 13:48 UTC (permalink / raw) To: Krzysztof Karas, intel-gfx, dri-devel, iommu Cc: Andi Shyti, Jason Gunthorpe, Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec On 13/07/2026 10:58 am, Krzysztof Karas wrote: > It is possible, when a very large mapping uses only one > scatterlist, that padding overflows scatterlist's length field. > This results in: > 1) silently wrapping the value > 2) smaller than desired mappings produced by iommu_map_sg > 3) leaving mapped bytes in memory (no iommu_unmap) > > Address this issue by adding overflow detection for scatterlist > length field. > > Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging") > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > --- > v3: > * Used check_add_overflow suggested by Jason. > > I decided not to include previous r-bs due to the change in the > core of this patch: overflows_type -> check_add_overflow and I > obvserved some folks have heavy preference for one or the other. > > drivers/iommu/dma-iommu.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > 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). > */ Sorry to be a pain, but since we *have* now spent the time reasoning through the details, for completeness I think it would be worth also explicitly checking "s_length & UINT_MAX != 0" (or equivalent) after the the prior iova_align() - since that's only rounding up an unsigned int value to a power of 2 it can't arbitrarily overflow like the addition below, but it could still wrap to zero in the assignment to s->length, or indeed in the size_t itself on 32-bit. > if (pad_len && pad_len < s_length - 1) { > - prev->length += pad_len; > + unsigned int new_pad_len; Super-nit: "pad_len" is the amount of potential padding from the end of the previous segment up to the next segment boundary; the value we're calculating here is the updated *total* segment length, so "new_prev_len" would be more accurate and a bit clearer - the logic here is fiddly enough as it is, so every little helps :) With those tweaks (since it sounds like there's still another respin or two to go for the rest of the series anyway), Reviewed-by: Robin Murphy <robin.murphy@arm.com> Cheers, Robin. > + /* > + * 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; > } > ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows 2026-07-16 13:48 ` Robin Murphy @ 2026-07-20 7:46 ` Krzysztof Karas 0 siblings, 0 replies; 24+ messages in thread From: Krzysztof Karas @ 2026-07-20 7:46 UTC (permalink / raw) To: Robin Murphy Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Jason Gunthorpe, Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec Hi Robin, On 2026-07-16 at 14:48:25 +0100, Robin Murphy wrote: > On 13/07/2026 10:58 am, Krzysztof Karas wrote: > > It is possible, when a very large mapping uses only one > > scatterlist, that padding overflows scatterlist's length field. > > This results in: > > 1) silently wrapping the value > > 2) smaller than desired mappings produced by iommu_map_sg > > 3) leaving mapped bytes in memory (no iommu_unmap) > > > > Address this issue by adding overflow detection for scatterlist > > length field. > > > > Fixes: 809eac54cdd6 ("iommu/dma: Implement scatterlist segment merging") > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > > --- > > v3: > > * Used check_add_overflow suggested by Jason. > > > > I decided not to include previous r-bs due to the change in the > > core of this patch: overflows_type -> check_add_overflow and I > > obvserved some folks have heavy preference for one or the other. > > > > drivers/iommu/dma-iommu.c | 13 ++++++++++++- > > 1 file changed, 12 insertions(+), 1 deletion(-) > > > > 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). > > */ > > Sorry to be a pain, Don't be! I'm glad you got some time to look at this again and being a pain is what gives us quality code. > but since we *have* now spent the time reasoning through > the details, for completeness I think it would be worth also explicitly > checking "s_length & UINT_MAX != 0" (or equivalent) after the the prior > iova_align() - since that's only rounding up an unsigned int value to a > power of 2 it can't arbitrarily overflow like the addition below, but it > could still wrap to zero in the assignment to s->length, or indeed in the > size_t itself on 32-bit. > > > if (pad_len && pad_len < s_length - 1) { > > - prev->length += pad_len; > > + unsigned int new_pad_len; > > Super-nit: "pad_len" is the amount of potential padding from the end of the > previous segment up to the next segment boundary; the value we're > calculating here is the updated *total* segment length, so "new_prev_len" > would be more accurate and a bit clearer - the logic here is fiddly enough > as it is, so every little helps :) Both suggestions sound reasonable, I'll include them in the next version then. > > With those tweaks (since it sounds like there's still another respin or two > to go for the rest of the series anyway), > > Reviewed-by: Robin Murphy <robin.murphy@arm.com> Thanks! -- Best Regards, Krzysztof ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v3 3/5] drm/i915/gem: Pull out size validation into a separate function 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas 2026-07-13 9:58 ` [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas 2026-07-13 9:58 ` [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows Krzysztof Karas @ 2026-07-13 9:58 ` Krzysztof Karas 2026-07-15 15:21 ` Janusz Krzysztofik 2026-07-13 9:58 ` [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in " Krzysztof Karas ` (3 subsequent siblings) 6 siblings, 1 reply; 24+ messages in thread From: Krzysztof Karas @ 2026-07-13 9:58 UTC (permalink / raw) To: intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas shmem_sg_alloc_table is a very large and hard to read function, so reduce the number of operations it is responsible for by placing "size" validation in a new helper. Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> --- v3: * Split refactoring and put it after the fix in shmem folio counting suggested by Andi. drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 ++++++++++++++++------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c index 0011d76f5b8c..4a61b012fb6f 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -62,6 +62,22 @@ void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping, sg_free_table(st); } +static int validate_size(size_t size, unsigned int page_count, + struct intel_memory_region *mr) +{ + if (overflows_type(size / PAGE_SIZE, page_count)) + return -E2BIG; + + /* + * If there's no chance of allocating enough pages for the whole + * object, bail early. + */ + if (size > resource_size(&mr->region)) + return -ENOMEM; + + return 0; +} + int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, size_t size, struct intel_memory_region *mr, struct address_space *mapping, @@ -77,16 +93,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, unsigned long i; int ret; - if (overflows_type(size / PAGE_SIZE, page_count)) - return -E2BIG; - page_count = size / PAGE_SIZE; - /* - * If there's no chance of allocating enough pages for the whole - * object, bail early. - */ - if (size > resource_size(&mr->region)) - return -ENOMEM; + + ret = validate_size(size, page_count, mr); + if (ret < 0) + return ret; if (sg_alloc_table(st, page_count, GFP_KERNEL | __GFP_NOWARN)) return -ENOMEM; -- 2.34.1 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3 3/5] drm/i915/gem: Pull out size validation into a separate function 2026-07-13 9:58 ` [PATCH v3 3/5] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas @ 2026-07-15 15:21 ` Janusz Krzysztofik 2026-07-20 8:10 ` Krzysztof Karas 0 siblings, 1 reply; 24+ messages in thread From: Janusz Krzysztofik @ 2026-07-15 15:21 UTC (permalink / raw) To: Krzysztof Karas, intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec Hi Krzysztof, On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > shmem_sg_alloc_table is a very large and hard to read function, > so reduce the number of operations it is responsible for by > placing "size" validation in a new helper. > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > --- > v3: > * Split refactoring and put it after the fix in shmem folio > counting suggested by Andi. > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 ++++++++++++++++------- > 1 file changed, 20 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > index 0011d76f5b8c..4a61b012fb6f 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > @@ -62,6 +62,22 @@ void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping, > sg_free_table(st); > } > > +static int validate_size(size_t size, unsigned int page_count, > + struct intel_memory_region *mr) > +{ > + if (overflows_type(size / PAGE_SIZE, page_count)) > + return -E2BIG; > + > + /* > + * If there's no chance of allocating enough pages for the whole > + * object, bail early. > + */ > + if (size > resource_size(&mr->region)) > + return -ENOMEM; > + > + return 0; > +} > + > int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > size_t size, struct intel_memory_region *mr, > struct address_space *mapping, > @@ -77,16 +93,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > unsigned long i; > int ret; > > - if (overflows_type(size / PAGE_SIZE, page_count)) > - return -E2BIG; > - > page_count = size / PAGE_SIZE; Verifying if page_count can accommodate a result before assigning that result to it looked more correctly to me. Since overflows_type() doesn't look at the variable's value, only its type, I think you could postpone page_count initialization and pass its pointer to your helper to preserve that more reasonable order of operations. Thanks, Janusz > - /* > - * If there's no chance of allocating enough pages for the whole > - * object, bail early. > - */ > - if (size > resource_size(&mr->region)) > - return -ENOMEM; > + > + ret = validate_size(size, page_count, mr); > + if (ret < 0) > + return ret; > > if (sg_alloc_table(st, page_count, GFP_KERNEL | __GFP_NOWARN)) > return -ENOMEM; ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 3/5] drm/i915/gem: Pull out size validation into a separate function 2026-07-15 15:21 ` Janusz Krzysztofik @ 2026-07-20 8:10 ` Krzysztof Karas 0 siblings, 0 replies; 24+ messages in thread From: Krzysztof Karas @ 2026-07-20 8:10 UTC (permalink / raw) To: Janusz Krzysztofik Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec Hi Janusz, On 2026-07-15 at 17:21:39 +0200, Janusz Krzysztofik wrote: > Hi Krzysztof, > > On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > > shmem_sg_alloc_table is a very large and hard to read function, > > so reduce the number of operations it is responsible for by > > placing "size" validation in a new helper. > > > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > > --- > > v3: > > * Split refactoring and put it after the fix in shmem folio > > counting suggested by Andi. > > > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 ++++++++++++++++------- > > 1 file changed, 20 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > index 0011d76f5b8c..4a61b012fb6f 100644 > > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > @@ -62,6 +62,22 @@ void shmem_sg_free_table(struct sg_table *st, struct address_space *mapping, > > sg_free_table(st); > > } > > > > +static int validate_size(size_t size, unsigned int page_count, > > + struct intel_memory_region *mr) > > +{ > > + if (overflows_type(size / PAGE_SIZE, page_count)) > > + return -E2BIG; > > + > > + /* > > + * If there's no chance of allocating enough pages for the whole > > + * object, bail early. > > + */ > > + if (size > resource_size(&mr->region)) > > + return -ENOMEM; > > + > > + return 0; > > +} > > + > > int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > size_t size, struct intel_memory_region *mr, > > struct address_space *mapping, > > @@ -77,16 +93,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > unsigned long i; > > int ret; > > > > - if (overflows_type(size / PAGE_SIZE, page_count)) > > - return -E2BIG; > > - > > page_count = size / PAGE_SIZE; > > Verifying if page_count can accommodate a result before assigning that > result to it looked more correctly to me. Since overflows_type() doesn't > look at the variable's value, only its type, I think you could postpone > page_count initialization and pass its pointer to your helper to preserve > that more reasonable order of operations. Yeah, you are right, it would make more sense to validate it before assignment. I'll do that in the next version. > > Thanks, > Janusz > > > - /* > > - * If there's no chance of allocating enough pages for the whole > > - * object, bail early. > > - */ > > - if (size > resource_size(&mr->region)) > > - return -ENOMEM; > > + > > + ret = validate_size(size, page_count, mr); > > + if (ret < 0) > > + return ret; > > > > if (sg_alloc_table(st, page_count, GFP_KERNEL | __GFP_NOWARN)) > > return -ENOMEM; -- Best Regards, Krzysztof ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in a separate function 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas ` (2 preceding siblings ...) 2026-07-13 9:58 ` [PATCH v3 3/5] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas @ 2026-07-13 9:58 ` Krzysztof Karas 2026-07-13 10:10 ` sashiko-bot 2026-07-15 15:31 ` Janusz Krzysztofik 2026-07-13 9:58 ` [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas ` (2 subsequent siblings) 6 siblings, 2 replies; 24+ messages in thread From: Krzysztof Karas @ 2026-07-13 9:58 UTC (permalink / raw) To: intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas Continue unloading shmem_sg_alloc_table by placing reading folios and shrink call into a new helper. Make the loop a bit more reader-friendly by removing iteration over a structure and replacing it with a do-while loop. Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> --- v3: * Split refactoring and put it after the fix in shmem folio counting suggested by Andi. * Use do-while loop suggested by Robin. drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 102 ++++++++++++---------- 1 file changed, 55 insertions(+), 47 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c index 4a61b012fb6f..7c8de8fe0a22 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -78,6 +78,55 @@ static int validate_size(size_t size, unsigned int page_count, return 0; } +static struct folio *shmem_shrink_get_folio(struct address_space *mapping, + unsigned long folio_index, + gfp_t gfp, unsigned int page_count, + struct drm_i915_private *i915) +{ + struct folio *folio = NULL; + unsigned int retries = 2; + + do { + cond_resched(); + folio = shmem_read_folio_gfp(mapping, folio_index, gfp); + if (IS_ERR(folio)) { + i915_gem_shrink(NULL, i915, 2 * page_count, NULL, + I915_SHRINK_BOUND | I915_SHRINK_UNBOUND); + + /* + * We've tried hard to allocate the memory by reaping + * our own buffer, now let the real VM do its job and + * go down in flames if truly OOM. + * + * However, since graphics tend to be disposable, + * defer the oom here by reporting the ENOMEM back + * to userspace. + * + * Reclaim and warn, but no oom. + */ + gfp = mapping_gfp_mask(mapping); + + /* + * Our bo are always dirty and so we require + * kswapd to reclaim our pages (direct reclaim + * does not effectively begin pageout of our + * buffers on its own). However, direct reclaim + * only waits for kswapd when under allocation + * congestion. So as a result __GFP_RECLAIM is + * unreliable and fails to actually reclaim our + * dirty pages -- unless you try over and over + * again with !__GFP_NORETRY. However, we still + * want to fail this allocation rather than + * trigger the out-of-memory killer and for + * this we want __GFP_RETRY_MAYFAIL. + */ + gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; + } + } while (IS_ERR(folio) && --retries); + + return folio; +} + int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, size_t size, struct intel_memory_region *mr, struct address_space *mapping, @@ -117,57 +166,16 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, for (i = 0; i < page_count; i++) { unsigned long folio_page_index = 0; unsigned long nr_pages; - const unsigned int shrink[] = { - I915_SHRINK_BOUND | I915_SHRINK_UNBOUND, - 0, - }, *s = shrink; gfp_t gfp = noreclaim; /* Grab the next folio if we exhausted the current one. */ if (!i || i > folio_end) { - do { - cond_resched(); - folio = shmem_read_folio_gfp(mapping, i, gfp); - if (!IS_ERR(folio)) - break; - - if (!*s) { - ret = PTR_ERR(folio); - goto err_sg; - } - - i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++); - - /* - * We've tried hard to allocate the memory by reaping - * our own buffer, now let the real VM do its job and - * go down in flames if truly OOM. - * - * However, since graphics tend to be disposable, - * defer the oom here by reporting the ENOMEM back - * to userspace. - */ - if (!*s) { - /* reclaim and warn, but no oom */ - gfp = mapping_gfp_mask(mapping); - - /* - * Our bo are always dirty and so we require - * kswapd to reclaim our pages (direct reclaim - * does not effectively begin pageout of our - * buffers on its own). However, direct reclaim - * only waits for kswapd when under allocation - * congestion. So as a result __GFP_RECLAIM is - * unreliable and fails to actually reclaim our - * dirty pages -- unless you try over and over - * again with !__GFP_NORETRY. However, we still - * want to fail this allocation rather than - * trigger the out-of-memory killer and for - * this we want __GFP_RETRY_MAYFAIL. - */ - gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; - } - } while (1); + folio = shmem_shrink_get_folio(mapping, i, gfp, + page_count, i915); + if (IS_ERR(folio)) { + ret = PTR_ERR(folio); + goto err_sg; + } folio_start = folio_pgoff(folio); folio_end = folio_start + folio_nr_pages(folio) - 1; -- 2.34.1 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in a separate function 2026-07-13 9:58 ` [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in " Krzysztof Karas @ 2026-07-13 10:10 ` sashiko-bot 2026-07-15 15:31 ` Janusz Krzysztofik 1 sibling, 0 replies; 24+ messages in thread From: sashiko-bot @ 2026-07-13 10:10 UTC (permalink / raw) To: Krzysztof Karas; +Cc: dri-devel Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] Unnecessary double execution of the memory shrinker on the allocation failure path. -- --- Patch [4]: [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in a separate function --- commit 323006b149f5bd15e61d31522a7aa9cdbf860e09 Author: Krzysztof Karas <krzysztof.karas@intel.com> drm/i915/gem: Read and shrink memory in a separate function This commit extracts the memory reading and shrinking logic from shmem_sg_alloc_table into a new shmem_shrink_get_folio helper. It also replaces the previous array-based iteration with a do-while loop. > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c [ ... ] > @@ -78,6 +78,55 @@ static int validate_size(size_t size, unsigned int page_count, > return 0; > } > > +static struct folio *shmem_shrink_get_folio(struct address_space *mapping, > + unsigned long folio_index, > + gfp_t gfp, unsigned int page_count, > + struct drm_i915_private *i915) > +{ > + struct folio *folio = NULL; > + unsigned int retries = 2; > + > + do { > + cond_resched(); > + folio = shmem_read_folio_gfp(mapping, folio_index, gfp); > + if (IS_ERR(folio)) { > + i915_gem_shrink(NULL, i915, 2 * page_count, NULL, > + I915_SHRINK_BOUND | I915_SHRINK_UNBOUND); [Severity: Medium] Will this result in an unnecessary double execution of the memory shrinker when allocations fail? In the original code, the array-based state machine checked the shrink state and jumped to the error path before calling i915_gem_shrink again on the final failure. With the refactored do-while loop, if the second shmem_read_folio_gfp call fails, the loop unconditionally executes the shrinker a second time before decrementing the retries counter to 0 and exiting. Could this waste CPU cycles and increase lock contention on i915->mm.obj_lock immediately before returning -ENOMEM to the caller, considering the memory freed by this second pass is completely ignored? > + > + /* > + * We've tried hard to allocate the memory by reaping [ ... ] -- Sashiko AI review · https://sashiko.dev/#/patchset/20260713095812.1014365-1-krzysztof.karas@intel.com?part=4 ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in a separate function 2026-07-13 9:58 ` [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in " Krzysztof Karas 2026-07-13 10:10 ` sashiko-bot @ 2026-07-15 15:31 ` Janusz Krzysztofik 2026-07-20 8:18 ` Krzysztof Karas 1 sibling, 1 reply; 24+ messages in thread From: Janusz Krzysztofik @ 2026-07-15 15:31 UTC (permalink / raw) To: Krzysztof Karas, intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > Continue unloading shmem_sg_alloc_table by placing reading > folios and shrink call into a new helper. > Make the loop a bit more reader-friendly by removing iteration > over a structure and replacing it with a do-while loop. > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > --- > v3: > * Split refactoring and put it after the fix in shmem folio > counting suggested by Andi. > * Use do-while loop suggested by Robin. > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 102 ++++++++++++---------- > 1 file changed, 55 insertions(+), 47 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > index 4a61b012fb6f..7c8de8fe0a22 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > @@ -78,6 +78,55 @@ static int validate_size(size_t size, unsigned int page_count, > return 0; > } > > +static struct folio *shmem_shrink_get_folio(struct address_space *mapping, > + unsigned long folio_index, > + gfp_t gfp, unsigned int page_count, > + struct drm_i915_private *i915) > +{ > + struct folio *folio = NULL; > + unsigned int retries = 2; > + > + do { > + cond_resched(); > + folio = shmem_read_folio_gfp(mapping, folio_index, gfp); > + if (IS_ERR(folio)) { Going again through then unused shrinking and modification of gfp doesn't make sense, I believe. Could be avoided based on retries value as an additional condition. Thanks, Janusz > + i915_gem_shrink(NULL, i915, 2 * page_count, NULL, > + I915_SHRINK_BOUND | I915_SHRINK_UNBOUND); > + > + /* > + * We've tried hard to allocate the memory by reaping > + * our own buffer, now let the real VM do its job and > + * go down in flames if truly OOM. > + * > + * However, since graphics tend to be disposable, > + * defer the oom here by reporting the ENOMEM back > + * to userspace. > + * > + * Reclaim and warn, but no oom. > + */ > + gfp = mapping_gfp_mask(mapping); > + > + /* > + * Our bo are always dirty and so we require > + * kswapd to reclaim our pages (direct reclaim > + * does not effectively begin pageout of our > + * buffers on its own). However, direct reclaim > + * only waits for kswapd when under allocation > + * congestion. So as a result __GFP_RECLAIM is > + * unreliable and fails to actually reclaim our > + * dirty pages -- unless you try over and over > + * again with !__GFP_NORETRY. However, we still > + * want to fail this allocation rather than > + * trigger the out-of-memory killer and for > + * this we want __GFP_RETRY_MAYFAIL. > + */ > + gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; > + } > + } while (IS_ERR(folio) && --retries); > + > + return folio; > +} > + > int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > size_t size, struct intel_memory_region *mr, > struct address_space *mapping, > @@ -117,57 +166,16 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > for (i = 0; i < page_count; i++) { > unsigned long folio_page_index = 0; > unsigned long nr_pages; > - const unsigned int shrink[] = { > - I915_SHRINK_BOUND | I915_SHRINK_UNBOUND, > - 0, > - }, *s = shrink; > gfp_t gfp = noreclaim; > > /* Grab the next folio if we exhausted the current one. */ > if (!i || i > folio_end) { > - do { > - cond_resched(); > - folio = shmem_read_folio_gfp(mapping, i, gfp); > - if (!IS_ERR(folio)) > - break; > - > - if (!*s) { > - ret = PTR_ERR(folio); > - goto err_sg; > - } > - > - i915_gem_shrink(NULL, i915, 2 * page_count, NULL, *s++); > - > - /* > - * We've tried hard to allocate the memory by reaping > - * our own buffer, now let the real VM do its job and > - * go down in flames if truly OOM. > - * > - * However, since graphics tend to be disposable, > - * defer the oom here by reporting the ENOMEM back > - * to userspace. > - */ > - if (!*s) { > - /* reclaim and warn, but no oom */ > - gfp = mapping_gfp_mask(mapping); > - > - /* > - * Our bo are always dirty and so we require > - * kswapd to reclaim our pages (direct reclaim > - * does not effectively begin pageout of our > - * buffers on its own). However, direct reclaim > - * only waits for kswapd when under allocation > - * congestion. So as a result __GFP_RECLAIM is > - * unreliable and fails to actually reclaim our > - * dirty pages -- unless you try over and over > - * again with !__GFP_NORETRY. However, we still > - * want to fail this allocation rather than > - * trigger the out-of-memory killer and for > - * this we want __GFP_RETRY_MAYFAIL. > - */ > - gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; > - } > - } while (1); > + folio = shmem_shrink_get_folio(mapping, i, gfp, > + page_count, i915); > + if (IS_ERR(folio)) { > + ret = PTR_ERR(folio); > + goto err_sg; > + } > > folio_start = folio_pgoff(folio); > folio_end = folio_start + folio_nr_pages(folio) - 1; ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in a separate function 2026-07-15 15:31 ` Janusz Krzysztofik @ 2026-07-20 8:18 ` Krzysztof Karas 2026-07-20 10:15 ` Janusz Krzysztofik 0 siblings, 1 reply; 24+ messages in thread From: Krzysztof Karas @ 2026-07-20 8:18 UTC (permalink / raw) To: Janusz Krzysztofik Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec Hi Janusz, On 2026-07-15 at 17:31:56 +0200, Janusz Krzysztofik wrote: > On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > > Continue unloading shmem_sg_alloc_table by placing reading > > folios and shrink call into a new helper. > > Make the loop a bit more reader-friendly by removing iteration > > over a structure and replacing it with a do-while loop. > > > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > > --- > > v3: > > * Split refactoring and put it after the fix in shmem folio > > counting suggested by Andi. > > * Use do-while loop suggested by Robin. > > > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 102 ++++++++++++---------- > > 1 file changed, 55 insertions(+), 47 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > index 4a61b012fb6f..7c8de8fe0a22 100644 > > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > @@ -78,6 +78,55 @@ static int validate_size(size_t size, unsigned int page_count, > > return 0; > > } > > > > +static struct folio *shmem_shrink_get_folio(struct address_space *mapping, > > + unsigned long folio_index, > > + gfp_t gfp, unsigned int page_count, > > + struct drm_i915_private *i915) > > +{ > > + struct folio *folio = NULL; > > + unsigned int retries = 2; > > + > > + do { > > + cond_resched(); > > + folio = shmem_read_folio_gfp(mapping, folio_index, gfp); > > + if (IS_ERR(folio)) { > > Going again through then unused shrinking and modification of gfp doesn't > make sense, I believe. Could be avoided based on retries value as an > additional condition. If calling i915_gem_shrink again doesn't give us anything, then looping doesn not really benefit us here. We could do something like this instead: folio = shmem_read_folio_gfp(...); if (IS_ERR(folio)) { i915_gem_shrink(...); gfp = mapping_gfp_mask(mapping); gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; /* again */ folio = shmem_read_folio_gfp(...); } return folio; That way we'd be explicit about shrinking once and retrying folio reading only once. Reduced indentation would be added bonus. What do you think? -- Best Regards, Krzysztof ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in a separate function 2026-07-20 8:18 ` Krzysztof Karas @ 2026-07-20 10:15 ` Janusz Krzysztofik 0 siblings, 0 replies; 24+ messages in thread From: Janusz Krzysztofik @ 2026-07-20 10:15 UTC (permalink / raw) To: Krzysztof Karas Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec On Mon, 2026-07-20 at 08:18 +0000, Krzysztof Karas wrote: > Hi Janusz, > > On 2026-07-15 at 17:31:56 +0200, Janusz Krzysztofik wrote: > > On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > > > Continue unloading shmem_sg_alloc_table by placing reading > > > folios and shrink call into a new helper. > > > Make the loop a bit more reader-friendly by removing iteration > > > over a structure and replacing it with a do-while loop. > > > > > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > > > --- > > > v3: > > > * Split refactoring and put it after the fix in shmem folio > > > counting suggested by Andi. > > > * Use do-while loop suggested by Robin. > > > > > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 102 ++++++++++++---------- > > > 1 file changed, 55 insertions(+), 47 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > > index 4a61b012fb6f..7c8de8fe0a22 100644 > > > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > > @@ -78,6 +78,55 @@ static int validate_size(size_t size, unsigned int page_count, > > > return 0; > > > } > > > > > > +static struct folio *shmem_shrink_get_folio(struct address_space *mapping, > > > + unsigned long folio_index, > > > + gfp_t gfp, unsigned int page_count, > > > + struct drm_i915_private *i915) > > > +{ > > > + struct folio *folio = NULL; > > > + unsigned int retries = 2; > > > + > > > + do { > > > + cond_resched(); > > > + folio = shmem_read_folio_gfp(mapping, folio_index, gfp); > > > + if (IS_ERR(folio)) { > > > > Going again through then unused shrinking and modification of gfp doesn't > > make sense, I believe. Could be avoided based on retries value as an > > additional condition. > If calling i915_gem_shrink again doesn't give us anything, then > looping doesn not really benefit us here. We could do something > like this instead: > > folio = shmem_read_folio_gfp(...); > if (IS_ERR(folio)) { > i915_gem_shrink(...); > gfp = mapping_gfp_mask(mapping); > gfp |= __GFP_RETRY_MAYFAIL | __GFP_NOWARN; > /* again */ > folio = shmem_read_folio_gfp(...); > } > > return folio; > > That way we'd be explicit about shrinking once and retrying > folio reading only once. Reduced indentation would be added > bonus. > > What do you think? Yes, that would be much more clear. I would only keep the cond_resched(), at least before retrying, unless you can justify its removal. Thanks, Janusz ^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas ` (3 preceding siblings ...) 2026-07-13 9:58 ` [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in " Krzysztof Karas @ 2026-07-13 9:58 ` Krzysztof Karas 2026-07-13 10:09 ` sashiko-bot 2026-07-15 17:04 ` Janusz Krzysztofik 2026-07-13 11:01 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Patchwork 2026-07-13 14:14 ` ✗ i915.CI.Full: failure " Patchwork 6 siblings, 2 replies; 24+ messages in thread From: Krzysztof Karas @ 2026-07-13 9:58 UTC (permalink / raw) To: intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Janusz Krzysztofik, Sebastian Brzezinka, Krzysztof Niemiec, Krzysztof Karas Change the main "for" loop into "while" to get rid of obscure iterator "i" and use more descriptive name to indicate how many pages were already covered. Detect first loop with st->nents and put instructions for that case in their own block for easier reading. Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> --- v3: * Split refactoring and put it after the fix in shmem folio counting suggested by Andi. drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 +++++++++++------------ 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c index 7c8de8fe0a22..66d0f8f6ffcc 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -135,11 +135,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, unsigned int page_count; /* restricted by sg_alloc_table */ unsigned long 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; - unsigned long i; int ret; page_count = size / PAGE_SIZE; @@ -163,15 +163,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, sg = st->sgl; st->nents = 0; - for (i = 0; i < page_count; i++) { + while (pages_done < page_count) { unsigned long folio_page_index = 0; unsigned long nr_pages; gfp_t gfp = noreclaim; /* Grab the next folio if we exhausted the current one. */ - if (!i || i > folio_end) { - folio = shmem_shrink_get_folio(mapping, i, gfp, - page_count, i915); + if (!pages_done || pages_done > folio_end) { + folio = shmem_shrink_get_folio(mapping, pages_done, gfp, + page_count - pages_done, i915); if (IS_ERR(folio)) { ret = PTR_ERR(folio); goto err_sg; @@ -181,7 +181,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, folio_end = folio_start + folio_nr_pages(folio) - 1; } - folio_page_index = i - folio_start; + folio_page_index = pages_done - folio_start; if (WARN_ON_ONCE(folio_page_index >= folio_nr_pages(folio))) { ret = -EINVAL; folio_put(folio); @@ -190,16 +190,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, nr_pages = min_array(((unsigned long[]) { folio_nr_pages(folio) - folio_page_index, - page_count - i, + page_count - pages_done, max_t(unsigned int, 1, max_segment / PAGE_SIZE), }), 3); - - if (!i || - sg->length >= max_segment || - folio_pfn(folio) + folio_page_index != next_pfn) { - if (i) - sg = sg_next(sg); - + if (!st->nents) { + st->nents++; + sg_set_page(sg, folio_page(folio, 0), nr_pages * PAGE_SIZE, 0); + } else if (sg->length >= max_segment || + folio_pfn(folio) + folio_page_index != next_pfn) { + sg = sg_next(sg); st->nents++; sg_set_page(sg, folio_page(folio, folio_page_index), nr_pages * PAGE_SIZE, 0); @@ -212,7 +211,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, } next_pfn = folio_pfn(folio) + folio_page_index + nr_pages; - i += nr_pages - 1; + pages_done += nr_pages; /* Check that the i965g/gm workaround works. */ GEM_BUG_ON(gfp & __GFP_DMA32 && next_pfn >= 0x00100000UL); -- 2.34.1 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop 2026-07-13 9:58 ` [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas @ 2026-07-13 10:09 ` sashiko-bot 2026-07-15 17:04 ` Janusz Krzysztofik 1 sibling, 0 replies; 24+ messages in thread From: sashiko-bot @ 2026-07-13 10:09 UTC (permalink / raw) To: Krzysztof Karas; +Cc: dri-devel Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: Pre-existing issues: - [High] Pinned folios are permanently leaked in the error path if an allocation fails before the scatterlist pointer `sg` is advanced past the first entry. -- --- Patch [5]: [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop --- commit f3eba03d9fc5ce905a11cce1578d72ea21a144f1 Author: Krzysztof Karas <krzysztof.karas@intel.com> drm/i915/gem: Remove iterator and use while loop This commit changes the main "for" loop into a "while" loop to get rid of the obscure iterator "i" and use a more descriptive name to indicate how many pages were already covered. > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > index 7c8de8fe0a225..66d0f8f6ffccb 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c [ ... ] > @@ -212,7 +211,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > } > > next_pfn = folio_pfn(folio) + folio_page_index + nr_pages; > - i += nr_pages - 1; > + pages_done += nr_pages; > > /* Check that the i965g/gm workaround works. */ > GEM_BUG_ON(gfp & __GFP_DMA32 && next_pfn >= 0x00100000UL); [Severity: High] This isn't a bug introduced by this patch, but looking at the error handling in shmem_sg_alloc_table() in drivers/gpu/drm/i915/gem/i915_gem_shmem.c (around line 228), is it possible to leak pinned folios? If an allocation fails after successfully allocating the first folio(s) into the first scatterlist entry, st->nents will be 1 but sg will still equal st->sgl. The error path jumps to err_sg: err_sg: sg_mark_end(sg); if (sg != st->sgl) { shmem_sg_free_table(st, mapping, false, false); } else { mapping_clear_unevictable(mapping); sg_free_table(st); } Since sg == st->sgl, this takes the else branch and bypasses shmem_sg_free_table(), leaving the folios in the first scatterlist entry pinned. Would checking if (st->nents > 0) be more appropriate here? -- Sashiko AI review · https://sashiko.dev/#/patchset/20260713095812.1014365-1-krzysztof.karas@intel.com?part=5 ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop 2026-07-13 9:58 ` [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas 2026-07-13 10:09 ` sashiko-bot @ 2026-07-15 17:04 ` Janusz Krzysztofik 2026-07-20 8:25 ` Krzysztof Karas 1 sibling, 1 reply; 24+ messages in thread From: Janusz Krzysztofik @ 2026-07-15 17:04 UTC (permalink / raw) To: Krzysztof Karas, intel-gfx, dri-devel, iommu Cc: Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec Hi Krzysztof, On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > Change the main "for" loop into "while" to get rid of obscure > iterator "i" and use more descriptive name to indicate how many > pages were already covered. Detect first loop with st->nents and > put instructions for that case in their own block for easier > reading. > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > --- > v3: > * Split refactoring and put it after the fix in shmem folio > counting suggested by Andi. > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 +++++++++++------------ > 1 file changed, 14 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > index 7c8de8fe0a22..66d0f8f6ffcc 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > @@ -135,11 +135,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > unsigned int page_count; /* restricted by sg_alloc_table */ > unsigned long 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; > - unsigned long i; > int ret; > > page_count = size / PAGE_SIZE; > @@ -163,15 +163,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > sg = st->sgl; > st->nents = 0; > - for (i = 0; i < page_count; i++) { > + while (pages_done < page_count) { > unsigned long folio_page_index = 0; > unsigned long nr_pages; > gfp_t gfp = noreclaim; > > /* Grab the next folio if we exhausted the current one. */ > - if (!i || i > folio_end) { > - folio = shmem_shrink_get_folio(mapping, i, gfp, > - page_count, i915); > + if (!pages_done || pages_done > folio_end) { > + folio = shmem_shrink_get_folio(mapping, pages_done, gfp, > + page_count - pages_done, i915); > if (IS_ERR(folio)) { > ret = PTR_ERR(folio); > goto err_sg; > @@ -181,7 +181,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > folio_end = folio_start + folio_nr_pages(folio) - 1; > } > > - folio_page_index = i - folio_start; > + folio_page_index = pages_done - folio_start; > if (WARN_ON_ONCE(folio_page_index >= folio_nr_pages(folio))) { > ret = -EINVAL; > folio_put(folio); > @@ -190,16 +190,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > nr_pages = min_array(((unsigned long[]) { > folio_nr_pages(folio) - folio_page_index, > - page_count - i, > + page_count - pages_done, > max_t(unsigned int, 1, max_segment / PAGE_SIZE), > }), 3); > - > - if (!i || > - sg->length >= max_segment || > - folio_pfn(folio) + folio_page_index != next_pfn) { > - if (i) > - sg = sg_next(sg); > - > + if (!st->nents) { > + st->nents++; > + sg_set_page(sg, folio_page(folio, 0), nr_pages * PAGE_SIZE, 0); > + } else if (sg->length >= max_segment || > + folio_pfn(folio) + folio_page_index != next_pfn) { > + sg = sg_next(sg); Repeating two or three lines of code to avoid calling another one conditionally doesn't look optimal to me. Maybe you could invent a simple replacement of that 'if (i)' conditional expression. Thanks, Janusz > st->nents++; > sg_set_page(sg, folio_page(folio, folio_page_index), > nr_pages * PAGE_SIZE, 0); > @@ -212,7 +211,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > } > > next_pfn = folio_pfn(folio) + folio_page_index + nr_pages; > - i += nr_pages - 1; > + pages_done += nr_pages; > > /* Check that the i965g/gm workaround works. */ > GEM_BUG_ON(gfp & __GFP_DMA32 && next_pfn >= 0x00100000UL); ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop 2026-07-15 17:04 ` Janusz Krzysztofik @ 2026-07-20 8:25 ` Krzysztof Karas 2026-07-20 10:19 ` Janusz Krzysztofik 0 siblings, 1 reply; 24+ messages in thread From: Krzysztof Karas @ 2026-07-20 8:25 UTC (permalink / raw) To: Janusz Krzysztofik Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec Hi Janusz, On 2026-07-15 at 19:04:42 +0200, Janusz Krzysztofik wrote: > Hi Krzysztof, > > On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > > Change the main "for" loop into "while" to get rid of obscure > > iterator "i" and use more descriptive name to indicate how many > > pages were already covered. Detect first loop with st->nents and > > put instructions for that case in their own block for easier > > reading. > > > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > > --- > > v3: > > * Split refactoring and put it after the fix in shmem folio > > counting suggested by Andi. > > > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 +++++++++++------------ > > 1 file changed, 14 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > index 7c8de8fe0a22..66d0f8f6ffcc 100644 > > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > @@ -135,11 +135,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > unsigned int page_count; /* restricted by sg_alloc_table */ > > unsigned long 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; > > - unsigned long i; > > int ret; > > > > page_count = size / PAGE_SIZE; > > @@ -163,15 +163,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > > > sg = st->sgl; > > st->nents = 0; > > - for (i = 0; i < page_count; i++) { > > + while (pages_done < page_count) { > > unsigned long folio_page_index = 0; > > unsigned long nr_pages; > > gfp_t gfp = noreclaim; > > > > /* Grab the next folio if we exhausted the current one. */ > > - if (!i || i > folio_end) { > > - folio = shmem_shrink_get_folio(mapping, i, gfp, > > - page_count, i915); > > + if (!pages_done || pages_done > folio_end) { > > + folio = shmem_shrink_get_folio(mapping, pages_done, gfp, > > + page_count - pages_done, i915); > > if (IS_ERR(folio)) { > > ret = PTR_ERR(folio); > > goto err_sg; > > @@ -181,7 +181,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > folio_end = folio_start + folio_nr_pages(folio) - 1; > > } > > > > - folio_page_index = i - folio_start; > > + folio_page_index = pages_done - folio_start; > > if (WARN_ON_ONCE(folio_page_index >= folio_nr_pages(folio))) { > > ret = -EINVAL; > > folio_put(folio); > > @@ -190,16 +190,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > > > nr_pages = min_array(((unsigned long[]) { > > folio_nr_pages(folio) - folio_page_index, > > - page_count - i, > > + page_count - pages_done, > > max_t(unsigned int, 1, max_segment / PAGE_SIZE), > > }), 3); > > - > > - if (!i || > > - sg->length >= max_segment || > > - folio_pfn(folio) + folio_page_index != next_pfn) { > > - if (i) > > - sg = sg_next(sg); > > - > > + if (!st->nents) { > > + st->nents++; > > + sg_set_page(sg, folio_page(folio, 0), nr_pages * PAGE_SIZE, 0); > > + } else if (sg->length >= max_segment || > > + folio_pfn(folio) + folio_page_index != next_pfn) { > > + sg = sg_next(sg); > > Repeating two or three lines of code to avoid calling another one > conditionally doesn't look optimal to me. Maybe you could invent a simple > replacement of that 'if (i)' conditional expression. Perhaps it is not optimal. I do not feel comfortable having two conditions that contradict each other in the same block, which is why I wanted to take out the first iteration setup. It is more about aesthetics here, so I do not have a strong argument here besides readability. If that is not enough, then I'll revert to the previous code. -- Best Regards, Krzysztof ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop 2026-07-20 8:25 ` Krzysztof Karas @ 2026-07-20 10:19 ` Janusz Krzysztofik 0 siblings, 0 replies; 24+ messages in thread From: Janusz Krzysztofik @ 2026-07-20 10:19 UTC (permalink / raw) To: Krzysztof Karas Cc: intel-gfx, dri-devel, iommu, Andi Shyti, Robin Murphy, Jason Gunthorpe, Michał Grzelak, Sebastian Brzezinka, Krzysztof Niemiec On Mon, 2026-07-20 at 08:25 +0000, Krzysztof Karas wrote: > Hi Janusz, > > On 2026-07-15 at 19:04:42 +0200, Janusz Krzysztofik wrote: > > Hi Krzysztof, > > > > On Mon, 2026-07-13 at 09:58 +0000, Krzysztof Karas wrote: > > > Change the main "for" loop into "while" to get rid of obscure > > > iterator "i" and use more descriptive name to indicate how many > > > pages were already covered. Detect first loop with st->nents and > > > put instructions for that case in their own block for easier > > > reading. > > > > > > Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com> > > > --- > > > v3: > > > * Split refactoring and put it after the fix in shmem folio > > > counting suggested by Andi. > > > > > > drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 29 +++++++++++------------ > > > 1 file changed, 14 insertions(+), 15 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > > index 7c8de8fe0a22..66d0f8f6ffcc 100644 > > > --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > > +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c > > > @@ -135,11 +135,11 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > > unsigned int page_count; /* restricted by sg_alloc_table */ > > > unsigned long 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; > > > - unsigned long i; > > > int ret; > > > > > > page_count = size / PAGE_SIZE; > > > @@ -163,15 +163,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > > > > > sg = st->sgl; > > > st->nents = 0; > > > - for (i = 0; i < page_count; i++) { > > > + while (pages_done < page_count) { > > > unsigned long folio_page_index = 0; > > > unsigned long nr_pages; > > > gfp_t gfp = noreclaim; > > > > > > /* Grab the next folio if we exhausted the current one. */ > > > - if (!i || i > folio_end) { > > > - folio = shmem_shrink_get_folio(mapping, i, gfp, > > > - page_count, i915); > > > + if (!pages_done || pages_done > folio_end) { > > > + folio = shmem_shrink_get_folio(mapping, pages_done, gfp, > > > + page_count - pages_done, i915); > > > if (IS_ERR(folio)) { > > > ret = PTR_ERR(folio); > > > goto err_sg; > > > @@ -181,7 +181,7 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > > folio_end = folio_start + folio_nr_pages(folio) - 1; > > > } > > > > > > - folio_page_index = i - folio_start; > > > + folio_page_index = pages_done - folio_start; > > > if (WARN_ON_ONCE(folio_page_index >= folio_nr_pages(folio))) { > > > ret = -EINVAL; > > > folio_put(folio); > > > @@ -190,16 +190,15 @@ int shmem_sg_alloc_table(struct drm_i915_private *i915, struct sg_table *st, > > > > > > nr_pages = min_array(((unsigned long[]) { > > > folio_nr_pages(folio) - folio_page_index, > > > - page_count - i, > > > + page_count - pages_done, > > > max_t(unsigned int, 1, max_segment / PAGE_SIZE), > > > }), 3); > > > - > > > - if (!i || > > > - sg->length >= max_segment || > > > - folio_pfn(folio) + folio_page_index != next_pfn) { > > > - if (i) > > > - sg = sg_next(sg); > > > - > > > + if (!st->nents) { > > > + st->nents++; > > > + sg_set_page(sg, folio_page(folio, 0), nr_pages * PAGE_SIZE, 0); > > > + } else if (sg->length >= max_segment || > > > + folio_pfn(folio) + folio_page_index != next_pfn) { > > > + sg = sg_next(sg); > > > > Repeating two or three lines of code to avoid calling another one > > conditionally doesn't look optimal to me. Maybe you could invent a simple > > replacement of that 'if (i)' conditional expression. > Perhaps it is not optimal. I do not feel comfortable having two > conditions that contradict each other in the same block, which > is why I wanted to take out the first iteration setup. > > It is more about aesthetics here, so I do not have a strong > argument here besides readability. If that is not enough, then > I'll revert to the previous code. I think that also depends on how you address my comment to your patch 1/5 on that if condition, so we'll see if this comment will be still applicable. Thanks, Janusz ^ permalink raw reply [flat|nested] 24+ messages in thread
* ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas ` (4 preceding siblings ...) 2026-07-13 9:58 ` [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas @ 2026-07-13 11:01 ` Patchwork 2026-07-13 14:14 ` ✗ i915.CI.Full: failure " Patchwork 6 siblings, 0 replies; 24+ messages in thread From: Patchwork @ 2026-07-13 11:01 UTC (permalink / raw) To: Krzysztof Karas; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 1057 bytes --] == Series Details == Series: drivers: Improve memory management for large object allocations when i915/shmem is used with iommu URL : https://patchwork.freedesktop.org/series/170304/ State : success == Summary == CI Bug Log - changes from CI_DRM_18810 -> Patchwork_170304v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/index.html Participating hosts (42 -> 40) ------------------------------ Missing (2): bat-dg2-13 fi-snb-2520m Changes ------- No changes found Build changes ------------- * Linux: CI_DRM_18810 -> Patchwork_170304v1 CI-20190529: 20190529 CI_DRM_18810: 83d782d98f4ebb4a10b8ee107e3a389917e0b218 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_9003: 9003 Patchwork_170304v1: 83d782d98f4ebb4a10b8ee107e3a389917e0b218 @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/index.html [-- Attachment #2: Type: text/html, Size: 1622 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ i915.CI.Full: failure for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas ` (5 preceding siblings ...) 2026-07-13 11:01 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Patchwork @ 2026-07-13 14:14 ` Patchwork 6 siblings, 0 replies; 24+ messages in thread From: Patchwork @ 2026-07-13 14:14 UTC (permalink / raw) To: Krzysztof Karas; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 94884 bytes --] == Series Details == Series: drivers: Improve memory management for large object allocations when i915/shmem is used with iommu URL : https://patchwork.freedesktop.org/series/170304/ State : failure == Summary == CI Bug Log - changes from CI_DRM_18810_full -> Patchwork_170304v1_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_170304v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_170304v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_170304v1_full: ### IGT changes ### #### Possible regressions #### * igt@syncobj_timeline: - shard-dg2: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-4/igt@syncobj_timeline.html New tests --------- New tests have been introduced between CI_DRM_18810_full and Patchwork_170304v1_full: ### New IGT tests (3) ### * igt@syncobj_timeline@rc6: - Statuses : - Exec time: [None] s * igt@syncobj_timeline@static-toggle-suspend: - Statuses : - Exec time: [None] s * igt@syncobj_timeline@system-suspend-execbuf: - Statuses : - Exec time: [None] s Known issues ------------ Here are the changes found in Patchwork_170304v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@blit-reloc-keep-cache: - shard-rkl: NOTRUN -> [SKIP][2] ([i915#8411]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@api_intel_bb@blit-reloc-keep-cache.html * igt@api_intel_bb@object-reloc-keep-cache: - shard-dg1: NOTRUN -> [SKIP][3] ([i915#8411]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@api_intel_bb@object-reloc-keep-cache.html * igt@drm_buddy@drm_buddy: - shard-tglu-1: NOTRUN -> [SKIP][4] ([i915#15678]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@drm_buddy@drm_buddy.html * igt@gem_bad_reloc@negative-reloc-lut: - shard-rkl: NOTRUN -> [SKIP][5] ([i915#3281]) +7 other tests skip [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@gem_bad_reloc@negative-reloc-lut.html * igt@gem_ccs@block-multicopy-compressed: - shard-rkl: NOTRUN -> [SKIP][6] ([i915#14544] / [i915#9323]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@gem_ccs@block-multicopy-compressed.html * igt@gem_ccs@ctrl-surf-copy: - shard-tglu: NOTRUN -> [SKIP][7] ([i915#3555] / [i915#9323]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@gem_ccs@ctrl-surf-copy.html * igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-smem-lmem0: - shard-dg2: NOTRUN -> [INCOMPLETE][8] ([i915#13356] / [i915#16348]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-3/igt@gem_ccs@suspend-resume@tile4-compressed-compfmt0-smem-lmem0.html * igt@gem_create@create-ext-cpu-access-sanity-check: - shard-rkl: NOTRUN -> [SKIP][9] ([i915#6335]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@gem_create@create-ext-cpu-access-sanity-check.html * igt@gem_create@create-ext-set-pat: - shard-tglu-1: NOTRUN -> [SKIP][10] ([i915#8562]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@gem_create@create-ext-set-pat.html * igt@gem_ctx_sseu@invalid-args: - shard-tglu-1: NOTRUN -> [SKIP][11] ([i915#280]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@gem_ctx_sseu@invalid-args.html * igt@gem_exec_balancer@bonded-true-hang: - shard-dg1: NOTRUN -> [SKIP][12] ([i915#4812]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@gem_exec_balancer@bonded-true-hang.html * igt@gem_exec_balancer@parallel-ordering: - shard-rkl: NOTRUN -> [SKIP][13] ([i915#4525]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@gem_exec_balancer@parallel-ordering.html * igt@gem_exec_capture@capture-invisible: - shard-glk10: NOTRUN -> [SKIP][14] ([i915#6334]) +1 other test skip [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk10/igt@gem_exec_capture@capture-invisible.html * igt@gem_exec_reloc@basic-cpu-read: - shard-dg1: NOTRUN -> [SKIP][15] ([i915#3281]) +1 other test skip [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@gem_exec_reloc@basic-cpu-read.html * igt@gem_exec_suspend@basic-s0: - shard-dg2: [PASS][16] -> [INCOMPLETE][17] ([i915#13356]) +1 other test incomplete [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-4/igt@gem_exec_suspend@basic-s0.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-6/igt@gem_exec_suspend@basic-s0.html * igt@gem_huc_copy@huc-copy: - shard-tglu-1: NOTRUN -> [SKIP][18] ([i915#2190]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - shard-tglu-1: NOTRUN -> [SKIP][19] ([i915#4613]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@heavy-random: - shard-tglu: NOTRUN -> [SKIP][20] ([i915#4613]) +1 other test skip [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@gem_lmem_swapping@heavy-random.html * igt@gem_lmem_swapping@heavy-verify-random: - shard-rkl: NOTRUN -> [SKIP][21] ([i915#4613]) +2 other tests skip [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@gem_lmem_swapping@heavy-verify-random.html * igt@gem_lmem_swapping@smem-oom: - shard-glk: NOTRUN -> [SKIP][22] ([i915#4613]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk1/igt@gem_lmem_swapping@smem-oom.html * igt@gem_pread@exhaustion: - shard-rkl: NOTRUN -> [SKIP][23] ([i915#3282]) +2 other tests skip [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@gem_pread@exhaustion.html * igt@gem_pwrite@basic-exhaustion: - shard-glk10: NOTRUN -> [WARN][24] ([i915#14702] / [i915#2658]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk10/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@hw-rejects-pxp-context: - shard-rkl: NOTRUN -> [SKIP][25] ([i915#13717]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@gem_pxp@hw-rejects-pxp-context.html * igt@gem_set_tiling_vs_blt@tiled-to-untiled: - shard-dg1: NOTRUN -> [SKIP][26] ([i915#4079]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html * igt@gem_userptr_blits@create-destroy-unsync: - shard-tglu-1: NOTRUN -> [SKIP][27] ([i915#3297]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@gem_userptr_blits@create-destroy-unsync.html * igt@gem_workarounds@suspend-resume-fd: - shard-rkl: [PASS][28] -> [INCOMPLETE][29] ([i915#13356]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-4/igt@gem_workarounds@suspend-resume-fd.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-3/igt@gem_workarounds@suspend-resume-fd.html * igt@gen9_exec_parse@bb-start-far: - shard-tglu: NOTRUN -> [SKIP][30] ([i915#2527] / [i915#2856]) +1 other test skip [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@gen9_exec_parse@bb-start-far.html * igt@gen9_exec_parse@secure-batches: - shard-rkl: NOTRUN -> [SKIP][31] ([i915#2527]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@gen9_exec_parse@secure-batches.html * igt@gen9_exec_parse@valid-registers: - shard-tglu-1: NOTRUN -> [SKIP][32] ([i915#2527] / [i915#2856]) +2 other tests skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@gen9_exec_parse@valid-registers.html * igt@i915_module_load@resize-bar: - shard-tglu: NOTRUN -> [SKIP][33] ([i915#6412]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@i915_module_load@resize-bar.html * igt@i915_pm_freq_api@freq-suspend: - shard-tglu-1: NOTRUN -> [SKIP][34] ([i915#8399]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@i915_pm_freq_api@freq-suspend.html * igt@i915_pm_rc6_residency@rc6-fence: - shard-tglu: NOTRUN -> [WARN][35] ([i915#13790] / [i915#2681]) +1 other test warn [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@i915_pm_rc6_residency@rc6-fence.html * igt@i915_pm_rc6_residency@rc6-idle: - shard-tglu-1: NOTRUN -> [SKIP][36] ([i915#14498]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@i915_pm_rc6_residency@rc6-idle.html * igt@i915_pm_rpm@system-suspend-execbuf: - shard-dg2: [PASS][37] -> [DMESG-WARN][38] ([i915#13562]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-4/igt@i915_pm_rpm@system-suspend-execbuf.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-4/igt@i915_pm_rpm@system-suspend-execbuf.html * igt@i915_pm_sseu@full-enable: - shard-tglu: NOTRUN -> [SKIP][39] ([i915#4387]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@i915_pm_sseu@full-enable.html * igt@i915_query@hwconfig_table: - shard-rkl: NOTRUN -> [SKIP][40] ([i915#6245]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@i915_query@hwconfig_table.html * igt@i915_suspend@fence-restore-untiled: - shard-glk11: NOTRUN -> [INCOMPLETE][41] ([i915#16182] / [i915#4817]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk11/igt@i915_suspend@fence-restore-untiled.html * igt@i915_suspend@forcewake: - shard-glk: NOTRUN -> [INCOMPLETE][42] ([i915#16182] / [i915#4817]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk1/igt@i915_suspend@forcewake.html * igt@kms_addfb_basic@invalid-smem-bo-on-discrete: - shard-tglu: NOTRUN -> [SKIP][43] ([i915#12454] / [i915#12712]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html * igt@kms_async_flips@alternate-sync-async-flip-atomic: - shard-dg1: [PASS][44] -> [FAIL][45] ([i915#14888]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg1-16/igt@kms_async_flips@alternate-sync-async-flip-atomic.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-15/igt@kms_async_flips@alternate-sync-async-flip-atomic.html * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-1: - shard-dg1: NOTRUN -> [FAIL][46] ([i915#14888]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-15/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-a-hdmi-a-1.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels: - shard-tglu: NOTRUN -> [SKIP][47] ([i915#1769] / [i915#3555]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels: - shard-dg1: NOTRUN -> [SKIP][48] ([i915#1769] / [i915#3555]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html * igt@kms_big_fb@4-tiled-addfb: - shard-tglu-1: NOTRUN -> [SKIP][49] ([i915#5286]) +2 other tests skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_big_fb@4-tiled-addfb.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip: - shard-rkl: NOTRUN -> [SKIP][50] ([i915#5286]) +3 other tests skip [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip: - shard-dg1: NOTRUN -> [SKIP][51] ([i915#4538] / [i915#5286]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip: - shard-tglu: NOTRUN -> [SKIP][52] ([i915#5286]) +3 other tests skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip.html * igt@kms_big_fb@linear-64bpp-rotate-90: - shard-rkl: NOTRUN -> [SKIP][53] ([i915#3638]) +1 other test skip [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_big_fb@linear-64bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-32bpp-rotate-90: - shard-dg1: NOTRUN -> [SKIP][54] ([i915#4538]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][55] ([i915#14098] / [i915#6095]) +39 other tests skip [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-1.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4: - shard-dg1: NOTRUN -> [SKIP][56] ([i915#6095]) +212 other tests skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-17/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs: - shard-tglu: NOTRUN -> [SKIP][57] ([i915#6095]) +29 other tests skip [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-mc-ccs.html * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs-cc: - shard-glk: NOTRUN -> [SKIP][58] +171 other tests skip [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk2/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs-cc.html * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs: - shard-tglu: NOTRUN -> [SKIP][59] ([i915#12313]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][60] ([i915#6095]) +65 other tests skip [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][61] ([i915#10307] / [i915#6095]) +97 other tests skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1: - shard-glk10: NOTRUN -> [SKIP][62] +126 other tests skip [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk10/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-c-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs: - shard-tglu-1: NOTRUN -> [SKIP][63] ([i915#12805]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1: - shard-glk: [PASS][64] -> [INCOMPLETE][65] ([i915#15582]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk2/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk8/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-d-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][66] ([i915#6095]) +7 other tests skip [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-3/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-d-hdmi-a-3.html * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [INCOMPLETE][67] ([i915#15582]) +1 other test incomplete [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk6/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1: - shard-tglu-1: NOTRUN -> [SKIP][68] ([i915#6095]) +39 other tests skip [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs: - shard-tglu-1: NOTRUN -> [SKIP][69] ([i915#12313]) +1 other test skip [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html * igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][70] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-4/igt@kms_ccs@random-ccs-data-yf-tiled-ccs@pipe-d-hdmi-a-1.html * igt@kms_cdclk@mode-transition-all-outputs: - shard-rkl: NOTRUN -> [SKIP][71] ([i915#3742]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_cdclk@mode-transition-all-outputs.html * igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][72] ([i915#13781]) +3 other tests skip [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-5/igt@kms_cdclk@mode-transition@pipe-d-hdmi-a-3.html * igt@kms_chamelium_audio@dp-audio-after-suspend: - shard-rkl: NOTRUN -> [SKIP][73] ([i915#11151]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_chamelium_audio@dp-audio-after-suspend.html * igt@kms_chamelium_audio@hdmi-audio-edid: - shard-tglu: NOTRUN -> [SKIP][74] ([i915#11151] / [i915#7828]) +3 other tests skip [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_chamelium_audio@hdmi-audio-edid.html * igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d: - shard-tglu: NOTRUN -> [SKIP][75] ([i915#16471]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_chamelium_color_pipeline@plane-lut1d-ctm3x4-lut1d.html * igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d: - shard-rkl: NOTRUN -> [SKIP][76] ([i915#16471]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_chamelium_color_pipeline@plane-lut1d-lut1d.html * igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4: - shard-tglu-1: NOTRUN -> [SKIP][77] ([i915#16471]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_chamelium_color_pipeline@plane-lut1d-post-ctm3x4.html * igt@kms_chamelium_frames@dp-crc-fast: - shard-dg1: NOTRUN -> [SKIP][78] ([i915#11151] / [i915#7828]) +1 other test skip [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_chamelium_frames@dp-crc-fast.html * igt@kms_chamelium_frames@hdmi-frame-dump: - shard-tglu-1: NOTRUN -> [SKIP][79] ([i915#11151] / [i915#7828]) +6 other tests skip [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_chamelium_frames@hdmi-frame-dump.html * igt@kms_chamelium_hpd@vga-hpd-for-each-pipe: - shard-rkl: NOTRUN -> [SKIP][80] ([i915#11151] / [i915#7828]) +5 other tests skip [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_chamelium_hpd@vga-hpd-for-each-pipe.html * igt@kms_content_protection@atomic-dpms: - shard-tglu-1: NOTRUN -> [SKIP][81] ([i915#15865]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_content_protection@atomic-dpms.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-tglu: NOTRUN -> [SKIP][82] ([i915#15330] / [i915#3116] / [i915#3299]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14: - shard-tglu-1: NOTRUN -> [SKIP][83] ([i915#15330]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html * igt@kms_content_protection@dp-mst-type-0-suspend-resume: - shard-rkl: NOTRUN -> [SKIP][84] ([i915#15330]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html * igt@kms_content_protection@legacy-hdcp14: - shard-tglu: NOTRUN -> [SKIP][85] ([i915#15865]) +1 other test skip [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_content_protection@legacy-hdcp14.html * igt@kms_content_protection@legacy@pipe-a-dp-3: - shard-dg2: NOTRUN -> [FAIL][86] ([i915#7173]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-10/igt@kms_content_protection@legacy@pipe-a-dp-3.html * igt@kms_content_protection@lic-type-0-hdcp14: - shard-dg1: NOTRUN -> [SKIP][87] ([i915#15865]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_content_protection@lic-type-0-hdcp14.html * igt@kms_content_protection@srm: - shard-rkl: NOTRUN -> [SKIP][88] ([i915#15865]) +2 other tests skip [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_content_protection@srm.html * igt@kms_cursor_crc@cursor-offscreen-512x512: - shard-tglu-1: NOTRUN -> [SKIP][89] ([i915#13049]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_cursor_crc@cursor-offscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-256x85: - shard-tglu-1: NOTRUN -> [FAIL][90] ([i915#13566]) +3 other tests fail [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-256x85.html * igt@kms_cursor_crc@cursor-onscreen-512x170: - shard-tglu: NOTRUN -> [SKIP][91] ([i915#13049]) [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_cursor_crc@cursor-onscreen-512x170.html * igt@kms_cursor_crc@cursor-random-512x170: - shard-rkl: NOTRUN -> [SKIP][92] ([i915#13049]) [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_cursor_crc@cursor-random-512x170.html * igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1: - shard-rkl: NOTRUN -> [FAIL][93] ([i915#13566]) [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html * igt@kms_cursor_crc@cursor-sliding-max-size: - shard-tglu-1: NOTRUN -> [SKIP][94] ([i915#3555]) +3 other tests skip [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-max-size.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size: - shard-rkl: NOTRUN -> [SKIP][95] ([i915#4103]) +1 other test skip [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy: - shard-rkl: NOTRUN -> [SKIP][96] +50 other tests skip [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions: - shard-dg1: NOTRUN -> [SKIP][97] ([i915#4103]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size: - shard-tglu-1: NOTRUN -> [SKIP][98] ([i915#4103]) [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html * igt@kms_dirtyfb@psr-dirtyfb-ioctl: - shard-tglu-1: NOTRUN -> [SKIP][99] ([i915#9723]) [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc: - shard-dg2: [PASS][100] -> [SKIP][101] ([i915#3555]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-10/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html * igt@kms_dp_link_training@non-uhbr-sst: - shard-tglu-1: NOTRUN -> [SKIP][102] ([i915#13749]) [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_dp_link_training@non-uhbr-sst.html * igt@kms_dp_link_training@uhbr-mst: - shard-rkl: NOTRUN -> [SKIP][103] ([i915#13748]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_dp_link_training@uhbr-mst.html * igt@kms_dp_linktrain_fallback@dp-fallback: - shard-dg1: NOTRUN -> [SKIP][104] ([i915#13707]) [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_dp_linktrain_fallback@dp-fallback.html * igt@kms_dsc@dsc-basic: - shard-rkl: NOTRUN -> [SKIP][105] ([i915#16361]) +1 other test skip [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_dsc@dsc-basic.html * igt@kms_dsc@dsc-with-formats: - shard-tglu: NOTRUN -> [SKIP][106] ([i915#16361]) +3 other tests skip [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_dsc@dsc-with-formats.html * igt@kms_dsc@dsc-with-output-formats: - shard-tglu-1: NOTRUN -> [SKIP][107] ([i915#16361]) +2 other tests skip [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_dsc@dsc-with-output-formats.html * igt@kms_dsc@dsc-with-output-formats-bigjoiner: - shard-dg1: NOTRUN -> [SKIP][108] ([i915#16361]) [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_dsc@dsc-with-output-formats-bigjoiner.html * igt@kms_fbcon_fbt@psr-suspend: - shard-rkl: NOTRUN -> [SKIP][109] ([i915#3955]) [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_fbcon_fbt@psr-suspend.html * igt@kms_feature_discovery@chamelium: - shard-tglu-1: NOTRUN -> [SKIP][110] ([i915#2065]) [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_feature_discovery@chamelium.html * igt@kms_feature_discovery@display-3x: - shard-rkl: NOTRUN -> [SKIP][111] ([i915#16081]) [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_feature_discovery@display-3x.html * igt@kms_feature_discovery@display-4x: - shard-glk11: NOTRUN -> [SKIP][112] +27 other tests skip [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk11/igt@kms_feature_discovery@display-4x.html * igt@kms_feature_discovery@hdr: - shard-tglu-1: NOTRUN -> [SKIP][113] ([i915#16600]) [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_feature_discovery@hdr.html * igt@kms_flip@2x-blocking-wf_vblank: - shard-tglu: NOTRUN -> [SKIP][114] ([i915#3637] / [i915#9934]) +4 other tests skip [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_flip@2x-blocking-wf_vblank.html * igt@kms_flip@2x-flip-vs-dpms: - shard-rkl: NOTRUN -> [SKIP][115] ([i915#9934]) +6 other tests skip [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_flip@2x-flip-vs-dpms.html * igt@kms_flip@2x-flip-vs-panning-vs-hang: - shard-dg1: NOTRUN -> [SKIP][116] ([i915#9934]) +1 other test skip [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_flip@2x-flip-vs-panning-vs-hang.html * igt@kms_flip@2x-plain-flip: - shard-tglu-1: NOTRUN -> [SKIP][117] ([i915#3637] / [i915#9934]) +5 other tests skip [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_flip@2x-plain-flip.html * igt@kms_flip@wf_vblank-ts-check-interruptible: - shard-rkl: [PASS][118] -> [FAIL][119] ([i915#14600]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-5/igt@kms_flip@wf_vblank-ts-check-interruptible.html [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_flip@wf_vblank-ts-check-interruptible.html * igt@kms_flip@wf_vblank-ts-check-interruptible@b-hdmi-a2: - shard-rkl: NOTRUN -> [FAIL][120] ([i915#14600]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_flip@wf_vblank-ts-check-interruptible@b-hdmi-a2.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling: - shard-tglu: NOTRUN -> [SKIP][121] ([i915#15643]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling: - shard-tglu-1: NOTRUN -> [SKIP][122] ([i915#15643]) +1 other test skip [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling: - shard-dg1: NOTRUN -> [SKIP][123] ([i915#15643]) +2 other tests skip [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling: - shard-rkl: NOTRUN -> [SKIP][124] ([i915#15643]) +1 other test skip [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu: - shard-tglu-1: NOTRUN -> [SKIP][125] +75 other tests skip [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render: - shard-tglu: NOTRUN -> [SKIP][126] +49 other tests skip [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][127] ([i915#1825]) +8 other tests skip [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbc-suspend: - shard-rkl: [PASS][128] -> [INCOMPLETE][129] ([i915#10056]) [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-suspend.html [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-suspend.html - shard-glk11: NOTRUN -> [INCOMPLETE][130] ([i915#10056] / [i915#16593]) [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk11/igt@kms_frontbuffer_tracking@fbc-suspend.html * igt@kms_frontbuffer_tracking@fbc-tiling-4: - shard-tglu: NOTRUN -> [SKIP][131] ([i915#5439]) [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_frontbuffer_tracking@fbc-tiling-4.html * igt@kms_frontbuffer_tracking@fbchdr-1p-indfb-fliptrack-mmap-gtt: - shard-tglu-1: NOTRUN -> [SKIP][132] ([i915#15989]) +15 other tests skip [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbchdr-1p-indfb-fliptrack-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbchdr-1p-pri-indfb-multidraw: - shard-dg2: [PASS][133] -> [SKIP][134] ([i915#15989]) +6 other tests skip [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-10/igt@kms_frontbuffer_tracking@fbchdr-1p-pri-indfb-multidraw.html [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-5/igt@kms_frontbuffer_tracking@fbchdr-1p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-pri-indfb-draw-pwrite: - shard-glk: [PASS][135] -> [SKIP][136] +10 other tests skip [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk8/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-pri-indfb-draw-pwrite.html [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk9/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbchdr-modesetfrombusy: - shard-rkl: NOTRUN -> [SKIP][137] ([i915#15989]) +11 other tests skip [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_frontbuffer_tracking@fbchdr-modesetfrombusy.html * igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-render: - shard-rkl: [PASS][138] -> [SKIP][139] ([i915#15989]) +9 other tests skip [138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-render.html [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_frontbuffer_tracking@fbchdr-rgb101010-draw-render.html * igt@kms_frontbuffer_tracking@fbchdr-rgb565-draw-pwrite: - shard-dg1: NOTRUN -> [SKIP][140] ([i915#15989]) +3 other tests skip [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_frontbuffer_tracking@fbchdr-rgb565-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbchdr-suspend: - shard-glk10: NOTRUN -> [INCOMPLETE][141] ([i915#16056] / [i915#16593]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk10/igt@kms_frontbuffer_tracking@fbchdr-suspend.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte: - shard-rkl: NOTRUN -> [SKIP][142] ([i915#15102] / [i915#3023]) +13 other tests skip [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt: - shard-tglu-1: NOTRUN -> [SKIP][143] ([i915#15102]) +30 other tests skip [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4: - shard-tglu-1: NOTRUN -> [SKIP][144] ([i915#5439]) [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu: - shard-rkl: NOTRUN -> [SKIP][145] ([i915#15102]) +14 other tests skip [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-spr-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu: - shard-tglu: NOTRUN -> [SKIP][146] ([i915#15989]) +10 other tests skip [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@pipe-fbc-rte: - shard-tglu-1: NOTRUN -> [SKIP][147] ([i915#9766]) [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc: - shard-dg1: NOTRUN -> [SKIP][148] ([i915#15990] / [i915#8708]) +6 other tests skip [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary: - shard-tglu: NOTRUN -> [SKIP][149] ([i915#15102]) +21 other tests skip [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary.html * igt@kms_frontbuffer_tracking@psr-suspend: - shard-dg1: NOTRUN -> [SKIP][150] ([i915#15102]) +4 other tests skip [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-suspend.html * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-draw-mmap-cpu: - shard-dg1: NOTRUN -> [SKIP][151] +15 other tests skip [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html * igt@kms_hdr@bpc-switch: - shard-rkl: [PASS][152] -> [SKIP][153] ([i915#3555] / [i915#8228]) [152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_hdr@bpc-switch.html [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_hdr@bpc-switch.html * igt@kms_hdr@bpc-switch-dpms: - shard-rkl: NOTRUN -> [SKIP][154] ([i915#3555] / [i915#8228]) [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_hdr@bpc-switch-dpms.html * igt@kms_hdr@bpc-switch-suspend: - shard-tglu-1: NOTRUN -> [SKIP][155] ([i915#3555] / [i915#8228]) [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_hdr@bpc-switch-suspend.html * igt@kms_hdr@brightness-with-hdr: - shard-tglu-1: NOTRUN -> [SKIP][156] ([i915#12713]) [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_hdr@brightness-with-hdr.html * igt@kms_hdr@invalid-hdr: - shard-tglu: NOTRUN -> [SKIP][157] ([i915#3555] / [i915#8228]) [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_hdr@invalid-hdr.html * igt@kms_joiner@basic-big-joiner: - shard-rkl: NOTRUN -> [SKIP][158] ([i915#15460]) [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_joiner@basic-big-joiner.html * igt@kms_joiner@basic-force-big-joiner: - shard-tglu-1: NOTRUN -> [SKIP][159] ([i915#15459]) [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_joiner@basic-force-big-joiner.html * igt@kms_joiner@basic-force-ultra-joiner: - shard-tglu-1: NOTRUN -> [SKIP][160] ([i915#15458]) [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_joiner@basic-force-ultra-joiner.html * igt@kms_joiner@invalid-modeset-big-joiner: - shard-tglu-1: NOTRUN -> [SKIP][161] ([i915#15460]) [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_joiner@invalid-modeset-big-joiner.html * igt@kms_joiner@invalid-modeset-force-ultra-joiner: - shard-tglu: NOTRUN -> [SKIP][162] ([i915#15458]) [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html * igt@kms_multipipe_modeset@basic-max-pipe-crc-check: - shard-rkl: NOTRUN -> [SKIP][163] ([i915#15815]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html * igt@kms_panel_fitting@atomic-fastset: - shard-tglu: NOTRUN -> [SKIP][164] ([i915#6301]) [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_panel_fitting@atomic-fastset.html * igt@kms_pipe_crc_basic@suspend-read-crc: - shard-rkl: NOTRUN -> [INCOMPLETE][165] ([i915#12756] / [i915#13476]) [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_pipe_crc_basic@suspend-read-crc.html * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [INCOMPLETE][166] ([i915#13476]) [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-2.html * igt@kms_pipe_stress@stress-xrgb8888-yftiled: - shard-tglu-1: NOTRUN -> [SKIP][167] ([i915#14712]) [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html * igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier: - shard-rkl: NOTRUN -> [SKIP][168] ([i915#15709]) +3 other tests skip [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-dg2-mc-ccs-modifier.html * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier: - shard-tglu: NOTRUN -> [SKIP][169] ([i915#15709]) +1 other test skip [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping: - shard-dg1: NOTRUN -> [SKIP][170] ([i915#15709]) [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-b-plane-7: - shard-tglu-1: NOTRUN -> [SKIP][171] ([i915#16386]) +1 other test skip [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-b-plane-7.html * igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping: - shard-tglu-1: NOTRUN -> [SKIP][172] ([i915#15709]) +1 other test skip [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping.html * igt@kms_plane_multiple@2x-tiling-x: - shard-tglu-1: NOTRUN -> [SKIP][173] ([i915#13958]) [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-x.html * igt@kms_plane_multiple@tiling-4: - shard-rkl: NOTRUN -> [SKIP][174] ([i915#14259]) [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_plane_multiple@tiling-4.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c: - shard-tglu: NOTRUN -> [SKIP][175] ([i915#15329]) +4 other tests skip [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b: - shard-tglu-1: NOTRUN -> [SKIP][176] ([i915#15329]) +4 other tests skip [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html * igt@kms_pm_backlight@bad-brightness: - shard-tglu-1: NOTRUN -> [SKIP][177] ([i915#12343] / [i915#9812]) [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_pm_backlight@bad-brightness.html * igt@kms_pm_backlight@basic-brightness: - shard-tglu: NOTRUN -> [SKIP][178] ([i915#12343] / [i915#9812]) [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_pm_backlight@basic-brightness.html * igt@kms_pm_backlight@brightness-with-dpms: - shard-rkl: NOTRUN -> [SKIP][179] ([i915#12343]) [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_pm_backlight@brightness-with-dpms.html * igt@kms_pm_dc@dc6-psr: - shard-tglu-1: NOTRUN -> [SKIP][180] ([i915#15948]) [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_pm_dc@dc6-psr.html * igt@kms_pm_dc@dc9-dpms: - shard-tglu-1: NOTRUN -> [SKIP][181] ([i915#15739]) [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_pm_dc@dc9-dpms.html * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp: - shard-dg1: [PASS][182] -> [SKIP][183] ([i915#15073]) [182]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg1-16/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-15/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait: - shard-dg1: NOTRUN -> [SKIP][184] ([i915#15073]) [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html * igt@kms_pm_rpm@modeset-non-lpsp-stress: - shard-rkl: [PASS][185] -> [SKIP][186] ([i915#15073]) +1 other test skip [185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp-stress.html [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html * igt@kms_pm_rpm@package-g7: - shard-tglu-1: NOTRUN -> [SKIP][187] ([i915#15403]) [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_pm_rpm@package-g7.html * igt@kms_prime@basic-crc-hybrid: - shard-tglu: NOTRUN -> [SKIP][188] ([i915#6524]) [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_prime@basic-crc-hybrid.html * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf: - shard-dg1: NOTRUN -> [SKIP][189] ([i915#11520]) [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area: - shard-glk: NOTRUN -> [SKIP][190] ([i915#11520]) +2 other tests skip [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk1/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf: - shard-glk10: NOTRUN -> [SKIP][191] ([i915#11520]) +2 other tests skip [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk10/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf: - shard-tglu: NOTRUN -> [SKIP][192] ([i915#11520]) +3 other tests skip [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-3/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb: - shard-rkl: NOTRUN -> [SKIP][193] ([i915#11520]) +2 other tests skip [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb.html * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb: - shard-tglu-1: NOTRUN -> [SKIP][194] ([i915#11520]) +5 other tests skip [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html * igt@kms_psr2_su@page_flip-nv12: - shard-tglu-1: NOTRUN -> [SKIP][195] ([i915#9683]) [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_psr2_su@page_flip-nv12.html * igt@kms_psr2_su@page_flip-xrgb8888: - shard-rkl: NOTRUN -> [SKIP][196] ([i915#9683]) [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_psr2_su@page_flip-xrgb8888.html * igt@kms_psr@fbc-psr2-basic: - shard-dg1: NOTRUN -> [SKIP][197] ([i915#1072] / [i915#9732]) +5 other tests skip [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_psr@fbc-psr2-basic.html * igt@kms_psr@fbc-psr2-sprite-render: - shard-tglu-1: NOTRUN -> [SKIP][198] ([i915#9732]) +12 other tests skip [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_psr@fbc-psr2-sprite-render.html * igt@kms_psr@psr2-cursor-plane-onoff: - shard-tglu: NOTRUN -> [SKIP][199] ([i915#9732]) +9 other tests skip [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_psr@psr2-cursor-plane-onoff.html * igt@kms_psr@psr2-primary-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][200] ([i915#1072] / [i915#9732]) +10 other tests skip [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-7/igt@kms_psr@psr2-primary-mmap-gtt.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-rkl: NOTRUN -> [SKIP][201] ([i915#15949]) [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-tglu-1: NOTRUN -> [SKIP][202] ([i915#15949]) [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom: - shard-glk10: NOTRUN -> [INCOMPLETE][203] ([i915#15500] / [i915#16184]) [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk10/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0: - shard-rkl: NOTRUN -> [SKIP][204] ([i915#5289]) [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180: - shard-tglu-1: NOTRUN -> [SKIP][205] ([i915#5289]) [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html * igt@kms_scaling_modes@scaling-mode-full: - shard-dg1: NOTRUN -> [SKIP][206] ([i915#3555]) [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-18/igt@kms_scaling_modes@scaling-mode-full.html * igt@kms_scaling_modes@scaling-mode-full-aspect: - shard-tglu: NOTRUN -> [SKIP][207] ([i915#3555]) +1 other test skip [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@kms_scaling_modes@scaling-mode-full-aspect.html * igt@kms_setmode@basic-clone-single-crtc: - shard-rkl: NOTRUN -> [SKIP][208] ([i915#3555]) +4 other tests skip [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_setmode@basic-clone-single-crtc.html * igt@kms_vrr@flipline: - shard-rkl: NOTRUN -> [SKIP][209] ([i915#15243] / [i915#3555]) [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_vrr@flipline.html * igt@kms_vrr@lobf: - shard-rkl: NOTRUN -> [SKIP][210] ([i915#11920]) [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_vrr@lobf.html * igt@kms_vrr@negative-basic: - shard-dg2: [PASS][211] -> [SKIP][212] ([i915#3555] / [i915#9906]) [211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-10/igt@kms_vrr@negative-basic.html [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-7/igt@kms_vrr@negative-basic.html * igt@kms_vrr@seamless-rr-switch-drrs: - shard-rkl: NOTRUN -> [SKIP][213] ([i915#9906]) [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_vrr@seamless-rr-switch-drrs.html * igt@perf@mi-rpc: - shard-rkl: NOTRUN -> [SKIP][214] ([i915#2434]) [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@perf@mi-rpc.html * igt@perf@per-context-mode-unprivileged: - shard-rkl: NOTRUN -> [SKIP][215] ([i915#2435]) [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@perf@per-context-mode-unprivileged.html * igt@perf_pmu@busy-double-start@rcs0: - shard-mtlp: [PASS][216] -> [FAIL][217] ([i915#4349]) [216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-mtlp-8/igt@perf_pmu@busy-double-start@rcs0.html [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-mtlp-2/igt@perf_pmu@busy-double-start@rcs0.html * igt@prime_udl@share-import: - shard-rkl: NOTRUN -> [SKIP][218] ([i915#16420]) [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@prime_udl@share-import.html * igt@sriov_basic@bind-unbind-vf@vf-1: - shard-tglu-1: NOTRUN -> [SKIP][219] ([i915#16066]) +9 other tests skip [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-1/igt@sriov_basic@bind-unbind-vf@vf-1.html * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all: - shard-tglu: NOTRUN -> [SKIP][220] ([i915#16066]) [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-8/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html #### Possible fixes #### * igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0: - shard-dg2: [INCOMPLETE][221] ([i915#13356] / [i915#16348]) -> [PASS][222] [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-6/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-3/igt@gem_ccs@suspend-resume@linear-compressed-compfmt0-smem-lmem0.html * igt@gem_exec_big@single: - shard-tglu: [FAIL][223] ([i915#15816]) -> [PASS][224] [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-tglu-2/igt@gem_exec_big@single.html [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-7/igt@gem_exec_big@single.html * igt@gem_softpin@noreloc-s3: - shard-rkl: [INCOMPLETE][225] ([i915#13809] / [i915#16226]) -> [PASS][226] [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-3/igt@gem_softpin@noreloc-s3.html [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@gem_softpin@noreloc-s3.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc: - shard-rkl: [ABORT][227] ([i915#15132]) -> [PASS][228] [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html * igt@kms_dp_aux_dev@basic: - shard-dg2: [SKIP][229] ([i915#1257]) -> [PASS][230] [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-5/igt@kms_dp_aux_dev@basic.html [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-10/igt@kms_dp_aux_dev@basic.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-rkl: [INCOMPLETE][231] ([i915#9878]) -> [PASS][232] [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-3/igt@kms_fbcon_fbt@fbc-suspend.html [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-2/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_frontbuffer_tracking@fbchdr-1p-offscreen-pri-indfb-draw-pwrite: - shard-dg2: [SKIP][233] ([i915#15989]) -> [PASS][234] +3 other tests pass [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-5/igt@kms_frontbuffer_tracking@fbchdr-1p-offscreen-pri-indfb-draw-pwrite.html [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-10/igt@kms_frontbuffer_tracking@fbchdr-1p-offscreen-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-blt: - shard-rkl: [SKIP][235] ([i915#15989]) -> [PASS][236] +2 other tests pass [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-8/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-blt.html [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-gtt: - shard-glk: [SKIP][237] -> [PASS][238] +34 other tests pass [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk2/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk8/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_hdr@static-toggle-dpms: - shard-dg2: [SKIP][239] ([i915#16518] / [i915#3555] / [i915#8228]) -> [PASS][240] [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-5/igt@kms_hdr@static-toggle-dpms.html [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-10/igt@kms_hdr@static-toggle-dpms.html * igt@kms_pm_rpm@modeset-non-lpsp: - shard-dg1: [SKIP][241] ([i915#15073]) -> [PASS][242] [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg1-15/igt@kms_pm_rpm@modeset-non-lpsp.html [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-13/igt@kms_pm_rpm@modeset-non-lpsp.html * igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_create: - shard-glk: [ABORT][243] ([i915#13179]) -> [PASS][244] [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk6/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_create.html [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk1/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_create.html #### Warnings #### * igt@device_reset@cold-reset-bound: - shard-rkl: [SKIP][245] ([i915#11078] / [i915#14544]) -> [SKIP][246] ([i915#11078]) [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@device_reset@cold-reset-bound.html [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@device_reset@cold-reset-bound.html * igt@gem_exec_reloc@basic-gtt-wc: - shard-rkl: [SKIP][247] ([i915#14544] / [i915#3281]) -> [SKIP][248] ([i915#3281]) +3 other tests skip [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-wc.html [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@gem_exec_reloc@basic-gtt-wc.html * igt@gem_lmem_swapping@massive: - shard-rkl: [SKIP][249] ([i915#14544] / [i915#4613]) -> [SKIP][250] ([i915#4613]) +1 other test skip [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@gem_lmem_swapping@massive.html [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@gem_lmem_swapping@massive.html * igt@gem_partial_pwrite_pread@writes-after-reads: - shard-rkl: [SKIP][251] ([i915#14544] / [i915#3282]) -> [SKIP][252] ([i915#3282]) +1 other test skip [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads.html [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads.html * igt@gem_userptr_blits@coherency-unsync: - shard-rkl: [SKIP][253] ([i915#14544] / [i915#3297]) -> [SKIP][254] ([i915#3297]) +1 other test skip [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@gem_userptr_blits@coherency-unsync.html [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@gem_userptr_blits@coherency-unsync.html * igt@gen9_exec_parse@bb-large: - shard-rkl: [SKIP][255] ([i915#14544] / [i915#2527]) -> [SKIP][256] ([i915#2527]) [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@gen9_exec_parse@bb-large.html [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@gen9_exec_parse@bb-large.html * igt@i915_pm_rc6_residency@media-rc6-accuracy: - shard-rkl: [SKIP][257] ([i915#14544] / [i915#16080] / [i915#16166]) -> [SKIP][258] ([i915#16080] / [i915#16166]) [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@i915_pm_rc6_residency@media-rc6-accuracy.html [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@i915_pm_rc6_residency@media-rc6-accuracy.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip: - shard-rkl: [SKIP][259] ([i915#14544] / [i915#5286]) -> [SKIP][260] ([i915#5286]) +2 other tests skip [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html * igt@kms_big_fb@x-tiled-32bpp-rotate-270: - shard-rkl: [SKIP][261] ([i915#3638]) -> [SKIP][262] ([i915#14544] / [i915#3638]) [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html * igt@kms_big_fb@y-tiled-64bpp-rotate-90: - shard-rkl: [SKIP][263] ([i915#14544] / [i915#3638]) -> [SKIP][264] ([i915#3638]) [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html * igt@kms_ccs@bad-aux-stride-yf-tiled-ccs: - shard-rkl: [SKIP][265] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][266] ([i915#14098] / [i915#6095]) +6 other tests skip [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs.html [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_ccs@bad-aux-stride-yf-tiled-ccs.html * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-2: - shard-rkl: [SKIP][267] ([i915#14544] / [i915#6095]) -> [SKIP][268] ([i915#6095]) +1 other test skip [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-2.html [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs@pipe-a-hdmi-a-2.html * igt@kms_chamelium_frames@hdmi-crc-fast: - shard-rkl: [SKIP][269] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][270] ([i915#11151] / [i915#7828]) +1 other test skip [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_chamelium_frames@hdmi-crc-fast.html [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_chamelium_frames@hdmi-crc-fast.html * igt@kms_content_protection@content-type-change: - shard-rkl: [SKIP][271] ([i915#14544] / [i915#15865]) -> [SKIP][272] ([i915#15865]) [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_content_protection@content-type-change.html [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_content_protection@content-type-change.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-rkl: [SKIP][273] ([i915#15330] / [i915#3116]) -> [SKIP][274] ([i915#14544] / [i915#15330] / [i915#3116]) [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_content_protection@dp-mst-lic-type-0.html [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_content_protection@legacy: - shard-dg2: [SKIP][275] ([i915#15865]) -> [FAIL][276] ([i915#7173]) [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-5/igt@kms_content_protection@legacy.html [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-10/igt@kms_content_protection@legacy.html * igt@kms_content_protection@uevent: - shard-dg2: [FAIL][277] ([i915#1339] / [i915#7173]) -> [SKIP][278] ([i915#15865]) [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-10/igt@kms_content_protection@uevent.html [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-5/igt@kms_content_protection@uevent.html * igt@kms_cursor_crc@cursor-random-512x512: - shard-dg2: [SKIP][279] ([i915#13049]) -> [SKIP][280] ([i915#13049] / [i915#3359]) +1 other test skip [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-5/igt@kms_cursor_crc@cursor-random-512x512.html [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-10/igt@kms_cursor_crc@cursor-random-512x512.html * igt@kms_cursor_crc@cursor-rapid-movement-32x10: - shard-rkl: [SKIP][281] ([i915#14544] / [i915#3555]) -> [SKIP][282] ([i915#3555]) +1 other test skip [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html * igt@kms_cursor_crc@cursor-sliding-512x512: - shard-dg2: [SKIP][283] ([i915#13049] / [i915#3359]) -> [SKIP][284] ([i915#13049]) [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-10/igt@kms_cursor_crc@cursor-sliding-512x512.html [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-7/igt@kms_cursor_crc@cursor-sliding-512x512.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - shard-rkl: [SKIP][285] ([i915#14544] / [i915#4103]) -> [SKIP][286] ([i915#4103]) [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_display_modes@extended-mode-basic: - shard-rkl: [SKIP][287] ([i915#13691] / [i915#14544]) -> [SKIP][288] ([i915#13691]) [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_display_modes@extended-mode-basic.html [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_display_modes@extended-mode-basic.html * igt@kms_dsc@dsc-fractional-bpp: - shard-rkl: [SKIP][289] ([i915#14544] / [i915#16361]) -> [SKIP][290] ([i915#16361]) +1 other test skip [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_dsc@dsc-fractional-bpp.html [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_dsc@dsc-fractional-bpp.html * igt@kms_dsc@dsc-fractional-bpp-bigjoiner: - shard-rkl: [SKIP][291] ([i915#16361]) -> [SKIP][292] ([i915#14544] / [i915#16361]) [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_dsc@dsc-fractional-bpp-bigjoiner.html * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset: - shard-rkl: [SKIP][293] ([i915#14544] / [i915#9934]) -> [SKIP][294] ([i915#9934]) +1 other test skip [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html * igt@kms_flip@2x-flip-vs-suspend: - shard-glk: [INCOMPLETE][295] ([i915#12745] / [i915#4839]) -> [INCOMPLETE][296] ([i915#12314] / [i915#12745] / [i915#4839] / [i915#6113]) [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk6/igt@kms_flip@2x-flip-vs-suspend.html [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk5/igt@kms_flip@2x-flip-vs-suspend.html * igt@kms_flip@2x-flip-vs-suspend@ac-hdmi-a1-hdmi-a2: - shard-glk: [INCOMPLETE][297] ([i915#12745]) -> [INCOMPLETE][298] ([i915#12314] / [i915#12745]) [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk6/igt@kms_flip@2x-flip-vs-suspend@ac-hdmi-a1-hdmi-a2.html [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk5/igt@kms_flip@2x-flip-vs-suspend@ac-hdmi-a1-hdmi-a2.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling: - shard-rkl: [SKIP][299] ([i915#15643]) -> [SKIP][300] ([i915#14544] / [i915#15643]) [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html * igt@kms_flip_scaled_crc@flip-p010-4tile-to-p016-4tile: - shard-rkl: [SKIP][301] ([i915#14544] / [i915#15643]) -> [SKIP][302] ([i915#15643]) +2 other tests skip [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_flip_scaled_crc@flip-p010-4tile-to-p016-4tile.html [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_flip_scaled_crc@flip-p010-4tile-to-p016-4tile.html * igt@kms_frontbuffer_tracking@fbchdr-suspend: - shard-rkl: [SKIP][303] ([i915#15989]) -> [ABORT][304] ([i915#15132]) [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-8/igt@kms_frontbuffer_tracking@fbchdr-suspend.html [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbchdr-suspend.html * igt@kms_frontbuffer_tracking@fbchdr-tiling-4: - shard-rkl: [SKIP][305] ([i915#14544] / [i915#5439]) -> [SKIP][306] ([i915#5439]) [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_frontbuffer_tracking@fbchdr-tiling-4.html [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbchdr-tiling-4.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-gtt: - shard-rkl: [SKIP][307] ([i915#15102]) -> [SKIP][308] ([i915#14544] / [i915#15102]) +2 other tests skip [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-gtt.html [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-offscreen-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-cur-indfb-draw-mmap-wc: - shard-rkl: [SKIP][309] ([i915#14544]) -> [SKIP][310] +38 other tests skip [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-cur-indfb-draw-mmap-wc.html [310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-scndscrn-cur-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb101010-draw-mmap-cpu: - shard-rkl: [SKIP][311] ([i915#14544] / [i915#15102]) -> [SKIP][312] ([i915#15102]) +7 other tests skip [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb101010-draw-mmap-cpu.html [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb101010-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw: - shard-rkl: [SKIP][313] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][314] ([i915#15102] / [i915#3023]) +5 other tests skip [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw.html [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-1p-pri-indfb-multidraw.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render: - shard-dg2: [SKIP][315] ([i915#10433] / [i915#15102]) -> [SKIP][316] ([i915#15102]) +1 other test skip [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html [316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render: - shard-rkl: [SKIP][317] -> [SKIP][318] ([i915#14544]) +5 other tests skip [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html [318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc: - shard-rkl: [SKIP][319] ([i915#14544] / [i915#1825]) -> [SKIP][320] ([i915#1825]) +1 other test skip [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html [320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html * igt@kms_joiner@invalid-modeset-force-ultra-joiner: - shard-rkl: [SKIP][321] ([i915#15458]) -> [SKIP][322] ([i915#14544] / [i915#15458]) [321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html [322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html * igt@kms_joiner@invalid-modeset-ultra-joiner: - shard-rkl: [SKIP][323] ([i915#14544] / [i915#15458]) -> [SKIP][324] ([i915#15458]) [323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html [324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_joiner@invalid-modeset-ultra-joiner.html * igt@kms_pipe_stress@stress-xrgb8888-untiled: - shard-glk: [DMESG-WARN][325] ([i915#118]) -> [DMESG-FAIL][326] ([i915#118]) [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk8/igt@kms_pipe_stress@stress-xrgb8888-untiled.html [326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk9/igt@kms_pipe_stress@stress-xrgb8888-untiled.html * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier-source-clamping: - shard-dg1: [SKIP][327] ([i915#15709] / [i915#4423]) -> [SKIP][328] ([i915#15709]) [327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg1-16/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier-source-clamping.html [328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg1-15/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier-source-clamping.html * igt@kms_plane@pixel-format-y-tiled-ccs-modifier: - shard-rkl: [SKIP][329] ([i915#14544] / [i915#15709]) -> [SKIP][330] ([i915#15709]) +1 other test skip [329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html [330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html * igt@kms_plane_lowres@tiling-yf: - shard-rkl: [SKIP][331] ([i915#3555]) -> [SKIP][332] ([i915#14544] / [i915#3555]) [331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_plane_lowres@tiling-yf.html [332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_plane_lowres@tiling-yf.html * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a: - shard-rkl: [SKIP][333] ([i915#14544] / [i915#15329]) -> [SKIP][334] ([i915#15329]) +3 other tests skip [333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html [334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-1/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-rotation@pipe-a.html * igt@kms_pm_dc@dc6-dpms: - shard-tglu: [FAIL][335] ([i915#16479]) -> [SKIP][336] ([i915#15128]) [335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-tglu-4/igt@kms_pm_dc@dc6-dpms.html [336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-tglu-6/igt@kms_pm_dc@dc6-dpms.html * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf: - shard-rkl: [SKIP][337] ([i915#11520] / [i915#14544]) -> [SKIP][338] ([i915#11520]) +2 other tests skip [337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html [338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html * igt@kms_psr@fbc-psr-sprite-plane-move: - shard-rkl: [SKIP][339] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][340] ([i915#1072] / [i915#9732]) +4 other tests skip [339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@kms_psr@fbc-psr-sprite-plane-move.html [340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@kms_psr@fbc-psr-sprite-plane-move.html * igt@kms_psr@psr-cursor-plane-move: - shard-rkl: [SKIP][341] ([i915#1072] / [i915#9732]) -> [SKIP][342] ([i915#1072] / [i915#14544] / [i915#9732]) +1 other test skip [341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-7/igt@kms_psr@psr-cursor-plane-move.html [342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-6/igt@kms_psr@psr-cursor-plane-move.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270: - shard-dg2: [SKIP][343] ([i915#15867] / [i915#5190]) -> [SKIP][344] ([i915#12755] / [i915#15867] / [i915#5190]) [343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-dg2-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html [344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-dg2-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html * igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free: - shard-glk: [DMESG-FAIL][345] ([i915#13179]) -> [ABORT][346] ([i915#13179]) [345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-glk6/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html [346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-glk1/igt@kms_selftest@drm_framebuffer@drm_test_framebuffer_free.html * igt@sriov_basic@enable-vfs-bind-unbind-each: - shard-rkl: [SKIP][347] ([i915#14544] / [i915#9917]) -> [SKIP][348] ([i915#9917]) [347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18810/shard-rkl-6/igt@sriov_basic@enable-vfs-bind-unbind-each.html [348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_170304v1/shard-rkl-5/igt@sriov_basic@enable-vfs-bind-unbind-each.html [i915#10056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10056 [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#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078 [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/118 [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920 [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#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454 [i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257 [i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712 [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#12756]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12756 [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805 [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#1339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1339 [i915#13476]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13476 [i915#13562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13562 [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566 [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691 [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707 [i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717 [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#13790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13790 [i915#13809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13809 [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958 [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098 [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259 [i915#14498]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14498 [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544 [i915#14600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14600 [i915#14702]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14702 [i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712 [i915#14888]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14888 [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073 [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102 [i915#15128]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15128 [i915#15132]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15132 [i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243 [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329 [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330 [i915#15403]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15403 [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458 [i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459 [i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460 [i915#15500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15500 [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582 [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643 [i915#15678]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15678 [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709 [i915#15739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15739 [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#15948]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15948 [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#16056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16056 [i915#16066]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16066 [i915#16080]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16080 [i915#16081]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16081 [i915#16166]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16166 [i915#16182]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16182 [i915#16184]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16184 [i915#16226]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16226 [i915#16348]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16348 [i915#16361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16361 [i915#16386]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16386 [i915#16420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16420 [i915#16471]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16471 [i915#16479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16479 [i915#16518]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16518 [i915#16593]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16593 [i915#16600]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/16600 [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769 [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825 [i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065 [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190 [i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434 [i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435 [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527 [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658 [i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681 [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#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299 [i915#3359]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3359 [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#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742 [i915#3955]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3955 [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349 [i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387 [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#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812 [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817 [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839 [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#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113 [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245 [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301 [i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334 [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335 [i915#6412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6412 [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524 [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173 [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#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562 [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708 [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323 [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#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766 [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812 [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878 [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906 [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917 [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934 Build changes ------------- * Linux: CI_DRM_18810 -> Patchwork_170304v1 CI-20190529: 20190529 CI_DRM_18810: 83d782d98f4ebb4a10b8ee107e3a389917e0b218 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_9003: 9003 Patchwork_170304v1: 83d782d98f4ebb4a10b8ee107e3a389917e0b218 @ 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_170304v1/index.html [-- Attachment #2: Type: text/html, Size: 121871 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2026-07-20 10:19 UTC | newest] Thread overview: 24+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-07-13 9:58 [PATCH v3 0/5] drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Krzysztof Karas 2026-07-13 9:58 ` [PATCH v3 1/5] drm/i915/gem: Count mapped pages in a folio Krzysztof Karas 2026-07-15 11:18 ` Janusz Krzysztofik 2026-07-20 8:08 ` Krzysztof Karas 2026-07-13 9:58 ` [PATCH v3 2/5] iommu/dma: Catch scatterlist length overflows Krzysztof Karas 2026-07-13 10:13 ` sashiko-bot 2026-07-16 12:39 ` Andi Shyti 2026-07-16 13:48 ` Robin Murphy 2026-07-20 7:46 ` Krzysztof Karas 2026-07-13 9:58 ` [PATCH v3 3/5] drm/i915/gem: Pull out size validation into a separate function Krzysztof Karas 2026-07-15 15:21 ` Janusz Krzysztofik 2026-07-20 8:10 ` Krzysztof Karas 2026-07-13 9:58 ` [PATCH v3 4/5] drm/i915/gem: Read and shrink memory in " Krzysztof Karas 2026-07-13 10:10 ` sashiko-bot 2026-07-15 15:31 ` Janusz Krzysztofik 2026-07-20 8:18 ` Krzysztof Karas 2026-07-20 10:15 ` Janusz Krzysztofik 2026-07-13 9:58 ` [PATCH v3 5/5] drm/i915/gem: Remove iterator and use while loop Krzysztof Karas 2026-07-13 10:09 ` sashiko-bot 2026-07-15 17:04 ` Janusz Krzysztofik 2026-07-20 8:25 ` Krzysztof Karas 2026-07-20 10:19 ` Janusz Krzysztofik 2026-07-13 11:01 ` ✓ i915.CI.BAT: success for drivers: Improve memory management for large object allocations when i915/shmem is used with iommu Patchwork 2026-07-13 14:14 ` ✗ i915.CI.Full: failure " Patchwork
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.