diff mbox series

drm/i915/display: Add smem fallback allocation for dpt

Message ID 20220316222307.30066-1-juhapekka.heikkila@gmail.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/display: Add smem fallback allocation for dpt | expand

Commit Message

Juha-Pekka Heikkila March 16, 2022, 10:23 p.m. UTC
Add fallback smem allocation for dpt if stolen memory
allocation failed.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

Comments

Matthew Auld March 17, 2022, 11:55 a.m. UTC | #1
On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
<juhapekka.heikkila@gmail.com> wrote:
>
> Add fallback smem allocation for dpt if stolen memory
> allocation failed.
>
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
>  drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
> index fb0e7e79e0cd..c8b66433d4db 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
> @@ -10,6 +10,7 @@
>  #include "intel_display_types.h"
>  #include "intel_dpt.h"
>  #include "intel_fb.h"
> +#include "gem/i915_gem_internal.h"

Nit: these should be kept sorted

>
>  struct i915_dpt {
>         struct i915_address_space vm;
> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>         void __iomem *iomem;
>         struct i915_gem_ww_ctx ww;
>         int err;
> +       u64 pin_flags = 0;
> +
> +       if (i915_gem_object_is_stolen(dpt->obj))
> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
>
>         wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>         atomic_inc(&i915->gpu_error.pending_fb_pin);
> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>                         continue;
>
>                 vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
> +                                                 pin_flags);
>                 if (IS_ERR(vma)) {
>                         err = PTR_ERR(vma);
>                         continue;
> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
>
>         size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
>
> -       if (HAS_LMEM(i915))
> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> -       else
> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
>                 dpt_obj = i915_gem_object_create_stolen(i915, size);
> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
> +                           fb->base.base.id);
> +
> +               dpt_obj = i915_gem_object_create_internal(i915, size);

Looks like we are missing some prerequisite patch to be able to
directly map such memory in vma_pin_iomap?

> +       }
>         if (IS_ERR(dpt_obj))
>                 return ERR_CAST(dpt_obj);
>
> --
> 2.28.0
>
Juha-Pekka Heikkila March 18, 2022, 9:22 a.m. UTC | #2
On 17.3.2022 13.55, Matthew Auld wrote:
> On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
> <juhapekka.heikkila@gmail.com> wrote:
>>
>> Add fallback smem allocation for dpt if stolen memory
>> allocation failed.
>>
>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>> ---
>>   drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
>>   1 file changed, 14 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
>> index fb0e7e79e0cd..c8b66433d4db 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
>> @@ -10,6 +10,7 @@
>>   #include "intel_display_types.h"
>>   #include "intel_dpt.h"
>>   #include "intel_fb.h"
>> +#include "gem/i915_gem_internal.h"
> 
> Nit: these should be kept sorted
> 
>>
>>   struct i915_dpt {
>>          struct i915_address_space vm;
>> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>          void __iomem *iomem;
>>          struct i915_gem_ww_ctx ww;
>>          int err;
>> +       u64 pin_flags = 0;
>> +
>> +       if (i915_gem_object_is_stolen(dpt->obj))
>> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
>>
>>          wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>>          atomic_inc(&i915->gpu_error.pending_fb_pin);
>> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>                          continue;
>>
>>                  vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
>> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
>> +                                                 pin_flags);
>>                  if (IS_ERR(vma)) {
>>                          err = PTR_ERR(vma);
>>                          continue;
>> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
>>
>>          size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
>>
>> -       if (HAS_LMEM(i915))
>> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>> -       else
>> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
>>                  dpt_obj = i915_gem_object_create_stolen(i915, size);
>> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
>> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
>> +                           fb->base.base.id);
>> +
>> +               dpt_obj = i915_gem_object_create_internal(i915, size);
> 
> Looks like we are missing some prerequisite patch to be able to
> directly map such memory in vma_pin_iomap?

For these functions I'm more like a consumer, I was following 
suggestions from Chris on this. Is there something extra that should be 
considered in this regard when use it like this?

> 
>> +       }
>>          if (IS_ERR(dpt_obj))
>>                  return ERR_CAST(dpt_obj);
>>
>> --
>> 2.28.0
>>
Juha-Pekka Heikkila March 21, 2022, 8:27 a.m. UTC | #3
Hi Lakshmi,

here would be again false positive on glk, glk doesn't use dpt which is 
changed on my patch.

/Juha-Pekka

On 17.3.2022 4.31, Patchwork wrote:
> *Patch Details*
> *Series:*	drm/i915/display: Add smem fallback allocation for dpt
> *URL:*	https://patchwork.freedesktop.org/series/101443/ 
> <https://patchwork.freedesktop.org/series/101443/>
> *State:*	failure
> *Details:* 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/index.html 
> <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/index.html>
> 
> 
>   CI Bug Log - changes from CI_DRM_11372_full -> Patchwork_22588_full
> 
> 
>     Summary
> 
> *FAILURE*
> 
> Serious unknown changes coming with Patchwork_22588_full absolutely need 
> to be
> verified manually.
> 
> If you think the reported changes have nothing to do with the changes
> introduced in Patchwork_22588_full, please notify your bug team to allow 
> them
> to document this new failure mode, which will reduce false positives in CI.
> 
> 
>     Participating hosts (11 -> 12)
> 
> Additional (1): shard-rkl
> 
> 
>     Possible new issues
> 
> Here are the unknown changes that may have been introduced in 
> Patchwork_22588_full:
> 
> 
>       IGT changes
> 
> 
>         Possible regressions
> 
>   * igt@perf@stress-open-close:
>       o shard-glk: NOTRUN -> DMESG-FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@perf@stress-open-close.html>
> 
> 
>         Suppressed
> 
> The following results come from untrusted machines, tests, or statuses.
> They do not affect the overall result.
> 
>   * igt@i915_pm_dc@dc5-dpms:
>       o {shard-rkl}: NOTRUN -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-rkl-5/igt@i915_pm_dc@dc5-dpms.html>
> 
> 
>     Known issues
> 
> Here are the changes found in Patchwork_22588_full that come from known 
> issues:
> 
> 
>       IGT changes
> 
> 
>         Issues hit
> 
>   *
> 
>     igt@gem_eio@kms:
> 
>       o shard-tglb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb7/igt@gem_eio@kms.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb8/igt@gem_eio@kms.html>
>         ([i915#232])
>   *
> 
>     igt@gem_exec_balancer@parallel-balancer:
> 
>       o shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@gem_exec_balancer@parallel-balancer.html>
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb3/igt@gem_exec_balancer@parallel-balancer.html>
>         ([i915#4525])
>   *
> 
>     igt@gem_exec_capture@pi@rcs0:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl10/igt@gem_exec_capture@pi@rcs0.html>
>         -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@gem_exec_capture@pi@rcs0.html>
>         ([i915#4547])
>   *
> 
>     igt@gem_exec_endless@dispatch@vecs0:
> 
>       o shard-tglb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb6/igt@gem_exec_endless@dispatch@vecs0.html>
>         -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb5/igt@gem_exec_endless@dispatch@vecs0.html>
>         ([i915#3778])
>   *
> 
>     igt@gem_exec_fair@basic-none-share@rcs0:
> 
>       o
> 
>         shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb6/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         ([i915#2842])
> 
>       o
> 
>         shard-tglb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb6/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb5/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         ([i915#2842])
> 
>   *
> 
>     igt@gem_exec_fair@basic-none@vcs0:
> 
>       o shard-kbl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl1/igt@gem_exec_fair@basic-none@vcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl4/igt@gem_exec_fair@basic-none@vcs0.html>
>         ([i915#2842])
>   *
> 
>     igt@gem_exec_fair@basic-pace-solo@rcs0:
> 
>       o
> 
>         shard-glk: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>         ([i915#2842])
> 
>       o
> 
>         shard-kbl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>         ([i915#2842])
> 
>   *
> 
>     igt@gem_exec_fair@basic-throttle@rcs0:
> 
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk5/igt@gem_exec_fair@basic-throttle@rcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk4/igt@gem_exec_fair@basic-throttle@rcs0.html>
>         ([i915#2842])
>   *
> 
>     igt@gem_exec_whisper@basic-normal:
> 
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@gem_exec_whisper@basic-normal.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk8/igt@gem_exec_whisper@basic-normal.html>
>         ([i915#118])
>   *
> 
>     igt@gem_lmem_swapping@basic:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@gem_lmem_swapping@basic.html>
>         ([fdo#109271] / [i915#4613])
>   *
> 
>     igt@gem_lmem_swapping@heavy-verify-random:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@gem_lmem_swapping@heavy-verify-random.html>
>         ([fdo#109271] / [i915#4613])
>   *
> 
>     igt@gem_lmem_swapping@parallel-random-engines:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@gem_lmem_swapping@parallel-random-engines.html>
>         ([fdo#109271] / [i915#4613])
>   *
> 
>     igt@gen3_render_linear_blits:
> 
>       o shard-tglb: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb2/igt@gen3_render_linear_blits.html>
>         ([fdo#109289])
>   *
> 
>     igt@gen7_exec_parse@oacontrol-tracking:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@gen7_exec_parse@oacontrol-tracking.html>
>         ([fdo#109271]) +27 similar issues
>   *
> 
>     igt@i915_pm_dc@dc6-psr:
> 
>       o shard-skl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@i915_pm_dc@dc6-psr.html>
>         ([i915#454])
>   *
> 
>     igt@kms_big_fb@4-tiled-32bpp-rotate-270:
> 
>       o shard-iclb: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html>
>         ([i915#5286])
>   *
> 
>     igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip:
> 
>       o
> 
>         shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html>
>         ([fdo#109271] / [i915#3777]) +3 similar issues
> 
>       o
> 
>         shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html>
>         ([fdo#109271] / [i915#3777])
> 
>   *
> 
>     igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html>
>         ([fdo#109271] / [i915#3777]) +2 similar issues
>   *
> 
>     igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html>
>         ([fdo#109271] / [i915#3777]) +1 similar issue
>   *
> 
>     igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +3 similar issues
>   *
> 
>     igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +8 similar issues
>   *
> 
>     igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +2 similar issues
>   *
> 
>     igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +1 similar issue
>   *
> 
>     igt@kms_chamelium@dp-crc-multiple:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_chamelium@dp-crc-multiple.html>
>         ([fdo#109271] / [fdo#111827]) +3 similar issues
>   *
> 
>     igt@kms_chamelium@dp-crc-single:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_chamelium@dp-crc-single.html>
>         ([fdo#109271] / [fdo#111827]) +2 similar issues
>   *
> 
>     igt@kms_color_chamelium@pipe-b-ctm-0-25:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_color_chamelium@pipe-b-ctm-0-25.html>
>         ([fdo#109271] / [fdo#111827]) +10 similar issues
>   *
> 
>     igt@kms_color_chamelium@pipe-d-ctm-blue-to-red:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@kms_color_chamelium@pipe-d-ctm-blue-to-red.html>
>         ([fdo#109271] / [fdo#111827]) +5 similar issues
>   *
> 
>     igt@kms_content_protection@atomic:
> 
>       o shard-kbl: NOTRUN -> TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@kms_content_protection@atomic.html>
>         ([i915#1319])
>   *
> 
>     igt@kms_content_protection@uevent:
> 
>       o shard-kbl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_content_protection@uevent.html>
>         ([i915#2105])
>   *
> 
>     igt@kms_cursor_crc@pipe-d-cursor-64x64-sliding:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_cursor_crc@pipe-d-cursor-64x64-sliding.html>
>         ([fdo#109271]) +54 similar issues
>   *
> 
>     igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
> 
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html>
>         ([i915#72])
>   *
> 
>     igt@kms_cursor_legacy@flip-vs-cursor-varying-size:
> 
>       o shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb5/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html>
>         ([i915#2346])
>   *
> 
>     igt@kms_cursor_legacy@pipe-d-single-bo:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_cursor_legacy@pipe-d-single-bo.html>
>         ([fdo#109271] / [i915#533]) +1 similar issue
>   *
> 
>     igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
> 
>       o shard-skl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl2/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html>
>         ([i915#2122]) +2 similar issues
>   *
> 
>     igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt.html>
>         ([fdo#109271]) +136 similar issues
>   *
> 
>     igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt.html>
>         ([fdo#109271]) +78 similar issues
>   *
> 
>     igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl2/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl10/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html>
>         ([i915#1982])
>   *
> 
>     igt@kms_pipe_crc_basic@read-crc-pipe-d:
> 
>       o shard-iclb: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb6/igt@kms_pipe_crc_basic@read-crc-pipe-d.html>
>         ([fdo#109278])
>   *
> 
>     igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html>
>         ([fdo#109271] / [i915#533]) +1 similar issue
>   *
> 
>     igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
> 
>       o shard-kbl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html>
>         ([i915#180]) +2 similar issues
>   *
> 
>     igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
> 
>       o shard-apl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-apl2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl8/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html>
>         ([i915#180]) +2 similar issues
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
> 
>       o shard-apl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html>
>         ([fdo#108145] / [i915#265])
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
> 
>       o shard-kbl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html>
>         ([fdo#108145] / [i915#265]) +1 similar issue
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
> 
>       o shard-skl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max.html>
>         ([fdo#108145] / [i915#265])
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html>
>         ([fdo#108145] / [i915#265])
>   *
> 
>     igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
> 
>       o
> 
>         shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658]) +1 similar issue
> 
>       o
> 
>         shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658])
> 
>   *
> 
>     igt@kms_psr2_sf@plane-move-sf-dmg-area:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@kms_psr2_sf@plane-move-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658])
>   *
> 
>     igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658])
>   *
> 
>     igt@kms_psr@psr2_primary_page_flip:
> 
>       o shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html>
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb6/igt@kms_psr@psr2_primary_page_flip.html>
>         ([fdo#109441]) +3 similar issues
>   *
> 
>     igt@kms_sequence@queue-busy:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl8/igt@kms_sequence@queue-busy.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl3/igt@kms_sequence@queue-busy.html>
>         ([i915#2995])
>   *
> 
>     igt@kms_sysfs_edid_timing:
> 
>       o shard-apl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@kms_sysfs_edid_timing.html>
>         ([IGT#2])
>   *
> 
>     igt@sysfs_clients@fair-7:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@sysfs_clients@fair-7.html>
>         ([fdo#109271] / [i915#2994]) +2 similar issues
>   *
> 
>     igt@sysfs_clients@split-25:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@sysfs_clients@split-25.html>
>         ([fdo#109271] / [i915#2994]) +1 similar issue
> 
> 
>         Possible fixes
> 
>   *
> 
>     igt@feature_discovery@psr2:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb6/igt@feature_discovery@psr2.html>
>         ([i915#658]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@feature_discovery@psr2.html>
>   *
> 
>     igt@gem_eio@in-flight-contexts-10ms:
> 
>       o shard-tglb: TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb3/igt@gem_eio@in-flight-contexts-10ms.html>
>         ([i915#3063]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb7/igt@gem_eio@in-flight-contexts-10ms.html>
>   *
> 
>     igt@gem_eio@unwedge-stress:
> 
>       o shard-iclb: TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb8/igt@gem_eio@unwedge-stress.html>
>         ([i915#2481] / [i915#3070]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb1/igt@gem_eio@unwedge-stress.html>
>   *
> 
>     igt@gem_exec_fair@basic-pace-share@rcs0:
> 
>       o shard-glk: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html>
>         ([i915#2842]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html>
>         +1 similar issue
>   *
> 
>     igt@gem_exec_fair@basic-pace-solo@rcs0:
> 
>       o shard-apl: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-apl4/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>         ([i915#2842]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>   *
> 
>     igt@gem_exec_fair@basic-throttle@rcs0:
> 
>       o shard-iclb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html>
>         ([i915#2849]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html>
>   *
> 
>     igt@gem_workarounds@suspend-resume:
> 
>       o shard-skl: INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl6/igt@gem_workarounds@suspend-resume.html>
>         ([i915#4939] / [i915#5129]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@gem_workarounds@suspend-resume.html>
>   *
> 
>     igt@i915_pm_rpm@system-suspend-modeset:
> 
>       o shard-glk: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@i915_pm_rpm@system-suspend-modeset.html>
>         ([i915#118] / [i915#1888]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk1/igt@i915_pm_rpm@system-suspend-modeset.html>
>   *
> 
>     igt@i915_suspend@forcewake:
> 
>       o shard-kbl: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@i915_suspend@forcewake.html>
>         ([i915#180]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@i915_suspend@forcewake.html>
>         +3 similar issues
>   *
> 
>     igt@kms_big_fb@x-tiled-32bpp-rotate-180:
> 
>       o {shard-tglu}: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglu-1/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html>
>         ([i915#402]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglu-2/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html>
>   *
> 
>     igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
> 
>       o shard-iclb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb7/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html>
>         ([i915#5072]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb4/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html>
>   *
> 
>     igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled:
> 
>       o shard-skl: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl7/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled.html>
>         ([i915#1982]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl8/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled.html>
>   *
> 
>     igt@kms_draw_crc@draw-method-xrgb8888-blt-ytiled:
> 
>       o shard-glk: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@kms_draw_crc@draw-method-xrgb8888-blt-ytiled.html>
>         ([i915#118]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk1/igt@kms_draw_crc@draw-method-xrgb8888-blt-ytiled.html>
>   *
> 
>     igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2:
> 
>       o shard-glk: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html>
>         ([i915#79]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html>
>   *
> 
>     igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
> 
>       o shard-apl: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html>
>         ([i915#180]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html>
>         +3 similar issues
>   *
> 
>     igt@kms_flip@plain-flip-ts-check@a-edp1:
> 
>       o shard-skl: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl10/igt@kms_flip@plain-flip-ts-check@a-edp1.html>
>         ([i915#2122]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl4/igt@kms_flip@plain-flip-ts-check@a-edp1.html>
>   *
> 
>     igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
> 
>       o shard-glk: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html>
>         ([i915#4911]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html>
>         +1 similar issue
>   *
> 
>     igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-edp-1-planes-upscale-downscale:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-edp-1-planes-upscale-downscale.html>
>         ([i915#5235]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb3/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-edp-1-planes-upscale-downscale.html>
>         +2 similar issues
>   *
> 
>     igt@kms_psr@psr2_primary_mmap_gtt:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb4/igt@kms_psr@psr2_primary_mmap_gtt.html>
>         ([fdo#109441]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html>
>   *
> 
>     igt@perf@polling-parameterized:
> 
>       o shard-skl: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl2/igt@perf@polling-parameterized.html>
>         ([i915#1542]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@perf@polling-parameterized.html>
> 
> 
>         Warnings
> 
>   *
> 
>     igt@gem_eio@unwedge-stress:
> 
>       o shard-tglb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb5/igt@gem_eio@unwedge-stress.html>
>         ([i915#232]) -> TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb6/igt@gem_eio@unwedge-stress.html>
>         ([i915#3063] / [i915#3648])
>   *
> 
>     igt@gem_exec_balancer@parallel-out-fence:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb5/igt@gem_exec_balancer@parallel-out-fence.html>
>         ([i915#4525]) -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb1/igt@gem_exec_balancer@parallel-out-fence.html>
>         ([i915#5076]) +2 similar issues
>   *
> 
>     igt@gem_exec_fair@basic-none-rrul@rcs0:
> 
>       o shard-iclb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb7/igt@gem_exec_fair@basic-none-rrul@rcs0.html>
>         ([i915#2842]) -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb8/igt@gem_exec_fair@basic-none-rrul@rcs0.html>
>         ([i915#2852])
>   *
> 
>     igt@i915_pm_rc6_residency@rc6-fence:
> 
>       o shard-iclb: WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@i915_pm_rc6_residency@rc6-fence.html>
>         ([i915#2684]) -> WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb3/igt@i915_pm_rc6_residency@rc6-fence.html>
>         ([i915#1804] / [i915#2684])
>   *
> 
>     igt@i915_pm_rc6_residency@rc6-idle:
> 
>       o shard-iclb: WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb3/igt@i915_pm_rc6_residency@rc6-idle.html>
>         ([i915#1804] / [i915#2684]) -> WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle.html>
>         ([i915#2684])
>   *
> 
>     igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html>
>         ([fdo#111068] / [i915#658]) -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html>
>         ([i915#2920])
>   *
> 
>     igt@runner@aborted:
> 
>       o shard-kbl: (FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl4/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl6/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl4/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl3/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl6/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl3/igt@runner@aborted.html>)
>         ([i915#180] / [i915#1814] / [i915#3002] / [i915#4312] /
>         [i915#5257] / [i915#602]) -> (FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl4/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl4/igt@runner>,
>         [FAIL][148], [FAIL][149], [FAIL][150]) ([i915#180] / [i915#1814]
>         / [i915#3002] / [i915#4312] / [i915#5257])
>
Matthew Auld March 21, 2022, 12:29 p.m. UTC | #4
On Fri, 18 Mar 2022 at 09:22, Juha-Pekka Heikkila
<juhapekka.heikkila@gmail.com> wrote:
>
> On 17.3.2022 13.55, Matthew Auld wrote:
> > On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
> > <juhapekka.heikkila@gmail.com> wrote:
> >>
> >> Add fallback smem allocation for dpt if stolen memory
> >> allocation failed.
> >>
> >> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> >> ---
> >>   drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
> >>   1 file changed, 14 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
> >> index fb0e7e79e0cd..c8b66433d4db 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
> >> @@ -10,6 +10,7 @@
> >>   #include "intel_display_types.h"
> >>   #include "intel_dpt.h"
> >>   #include "intel_fb.h"
> >> +#include "gem/i915_gem_internal.h"
> >
> > Nit: these should be kept sorted
> >
> >>
> >>   struct i915_dpt {
> >>          struct i915_address_space vm;
> >> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
> >>          void __iomem *iomem;
> >>          struct i915_gem_ww_ctx ww;
> >>          int err;
> >> +       u64 pin_flags = 0;
> >> +
> >> +       if (i915_gem_object_is_stolen(dpt->obj))
> >> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
> >>
> >>          wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> >>          atomic_inc(&i915->gpu_error.pending_fb_pin);
> >> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
> >>                          continue;
> >>
> >>                  vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
> >> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
> >> +                                                 pin_flags);
> >>                  if (IS_ERR(vma)) {
> >>                          err = PTR_ERR(vma);
> >>                          continue;
> >> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
> >>
> >>          size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
> >>
> >> -       if (HAS_LMEM(i915))
> >> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> >> -       else
> >> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> >> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
> >>                  dpt_obj = i915_gem_object_create_stolen(i915, size);
> >> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
> >> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
> >> +                           fb->base.base.id);
> >> +
> >> +               dpt_obj = i915_gem_object_create_internal(i915, size);
> >
> > Looks like we are missing some prerequisite patch to be able to
> > directly map such memory in vma_pin_iomap?
>
> For these functions I'm more like a consumer, I was following
> suggestions from Chris on this. Is there something extra that should be
> considered in this regard when use it like this?

AFAICT this will trigger the WARN_ON() in vma_pin_iomap() if we
fallback to create_internal(), since the object is now not lmem and is
also not map_and_fenceable(i.e PIN_MAPPABLE).

The other issue is that we need some way of CPU mapping this type of
object, like with calling i915_gem_object_pin_map() inside
vma_pin_iomap(). It looks like there is an internal patch that tries
to handle both issues, so I guess we need to also bring that patch
upstream as a prerequisite to this?

>
> >
> >> +       }
> >>          if (IS_ERR(dpt_obj))
> >>                  return ERR_CAST(dpt_obj);
> >>
> >> --
> >> 2.28.0
> >>
>
Vudum, Lakshminarayana March 21, 2022, 4:44 p.m. UTC | #5
Below one looks like a new issue
https://gitlab.freedesktop.org/drm/intel/-/issues/5386
igt@perf@stress-open-close - dmesg-fail - general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6bcb, RIP: 0010:i915_oa_init_reg_state

Thanks,
Lakshmi.
-----Original Message-----
From: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> 
Sent: Monday, March 21, 2022 1:28 AM
To: intel-gfx@lists.freedesktop.org; Vudum, Lakshminarayana <lakshminarayana.vudum@intel.com>
Subject: Re: ✗ Fi.CI.IGT: failure for drm/i915/display: Add smem fallback allocation for dpt

Hi Lakshmi,

here would be again false positive on glk, glk doesn't use dpt which is changed on my patch.

/Juha-Pekka

On 17.3.2022 4.31, Patchwork wrote:
> *Patch Details*
> *Series:*	drm/i915/display: Add smem fallback allocation for dpt
> *URL:*	https://patchwork.freedesktop.org/series/101443/ 
> <https://patchwork.freedesktop.org/series/101443/>
> *State:*	failure
> *Details:*
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/index.html
> <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/index.html>
> 
> 
>   CI Bug Log - changes from CI_DRM_11372_full -> Patchwork_22588_full
> 
> 
>     Summary
> 
> *FAILURE*
> 
> Serious unknown changes coming with Patchwork_22588_full absolutely 
> need to be verified manually.
> 
> If you think the reported changes have nothing to do with the changes 
> introduced in Patchwork_22588_full, please notify your bug team to 
> allow them to document this new failure mode, which will reduce false 
> positives in CI.
> 
> 
>     Participating hosts (11 -> 12)
> 
> Additional (1): shard-rkl
> 
> 
>     Possible new issues
> 
> Here are the unknown changes that may have been introduced in
> Patchwork_22588_full:
> 
> 
>       IGT changes
> 
> 
>         Possible regressions
> 
>   * igt@perf@stress-open-close:
>       o shard-glk: NOTRUN -> DMESG-FAIL
>         
> <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/i
> gt@perf@stress-open-close.html>
> 
> 
>         Suppressed
> 
> The following results come from untrusted machines, tests, or statuses.
> They do not affect the overall result.
> 
>   * igt@i915_pm_dc@dc5-dpms:
>       o {shard-rkl}: NOTRUN -> INCOMPLETE
>         
> <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-rkl-5/
> igt@i915_pm_dc@dc5-dpms.html>
> 
> 
>     Known issues
> 
> Here are the changes found in Patchwork_22588_full that come from 
> known
> issues:
> 
> 
>       IGT changes
> 
> 
>         Issues hit
> 
>   *
> 
>     igt@gem_eio@kms:
> 
>       o shard-tglb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb7/igt@gem_eio@kms.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb8/igt@gem_eio@kms.html>
>         ([i915#232])
>   *
> 
>     igt@gem_exec_balancer@parallel-balancer:
> 
>       o shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@gem_exec_balancer@parallel-balancer.html>
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb3/igt@gem_exec_balancer@parallel-balancer.html>
>         ([i915#4525])
>   *
> 
>     igt@gem_exec_capture@pi@rcs0:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl10/igt@gem_exec_capture@pi@rcs0.html>
>         -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@gem_exec_capture@pi@rcs0.html>
>         ([i915#4547])
>   *
> 
>     igt@gem_exec_endless@dispatch@vecs0:
> 
>       o shard-tglb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb6/igt@gem_exec_endless@dispatch@vecs0.html>
>         -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb5/igt@gem_exec_endless@dispatch@vecs0.html>
>         ([i915#3778])
>   *
> 
>     igt@gem_exec_fair@basic-none-share@rcs0:
> 
>       o
> 
>         shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb6/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         ([i915#2842])
> 
>       o
> 
>         shard-tglb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb6/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb5/igt@gem_exec_fair@basic-none-share@rcs0.html>
>         ([i915#2842])
> 
>   *
> 
>     igt@gem_exec_fair@basic-none@vcs0:
> 
>       o shard-kbl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl1/igt@gem_exec_fair@basic-none@vcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl4/igt@gem_exec_fair@basic-none@vcs0.html>
>         ([i915#2842])
>   *
> 
>     igt@gem_exec_fair@basic-pace-solo@rcs0:
> 
>       o
> 
>         shard-glk: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>         ([i915#2842])
> 
>       o
> 
>         shard-kbl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>         ([i915#2842])
> 
>   *
> 
>     igt@gem_exec_fair@basic-throttle@rcs0:
> 
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk5/igt@gem_exec_fair@basic-throttle@rcs0.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk4/igt@gem_exec_fair@basic-throttle@rcs0.html>
>         ([i915#2842])
>   *
> 
>     igt@gem_exec_whisper@basic-normal:
> 
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@gem_exec_whisper@basic-normal.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk8/igt@gem_exec_whisper@basic-normal.html>
>         ([i915#118])
>   *
> 
>     igt@gem_lmem_swapping@basic:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@gem_lmem_swapping@basic.html>
>         ([fdo#109271] / [i915#4613])
>   *
> 
>     igt@gem_lmem_swapping@heavy-verify-random:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@gem_lmem_swapping@heavy-verify-random.html>
>         ([fdo#109271] / [i915#4613])
>   *
> 
>     igt@gem_lmem_swapping@parallel-random-engines:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@gem_lmem_swapping@parallel-random-engines.html>
>         ([fdo#109271] / [i915#4613])
>   *
> 
>     igt@gen3_render_linear_blits:
> 
>       o shard-tglb: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb2/igt@gen3_render_linear_blits.html>
>         ([fdo#109289])
>   *
> 
>     igt@gen7_exec_parse@oacontrol-tracking:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@gen7_exec_parse@oacontrol-tracking.html>
>         ([fdo#109271]) +27 similar issues
>   *
> 
>     igt@i915_pm_dc@dc6-psr:
> 
>       o shard-skl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@i915_pm_dc@dc6-psr.html>
>         ([i915#454])
>   *
> 
>     igt@kms_big_fb@4-tiled-32bpp-rotate-270:
> 
>       o shard-iclb: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@kms_big_fb@4-tiled-32bpp-rotate-270.html>
>         ([i915#5286])
>   *
> 
>     igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip:
> 
>       o
> 
>         shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html>
>         ([fdo#109271] / [i915#3777]) +3 similar issues
> 
>       o
> 
>         shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html>
>         ([fdo#109271] / [i915#3777])
> 
>   *
> 
>     igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html>
>         ([fdo#109271] / [i915#3777]) +2 similar issues
>   *
> 
>     igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html>
>         ([fdo#109271] / [i915#3777]) +1 similar issue
>   *
> 
>     igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +3 similar issues
>   *
> 
>     igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +8 similar issues
>   *
> 
>     igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +2 similar issues
>   *
> 
>     igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html>
>         ([fdo#109271] / [i915#3886]) +1 similar issue
>   *
> 
>     igt@kms_chamelium@dp-crc-multiple:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_chamelium@dp-crc-multiple.html>
>         ([fdo#109271] / [fdo#111827]) +3 similar issues
>   *
> 
>     igt@kms_chamelium@dp-crc-single:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_chamelium@dp-crc-single.html>
>         ([fdo#109271] / [fdo#111827]) +2 similar issues
>   *
> 
>     igt@kms_color_chamelium@pipe-b-ctm-0-25:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_color_chamelium@pipe-b-ctm-0-25.html>
>         ([fdo#109271] / [fdo#111827]) +10 similar issues
>   *
> 
>     igt@kms_color_chamelium@pipe-d-ctm-blue-to-red:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/igt@kms_color_chamelium@pipe-d-ctm-blue-to-red.html>
>         ([fdo#109271] / [fdo#111827]) +5 similar issues
>   *
> 
>     igt@kms_content_protection@atomic:
> 
>       o shard-kbl: NOTRUN -> TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl6/igt@kms_content_protection@atomic.html>
>         ([i915#1319])
>   *
> 
>     igt@kms_content_protection@uevent:
> 
>       o shard-kbl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_content_protection@uevent.html>
>         ([i915#2105])
>   *
> 
>     igt@kms_cursor_crc@pipe-d-cursor-64x64-sliding:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_cursor_crc@pipe-d-cursor-64x64-sliding.html>
>         ([fdo#109271]) +54 similar issues
>   *
> 
>     igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
> 
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html>
>         ([i915#72])
>   *
> 
>     igt@kms_cursor_legacy@flip-vs-cursor-varying-size:
> 
>       o shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb5/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html>
>         ([i915#2346])
>   *
> 
>     igt@kms_cursor_legacy@pipe-d-single-bo:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_cursor_legacy@pipe-d-single-bo.html>
>         ([fdo#109271] / [i915#533]) +1 similar issue
>   *
> 
>     igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
> 
>       o shard-skl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl2/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html>
>         ([i915#2122]) +2 similar issues
>   *
> 
>     igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-blt.html>
>         ([fdo#109271]) +136 similar issues
>   *
> 
>     igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt.html>
>         ([fdo#109271]) +78 similar issues
>   *
> 
>     igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl2/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl10/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html>
>         ([i915#1982])
>   *
> 
>     igt@kms_pipe_crc_basic@read-crc-pipe-d:
> 
>       o shard-iclb: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb6/igt@kms_pipe_crc_basic@read-crc-pipe-d.html>
>         ([fdo#109278])
>   *
> 
>     igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence:
> 
>       o shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html>
>         ([fdo#109271] / [i915#533]) +1 similar issue
>   *
> 
>     igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
> 
>       o shard-kbl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html>
>         ([i915#180]) +2 similar issues
>   *
> 
>     igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
> 
>       o shard-apl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-apl2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl8/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html>
>         ([i915#180]) +2 similar issues
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
> 
>       o shard-apl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html>
>         ([fdo#108145] / [i915#265])
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
> 
>       o shard-kbl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html>
>         ([fdo#108145] / [i915#265]) +1 similar issue
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
> 
>       o shard-skl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max.html>
>         ([fdo#108145] / [i915#265])
>   *
> 
>     igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html>
>         ([fdo#108145] / [i915#265])
>   *
> 
>     igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
> 
>       o
> 
>         shard-skl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658]) +1 similar issue
> 
>       o
> 
>         shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658])
> 
>   *
> 
>     igt@kms_psr2_sf@plane-move-sf-dmg-area:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@kms_psr2_sf@plane-move-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658])
>   *
> 
>     igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
> 
>       o shard-glk: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html>
>         ([fdo#109271] / [i915#658])
>   *
> 
>     igt@kms_psr@psr2_primary_page_flip:
> 
>       o shard-iclb: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html>
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb6/igt@kms_psr@psr2_primary_page_flip.html>
>         ([fdo#109441]) +3 similar issues
>   *
> 
>     igt@kms_sequence@queue-busy:
> 
>       o shard-skl: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl8/igt@kms_sequence@queue-busy.html>
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl3/igt@kms_sequence@queue-busy.html>
>         ([i915#2995])
>   *
> 
>     igt@kms_sysfs_edid_timing:
> 
>       o shard-apl: NOTRUN -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@kms_sysfs_edid_timing.html>
>         ([IGT#2])
>   *
> 
>     igt@sysfs_clients@fair-7:
> 
>       o shard-apl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@sysfs_clients@fair-7.html>
>         ([fdo#109271] / [i915#2994]) +2 similar issues
>   *
> 
>     igt@sysfs_clients@split-25:
> 
>       o shard-kbl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@sysfs_clients@split-25.html>
>         ([fdo#109271] / [i915#2994]) +1 similar issue
> 
> 
>         Possible fixes
> 
>   *
> 
>     igt@feature_discovery@psr2:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb6/igt@feature_discovery@psr2.html>
>         ([i915#658]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@feature_discovery@psr2.html>
>   *
> 
>     igt@gem_eio@in-flight-contexts-10ms:
> 
>       o shard-tglb: TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb3/igt@gem_eio@in-flight-contexts-10ms.html>
>         ([i915#3063]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb7/igt@gem_eio@in-flight-contexts-10ms.html>
>   *
> 
>     igt@gem_eio@unwedge-stress:
> 
>       o shard-iclb: TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb8/igt@gem_eio@unwedge-stress.html>
>         ([i915#2481] / [i915#3070]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb1/igt@gem_eio@unwedge-stress.html>
>   *
> 
>     igt@gem_exec_fair@basic-pace-share@rcs0:
> 
>       o shard-glk: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html>
>         ([i915#2842]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html>
>         +1 similar issue
>   *
> 
>     igt@gem_exec_fair@basic-pace-solo@rcs0:
> 
>       o shard-apl: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-apl4/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>         ([i915#2842]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html>
>   *
> 
>     igt@gem_exec_fair@basic-throttle@rcs0:
> 
>       o shard-iclb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html>
>         ([i915#2849]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html>
>   *
> 
>     igt@gem_workarounds@suspend-resume:
> 
>       o shard-skl: INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl6/igt@gem_workarounds@suspend-resume.html>
>         ([i915#4939] / [i915#5129]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl9/igt@gem_workarounds@suspend-resume.html>
>   *
> 
>     igt@i915_pm_rpm@system-suspend-modeset:
> 
>       o shard-glk: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@i915_pm_rpm@system-suspend-modeset.html>
>         ([i915#118] / [i915#1888]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk1/igt@i915_pm_rpm@system-suspend-modeset.html>
>   *
> 
>     igt@i915_suspend@forcewake:
> 
>       o shard-kbl: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@i915_suspend@forcewake.html>
>         ([i915#180]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl3/igt@i915_suspend@forcewake.html>
>         +3 similar issues
>   *
> 
>     igt@kms_big_fb@x-tiled-32bpp-rotate-180:
> 
>       o {shard-tglu}: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglu-1/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html>
>         ([i915#402]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglu-2/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html>
>   *
> 
>     igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
> 
>       o shard-iclb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb7/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html>
>         ([i915#5072]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb4/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html>
>   *
> 
>     igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled:
> 
>       o shard-skl: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl7/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled.html>
>         ([i915#1982]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl8/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-xtiled.html>
>   *
> 
>     igt@kms_draw_crc@draw-method-xrgb8888-blt-ytiled:
> 
>       o shard-glk: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@kms_draw_crc@draw-method-xrgb8888-blt-ytiled.html>
>         ([i915#118]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk1/igt@kms_draw_crc@draw-method-xrgb8888-blt-ytiled.html>
>   *
> 
>     igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2:
> 
>       o shard-glk: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html>
>         ([i915#79]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html>
>   *
> 
>     igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
> 
>       o shard-apl: DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html>
>         ([i915#180]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html>
>         +3 similar issues
>   *
> 
>     igt@kms_flip@plain-flip-ts-check@a-edp1:
> 
>       o shard-skl: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl10/igt@kms_flip@plain-flip-ts-check@a-edp1.html>
>         ([i915#2122]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl4/igt@kms_flip@plain-flip-ts-check@a-edp1.html>
>   *
> 
>     igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
> 
>       o shard-glk: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html>
>         ([i915#4911]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-glk7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html>
>         +1 similar issue
>   *
> 
>     igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-edp-1-planes-upscale-downscale:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-edp-1-planes-upscale-downscale.html>
>         ([i915#5235]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb3/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-edp-1-planes-upscale-downscale.html>
>         +2 similar issues
>   *
> 
>     igt@kms_psr@psr2_primary_mmap_gtt:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb4/igt@kms_psr@psr2_primary_mmap_gtt.html>
>         ([fdo#109441]) -> PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html>
>   *
> 
>     igt@perf@polling-parameterized:
> 
>       o shard-skl: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-skl2/igt@perf@polling-parameterized.html>
>         ([i915#1542]) -> PASS
>         
> <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-skl7/i
> gt@perf@polling-parameterized.html>
> 
> 
>         Warnings
> 
>   *
> 
>     igt@gem_eio@unwedge-stress:
> 
>       o shard-tglb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-tglb5/igt@gem_eio@unwedge-stress.html>
>         ([i915#232]) -> TIMEOUT
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-tglb6/igt@gem_eio@unwedge-stress.html>
>         ([i915#3063] / [i915#3648])
>   *
> 
>     igt@gem_exec_balancer@parallel-out-fence:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb5/igt@gem_exec_balancer@parallel-out-fence.html>
>         ([i915#4525]) -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb1/igt@gem_exec_balancer@parallel-out-fence.html>
>         ([i915#5076]) +2 similar issues
>   *
> 
>     igt@gem_exec_fair@basic-none-rrul@rcs0:
> 
>       o shard-iclb: FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb7/igt@gem_exec_fair@basic-none-rrul@rcs0.html>
>         ([i915#2842]) -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb8/igt@gem_exec_fair@basic-none-rrul@rcs0.html>
>         ([i915#2852])
>   *
> 
>     igt@i915_pm_rc6_residency@rc6-fence:
> 
>       o shard-iclb: WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb2/igt@i915_pm_rc6_residency@rc6-fence.html>
>         ([i915#2684]) -> WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb3/igt@i915_pm_rc6_residency@rc6-fence.html>
>         ([i915#1804] / [i915#2684])
>   *
> 
>     igt@i915_pm_rc6_residency@rc6-idle:
> 
>       o shard-iclb: WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb3/igt@i915_pm_rc6_residency@rc6-idle.html>
>         ([i915#1804] / [i915#2684]) -> WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle.html>
>         ([i915#2684])
>   *
> 
>     igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
> 
>       o shard-iclb: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-iclb6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html>
>         ([fdo#111068] / [i915#658]) -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html>
>         ([i915#2920])
>   *
> 
>     igt@runner@aborted:
> 
>       o shard-kbl: (FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl4/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl6/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl4/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl3/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl6/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11372/shard-kbl3/igt@runner@aborted.html>)
>         ([i915#180] / [i915#1814] / [i915#3002] / [i915#4312] /
>         [i915#5257] / [i915#602]) -> (FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl4/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl7/igt@runner@aborted.html>,
>         FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22588/shard-kbl4/igt@runner>,
>         [FAIL][148], [FAIL][149], [FAIL][150]) ([i915#180] / [i915#1814]
>         / [i915#3002] / [i915#4312] / [i915#5257])
>
Juha-Pekka Heikkila March 21, 2022, 6:36 p.m. UTC | #6
On 21.3.2022 14.29, Matthew Auld wrote:
> On Fri, 18 Mar 2022 at 09:22, Juha-Pekka Heikkila
> <juhapekka.heikkila@gmail.com> wrote:
>>
>> On 17.3.2022 13.55, Matthew Auld wrote:
>>> On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
>>> <juhapekka.heikkila@gmail.com> wrote:
>>>>
>>>> Add fallback smem allocation for dpt if stolen memory
>>>> allocation failed.
>>>>
>>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>>>> ---
>>>>    drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
>>>>    1 file changed, 14 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>> index fb0e7e79e0cd..c8b66433d4db 100644
>>>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
>>>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>> @@ -10,6 +10,7 @@
>>>>    #include "intel_display_types.h"
>>>>    #include "intel_dpt.h"
>>>>    #include "intel_fb.h"
>>>> +#include "gem/i915_gem_internal.h"
>>>
>>> Nit: these should be kept sorted
>>>
>>>>
>>>>    struct i915_dpt {
>>>>           struct i915_address_space vm;
>>>> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>>>           void __iomem *iomem;
>>>>           struct i915_gem_ww_ctx ww;
>>>>           int err;
>>>> +       u64 pin_flags = 0;
>>>> +
>>>> +       if (i915_gem_object_is_stolen(dpt->obj))
>>>> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
>>>>
>>>>           wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>>>>           atomic_inc(&i915->gpu_error.pending_fb_pin);
>>>> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>>>                           continue;
>>>>
>>>>                   vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
>>>> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
>>>> +                                                 pin_flags);
>>>>                   if (IS_ERR(vma)) {
>>>>                           err = PTR_ERR(vma);
>>>>                           continue;
>>>> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
>>>>
>>>>           size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
>>>>
>>>> -       if (HAS_LMEM(i915))
>>>> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>>>> -       else
>>>> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>>>> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
>>>>                   dpt_obj = i915_gem_object_create_stolen(i915, size);
>>>> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
>>>> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
>>>> +                           fb->base.base.id);
>>>> +
>>>> +               dpt_obj = i915_gem_object_create_internal(i915, size);
>>>
>>> Looks like we are missing some prerequisite patch to be able to
>>> directly map such memory in vma_pin_iomap?
>>
>> For these functions I'm more like a consumer, I was following
>> suggestions from Chris on this. Is there something extra that should be
>> considered in this regard when use it like this?
> 
> AFAICT this will trigger the WARN_ON() in vma_pin_iomap() if we
> fallback to create_internal(), since the object is now not lmem and is
> also not map_and_fenceable(i.e PIN_MAPPABLE).

This shouldn't affect case when dpt allocation from lmem failed, it is 
expected to go to "return ERR_CAST(dpt_obj);" below these comments. On 
situation when allocating lmem and stolen failed on next "if" I added 
!HAS_LMEM(i915) to handle situation with lmem. Though, when I was 
originally trying this patch without limiting lmem case I remember with 
dg2 I got black screen but I don't remember seeing WARN_ON() in logs.

> 
> The other issue is that we need some way of CPU mapping this type of
> object, like with calling i915_gem_object_pin_map() inside
> vma_pin_iomap(). It looks like there is an internal patch that tries
> to handle both issues, so I guess we need to also bring that patch
> upstream as a prerequisite to this?

I have above in intel_dpt_pin(..) that "pin_flags |= PIN_MAPPABLE" when 
handling stolen memory. I suspect patch you are referring to is this 
same patch I wrote, here just adjusted for upstreaming. This patch was 
earlier tried by Lucas and Manasi to be working with adlp and apparently 
cases with virtual machine this make it possible to have tiled 
framebuffers. Without this patch those special cases will get -e2big 
when creating tiled fb and no stolen memory available.

/Juha-Pekka

> 
>>
>>>
>>>> +       }
>>>>           if (IS_ERR(dpt_obj))
>>>>                   return ERR_CAST(dpt_obj);
>>>>
>>>> --
>>>> 2.28.0
>>>>
>>
Matthew Auld March 22, 2022, 10:45 a.m. UTC | #7
On Mon, 21 Mar 2022 at 18:36, Juha-Pekka Heikkila
<juhapekka.heikkila@gmail.com> wrote:
>
> On 21.3.2022 14.29, Matthew Auld wrote:
> > On Fri, 18 Mar 2022 at 09:22, Juha-Pekka Heikkila
> > <juhapekka.heikkila@gmail.com> wrote:
> >>
> >> On 17.3.2022 13.55, Matthew Auld wrote:
> >>> On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
> >>> <juhapekka.heikkila@gmail.com> wrote:
> >>>>
> >>>> Add fallback smem allocation for dpt if stolen memory
> >>>> allocation failed.
> >>>>
> >>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> >>>> ---
> >>>>    drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
> >>>>    1 file changed, 14 insertions(+), 4 deletions(-)
> >>>>
> >>>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
> >>>> index fb0e7e79e0cd..c8b66433d4db 100644
> >>>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
> >>>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
> >>>> @@ -10,6 +10,7 @@
> >>>>    #include "intel_display_types.h"
> >>>>    #include "intel_dpt.h"
> >>>>    #include "intel_fb.h"
> >>>> +#include "gem/i915_gem_internal.h"
> >>>
> >>> Nit: these should be kept sorted
> >>>
> >>>>
> >>>>    struct i915_dpt {
> >>>>           struct i915_address_space vm;
> >>>> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
> >>>>           void __iomem *iomem;
> >>>>           struct i915_gem_ww_ctx ww;
> >>>>           int err;
> >>>> +       u64 pin_flags = 0;
> >>>> +
> >>>> +       if (i915_gem_object_is_stolen(dpt->obj))
> >>>> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
> >>>>
> >>>>           wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> >>>>           atomic_inc(&i915->gpu_error.pending_fb_pin);
> >>>> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
> >>>>                           continue;
> >>>>
> >>>>                   vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
> >>>> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
> >>>> +                                                 pin_flags);
> >>>>                   if (IS_ERR(vma)) {
> >>>>                           err = PTR_ERR(vma);
> >>>>                           continue;
> >>>> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
> >>>>
> >>>>           size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
> >>>>
> >>>> -       if (HAS_LMEM(i915))
> >>>> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> >>>> -       else
> >>>> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> >>>> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
> >>>>                   dpt_obj = i915_gem_object_create_stolen(i915, size);
> >>>> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
> >>>> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
> >>>> +                           fb->base.base.id);
> >>>> +
> >>>> +               dpt_obj = i915_gem_object_create_internal(i915, size);
> >>>
> >>> Looks like we are missing some prerequisite patch to be able to
> >>> directly map such memory in vma_pin_iomap?
> >>
> >> For these functions I'm more like a consumer, I was following
> >> suggestions from Chris on this. Is there something extra that should be
> >> considered in this regard when use it like this?
> >
> > AFAICT this will trigger the WARN_ON() in vma_pin_iomap() if we
> > fallback to create_internal(), since the object is now not lmem and is
> > also not map_and_fenceable(i.e PIN_MAPPABLE).
>
> This shouldn't affect case when dpt allocation from lmem failed, it is
> expected to go to "return ERR_CAST(dpt_obj);" below these comments. On
> situation when allocating lmem and stolen failed on next "if" I added
> !HAS_LMEM(i915) to handle situation with lmem. Though, when I was
> originally trying this patch without limiting lmem case I remember with
> dg2 I got black screen but I don't remember seeing WARN_ON() in logs.
>
> >
> > The other issue is that we need some way of CPU mapping this type of
> > object, like with calling i915_gem_object_pin_map() inside
> > vma_pin_iomap(). It looks like there is an internal patch that tries
> > to handle both issues, so I guess we need to also bring that patch
> > upstream as a prerequisite to this?
>
> I have above in intel_dpt_pin(..) that "pin_flags |= PIN_MAPPABLE" when
> handling stolen memory. I suspect patch you are referring to is this
> same patch I wrote, here just adjusted for upstreaming. This patch was
> earlier tried by Lucas and Manasi to be working with adlp and apparently
> cases with virtual machine this make it possible to have tiled
> framebuffers. Without this patch those special cases will get -e2big
> when creating tiled fb and no stolen memory available.

When the GGTT pin eventually ends up returning some vma that is not
within the ggtt->mappable_end, then we will start hitting the above
issues, starting with the WARN_ON. If you use PIN_HIGH here for the
non-stolen case, it should highlight the issue more reliably I think.

>
> /Juha-Pekka
>
> >
> >>
> >>>
> >>>> +       }
> >>>>           if (IS_ERR(dpt_obj))
> >>>>                   return ERR_CAST(dpt_obj);
> >>>>
> >>>> --
> >>>> 2.28.0
> >>>>
> >>
>
Juha-Pekka Heikkila March 22, 2022, 12:06 p.m. UTC | #8
On 22.3.2022 12.45, Matthew Auld wrote:
> On Mon, 21 Mar 2022 at 18:36, Juha-Pekka Heikkila
> <juhapekka.heikkila@gmail.com> wrote:
>>
>> On 21.3.2022 14.29, Matthew Auld wrote:
>>> On Fri, 18 Mar 2022 at 09:22, Juha-Pekka Heikkila
>>> <juhapekka.heikkila@gmail.com> wrote:
>>>>
>>>> On 17.3.2022 13.55, Matthew Auld wrote:
>>>>> On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
>>>>> <juhapekka.heikkila@gmail.com> wrote:
>>>>>>
>>>>>> Add fallback smem allocation for dpt if stolen memory
>>>>>> allocation failed.
>>>>>>
>>>>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>>>>>> ---
>>>>>>     drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
>>>>>>     1 file changed, 14 insertions(+), 4 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>> index fb0e7e79e0cd..c8b66433d4db 100644
>>>>>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>> @@ -10,6 +10,7 @@
>>>>>>     #include "intel_display_types.h"
>>>>>>     #include "intel_dpt.h"
>>>>>>     #include "intel_fb.h"
>>>>>> +#include "gem/i915_gem_internal.h"
>>>>>
>>>>> Nit: these should be kept sorted
>>>>>
>>>>>>
>>>>>>     struct i915_dpt {
>>>>>>            struct i915_address_space vm;
>>>>>> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>>>>>            void __iomem *iomem;
>>>>>>            struct i915_gem_ww_ctx ww;
>>>>>>            int err;
>>>>>> +       u64 pin_flags = 0;
>>>>>> +
>>>>>> +       if (i915_gem_object_is_stolen(dpt->obj))
>>>>>> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
>>>>>>
>>>>>>            wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>>>>>>            atomic_inc(&i915->gpu_error.pending_fb_pin);
>>>>>> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>>>>>                            continue;
>>>>>>
>>>>>>                    vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
>>>>>> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
>>>>>> +                                                 pin_flags);
>>>>>>                    if (IS_ERR(vma)) {
>>>>>>                            err = PTR_ERR(vma);
>>>>>>                            continue;
>>>>>> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
>>>>>>
>>>>>>            size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
>>>>>>
>>>>>> -       if (HAS_LMEM(i915))
>>>>>> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>>>>>> -       else
>>>>>> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>>>>>> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
>>>>>>                    dpt_obj = i915_gem_object_create_stolen(i915, size);
>>>>>> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
>>>>>> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
>>>>>> +                           fb->base.base.id);
>>>>>> +
>>>>>> +               dpt_obj = i915_gem_object_create_internal(i915, size);
>>>>>
>>>>> Looks like we are missing some prerequisite patch to be able to
>>>>> directly map such memory in vma_pin_iomap?
>>>>
>>>> For these functions I'm more like a consumer, I was following
>>>> suggestions from Chris on this. Is there something extra that should be
>>>> considered in this regard when use it like this?
>>>
>>> AFAICT this will trigger the WARN_ON() in vma_pin_iomap() if we
>>> fallback to create_internal(), since the object is now not lmem and is
>>> also not map_and_fenceable(i.e PIN_MAPPABLE).
>>
>> This shouldn't affect case when dpt allocation from lmem failed, it is
>> expected to go to "return ERR_CAST(dpt_obj);" below these comments. On
>> situation when allocating lmem and stolen failed on next "if" I added
>> !HAS_LMEM(i915) to handle situation with lmem. Though, when I was
>> originally trying this patch without limiting lmem case I remember with
>> dg2 I got black screen but I don't remember seeing WARN_ON() in logs.
>>
>>>
>>> The other issue is that we need some way of CPU mapping this type of
>>> object, like with calling i915_gem_object_pin_map() inside
>>> vma_pin_iomap(). It looks like there is an internal patch that tries
>>> to handle both issues, so I guess we need to also bring that patch
>>> upstream as a prerequisite to this?
>>
>> I have above in intel_dpt_pin(..) that "pin_flags |= PIN_MAPPABLE" when
>> handling stolen memory. I suspect patch you are referring to is this
>> same patch I wrote, here just adjusted for upstreaming. This patch was
>> earlier tried by Lucas and Manasi to be working with adlp and apparently
>> cases with virtual machine this make it possible to have tiled
>> framebuffers. Without this patch those special cases will get -e2big
>> when creating tiled fb and no stolen memory available.
> 
> When the GGTT pin eventually ends up returning some vma that is not
> within the ggtt->mappable_end, then we will start hitting the above
> issues, starting with the WARN_ON. If you use PIN_HIGH here for the
> non-stolen case, it should highlight the issue more reliably I think.
> 

You mean once there's no space left in stolen there would be WARN_ON()? 
This is case which was earlier tested by Lucas and Manasi on adlp to be 
working correctly, this was on top of drm-tip. Also on internal testing 
you can see platforms taking this path reliably with no errors.

I'm not sure why use PIN_HIGH for non stolen case, my exposure to gem 
related parts is limited hence I was following Chris's suggestion to put 
zero flag for i915_gem_object_ggtt_pin_ww(..) when not using stolen.

/Juha-pekka
Matthew Auld March 22, 2022, 3:53 p.m. UTC | #9
On Tue, 22 Mar 2022 at 12:06, Juha-Pekka Heikkila
<juhapekka.heikkila@gmail.com> wrote:
>
> On 22.3.2022 12.45, Matthew Auld wrote:
> > On Mon, 21 Mar 2022 at 18:36, Juha-Pekka Heikkila
> > <juhapekka.heikkila@gmail.com> wrote:
> >>
> >> On 21.3.2022 14.29, Matthew Auld wrote:
> >>> On Fri, 18 Mar 2022 at 09:22, Juha-Pekka Heikkila
> >>> <juhapekka.heikkila@gmail.com> wrote:
> >>>>
> >>>> On 17.3.2022 13.55, Matthew Auld wrote:
> >>>>> On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
> >>>>> <juhapekka.heikkila@gmail.com> wrote:
> >>>>>>
> >>>>>> Add fallback smem allocation for dpt if stolen memory
> >>>>>> allocation failed.
> >>>>>>
> >>>>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> >>>>>> ---
> >>>>>>     drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
> >>>>>>     1 file changed, 14 insertions(+), 4 deletions(-)
> >>>>>>
> >>>>>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
> >>>>>> index fb0e7e79e0cd..c8b66433d4db 100644
> >>>>>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
> >>>>>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
> >>>>>> @@ -10,6 +10,7 @@
> >>>>>>     #include "intel_display_types.h"
> >>>>>>     #include "intel_dpt.h"
> >>>>>>     #include "intel_fb.h"
> >>>>>> +#include "gem/i915_gem_internal.h"
> >>>>>
> >>>>> Nit: these should be kept sorted
> >>>>>
> >>>>>>
> >>>>>>     struct i915_dpt {
> >>>>>>            struct i915_address_space vm;
> >>>>>> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
> >>>>>>            void __iomem *iomem;
> >>>>>>            struct i915_gem_ww_ctx ww;
> >>>>>>            int err;
> >>>>>> +       u64 pin_flags = 0;
> >>>>>> +
> >>>>>> +       if (i915_gem_object_is_stolen(dpt->obj))
> >>>>>> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
> >>>>>>
> >>>>>>            wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> >>>>>>            atomic_inc(&i915->gpu_error.pending_fb_pin);
> >>>>>> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
> >>>>>>                            continue;
> >>>>>>
> >>>>>>                    vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
> >>>>>> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
> >>>>>> +                                                 pin_flags);
> >>>>>>                    if (IS_ERR(vma)) {
> >>>>>>                            err = PTR_ERR(vma);
> >>>>>>                            continue;
> >>>>>> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
> >>>>>>
> >>>>>>            size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
> >>>>>>
> >>>>>> -       if (HAS_LMEM(i915))
> >>>>>> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> >>>>>> -       else
> >>>>>> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
> >>>>>> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
> >>>>>>                    dpt_obj = i915_gem_object_create_stolen(i915, size);
> >>>>>> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
> >>>>>> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
> >>>>>> +                           fb->base.base.id);
> >>>>>> +
> >>>>>> +               dpt_obj = i915_gem_object_create_internal(i915, size);
> >>>>>
> >>>>> Looks like we are missing some prerequisite patch to be able to
> >>>>> directly map such memory in vma_pin_iomap?
> >>>>
> >>>> For these functions I'm more like a consumer, I was following
> >>>> suggestions from Chris on this. Is there something extra that should be
> >>>> considered in this regard when use it like this?
> >>>
> >>> AFAICT this will trigger the WARN_ON() in vma_pin_iomap() if we
> >>> fallback to create_internal(), since the object is now not lmem and is
> >>> also not map_and_fenceable(i.e PIN_MAPPABLE).
> >>
> >> This shouldn't affect case when dpt allocation from lmem failed, it is
> >> expected to go to "return ERR_CAST(dpt_obj);" below these comments. On
> >> situation when allocating lmem and stolen failed on next "if" I added
> >> !HAS_LMEM(i915) to handle situation with lmem. Though, when I was
> >> originally trying this patch without limiting lmem case I remember with
> >> dg2 I got black screen but I don't remember seeing WARN_ON() in logs.
> >>
> >>>
> >>> The other issue is that we need some way of CPU mapping this type of
> >>> object, like with calling i915_gem_object_pin_map() inside
> >>> vma_pin_iomap(). It looks like there is an internal patch that tries
> >>> to handle both issues, so I guess we need to also bring that patch
> >>> upstream as a prerequisite to this?
> >>
> >> I have above in intel_dpt_pin(..) that "pin_flags |= PIN_MAPPABLE" when
> >> handling stolen memory. I suspect patch you are referring to is this
> >> same patch I wrote, here just adjusted for upstreaming. This patch was
> >> earlier tried by Lucas and Manasi to be working with adlp and apparently
> >> cases with virtual machine this make it possible to have tiled
> >> framebuffers. Without this patch those special cases will get -e2big
> >> when creating tiled fb and no stolen memory available.
> >
> > When the GGTT pin eventually ends up returning some vma that is not
> > within the ggtt->mappable_end, then we will start hitting the above
> > issues, starting with the WARN_ON. If you use PIN_HIGH here for the
> > non-stolen case, it should highlight the issue more reliably I think.
> >
>
> You mean once there's no space left in stolen there would be WARN_ON()?
> This is case which was earlier tested by Lucas and Manasi on adlp to be
> working correctly, this was on top of drm-tip. Also on internal testing
> you can see platforms taking this path reliably with no errors.
>
> I'm not sure why use PIN_HIGH for non stolen case, my exposure to gem
> related parts is limited hence I was following Chris's suggestion to put
> zero flag for i915_gem_object_ggtt_pin_ww(..) when not using stolen.

Asking for PIN_MAPPABLE ensures that the vma is always placed within
the mappable part of the GGTT(i.e ggtt->mappable_end), which is
usually only the first 256M of the GGTT. If we don't ask for
PIN_MAPPABLE(which is what this patch is doing for the non-stolen
case) then the vma might now be placed outside of the special mappable
range. This mappable range has a corresponding MMIO window which lets
us access, via some CPU address, the memory pointed at by those GGTT
PTEs. In the case of stolen system-memory this is the only known
reliable way to access such memory from the CPU. However if this is
just normal system memory(which is what this patch is now doing) then
we can just map it directly and don't need the PIN_MAPPABLE thing, but
that is exactly the piece we are also missing in vma_pin_iomap. The
WARN_ON(!i915_vma_is_map_and_fenceable(vma)) should catch this issue,
but I assume it's only by coincidence that we are not hitting it with
this patch, since the vma just so happens to be in the mappable
part(?), but that won't always be the case. If you look at the
internal version of vma_pin_iomap() there is some extra code to handle
this, which I guess should be a prerequisite to this patch.

>
> /Juha-pekka
Juha-Pekka Heikkila March 23, 2022, 3:09 p.m. UTC | #10
On 22.3.2022 17.53, Matthew Auld wrote:
> On Tue, 22 Mar 2022 at 12:06, Juha-Pekka Heikkila
> <juhapekka.heikkila@gmail.com> wrote:
>>
>> On 22.3.2022 12.45, Matthew Auld wrote:
>>> On Mon, 21 Mar 2022 at 18:36, Juha-Pekka Heikkila
>>> <juhapekka.heikkila@gmail.com> wrote:
>>>>
>>>> On 21.3.2022 14.29, Matthew Auld wrote:
>>>>> On Fri, 18 Mar 2022 at 09:22, Juha-Pekka Heikkila
>>>>> <juhapekka.heikkila@gmail.com> wrote:
>>>>>>
>>>>>> On 17.3.2022 13.55, Matthew Auld wrote:
>>>>>>> On Wed, 16 Mar 2022 at 22:23, Juha-Pekka Heikkila
>>>>>>> <juhapekka.heikkila@gmail.com> wrote:
>>>>>>>>
>>>>>>>> Add fallback smem allocation for dpt if stolen memory
>>>>>>>> allocation failed.
>>>>>>>>
>>>>>>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>>>>>>>> ---
>>>>>>>>      drivers/gpu/drm/i915/display/intel_dpt.c | 18 ++++++++++++++----
>>>>>>>>      1 file changed, 14 insertions(+), 4 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>>>> index fb0e7e79e0cd..c8b66433d4db 100644
>>>>>>>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>>>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>>>> @@ -10,6 +10,7 @@
>>>>>>>>      #include "intel_display_types.h"
>>>>>>>>      #include "intel_dpt.h"
>>>>>>>>      #include "intel_fb.h"
>>>>>>>> +#include "gem/i915_gem_internal.h"
>>>>>>>
>>>>>>> Nit: these should be kept sorted
>>>>>>>
>>>>>>>>
>>>>>>>>      struct i915_dpt {
>>>>>>>>             struct i915_address_space vm;
>>>>>>>> @@ -128,6 +129,10 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>>>>>>>             void __iomem *iomem;
>>>>>>>>             struct i915_gem_ww_ctx ww;
>>>>>>>>             int err;
>>>>>>>> +       u64 pin_flags = 0;
>>>>>>>> +
>>>>>>>> +       if (i915_gem_object_is_stolen(dpt->obj))
>>>>>>>> +               pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
>>>>>>>>
>>>>>>>>             wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>>>>>>>>             atomic_inc(&i915->gpu_error.pending_fb_pin);
>>>>>>>> @@ -138,7 +143,7 @@ struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
>>>>>>>>                             continue;
>>>>>>>>
>>>>>>>>                     vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
>>>>>>>> -                                                 HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
>>>>>>>> +                                                 pin_flags);
>>>>>>>>                     if (IS_ERR(vma)) {
>>>>>>>>                             err = PTR_ERR(vma);
>>>>>>>>                             continue;
>>>>>>>> @@ -248,10 +253,15 @@ intel_dpt_create(struct intel_framebuffer *fb)
>>>>>>>>
>>>>>>>>             size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
>>>>>>>>
>>>>>>>> -       if (HAS_LMEM(i915))
>>>>>>>> -               dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>>>>>>>> -       else
>>>>>>>> +       dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
>>>>>>>> +       if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
>>>>>>>>                     dpt_obj = i915_gem_object_create_stolen(i915, size);
>>>>>>>> +       if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
>>>>>>>> +               drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
>>>>>>>> +                           fb->base.base.id);
>>>>>>>> +
>>>>>>>> +               dpt_obj = i915_gem_object_create_internal(i915, size);
>>>>>>>
>>>>>>> Looks like we are missing some prerequisite patch to be able to
>>>>>>> directly map such memory in vma_pin_iomap?
>>>>>>
>>>>>> For these functions I'm more like a consumer, I was following
>>>>>> suggestions from Chris on this. Is there something extra that should be
>>>>>> considered in this regard when use it like this?
>>>>>
>>>>> AFAICT this will trigger the WARN_ON() in vma_pin_iomap() if we
>>>>> fallback to create_internal(), since the object is now not lmem and is
>>>>> also not map_and_fenceable(i.e PIN_MAPPABLE).
>>>>
>>>> This shouldn't affect case when dpt allocation from lmem failed, it is
>>>> expected to go to "return ERR_CAST(dpt_obj);" below these comments. On
>>>> situation when allocating lmem and stolen failed on next "if" I added
>>>> !HAS_LMEM(i915) to handle situation with lmem. Though, when I was
>>>> originally trying this patch without limiting lmem case I remember with
>>>> dg2 I got black screen but I don't remember seeing WARN_ON() in logs.
>>>>
>>>>>
>>>>> The other issue is that we need some way of CPU mapping this type of
>>>>> object, like with calling i915_gem_object_pin_map() inside
>>>>> vma_pin_iomap(). It looks like there is an internal patch that tries
>>>>> to handle both issues, so I guess we need to also bring that patch
>>>>> upstream as a prerequisite to this?
>>>>
>>>> I have above in intel_dpt_pin(..) that "pin_flags |= PIN_MAPPABLE" when
>>>> handling stolen memory. I suspect patch you are referring to is this
>>>> same patch I wrote, here just adjusted for upstreaming. This patch was
>>>> earlier tried by Lucas and Manasi to be working with adlp and apparently
>>>> cases with virtual machine this make it possible to have tiled
>>>> framebuffers. Without this patch those special cases will get -e2big
>>>> when creating tiled fb and no stolen memory available.
>>>
>>> When the GGTT pin eventually ends up returning some vma that is not
>>> within the ggtt->mappable_end, then we will start hitting the above
>>> issues, starting with the WARN_ON. If you use PIN_HIGH here for the
>>> non-stolen case, it should highlight the issue more reliably I think.
>>>
>>
>> You mean once there's no space left in stolen there would be WARN_ON()?
>> This is case which was earlier tested by Lucas and Manasi on adlp to be
>> working correctly, this was on top of drm-tip. Also on internal testing
>> you can see platforms taking this path reliably with no errors.
>>
>> I'm not sure why use PIN_HIGH for non stolen case, my exposure to gem
>> related parts is limited hence I was following Chris's suggestion to put
>> zero flag for i915_gem_object_ggtt_pin_ww(..) when not using stolen.
> 
> Asking for PIN_MAPPABLE ensures that the vma is always placed within
> the mappable part of the GGTT(i.e ggtt->mappable_end), which is
> usually only the first 256M of the GGTT. If we don't ask for
> PIN_MAPPABLE(which is what this patch is doing for the non-stolen
> case) then the vma might now be placed outside of the special mappable
> range. This mappable range has a corresponding MMIO window which lets
> us access, via some CPU address, the memory pointed at by those GGTT
> PTEs. In the case of stolen system-memory this is the only known
> reliable way to access such memory from the CPU. However if this is
> just normal system memory(which is what this patch is now doing) then
> we can just map it directly and don't need the PIN_MAPPABLE thing, but
> that is exactly the piece we are also missing in vma_pin_iomap. The
> WARN_ON(!i915_vma_is_map_and_fenceable(vma)) should catch this issue,
> but I assume it's only by coincidence that we are not hitting it with
> this patch, since the vma just so happens to be in the mappable
> part(?), but that won't always be the case. If you look at the
> internal version of vma_pin_iomap() there is some extra code to handle
> this, which I guess should be a prerequisite to this patch.

Ah, now I see what you meant. I think I found essential parts of code, 
I'll look into those and see what's needed. Thanks.

/Juha-Pekka
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c b/drivers/gpu/drm/i915/display/intel_dpt.c
index fb0e7e79e0cd..c8b66433d4db 100644
--- a/drivers/gpu/drm/i915/display/intel_dpt.c
+++ b/drivers/gpu/drm/i915/display/intel_dpt.c
@@ -10,6 +10,7 @@ 
 #include "intel_display_types.h"
 #include "intel_dpt.h"
 #include "intel_fb.h"
+#include "gem/i915_gem_internal.h"
 
 struct i915_dpt {
 	struct i915_address_space vm;
@@ -128,6 +129,10 @@  struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
 	void __iomem *iomem;
 	struct i915_gem_ww_ctx ww;
 	int err;
+	u64 pin_flags = 0;
+
+	if (i915_gem_object_is_stolen(dpt->obj))
+		pin_flags |= PIN_MAPPABLE; /* for i915_vma_pin_iomap(stolen) */
 
 	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
 	atomic_inc(&i915->gpu_error.pending_fb_pin);
@@ -138,7 +143,7 @@  struct i915_vma *intel_dpt_pin(struct i915_address_space *vm)
 			continue;
 
 		vma = i915_gem_object_ggtt_pin_ww(dpt->obj, &ww, NULL, 0, 4096,
-						  HAS_LMEM(i915) ? 0 : PIN_MAPPABLE);
+						  pin_flags);
 		if (IS_ERR(vma)) {
 			err = PTR_ERR(vma);
 			continue;
@@ -248,10 +253,15 @@  intel_dpt_create(struct intel_framebuffer *fb)
 
 	size = round_up(size * sizeof(gen8_pte_t), I915_GTT_PAGE_SIZE);
 
-	if (HAS_LMEM(i915))
-		dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
-	else
+	dpt_obj = i915_gem_object_create_lmem(i915, size, I915_BO_ALLOC_CONTIGUOUS);
+	if (IS_ERR(dpt_obj) && i915_ggtt_has_aperture(to_gt(i915)->ggtt))
 		dpt_obj = i915_gem_object_create_stolen(i915, size);
+	if (IS_ERR(dpt_obj) && !HAS_LMEM(i915)) {
+		drm_dbg_kms(&i915->drm, "fb: [FB:%d] Allocating dpt from smem\n",
+			    fb->base.base.id);
+
+		dpt_obj = i915_gem_object_create_internal(i915, size);
+	}
 	if (IS_ERR(dpt_obj))
 		return ERR_CAST(dpt_obj);