Re: [Intel-gfx] [PATCH v2 5/7] drm/i915: Get first crtc instead of PIPE_A crtc

2020-02-16 Thread Anshuman Gupta
On 2020-02-11 at 22:55:30 +0530, Anshuman Gupta wrote:
> intel_plane_fb_max_stride should return the max stride of
> primary plane for first available pipe in intel device info
> pipe_mask.
> Similarly glk_force_audio_cdclk() should also use the first
> available CRTC instead of pipe 'A' crtc to force the cdclk
> changes.
> 
> changes since RFC:
> - Introduced a helper to get first intel_crtc intel_get_first_crtc. [Ville]
> v1:
> - Used intel_get_first_crtc() instead of PIPE_A crtc in
>   glk_force_audio_cdclk(). [Ville]
Hi Ville,
You had provided your RB on earlier revision
https://patchwork.freedesktop.org/patch/351873/?series=72468&rev=2
later u have provided the above review comment, as current
patch fixes the above review comment.
can i use your RB for this patch, if current patch is ok.
Thanks,
Anshuman Gupta. 
> 
> Cc: Ville Syrjälä 
> Signed-off-by: Anshuman Gupta 
> ---
>  drivers/gpu/drm/i915/display/intel_audio.c | 2 +-
>  drivers/gpu/drm/i915/display/intel_display.c   | 5 +++--
>  drivers/gpu/drm/i915/display/intel_display_types.h | 6 ++
>  3 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c 
> b/drivers/gpu/drm/i915/display/intel_audio.c
> index 30fb7c887ff0..19bf206037c2 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -844,7 +844,7 @@ static void glk_force_audio_cdclk(struct drm_i915_private 
> *dev_priv,
>   struct intel_crtc *crtc;
>   int ret;
>  
> - crtc = intel_get_crtc_for_pipe(dev_priv, PIPE_A);
> + crtc = intel_get_first_crtc(dev_priv);
>   if (!crtc)
>   return;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 5ba0b40fbfde..6fdaeb019fef 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2715,9 +2715,10 @@ u32 intel_plane_fb_max_stride(struct drm_i915_private 
> *dev_priv,
>  
>   /*
>* We assume the primary plane for pipe A has
> -  * the highest stride limits of them all.
> +  * the highest stride limits of them all,
> +  * if in case pipe A is disabled, use the first pipe from pipe_mask.
>*/
> - crtc = intel_get_crtc_for_pipe(dev_priv, PIPE_A);
> + crtc = intel_get_first_crtc(dev_priv);
>   if (!crtc)
>   return 0;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index d359f1636ba8..359eaa6703a8 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1403,6 +1403,12 @@ vlv_pipe_to_channel(enum pipe pipe)
>   }
>  }
>  
> +static inline struct intel_crtc *
> +intel_get_first_crtc(struct drm_i915_private *dev_priv)
> +{
> + return to_intel_crtc(drm_crtc_from_index(&dev_priv->drm, 0));
> +}
> +
>  static inline struct intel_crtc *
>  intel_get_crtc_for_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
>  {
> -- 
> 2.24.0
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] Add support for Color encoding YCBCR_BT2020

2020-02-16 Thread Kadiyala, Kishore



> -Original Message-
> From: Jani Nikula 
> Sent: Friday, February 14, 2020 4:56 PM
> To: Kadiyala, Kishore ; intel-
> g...@lists.freedesktop.org
> Cc: Kadiyala, Kishore 
> Subject: Re: [Intel-gfx] [PATCH] Add support for Color encoding YCBCR_BT2020
> 
> On Fri, 14 Feb 2020, Kishore Kadiyala  wrote:
> > Currently the plane property doesn't have support for YCBCR_BT2020,
> > which enables the corresponding color conversion mode on plane CSC.
> 
> Please prefix your patch subjects properly. "drm/i915: " at a minimum for 
> stuff
> touching i915.

   Sure Jani, I'll include prefix from next time.

> 
> No need to resend for this, but for future reference.
  Ok 

Regards,
Kishore
> 
> BR,
> Jani.
> 
> 
> >
> > Signed-off-by: Kishore Kadiyala 
> > Cc: Uma Shankar 
> > ---
> >  drivers/gpu/drm/i915/display/intel_sprite.c | 9 +++--
> >  1 file changed, 7 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c
> > b/drivers/gpu/drm/i915/display/intel_sprite.c
> > index 7abeefe8dce5..5169a7260d7c 100644
> > --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> > +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> > @@ -3011,6 +3011,7 @@ skl_universal_plane_create(struct drm_i915_private
> *dev_priv,
> > struct intel_plane *plane;
> > enum drm_plane_type plane_type;
> > unsigned int supported_rotations;
> > +   unsigned int supported_csc;
> > unsigned int possible_crtcs;
> > const u64 *modifiers;
> > const u32 *formats;
> > @@ -3088,9 +3089,13 @@ skl_universal_plane_create(struct
> drm_i915_private *dev_priv,
> >DRM_MODE_ROTATE_0,
> >supported_rotations);
> >
> > +   supported_csc = BIT(DRM_COLOR_YCBCR_BT601) |
> > +BIT(DRM_COLOR_YCBCR_BT709);
> > +
> > +   if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv))
> > +   supported_csc |= BIT(DRM_COLOR_YCBCR_BT2020);
> > +
> > drm_plane_create_color_properties(&plane->base,
> > - BIT(DRM_COLOR_YCBCR_BT601) |
> > - BIT(DRM_COLOR_YCBCR_BT709),
> > + supported_csc,
> >
> BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
> >
> BIT(DRM_COLOR_YCBCR_FULL_RANGE),
> >   DRM_COLOR_YCBCR_BT709,
> 
> --
> Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/tgl: Add Wa_1808121037 to tgl.

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915/tgl: Add Wa_1808121037 to tgl.
URL   : https://patchwork.freedesktop.org/series/73379/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7926_full -> Patchwork_16550_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_16550_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_16550_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@perf@oa-formats:
- shard-iclb: [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb3/igt@p...@oa-formats.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-iclb3/igt@p...@oa-formats.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_parallel@vcs1-fds:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112080]) +14 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb2/igt@gem_exec_paral...@vcs1-fds.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-iclb5/igt@gem_exec_paral...@vcs1-fds.html

  * igt@gem_exec_schedule@preempt-contexts-bsd2:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276]) +13 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb1/igt@gem_exec_sched...@preempt-contexts-bsd2.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-iclb3/igt@gem_exec_sched...@preempt-contexts-bsd2.html

  * igt@gem_exec_schedule@wide-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +5 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb5/igt@gem_exec_sched...@wide-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-iclb1/igt@gem_exec_sched...@wide-bsd.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-snoop:
- shard-hsw:  [PASS][9] -> [FAIL][10] ([i915#694])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-hsw5/igt@gem_partial_pwrite_pr...@writes-after-reads-snoop.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-hsw1/igt@gem_partial_pwrite_pr...@writes-after-reads-snoop.html

  * igt@gem_softpin@noreloc-s3:
- shard-skl:  [PASS][11] -> [INCOMPLETE][12] ([i915#69])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl4/igt@gem_soft...@noreloc-s3.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-skl7/igt@gem_soft...@noreloc-s3.html

  * igt@gem_workarounds@suspend-resume-context:
- shard-apl:  [PASS][13] -> [DMESG-WARN][14] ([i915#180]) +2 
similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl7/igt@gem_workarou...@suspend-resume-context.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-apl4/igt@gem_workarou...@suspend-resume-context.html

  * igt@kms_color@pipe-a-gamma:
- shard-tglb: [PASS][15] -> [FAIL][16] ([i915#1149])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-tglb7/igt@kms_co...@pipe-a-gamma.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-tglb2/igt@kms_co...@pipe-a-gamma.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-random:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#54])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-skl10/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-skl:  [PASS][19] -> [FAIL][20] ([IGT#5])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl7/igt@kms_cursor_leg...@flip-vs-cursor-atomic-transitions.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-skl1/igt@kms_cursor_leg...@flip-vs-cursor-atomic-transitions.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl:  [PASS][21] -> [FAIL][22] ([i915#79])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16550/shard-skl1/igt@kms_f...@flip-vs-expired-vblank-interruptible.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-kbl:  [PASS][23] -> [

Re: [Intel-gfx] [PATCH v3 3/7] drm/exynos: Use drm_encoder_mask()

2020-02-16 Thread Inki Dae


20. 2. 12. 오전 1:22에 Ville Syrjala 이(가) 쓴 글:
> From: Ville Syrjälä 
> 
> Replace the hand rolled encoder bitmask thing with drm_encoder_mask()
> 
> Cc: Inki Dae 
> Cc: Joonyoung Shim 
> Cc: Seung-Woo Kim 
> Cc: Kyungmin Park 
> Acked-by: Thomas Zimmermann 
> Signed-off-by: Ville Syrjälä 

Acked-by: Inki Dae 

THanks,
Inki Dae

> ---
>  drivers/gpu/drm/exynos/exynos_drm_drv.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c 
> b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index ba0f868b2477..57defeb44522 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -270,7 +270,7 @@ static int exynos_drm_bind(struct device *dev)
>   struct drm_encoder *encoder;
>   struct drm_device *drm;
>   unsigned int clone_mask;
> - int cnt, ret;
> + int ret;
>  
>   drm = drm_dev_alloc(&exynos_drm_driver, dev);
>   if (IS_ERR(drm))
> @@ -293,10 +293,9 @@ static int exynos_drm_bind(struct device *dev)
>   exynos_drm_mode_config_init(drm);
>  
>   /* setup possible_clones. */
> - cnt = 0;
>   clone_mask = 0;
>   list_for_each_entry(encoder, &drm->mode_config.encoder_list, head)
> - clone_mask |= (1 << (cnt++));
> + clone_mask |= drm_encoder_mask(encoder);
>  
>   list_for_each_entry(encoder, &drm->mode_config.encoder_list, head)
>   encoder->possible_clones = clone_mask;
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm: Add support for DP 1.4 Compliance edid corruption test (rev6)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm: Add support for DP 1.4 Compliance edid corruption test (rev6)
URL   : https://patchwork.freedesktop.org/series/70530/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7926_full -> Patchwork_16548_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#112080]) +15 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb4/igt@gem_b...@busy-vcs1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-iclb3/igt@gem_b...@busy-vcs1.html

  * igt@gem_exec_schedule@pi-distinct-iova-bsd:
- shard-iclb: [PASS][3] -> [SKIP][4] ([i915#677]) +2 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb5/igt@gem_exec_sched...@pi-distinct-iova-bsd.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-iclb2/igt@gem_exec_sched...@pi-distinct-iova-bsd.html

  * igt@gem_exec_schedule@preempt-contexts-bsd2:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276]) +21 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb1/igt@gem_exec_sched...@preempt-contexts-bsd2.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-iclb7/igt@gem_exec_sched...@preempt-contexts-bsd2.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +8 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb7/igt@gem_exec_sched...@reorder-wide-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-iclb2/igt@gem_exec_sched...@reorder-wide-bsd.html

  * igt@i915_pm_dc@dc5-dpms:
- shard-iclb: [PASS][9] -> [FAIL][10] ([i915#447])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb1/igt@i915_pm...@dc5-dpms.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-iclb3/igt@i915_pm...@dc5-dpms.html

  * igt@kms_color@pipe-a-gamma:
- shard-tglb: [PASS][11] -> [FAIL][12] ([i915#1149])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-tglb7/igt@kms_co...@pipe-a-gamma.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-tglb8/igt@kms_co...@pipe-a-gamma.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-random:
- shard-skl:  [PASS][13] -> [FAIL][14] ([i915#54])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-skl8/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-skl:  [PASS][15] -> [FAIL][16] ([IGT#5])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl6/igt@kms_cursor_leg...@flip-vs-cursor-atomic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-skl2/igt@kms_cursor_leg...@flip-vs-cursor-atomic.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-glk:  [PASS][17] -> [FAIL][18] ([i915#79])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk1/igt@kms_f...@2x-flip-vs-expired-vblank-interruptible.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-glk5/igt@kms_f...@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-skl:  [PASS][19] -> [FAIL][20] ([i915#79])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-skl9/igt@kms_f...@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
- shard-apl:  [PASS][21] -> [DMESG-WARN][22] ([i915#180]) +3 
similar issues
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl3/igt@kms_f...@flip-vs-suspend-interruptible.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-apl4/igt@kms_f...@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@basic:
- shard-skl:  [PASS][23] -> [FAIL][24] ([i915#49])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl2/igt@kms_frontbuffer_track...@basic.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16548/shard-skl7/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-tglb: [PASS][25] -> [SKIP][26] ([i915#668])
   [25]: 
https://intel-gfx-ci.01.org/tre

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: pfit/scaler rework prep stuff (rev2)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: pfit/scaler rework prep stuff (rev2)
URL   : https://patchwork.freedesktop.org/series/68409/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7926_full -> Patchwork_16547_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_isolation@bcs0-s3:
- shard-apl:  [PASS][1] -> [DMESG-WARN][2] ([i915#180]) +2 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl4/igt@gem_ctx_isolat...@bcs0-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-apl6/igt@gem_ctx_isolat...@bcs0-s3.html

  * igt@gem_exec_parallel@vcs1-fds:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112080]) +15 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb2/igt@gem_exec_paral...@vcs1-fds.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-iclb6/igt@gem_exec_paral...@vcs1-fds.html

  * igt@gem_exec_schedule@in-order-bsd:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#112146]) +5 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb3/igt@gem_exec_sched...@in-order-bsd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-iclb1/igt@gem_exec_sched...@in-order-bsd.html

  * igt@gem_exec_schedule@pi-shared-iova-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([i915#677])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb5/igt@gem_exec_sched...@pi-shared-iova-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-iclb2/igt@gem_exec_sched...@pi-shared-iova-bsd.html

  * igt@gem_exec_schedule@preempt-contexts-bsd2:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#109276]) +20 similar 
issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb1/igt@gem_exec_sched...@preempt-contexts-bsd2.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-iclb3/igt@gem_exec_sched...@preempt-contexts-bsd2.html

  * igt@gen7_exec_parse@basic-offset:
- shard-hsw:  [PASS][11] -> [FAIL][12] ([i915#694])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-hsw6/igt@gen7_exec_pa...@basic-offset.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-hsw1/igt@gen7_exec_pa...@basic-offset.html

  * igt@i915_pm_rpm@modeset-stress-extra-wait:
- shard-glk:  [PASS][13] -> [DMESG-WARN][14] ([i915#118] / 
[i915#95])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk6/igt@i915_pm_...@modeset-stress-extra-wait.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-glk8/igt@i915_pm_...@modeset-stress-extra-wait.html

  * igt@kms_cursor_edge_walk@pipe-b-128x128-bottom-edge:
- shard-hsw:  [PASS][15] -> [INCOMPLETE][16] ([i915#61])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-hsw1/igt@kms_cursor_edge_w...@pipe-b-128x128-bottom-edge.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-hsw5/igt@kms_cursor_edge_w...@pipe-b-128x128-bottom-edge.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-glk:  [PASS][17] -> [FAIL][18] ([i915#79])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk1/igt@kms_f...@2x-flip-vs-expired-vblank-interruptible.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-glk8/igt@kms_f...@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
- shard-kbl:  [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +2 
similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-kbl7/igt@kms_f...@flip-vs-suspend.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-kbl3/igt@kms_f...@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
- shard-skl:  [PASS][21] -> [FAIL][22] ([i915#49])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl2/igt@kms_frontbuffer_track...@basic.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-skl9/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-snb:  [PASS][23] -> [SKIP][24] ([fdo#109271])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-snb4/igt@kms_frontbuffer_track...@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16547/shard-snb6/igt@kms_frontbuffer_track...@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
- shard-skl:  [PASS][25] -> [FAIL]

Re: [Intel-gfx] kernel 5.5.4: BUG: kernel NULL pointer dereference, address: 000000000000000

2020-02-16 Thread Toralf Förster
On 2/16/20 3:55 PM, Hillf Danton wrote:
> 
> On Sun, 16 Feb 2020 11:33:02 +0100 Toralf Foerster wrote:
>> On 2/16/20 4:26 AM, Hillf Danton wrote:
>>> Looks like a stray lock counts for the above NULL dereference.
>>>
>> Hi, the patch applied on top of 5.5.4 breaks the internal display now even
>>  in the boot phase.
> 
> My bad.
> 
> Then try to do fence signaling before taking request's lock as we'll
> take the fence specific lock if we're in the right direction.
> 
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -252,10 +252,10 @@ bool i915_request_retire(struct i915_req
>*/
>   remove_from_engine(rq);
>  
> + dma_fence_signal(&rq->fence);
> +
>   spin_lock_irq(&rq->lock);
>   i915_request_mark_complete(rq);
> - if (!i915_request_signaled(rq))
> - dma_fence_signal_locked(&rq->fence);
>   if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &rq->fence.flags))
>   i915_request_cancel_breadcrumb(rq);
>   if (i915_request_has_waitboost(rq)) {
> 

This is similar to the behaviour before, the BUG occurres after few 
minutes/hours.
It brought now:


Feb 16 22:09:01 t44 CROND[8918]: (root) CMD (/usr/lib/sa/sa1 30 2 -S XALL)
Feb 16 22:10:01 t44 CROND[8980]: (root) CMD (/usr/lib/sa/sa1 30 2 -S XALL)
Feb 16 22:10:37 t44 kernel: BUG: kernel NULL pointer dereference, address: 

Feb 16 22:10:37 t44 kernel: #PF: supervisor instruction fetch in kernel mode
Feb 16 22:10:37 t44 kernel: #PF: error_code(0x0010) - not-present page
Feb 16 22:10:37 t44 kernel: PGD 0 P4D 0 
Feb 16 22:10:37 t44 kernel: Oops: 0010 [#1] SMP PTI
Feb 16 22:10:37 t44 kernel: CPU: 1 PID: 3403 Comm: X Tainted: G
T 5.5.4 #3
Feb 16 22:10:37 t44 kernel: Hardware name: LENOVO 20AQCTO1WW/20AQCTO1WW, BIOS 
GJET92WW (2.42 ) 03/03/2017
Feb 16 22:10:37 t44 kernel: RIP: 0010:0x0
Feb 16 22:10:37 t44 kernel: Code: Bad RIP value.
Feb 16 22:10:37 t44 kernel: RSP: 0018:ad37009eba20 EFLAGS: 00010087
Feb 16 22:10:37 t44 kernel: RAX:  RBX:  RCX: 
000e68b0
Feb 16 22:10:37 t44 kernel: RDX:  RSI: 8b35598cba88 RDI: 
8b362d9146c0
Feb 16 22:10:37 t44 kernel: RBP: 8b362d9146c0 R08:  R09: 
8b35598cbe00
Feb 16 22:10:37 t44 kernel: R10: 0002 R11: 0005 R12: 
ad37009eba28
Feb 16 22:10:37 t44 kernel: R13:  R14: 8b36a40fa200 R15: 
8b369bf99600
Feb 16 22:10:37 t44 kernel: FS:  7f2b751398c0() 
GS:8b36b268() knlGS:
Feb 16 22:10:37 t44 kernel: CS:  0010 DS:  ES:  CR0: 80050033
Feb 16 22:10:37 t44 kernel: CR2: ffd6 CR3: 000323292001 CR4: 
001606e0
Feb 16 22:10:37 t44 kernel: Call Trace:
Feb 16 22:10:37 t44 kernel:  dma_fence_signal_locked+0x85/0xc0
Feb 16 22:10:37 t44 kernel:  dma_fence_signal+0x1f/0x40
Feb 16 22:10:37 t44 kernel:  i915_request_retire+0x9a/0x290 [i915]
Feb 16 22:10:37 t44 kernel:  i915_request_create+0x3f/0xc0 [i915]
Feb 16 22:10:37 t44 kernel:  i915_gem_do_execbuffer+0x973/0x17d0 [i915]
Feb 16 22:10:37 t44 kernel:  i915_gem_execbuffer2_ioctl+0xe9/0x3a0 [i915]
Feb 16 22:10:37 t44 kernel:  ? i915_gem_execbuffer_ioctl+0x2c0/0x2c0 [i915]
Feb 16 22:10:37 t44 kernel:  drm_ioctl_kernel+0xae/0x100 [drm]
Feb 16 22:10:37 t44 kernel:  drm_ioctl+0x223/0x400 [drm]
Feb 16 22:10:37 t44 kernel:  ? i915_gem_execbuffer_ioctl+0x2c0/0x2c0 [i915]
Feb 16 22:10:37 t44 kernel:  do_vfs_ioctl+0x4d4/0x760
Feb 16 22:10:37 t44 kernel:  ksys_ioctl+0x5b/0x90
Feb 16 22:10:37 t44 kernel:  __x64_sys_ioctl+0x15/0x20
Feb 16 22:10:37 t44 kernel:  do_syscall_64+0x46/0x100
Feb 16 22:10:37 t44 kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xa9
Feb 16 22:10:37 t44 kernel: RIP: 0033:0x7f2b75372137
Feb 16 22:10:37 t44 kernel: Code: 00 00 00 75 0c 48 c7 c0 ff ff ff ff 48 83 c4 
18 c3 e8 2d d4 01 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 b8 10 00 00 00 0f 
05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 19 ed 0c 00 f7 d8 64 89 01 48
Feb 16 22:10:37 t44 kernel: RSP: 002b:7ffebe2b4c38 EFLAGS: 0246 
ORIG_RAX: 0010
Feb 16 22:10:37 t44 kernel: RAX: ffda RBX: 7ffebe2b4c80 RCX: 
7f2b75372137
Feb 16 22:10:37 t44 kernel: RDX: 7ffebe2b4c80 RSI: 40406469 RDI: 
000d
Feb 16 22:10:37 t44 kernel: RBP: 40406469 R08: 561477eb8670 R09: 
0202
Feb 16 22:10:37 t44 kernel: R10:  R11: 0246 R12: 
561477e7b0b0
Feb 16 22:10:37 t44 kernel: R13: 000d R14: 7f2b74b51c48 R15: 

Feb 16 22:10:37 t44 kernel: Modules linked in: af_packet bridge stp llc 
ip6table_filter ip6_tables xt_MASQUERADE iptable_nat nf_nat nf_log_ipv4 
nf_log_common xt_LOG xt_limit xt_recent xt_conntrack nf_conntrack 
nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter ip_tables uvcvideo 
videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videodev videobuf2_common 
btusb btrtl btbcm btintel bluetoot

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] MAINTAINERS: Update drm/i915 bug filing URL

2020-02-16 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] MAINTAINERS: Update drm/i915 bug filing URL
URL   : https://patchwork.freedesktop.org/series/73371/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7926_full -> Patchwork_16546_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_async@concurrent-writes-bsd:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#112146]) +2 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb8/igt@gem_exec_as...@concurrent-writes-bsd.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-iclb1/igt@gem_exec_as...@concurrent-writes-bsd.html

  * igt@gem_exec_parallel@vcs1-fds:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112080]) +11 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb2/igt@gem_exec_paral...@vcs1-fds.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-iclb8/igt@gem_exec_paral...@vcs1-fds.html

  * igt@gem_exec_schedule@out-order-bsd2:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276]) +12 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb4/igt@gem_exec_sched...@out-order-bsd2.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-iclb8/igt@gem_exec_sched...@out-order-bsd2.html

  * igt@gem_exec_schedule@pi-shared-iova-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([i915#677])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb5/igt@gem_exec_sched...@pi-shared-iova-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-iclb4/igt@gem_exec_sched...@pi-shared-iova-bsd.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk:  [PASS][9] -> [FAIL][10] ([i915#644])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk2/igt@gem_pp...@flink-and-close-vma-leak.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-glk1/igt@gem_pp...@flink-and-close-vma-leak.html
- shard-skl:  [PASS][11] -> [FAIL][12] ([i915#644])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl10/igt@gem_pp...@flink-and-close-vma-leak.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-skl9/igt@gem_pp...@flink-and-close-vma-leak.html

  * igt@gem_workarounds@suspend-resume-fd:
- shard-kbl:  [PASS][13] -> [DMESG-WARN][14] ([i915#180]) +3 
similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-kbl2/igt@gem_workarou...@suspend-resume-fd.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-kbl7/igt@gem_workarou...@suspend-resume-fd.html

  * igt@i915_suspend@sysfs-reader:
- shard-apl:  [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +7 
similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl4/igt@i915_susp...@sysfs-reader.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-apl4/igt@i915_susp...@sysfs-reader.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-random:
- shard-skl:  [PASS][17] -> [FAIL][18] ([i915#54])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-skl10/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-hsw:  [PASS][19] -> [INCOMPLETE][20] ([i915#61]) +1 similar 
issue
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-hsw2/igt@kms_cursor_...@pipe-c-cursor-suspend.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-hsw5/igt@kms_cursor_...@pipe-c-cursor-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-apl:  [PASS][21] -> [FAIL][22] ([i915#79])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl4/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-apl4/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
- shard-glk:  [PASS][23] -> [FAIL][24] ([i915#79])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk7/igt@kms_f...@flip-vs-expired-vblank-interruptible.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16546/shard-glk8/igt@kms_f...@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
- shard-tglb: [PASS][25] -> [SKIP][26] ([i915#668]) +7 similar 
issues
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Read rawclk_freq earlier

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Read rawclk_freq earlier
URL   : https://patchwork.freedesktop.org/series/73507/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7950 -> Patchwork_16591


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-dsi}:   NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16591/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).



Participating hosts (40 -> 40)
--

  Additional (7): fi-hsw-peppy fi-ilk-650 fi-ivb-3770 fi-bsw-kefka fi-byt-n2820 
fi-skl-6700k2 fi-kbl-r 
  Missing(7): fi-ilk-m540 fi-hsw-4200u fi-bwr-2160 fi-ctg-p8600 fi-gdg-551 
fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7950 -> Patchwork_16591

  CI-20190529: 20190529
  CI_DRM_7950: eebe6906446d83547d0a3f29ffa3f124a8971b40 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5444: c46bae259d427f53fcfcd5f05de0181a9e82d6fe @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16591: f8d26a310444c22043961f0482ea10ef8768e60d @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

f8d26a310444 drm/i915: Read rawclk_freq earlier

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16591/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Avoid potential division-by-zero in computing CS timestamp period

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Avoid potential division-by-zero in computing CS timestamp 
period
URL   : https://patchwork.freedesktop.org/series/73506/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7950 -> Patchwork_16590


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-dsi}:   NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16590/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live_gtt:
- fi-bxt-dsi: [PASS][2] -> [TIMEOUT][3] ([fdo#112271])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7950/fi-bxt-dsi/igt@i915_selftest@live_gtt.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16590/fi-bxt-dsi/igt@i915_selftest@live_gtt.html

  * igt@i915_selftest@live_hangcheck:
- fi-icl-u3:  [PASS][4] -> [INCOMPLETE][5] ([fdo#108569])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7950/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16590/fi-icl-u3/igt@i915_selftest@live_hangcheck.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271


Participating hosts (40 -> 43)
--

  Additional (9): fi-hsw-peppy fi-ilk-650 fi-snb-2520m fi-ivb-3770 fi-bsw-kefka 
fi-blb-e6850 fi-byt-n2820 fi-skl-6700k2 fi-kbl-r 
  Missing(6): fi-ilk-m540 fi-hsw-4200u fi-ctg-p8600 fi-gdg-551 
fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7950 -> Patchwork_16590

  CI-20190529: 20190529
  CI_DRM_7950: eebe6906446d83547d0a3f29ffa3f124a8971b40 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5444: c46bae259d427f53fcfcd5f05de0181a9e82d6fe @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16590: b82aca351b49349019c6bb4e08f3e148bb5b77a7 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b82aca351b49 drm/i915: Avoid potential division-by-zero in computing CS 
timestamp period

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16590/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/selftests: Fix selftest_mocs for DGFX (rev3)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915/selftests: Fix selftest_mocs for DGFX (rev3)
URL   : https://patchwork.freedesktop.org/series/73387/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7950 -> Patchwork_16589


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-dsi}:   NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16589/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live_gtt:
- fi-kbl-7500u:   [PASS][2] -> [TIMEOUT][3] ([fdo#112271])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7950/fi-kbl-7500u/igt@i915_selftest@live_gtt.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16589/fi-kbl-7500u/igt@i915_selftest@live_gtt.html

  * igt@kms_chamelium@dp-edid-read:
- fi-cml-u2:  [PASS][4] -> [FAIL][5] ([i915#217] / [i915#976])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7950/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16589/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#976]: https://gitlab.freedesktop.org/drm/intel/issues/976


Participating hosts (40 -> 36)
--

  Additional (7): fi-hsw-peppy fi-ilk-650 fi-snb-2520m fi-bsw-kefka 
fi-byt-n2820 fi-skl-6700k2 fi-kbl-r 
  Missing(11): fi-ilk-m540 fi-bsw-n3050 fi-hsw-4200u fi-icl-u2 fi-bwr-2160 
fi-ctg-p8600 fi-gdg-551 fi-elk-e7500 fi-pnv-d510 fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7950 -> Patchwork_16589

  CI-20190529: 20190529
  CI_DRM_7950: eebe6906446d83547d0a3f29ffa3f124a8971b40 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5444: c46bae259d427f53fcfcd5f05de0181a9e82d6fe @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16589: 57a0abd044c141876bb459321a6938611ee1b428 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

57a0abd044c1 drm/i915/gt: Refactor l3cc/mocs availability

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16589/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Read rawclk_freq earlier

2020-02-16 Thread Chris Wilson
Read the rawclk_freq during runtime info probing, prior to its first use
in computing the CS timestamp frequency. Then store it in the runtime
info, and include it in the debug printouts.

Closes: https://gitlab.freedesktop.org/drm/intel/issues/834
Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/display/intel_cdclk.c| 19 ++-
 drivers/gpu/drm/i915/display/intel_cdclk.h|  2 +-
 .../drm/i915/display/intel_display_power.c|  9 +++--
 drivers/gpu/drm/i915/display/intel_dp.c   | 10 ++
 drivers/gpu/drm/i915/display/intel_panel.c| 12 +++-
 drivers/gpu/drm/i915/i915_drv.h   |  1 -
 drivers/gpu/drm/i915/intel_device_info.c  |  7 ++-
 drivers/gpu/drm/i915/intel_device_info.h  |  2 ++
 8 files changed, 35 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c 
b/drivers/gpu/drm/i915/display/intel_cdclk.c
index 423c91b164b4..146c2b9bb7fb 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -2693,28 +2693,29 @@ static int g4x_hrawclk(struct drm_i915_private 
*dev_priv)
 }
 
 /**
- * intel_update_rawclk - Determine the current RAWCLK frequency
+ * intel_read_rawclk - Determine the current RAWCLK frequency
  * @dev_priv: i915 device
  *
  * Determine the current RAWCLK frequency. RAWCLK is a fixed
  * frequency clock so this needs to done only once.
  */
-void intel_update_rawclk(struct drm_i915_private *dev_priv)
+u32 intel_read_rawclk(struct drm_i915_private *dev_priv)
 {
+   u32 freq;
+
if (INTEL_PCH_TYPE(dev_priv) >= PCH_CNP)
-   dev_priv->rawclk_freq = cnp_rawclk(dev_priv);
+   freq = cnp_rawclk(dev_priv);
else if (HAS_PCH_SPLIT(dev_priv))
-   dev_priv->rawclk_freq = pch_rawclk(dev_priv);
+   freq = pch_rawclk(dev_priv);
else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
-   dev_priv->rawclk_freq = vlv_hrawclk(dev_priv);
+   freq = vlv_hrawclk(dev_priv);
else if (IS_G4X(dev_priv) || IS_PINEVIEW(dev_priv))
-   dev_priv->rawclk_freq = g4x_hrawclk(dev_priv);
+   freq = g4x_hrawclk(dev_priv);
else
/* no rawclk on other platforms, or no need to know it */
-   return;
+   return 0;
 
-   drm_dbg(&dev_priv->drm, "rawclk rate: %d kHz\n",
-   dev_priv->rawclk_freq);
+   return freq;
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.h 
b/drivers/gpu/drm/i915/display/intel_cdclk.h
index df21dbdcc575..5731806e4cee 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.h
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.h
@@ -61,7 +61,7 @@ void intel_cdclk_uninit_hw(struct drm_i915_private *i915);
 void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv);
 void intel_update_max_cdclk(struct drm_i915_private *dev_priv);
 void intel_update_cdclk(struct drm_i915_private *dev_priv);
-void intel_update_rawclk(struct drm_i915_private *dev_priv);
+u32 intel_read_rawclk(struct drm_i915_private *dev_priv);
 bool intel_cdclk_needs_modeset(const struct intel_cdclk_config *a,
   const struct intel_cdclk_config *b);
 void intel_set_cdclk_pre_plane_update(struct intel_atomic_state *state);
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c 
b/drivers/gpu/drm/i915/display/intel_display_power.c
index b9a9cbad8a03..722399fc2ace 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -1260,10 +1260,10 @@ static void vlv_init_display_clock_gating(struct 
drm_i915_private *dev_priv)
   MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE);
intel_de_write(dev_priv, CBR1_VLV, 0);
 
-   WARN_ON(dev_priv->rawclk_freq == 0);
-
+   WARN_ON(RUNTIME_INFO(dev_priv)->rawclk_freq == 0);
intel_de_write(dev_priv, RAWCLK_FREQ_VLV,
-  DIV_ROUND_CLOSEST(dev_priv->rawclk_freq, 1000));
+  DIV_ROUND_CLOSEST(RUNTIME_INFO(dev_priv)->rawclk_freq,
+1000));
 }
 
 static void vlv_display_power_well_init(struct drm_i915_private *dev_priv)
@@ -5236,9 +5236,6 @@ void intel_power_domains_init_hw(struct drm_i915_private 
*i915, bool resume)
 
power_domains->initializing = true;
 
-   /* Must happen before power domain init on VLV/CHV */
-   intel_update_rawclk(i915);
-
if (INTEL_GEN(i915) >= 11) {
icl_display_core_init(i915, resume);
} else if (IS_CANNONLAKE(i915)) {
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 9541ab11624d..82baf5aba84b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1213,13 +1213,14 @@ static u32 g4x_get_aux_clock_divider(struct intel_dp 
*intel_dp, int index)
 * The clock divider is based o

[Intel-gfx] [PATCH] drm/i915: Avoid potential division-by-zero in computing CS timestamp period

2020-02-16 Thread Chris Wilson
Since we use a HW readback or estimation of the CS timestamp frequency,
sometimes it may result in 0. Avoid the division-by-zero in computing
its reciprocal, the timestamp period.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/intel_device_info.c | 18 +++---
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
b/drivers/gpu/drm/i915/intel_device_info.c
index a97437fac884..18d9de488593 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -1044,13 +1044,17 @@ void intel_device_info_runtime_init(struct 
drm_i915_private *dev_priv)
}
 
/* Initialize command stream timestamp frequency */
-   runtime->cs_timestamp_frequency_khz = 
read_timestamp_frequency(dev_priv);
-   runtime->cs_timestamp_period_ns =
-   div_u64(1e6, runtime->cs_timestamp_frequency_khz);
-   drm_dbg(&dev_priv->drm,
-   "CS timestamp wraparound in %lldms\n",
-   div_u64(mul_u32_u32(runtime->cs_timestamp_period_ns, S32_MAX),
-   USEC_PER_SEC));
+   runtime->cs_timestamp_frequency_khz =
+   read_timestamp_frequency(dev_priv);
+   if (runtime->cs_timestamp_frequency_khz) {
+   runtime->cs_timestamp_period_ns =
+   div_u64(1e6, runtime->cs_timestamp_frequency_khz);
+   drm_dbg(&dev_priv->drm,
+   "CS timestamp wraparound in %lldms\n",
+   div_u64(mul_u32_u32(runtime->cs_timestamp_period_ns,
+   S32_MAX),
+   USEC_PER_SEC));
+   }
 }
 
 void intel_driver_caps_print(const struct intel_driver_caps *caps,
-- 
2.25.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915/gt: Refactor l3cc/mocs availability

2020-02-16 Thread Chris Wilson
On dgfx, we only use l3cc and not mocs, but we share the table of
register definitions with Tigerlake (which includes the mocs). This
confuses our selftest that verifies that the registers do contain the
values in our tables after various events (idling, reset, activity etc).

When constructing the table of register definitions, also include the
flags for which registers are valid so that information is computed
centrally and available to all callers.

Signed-off-by: Chris Wilson 
Cc: Brian Welty 
Cc: Daniele Ceraolo Spurio 
---
 drivers/gpu/drm/i915/gt/intel_mocs.c| 72 +
 drivers/gpu/drm/i915/gt/selftest_mocs.c | 24 ++---
 2 files changed, 67 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c 
b/drivers/gpu/drm/i915/gt/intel_mocs.c
index 0afc1eb3c20f..632e08a4592b 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -280,9 +280,32 @@ static const struct drm_i915_mocs_entry icl_mocs_table[] = 
{
GEN11_MOCS_ENTRIES
 };
 
-static bool get_mocs_settings(const struct drm_i915_private *i915,
- struct drm_i915_mocs_table *table)
+enum {
+   HAS_GLOBAL_MOCS = BIT(0),
+   HAS_ENGINE_MOCS = BIT(1),
+   HAS_RENDER_L3CC = BIT(2),
+};
+
+static bool has_l3cc(const struct drm_i915_private *i915)
 {
+   return true;
+}
+
+static bool has_global_mocs(const struct drm_i915_private *i915)
+{
+   return HAS_GLOBAL_MOCS_REGISTERS(i915);
+}
+
+static bool has_mocs(const struct drm_i915_private *i915)
+{
+   return !IS_DGFX(i915);
+}
+
+static unsigned int get_mocs_settings(const struct drm_i915_private *i915,
+ struct drm_i915_mocs_table *table)
+{
+   unsigned int flags;
+
if (INTEL_GEN(i915) >= 12) {
table->size  = ARRAY_SIZE(tgl_mocs_table);
table->table = tgl_mocs_table;
@@ -302,11 +325,11 @@ static bool get_mocs_settings(const struct 
drm_i915_private *i915,
} else {
drm_WARN_ONCE(&i915->drm, INTEL_GEN(i915) >= 9,
  "Platform that should have a MOCS table does 
not.\n");
-   return false;
+   return 0;
}
 
if (GEM_DEBUG_WARN_ON(table->size > table->n_entries))
-   return false;
+   return 0;
 
/* WaDisableSkipCaching:skl,bxt,kbl,glk */
if (IS_GEN(i915, 9)) {
@@ -315,10 +338,20 @@ static bool get_mocs_settings(const struct 
drm_i915_private *i915,
for (i = 0; i < table->size; i++)
if (GEM_DEBUG_WARN_ON(table->table[i].l3cc_value &
  (L3_ESC(1) | L3_SCC(0x7
-   return false;
+   return 0;
}
 
-   return true;
+   flags = 0;
+   if (has_mocs(i915)) {
+   if (has_global_mocs(i915))
+   flags |= HAS_GLOBAL_MOCS;
+   else
+   flags |= HAS_ENGINE_MOCS;
+   }
+   if (has_l3cc(i915))
+   flags |= HAS_RENDER_L3CC;
+
+   return flags;
 }
 
 /*
@@ -411,18 +444,20 @@ static void init_l3cc_table(struct intel_engine_cs 
*engine,
 void intel_mocs_init_engine(struct intel_engine_cs *engine)
 {
struct drm_i915_mocs_table table;
+   unsigned int flags;
 
/* Called under a blanket forcewake */
assert_forcewakes_active(engine->uncore, FORCEWAKE_ALL);
 
-   if (!get_mocs_settings(engine->i915, &table))
+   flags = get_mocs_settings(engine->i915, &table);
+   if (!flags)
return;
 
/* Platforms with global MOCS do not need per-engine initialization. */
-   if (!HAS_GLOBAL_MOCS_REGISTERS(engine->i915))
+   if (flags & HAS_ENGINE_MOCS)
init_mocs_table(engine, &table);
 
-   if (engine->class == RENDER_CLASS)
+   if (flags & HAS_RENDER_L3CC && engine->class == RENDER_CLASS)
init_l3cc_table(engine, &table);
 }
 
@@ -431,26 +466,17 @@ static u32 global_mocs_offset(void)
return i915_mmio_reg_offset(GEN12_GLOBAL_MOCS(0));
 }
 
-static void init_global_mocs(struct intel_gt *gt)
+void intel_mocs_init(struct intel_gt *gt)
 {
struct drm_i915_mocs_table table;
+   unsigned int flags;
 
/*
 * LLC and eDRAM control values are not applicable to dgfx
 */
-   if (IS_DGFX(gt->i915))
-   return;
-
-   if (!get_mocs_settings(gt->i915, &table))
-   return;
-
-   __init_mocs_table(gt->uncore, &table, global_mocs_offset());
-}
-
-void intel_mocs_init(struct intel_gt *gt)
-{
-   if (HAS_GLOBAL_MOCS_REGISTERS(gt->i915))
-   init_global_mocs(gt);
+   flags = get_mocs_settings(gt->i915, &table);
+   if (flags & HAS_GLOBAL_MOCS)
+   __init_mocs_table(gt->uncore, &table, global_mocs_offset());
 }
 
 #if IS_ENABLED(CONFIG_DRM_I915_S

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Track hw reported context runtime (rev7)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev7)
URL   : https://patchwork.freedesktop.org/series/73499/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7949 -> Patchwork_16588


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-u}: [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7949/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16588/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
- {fi-tgl-dsi}:   [PASS][3] -> [INCOMPLETE][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7949/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16588/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-hsw-peppy:   [PASS][5] -> [INCOMPLETE][6] ([i915#694] / [i915#816])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7949/fi-hsw-peppy/igt@gem_close_r...@basic-threads.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16588/fi-hsw-peppy/igt@gem_close_r...@basic-threads.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816


Participating hosts (51 -> 34)
--

  Missing(17): fi-ilk-m540 fi-bdw-5557u fi-bsw-n3050 fi-hsw-4200u 
fi-byt-squawks fi-bsw-cyan fi-bwr-2160 fi-kbl-7500u fi-ctg-p8600 fi-gdg-551 
fi-ivb-3770 fi-elk-e7500 fi-pnv-d510 fi-blb-e6850 fi-byt-clapper fi-bdw-samus 
fi-kbl-r 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7949 -> Patchwork_16588

  CI-20190529: 20190529
  CI_DRM_7949: 107d61a9622390032e786b66d560649969ed985f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5444: c46bae259d427f53fcfcd5f05de0181a9e82d6fe @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16588: 6b2debda1baa912af15cffe1f0d33ef8fb926f00 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

6b2debda1baa drm/i915: Track hw reported context runtime

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16588/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Track hw reported context runtime (rev7)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev7)
URL   : https://patchwork.freedesktop.org/series/73499/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
6b2debda1baa drm/i915: Track hw reported context runtime
-:109: WARNING:LINE_SPACING: Missing a blank line after declarations
#109: FILE: drivers/gpu/drm/i915/gt/intel_context_types.h:79:
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);

-:223: WARNING:LINE_SPACING: Missing a blank line after declarations
#223: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:4462:
+   struct i915_request *rq;
+   IGT_TIMEOUT(end_time);

total: 0 errors, 2 warnings, 0 checks, 313 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Track hw reported context runtime (rev6)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev6)
URL   : https://patchwork.freedesktop.org/series/73499/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7948 -> Patchwork_16587


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-u}: [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16587/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
- {fi-tgl-dsi}:   [PASS][3] -> [INCOMPLETE][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16587/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-hsw-peppy:   [PASS][5] -> [INCOMPLETE][6] ([i915#694] / [i915#816])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-hsw-peppy/igt@gem_close_r...@basic-threads.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16587/fi-hsw-peppy/igt@gem_close_r...@basic-threads.html

  * igt@i915_selftest@live_gem_contexts:
- fi-cml-s:   [PASS][7] -> [DMESG-FAIL][8] ([i915#877])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-cml-s/igt@i915_selftest@live_gem_contexts.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16587/fi-cml-s/igt@i915_selftest@live_gem_contexts.html

  
 Possible fixes 

  * igt@kms_chamelium@dp-edid-read:
- fi-cml-u2:  [FAIL][9] ([i915#217] / [i915#976]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16587/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816
  [i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877
  [i915#976]: https://gitlab.freedesktop.org/drm/intel/issues/976


Participating hosts (46 -> 35)
--

  Additional (2): fi-bsw-kefka fi-snb-2520m 
  Missing(13): fi-ehl-1 fi-hsw-4200u fi-byt-squawks fi-bwr-2160 
fi-kbl-7500u fi-ctg-p8600 fi-cfl-8109u fi-elk-e7500 fi-skl-lmem fi-blb-e6850 
fi-byt-clapper fi-bsw-nick fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7948 -> Patchwork_16587

  CI-20190529: 20190529
  CI_DRM_7948: 129a4630a618fee5d2eaa4290cd367e24893bc91 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5444: c46bae259d427f53fcfcd5f05de0181a9e82d6fe @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16587: 284fafeb344bf78275984ddd0c95bf2ff92ec8cf @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

284fafeb344b drm/i915: Track hw reported context runtime

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16587/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Ensure no conflicts with BIOS when updating Dbuf

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Ensure no conflicts with BIOS when updating Dbuf
URL   : https://patchwork.freedesktop.org/series/73369/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7926_full -> Patchwork_16545_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#112080]) +10 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb4/igt@gem_b...@busy-vcs1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-iclb7/igt@gem_b...@busy-vcs1.html

  * igt@gem_exec_schedule@out-order-bsd2:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276]) +15 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb4/igt@gem_exec_sched...@out-order-bsd2.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-iclb5/igt@gem_exec_sched...@out-order-bsd2.html

  * igt@gem_exec_schedule@pi-distinct-iova-bsd:
- shard-iclb: [PASS][5] -> [SKIP][6] ([i915#677]) +1 similar issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb5/igt@gem_exec_sched...@pi-distinct-iova-bsd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-iclb1/igt@gem_exec_sched...@pi-distinct-iova-bsd.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +4 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb7/igt@gem_exec_sched...@reorder-wide-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-iclb1/igt@gem_exec_sched...@reorder-wide-bsd.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk:  [PASS][9] -> [FAIL][10] ([i915#644])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk2/igt@gem_pp...@flink-and-close-vma-leak.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-glk3/igt@gem_pp...@flink-and-close-vma-leak.html
- shard-apl:  [PASS][11] -> [FAIL][12] ([i915#644])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl2/igt@gem_pp...@flink-and-close-vma-leak.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-apl1/igt@gem_pp...@flink-and-close-vma-leak.html

  * igt@gem_tiled_swapping@non-threaded:
- shard-kbl:  [PASS][13] -> [DMESG-WARN][14] ([i915#183])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-kbl1/igt@gem_tiled_swapp...@non-threaded.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-kbl7/igt@gem_tiled_swapp...@non-threaded.html

  * igt@gem_workarounds@suspend-resume-context:
- shard-apl:  [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +6 
similar issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl7/igt@gem_workarou...@suspend-resume-context.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-apl4/igt@gem_workarou...@suspend-resume-context.html

  * igt@i915_suspend@sysfs-reader:
- shard-kbl:  [PASS][17] -> [DMESG-WARN][18] ([i915#180]) +4 
similar issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-kbl6/igt@i915_susp...@sysfs-reader.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-kbl2/igt@i915_susp...@sysfs-reader.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-random:
- shard-skl:  [PASS][19] -> [FAIL][20] ([i915#54])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-skl7/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-skl:  [PASS][21] -> [FAIL][22] ([IGT#5])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl7/igt@kms_cursor_leg...@flip-vs-cursor-atomic-transitions-varying-size.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-skl5/igt@kms_cursor_leg...@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_frontbuffer_tracking@basic:
- shard-skl:  [PASS][23] -> [FAIL][24] ([i915#49])
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl2/igt@kms_frontbuffer_track...@basic.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16545/shard-skl4/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl:  [PASS][25] -> [FAIL][26] ([fdo#108145] / [i915#265])
   [25]: 
https://intel-gfx-ci.01.org/tree/drm-tip

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Track hw reported context runtime (rev6)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev6)
URL   : https://patchwork.freedesktop.org/series/73499/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
284fafeb344b drm/i915: Track hw reported context runtime
-:109: WARNING:LINE_SPACING: Missing a blank line after declarations
#109: FILE: drivers/gpu/drm/i915/gt/intel_context_types.h:79:
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);

-:198: WARNING:LINE_SPACING: Missing a blank line after declarations
#198: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:4457:
+   struct i915_request *rq;
+   IGT_TIMEOUT(end_time);

total: 0 errors, 2 warnings, 0 checks, 294 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [CI] drm/i915: Track hw reported context runtime

2020-02-16 Thread Chris Wilson
From: Tvrtko Ursulin 

GPU saves accumulated context runtime (in CS timestamp units) in PPHWSP
which will be useful for us in cases when we are not able to track context
busyness ourselves (like with GuC). Keep a copy of this in struct
intel_context from where it can be easily read even if the context is not
pinned.

v2:
 (Chris)
 * Do not store pphwsp address in intel_context.
 * Log CS wrap-around.
 * Simplify calculation by relying on integer wraparound.
v3:
 * Include total/avg in traces and error state for debugging

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_context.c   |  6 +-
 drivers/gpu/drm/i915/gt/intel_context.h   | 17 
 drivers/gpu/drm/i915/gt/intel_context_types.h | 12 +++
 drivers/gpu/drm/i915/gt/intel_lrc.c   | 46 -
 drivers/gpu/drm/i915/gt/intel_lrc_reg.h   |  1 +
 drivers/gpu/drm/i915/gt/selftest_lrc.c| 96 +++
 drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++-
 drivers/gpu/drm/i915/i915_gpu_error.h |  4 +
 drivers/gpu/drm/i915/intel_device_info.c  |  6 ++
 drivers/gpu/drm/i915/intel_device_info.h  |  1 +
 10 files changed, 195 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index e4f89341d17c..8bb444cda14f 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -220,7 +220,9 @@ static void __intel_context_retire(struct i915_active 
*active)
 {
struct intel_context *ce = container_of(active, typeof(*ce), active);
 
-   CE_TRACE(ce, "retire\n");
+   CE_TRACE(ce, "retire runtime: { total:%lluns, avg:%lluns }\n",
+intel_context_get_total_runtime_ns(ce),
+intel_context_get_avg_runtime_ns(ce));
 
set_bit(CONTEXT_VALID_BIT, &ce->flags);
if (ce->state)
@@ -281,6 +283,8 @@ intel_context_init(struct intel_context *ce,
ce->sseu = engine->sseu;
ce->ring = __intel_context_ring_size(SZ_4K);
 
+   ewma_runtime_init(&ce->runtime.avg);
+
ce->vm = i915_vm_get(engine->gt->vm);
 
INIT_LIST_HEAD(&ce->signal_link);
diff --git a/drivers/gpu/drm/i915/gt/intel_context.h 
b/drivers/gpu/drm/i915/gt/intel_context.h
index 604d5cfc46ba..18efad255124 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.h
+++ b/drivers/gpu/drm/i915/gt/intel_context.h
@@ -12,6 +12,7 @@
 #include 
 
 #include "i915_active.h"
+#include "i915_drv.h"
 #include "intel_context_types.h"
 #include "intel_engine_types.h"
 #include "intel_ring_types.h"
@@ -227,4 +228,20 @@ intel_context_clear_nopreempt(struct intel_context *ce)
clear_bit(CONTEXT_NOPREEMPT, &ce->flags);
 }
 
+static inline u64 intel_context_get_total_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return READ_ONCE(ce->runtime.total) * period;
+}
+
+static inline u64 intel_context_get_avg_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return mul_u32_u32(ewma_runtime_read(&ce->runtime.avg), period);
+}
+
 #endif /* __INTEL_CONTEXT_H__ */
diff --git a/drivers/gpu/drm/i915/gt/intel_context_types.h 
b/drivers/gpu/drm/i915/gt/intel_context_types.h
index ca1420fb8b53..11278343b9b5 100644
--- a/drivers/gpu/drm/i915/gt/intel_context_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_context_types.h
@@ -7,6 +7,7 @@
 #ifndef __INTEL_CONTEXT_TYPES__
 #define __INTEL_CONTEXT_TYPES__
 
+#include 
 #include 
 #include 
 #include 
@@ -19,6 +20,8 @@
 
 #define CONTEXT_REDZONE POISON_INUSE
 
+DECLARE_EWMA(runtime, 3, 8);
+
 struct i915_gem_context;
 struct i915_vma;
 struct intel_context;
@@ -68,6 +71,15 @@ struct intel_context {
u64 lrc_desc;
u32 tag; /* cookie passed to HW to track this context on submission */
 
+   /* Time on GPU as tracked by the hw. */
+   struct {
+   struct ewma_runtime avg;
+   u64 total;
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);
+   I915_SELFTEST_DECLARE(u32 max_underflow);
+   } runtime;
+
unsigned int active_count; /* protected by timeline->mutex */
 
atomic_t pin_count;
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index c3d7727021db..78e854440949 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1195,6 +1195,42 @@ static void reset_active(struct i915_request *rq,
ce->lrc_desc |= CTX_DESC_FORCE_RESTORE;
 }
 
+static u32 intel_context_get_runtime(const struct intel_context *ce)
+{
+   /*
+* We can use either ppHWSP[16] which is recorded before the context
+* switch (and so excludes the cost of context switches) or use the
+* value from the context image itself, which is saved/restored earlier
+* and so inc

[Intel-gfx] [CI] drm/i915: Track hw reported context runtime

2020-02-16 Thread Chris Wilson
From: Tvrtko Ursulin 

GPU saves accumulated context runtime (in CS timestamp units) in PPHWSP
which will be useful for us in cases when we are not able to track context
busyness ourselves (like with GuC). Keep a copy of this in struct
intel_context from where it can be easily read even if the context is not
pinned.

v2:
 (Chris)
 * Do not store pphwsp address in intel_context.
 * Log CS wrap-around.
 * Simplify calculation by relying on integer wraparound.
v3:
 * Include total/avg in traces and error state for debugging

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_context.c   |  6 +-
 drivers/gpu/drm/i915/gt/intel_context.h   | 17 
 drivers/gpu/drm/i915/gt/intel_context_types.h | 12 +++
 drivers/gpu/drm/i915/gt/intel_lrc.c   | 45 -
 drivers/gpu/drm/i915/gt/selftest_lrc.c| 91 +++
 drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++-
 drivers/gpu/drm/i915/i915_gpu_error.h |  4 +
 drivers/gpu/drm/i915/intel_device_info.c  |  6 ++
 drivers/gpu/drm/i915/intel_device_info.h  |  1 +
 9 files changed, 188 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index e4f89341d17c..8bb444cda14f 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -220,7 +220,9 @@ static void __intel_context_retire(struct i915_active 
*active)
 {
struct intel_context *ce = container_of(active, typeof(*ce), active);
 
-   CE_TRACE(ce, "retire\n");
+   CE_TRACE(ce, "retire runtime: { total:%lluns, avg:%lluns }\n",
+intel_context_get_total_runtime_ns(ce),
+intel_context_get_avg_runtime_ns(ce));
 
set_bit(CONTEXT_VALID_BIT, &ce->flags);
if (ce->state)
@@ -281,6 +283,8 @@ intel_context_init(struct intel_context *ce,
ce->sseu = engine->sseu;
ce->ring = __intel_context_ring_size(SZ_4K);
 
+   ewma_runtime_init(&ce->runtime.avg);
+
ce->vm = i915_vm_get(engine->gt->vm);
 
INIT_LIST_HEAD(&ce->signal_link);
diff --git a/drivers/gpu/drm/i915/gt/intel_context.h 
b/drivers/gpu/drm/i915/gt/intel_context.h
index 604d5cfc46ba..18efad255124 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.h
+++ b/drivers/gpu/drm/i915/gt/intel_context.h
@@ -12,6 +12,7 @@
 #include 
 
 #include "i915_active.h"
+#include "i915_drv.h"
 #include "intel_context_types.h"
 #include "intel_engine_types.h"
 #include "intel_ring_types.h"
@@ -227,4 +228,20 @@ intel_context_clear_nopreempt(struct intel_context *ce)
clear_bit(CONTEXT_NOPREEMPT, &ce->flags);
 }
 
+static inline u64 intel_context_get_total_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return READ_ONCE(ce->runtime.total) * period;
+}
+
+static inline u64 intel_context_get_avg_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return mul_u32_u32(ewma_runtime_read(&ce->runtime.avg), period);
+}
+
 #endif /* __INTEL_CONTEXT_H__ */
diff --git a/drivers/gpu/drm/i915/gt/intel_context_types.h 
b/drivers/gpu/drm/i915/gt/intel_context_types.h
index ca1420fb8b53..90f8f4dd7091 100644
--- a/drivers/gpu/drm/i915/gt/intel_context_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_context_types.h
@@ -7,6 +7,7 @@
 #ifndef __INTEL_CONTEXT_TYPES__
 #define __INTEL_CONTEXT_TYPES__
 
+#include 
 #include 
 #include 
 #include 
@@ -19,6 +20,8 @@
 
 #define CONTEXT_REDZONE POISON_INUSE
 
+DECLARE_EWMA(runtime, 3, 4);
+
 struct i915_gem_context;
 struct i915_vma;
 struct intel_context;
@@ -68,6 +71,15 @@ struct intel_context {
u64 lrc_desc;
u32 tag; /* cookie passed to HW to track this context on submission */
 
+   /* Time on GPU as tracked by the hw. */
+   struct {
+   struct ewma_runtime avg;
+   u64 total;
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);
+   I915_SELFTEST_DECLARE(u32 max_underflow);
+   } runtime;
+
unsigned int active_count; /* protected by timeline->mutex */
 
atomic_t pin_count;
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index c3d7727021db..afce5f1330eb 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1195,6 +1195,41 @@ static void reset_active(struct i915_request *rq,
ce->lrc_desc |= CTX_DESC_FORCE_RESTORE;
 }
 
+static u32 intel_context_get_runtime(const struct intel_context *ce)
+{
+   /*
+* PPHWSP is one page before the lrc state page and in it at
+* dword 16 we have cumulative context runtime in CS timestamp ticks.
+*/
+   BUILD_BUG_ON((LRC_STATE_PN - LRC_PPHWSP_PN) != 1);
+   return READ_ONCE(ce->lrc_reg_state[-1024 + 16]);
+}
+
+static void intel_context_up

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Track hw reported context runtime (rev5)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev5)
URL   : https://patchwork.freedesktop.org/series/73499/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7948 -> Patchwork_16586


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-u}: [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16586/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
- {fi-tgl-dsi}:   [PASS][3] -> [INCOMPLETE][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16586/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live_gem_contexts:
- fi-cml-s:   [PASS][5] -> [DMESG-FAIL][6] ([i915#877])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-cml-s/igt@i915_selftest@live_gem_contexts.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16586/fi-cml-s/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-cml-u2:  [PASS][7] -> [FAIL][8] ([i915#217])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-cml-u2/igt@kms_chamel...@common-hpd-after-suspend.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16586/fi-cml-u2/igt@kms_chamel...@common-hpd-after-suspend.html

  
 Possible fixes 

  * igt@i915_selftest@live_gem_contexts:
- fi-bsw-nick:[INCOMPLETE][9] ([i915#392]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16586/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@dp-edid-read:
- fi-cml-u2:  [FAIL][11] ([i915#217] / [i915#976]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16586/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#392]: https://gitlab.freedesktop.org/drm/intel/issues/392
  [i915#877]: https://gitlab.freedesktop.org/drm/intel/issues/877
  [i915#976]: https://gitlab.freedesktop.org/drm/intel/issues/976


Participating hosts (46 -> 35)
--

  Additional (1): fi-snb-2520m 
  Missing(12): fi-ehl-1 fi-bdw-samus fi-hsw-4200u fi-byt-squawks 
fi-bwr-2160 fi-ctg-p8600 fi-elk-e7500 fi-skl-lmem fi-blb-e6850 fi-byt-clapper 
fi-skl-6600u fi-snb-2600 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7948 -> Patchwork_16586

  CI-20190529: 20190529
  CI_DRM_7948: 129a4630a618fee5d2eaa4290cd367e24893bc91 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5444: c46bae259d427f53fcfcd5f05de0181a9e82d6fe @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16586: 5da4eb1bc1fd2c451405b6883fb79ff137b414a8 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

5da4eb1bc1fd drm/i915: Track hw reported context runtime

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16586/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Track hw reported context runtime (rev5)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev5)
URL   : https://patchwork.freedesktop.org/series/73499/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
5da4eb1bc1fd drm/i915: Track hw reported context runtime
-:109: WARNING:LINE_SPACING: Missing a blank line after declarations
#109: FILE: drivers/gpu/drm/i915/gt/intel_context_types.h:79:
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);

-:197: WARNING:LINE_SPACING: Missing a blank line after declarations
#197: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:4457:
+   struct i915_request *rq;
+   IGT_TIMEOUT(end_time);

total: 0 errors, 2 warnings, 0 checks, 293 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Track hw reported context runtime (rev4)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev4)
URL   : https://patchwork.freedesktop.org/series/73499/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7948 -> Patchwork_16585


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-u}: [PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
- {fi-tgl-dsi}:   [PASS][3] -> [DMESG-FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_close_race@basic-threads:
- fi-hsw-peppy:   [PASS][5] -> [INCOMPLETE][6] ([i915#694] / [i915#816])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-hsw-peppy/igt@gem_close_r...@basic-threads.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-hsw-peppy/igt@gem_close_r...@basic-threads.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-icl-guc: [PASS][7] -> [INCOMPLETE][8] ([i915#184])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-icl-guc/igt@gem_exec_susp...@basic-s4-devices.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-icl-guc/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@i915_selftest@live_execlists:
- fi-icl-y:   [PASS][9] -> [DMESG-FAIL][10] ([fdo#108569])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-icl-y/igt@i915_selftest@live_execlists.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-icl-y/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_gtt:
- fi-bdw-5557u:   [PASS][11] -> [TIMEOUT][12] ([fdo#112271])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-bdw-5557u/igt@i915_selftest@live_gtt.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-bdw-5557u/igt@i915_selftest@live_gtt.html

  * igt@i915_selftest@live_hangcheck:
- fi-icl-u3:  [PASS][13] -> [INCOMPLETE][14] ([fdo#108569])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-icl-u3/igt@i915_selftest@live_hangcheck.html

  
 Possible fixes 

  * igt@i915_selftest@live_gem_contexts:
- fi-bsw-nick:[INCOMPLETE][15] ([i915#392]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html

  * igt@i915_selftest@live_gtt:
- {fi-tgl-dsi}:   [TIMEOUT][17] ([fdo#112126] / [fdo#112271]) -> 
[PASS][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-dsi/igt@i915_selftest@live_gtt.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-tgl-dsi/igt@i915_selftest@live_gtt.html

  * igt@kms_chamelium@dp-edid-read:
- fi-cml-u2:  [FAIL][19] ([i915#217] / [i915#976]) -> [PASS][20]
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html

  
 Warnings 

  * igt@gem_close_race@basic-threads:
- fi-byt-j1900:   [INCOMPLETE][21] ([i915#45]) -> [TIMEOUT][22] 
([fdo#112271] / [i915#1084] / [i915#816])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16585/fi-byt-j1900/igt@gem_close_r...@basic-threads.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#112126]: https://bugs.freedesktop.org/show_bug.cgi?id=112126
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#1084]: https://gitlab.freedesktop.org/drm/intel/is

[Intel-gfx] [CI] drm/i915: Track hw reported context runtime

2020-02-16 Thread Chris Wilson
From: Tvrtko Ursulin 

GPU saves accumulated context runtime (in CS timestamp units) in PPHWSP
which will be useful for us in cases when we are not able to track context
busyness ourselves (like with GuC). Keep a copy of this in struct
intel_context from where it can be easily read even if the context is not
pinned.

v2:
 (Chris)
 * Do not store pphwsp address in intel_context.
 * Log CS wrap-around.
 * Simplify calculation by relying on integer wraparound.
v3:
 * Include total/avg in traces and error state for debugging

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_context.c   |  6 +-
 drivers/gpu/drm/i915/gt/intel_context.h   | 17 
 drivers/gpu/drm/i915/gt/intel_context_types.h | 12 +++
 drivers/gpu/drm/i915/gt/intel_lrc.c   | 44 -
 drivers/gpu/drm/i915/gt/selftest_lrc.c| 91 +++
 drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++-
 drivers/gpu/drm/i915/i915_gpu_error.h |  4 +
 drivers/gpu/drm/i915/intel_device_info.c  |  6 ++
 drivers/gpu/drm/i915/intel_device_info.h  |  1 +
 9 files changed, 187 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index e4f89341d17c..8bb444cda14f 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -220,7 +220,9 @@ static void __intel_context_retire(struct i915_active 
*active)
 {
struct intel_context *ce = container_of(active, typeof(*ce), active);
 
-   CE_TRACE(ce, "retire\n");
+   CE_TRACE(ce, "retire runtime: { total:%lluns, avg:%lluns }\n",
+intel_context_get_total_runtime_ns(ce),
+intel_context_get_avg_runtime_ns(ce));
 
set_bit(CONTEXT_VALID_BIT, &ce->flags);
if (ce->state)
@@ -281,6 +283,8 @@ intel_context_init(struct intel_context *ce,
ce->sseu = engine->sseu;
ce->ring = __intel_context_ring_size(SZ_4K);
 
+   ewma_runtime_init(&ce->runtime.avg);
+
ce->vm = i915_vm_get(engine->gt->vm);
 
INIT_LIST_HEAD(&ce->signal_link);
diff --git a/drivers/gpu/drm/i915/gt/intel_context.h 
b/drivers/gpu/drm/i915/gt/intel_context.h
index 604d5cfc46ba..18efad255124 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.h
+++ b/drivers/gpu/drm/i915/gt/intel_context.h
@@ -12,6 +12,7 @@
 #include 
 
 #include "i915_active.h"
+#include "i915_drv.h"
 #include "intel_context_types.h"
 #include "intel_engine_types.h"
 #include "intel_ring_types.h"
@@ -227,4 +228,20 @@ intel_context_clear_nopreempt(struct intel_context *ce)
clear_bit(CONTEXT_NOPREEMPT, &ce->flags);
 }
 
+static inline u64 intel_context_get_total_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return READ_ONCE(ce->runtime.total) * period;
+}
+
+static inline u64 intel_context_get_avg_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return mul_u32_u32(ewma_runtime_read(&ce->runtime.avg), period);
+}
+
 #endif /* __INTEL_CONTEXT_H__ */
diff --git a/drivers/gpu/drm/i915/gt/intel_context_types.h 
b/drivers/gpu/drm/i915/gt/intel_context_types.h
index ca1420fb8b53..90f8f4dd7091 100644
--- a/drivers/gpu/drm/i915/gt/intel_context_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_context_types.h
@@ -7,6 +7,7 @@
 #ifndef __INTEL_CONTEXT_TYPES__
 #define __INTEL_CONTEXT_TYPES__
 
+#include 
 #include 
 #include 
 #include 
@@ -19,6 +20,8 @@
 
 #define CONTEXT_REDZONE POISON_INUSE
 
+DECLARE_EWMA(runtime, 3, 4);
+
 struct i915_gem_context;
 struct i915_vma;
 struct intel_context;
@@ -68,6 +71,15 @@ struct intel_context {
u64 lrc_desc;
u32 tag; /* cookie passed to HW to track this context on submission */
 
+   /* Time on GPU as tracked by the hw. */
+   struct {
+   struct ewma_runtime avg;
+   u64 total;
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);
+   I915_SELFTEST_DECLARE(u32 max_underflow);
+   } runtime;
+
unsigned int active_count; /* protected by timeline->mutex */
 
atomic_t pin_count;
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index c3d7727021db..ec9df88eb867 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1195,6 +1195,40 @@ static void reset_active(struct i915_request *rq,
ce->lrc_desc |= CTX_DESC_FORCE_RESTORE;
 }
 
+static u32 intel_context_get_runtime(const struct intel_context *ce)
+{
+   /*
+* PPHWSP is one page before the lrc state page and in it at
+* dword 16 we have cumulative context runtime in CS timestamp ticks.
+*/
+   BUILD_BUG_ON((LRC_STATE_PN - LRC_PPHWSP_PN) != 1);
+   return READ_ONCE(ce->lrc_reg_state[-1024 + 16]);
+}
+
+static void intel_context_up

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Track hw reported context runtime (rev4)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev4)
URL   : https://patchwork.freedesktop.org/series/73499/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e134ee9aa337 drm/i915: Track hw reported context runtime
-:109: WARNING:LINE_SPACING: Missing a blank line after declarations
#109: FILE: drivers/gpu/drm/i915/gt/intel_context_types.h:79:
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);

-:197: WARNING:LINE_SPACING: Missing a blank line after declarations
#197: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:4457:
+   struct i915_request *rq;
+   IGT_TIMEOUT(end_time);

total: 0 errors, 2 warnings, 0 checks, 292 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Force state->modeset=true when distrust_bios_wm==true

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Force state->modeset=true when distrust_bios_wm==true
URL   : https://patchwork.freedesktop.org/series/73367/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7926_full -> Patchwork_16544_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#112080]) +13 similar 
issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb4/igt@gem_b...@busy-vcs1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-iclb6/igt@gem_b...@busy-vcs1.html

  * igt@gem_exec_schedule@in-order-bsd:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112146]) +4 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb3/igt@gem_exec_sched...@in-order-bsd.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-iclb4/igt@gem_exec_sched...@in-order-bsd.html

  * igt@gem_exec_schedule@pi-common-bsd:
- shard-iclb: [PASS][5] -> [SKIP][6] ([i915#677])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb7/igt@gem_exec_sched...@pi-common-bsd.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-iclb2/igt@gem_exec_sched...@pi-common-bsd.html

  * igt@gem_exec_schedule@preempt-contexts-bsd2:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#109276]) +18 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb1/igt@gem_exec_sched...@preempt-contexts-bsd2.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-iclb8/igt@gem_exec_sched...@preempt-contexts-bsd2.html

  * igt@gem_exec_suspend@basic-s3:
- shard-kbl:  [PASS][9] -> [DMESG-WARN][10] ([i915#180]) +4 similar 
issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-kbl4/igt@gem_exec_susp...@basic-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-kbl2/igt@gem_exec_susp...@basic-s3.html

  * igt@kms_color@pipe-a-gamma:
- shard-tglb: [PASS][11] -> [FAIL][12] ([i915#1149])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-tglb7/igt@kms_co...@pipe-a-gamma.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-tglb6/igt@kms_co...@pipe-a-gamma.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-random:
- shard-skl:  [PASS][13] -> [FAIL][14] ([i915#54])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-skl2/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html

  * igt@kms_cursor_edge_walk@pipe-b-128x128-bottom-edge:
- shard-hsw:  [PASS][15] -> [INCOMPLETE][16] ([i915#61])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-hsw1/igt@kms_cursor_edge_w...@pipe-b-128x128-bottom-edge.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-hsw5/igt@kms_cursor_edge_w...@pipe-b-128x128-bottom-edge.html

  * igt@kms_flip@flip-vs-expired-vblank:
- shard-glk:  [PASS][17] -> [FAIL][18] ([i915#79])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk5/igt@kms_f...@flip-vs-expired-vblank.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-glk1/igt@kms_f...@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-suspend:
- shard-skl:  [PASS][19] -> [INCOMPLETE][20] ([i915#221]) +1 
similar issue
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl6/igt@kms_f...@flip-vs-suspend.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-skl5/igt@kms_f...@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
- shard-skl:  [PASS][21] -> [FAIL][22] ([i915#49])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl2/igt@kms_frontbuffer_track...@basic.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-skl7/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
- shard-tglb: [PASS][23] -> [SKIP][24] ([i915#668]) +9 similar 
issues
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-tglb1/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-cur-indfb-move.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16544/shard-tglb2/igt@kms_frontbuffer_track...@fbcpsr-1p-primscrn-cur-indfb-move.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-apl:  [PASS][25] -> [DMESG-WARN][26] ([i915#180]) +4 
similar issues
   [25]: 
https://intel-gfx-ci.01.or

[Intel-gfx] [CI] drm/i915: Track hw reported context runtime

2020-02-16 Thread Chris Wilson
From: Tvrtko Ursulin 

GPU saves accumulated context runtime (in CS timestamp units) in PPHWSP
which will be useful for us in cases when we are not able to track context
busyness ourselves (like with GuC). Keep a copy of this in struct
intel_context from where it can be easily read even if the context is not
pinned.

v2:
 (Chris)
 * Do not store pphwsp address in intel_context.
 * Log CS wrap-around.
 * Simplify calculation by relying on integer wraparound.
v3:
 * Include total/avg in traces and error state for debugging

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_context.c   |  6 +-
 drivers/gpu/drm/i915/gt/intel_context.h   | 17 
 drivers/gpu/drm/i915/gt/intel_context_types.h | 12 +++
 drivers/gpu/drm/i915/gt/intel_lrc.c   | 44 -
 drivers/gpu/drm/i915/gt/selftest_lrc.c| 90 +++
 drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++-
 drivers/gpu/drm/i915/i915_gpu_error.h |  4 +
 drivers/gpu/drm/i915/intel_device_info.c  |  6 ++
 drivers/gpu/drm/i915/intel_device_info.h  |  1 +
 9 files changed, 186 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index e4f89341d17c..8bb444cda14f 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -220,7 +220,9 @@ static void __intel_context_retire(struct i915_active 
*active)
 {
struct intel_context *ce = container_of(active, typeof(*ce), active);
 
-   CE_TRACE(ce, "retire\n");
+   CE_TRACE(ce, "retire runtime: { total:%lluns, avg:%lluns }\n",
+intel_context_get_total_runtime_ns(ce),
+intel_context_get_avg_runtime_ns(ce));
 
set_bit(CONTEXT_VALID_BIT, &ce->flags);
if (ce->state)
@@ -281,6 +283,8 @@ intel_context_init(struct intel_context *ce,
ce->sseu = engine->sseu;
ce->ring = __intel_context_ring_size(SZ_4K);
 
+   ewma_runtime_init(&ce->runtime.avg);
+
ce->vm = i915_vm_get(engine->gt->vm);
 
INIT_LIST_HEAD(&ce->signal_link);
diff --git a/drivers/gpu/drm/i915/gt/intel_context.h 
b/drivers/gpu/drm/i915/gt/intel_context.h
index 604d5cfc46ba..18efad255124 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.h
+++ b/drivers/gpu/drm/i915/gt/intel_context.h
@@ -12,6 +12,7 @@
 #include 
 
 #include "i915_active.h"
+#include "i915_drv.h"
 #include "intel_context_types.h"
 #include "intel_engine_types.h"
 #include "intel_ring_types.h"
@@ -227,4 +228,20 @@ intel_context_clear_nopreempt(struct intel_context *ce)
clear_bit(CONTEXT_NOPREEMPT, &ce->flags);
 }
 
+static inline u64 intel_context_get_total_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return READ_ONCE(ce->runtime.total) * period;
+}
+
+static inline u64 intel_context_get_avg_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return mul_u32_u32(ewma_runtime_read(&ce->runtime.avg), period);
+}
+
 #endif /* __INTEL_CONTEXT_H__ */
diff --git a/drivers/gpu/drm/i915/gt/intel_context_types.h 
b/drivers/gpu/drm/i915/gt/intel_context_types.h
index ca1420fb8b53..90f8f4dd7091 100644
--- a/drivers/gpu/drm/i915/gt/intel_context_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_context_types.h
@@ -7,6 +7,7 @@
 #ifndef __INTEL_CONTEXT_TYPES__
 #define __INTEL_CONTEXT_TYPES__
 
+#include 
 #include 
 #include 
 #include 
@@ -19,6 +20,8 @@
 
 #define CONTEXT_REDZONE POISON_INUSE
 
+DECLARE_EWMA(runtime, 3, 4);
+
 struct i915_gem_context;
 struct i915_vma;
 struct intel_context;
@@ -68,6 +71,15 @@ struct intel_context {
u64 lrc_desc;
u32 tag; /* cookie passed to HW to track this context on submission */
 
+   /* Time on GPU as tracked by the hw. */
+   struct {
+   struct ewma_runtime avg;
+   u64 total;
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);
+   I915_SELFTEST_DECLARE(u32 max_underflow);
+   } runtime;
+
unsigned int active_count; /* protected by timeline->mutex */
 
atomic_t pin_count;
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index c3d7727021db..ec9df88eb867 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1195,6 +1195,40 @@ static void reset_active(struct i915_request *rq,
ce->lrc_desc |= CTX_DESC_FORCE_RESTORE;
 }
 
+static u32 intel_context_get_runtime(const struct intel_context *ce)
+{
+   /*
+* PPHWSP is one page before the lrc state page and in it at
+* dword 16 we have cumulative context runtime in CS timestamp ticks.
+*/
+   BUILD_BUG_ON((LRC_STATE_PN - LRC_PPHWSP_PN) != 1);
+   return READ_ONCE(ce->lrc_reg_state[-1024 + 16]);
+}
+
+static void intel_context_up

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Track hw reported context runtime (rev3)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev3)
URL   : https://patchwork.freedesktop.org/series/73499/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7948 -> Patchwork_16584


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_gt_lrc:
- {fi-tgl-u}: [PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/fi-tgl-u/igt@i915_selftest@live_gt_lrc.html
- {fi-tgl-dsi}:   [PASS][3] -> [DMESG-FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/fi-tgl-dsi/igt@i915_selftest@live_gt_lrc.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live_gtt:
- fi-kbl-7500u:   [PASS][5] -> [TIMEOUT][6] ([fdo#112271])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-kbl-7500u/igt@i915_selftest@live_gtt.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/fi-kbl-7500u/igt@i915_selftest@live_gtt.html

  
 Possible fixes 

  * igt@gem_close_race@basic-threads:
- fi-byt-j1900:   [INCOMPLETE][7] ([i915#45]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-byt-j1900/igt@gem_close_r...@basic-threads.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/fi-byt-j1900/igt@gem_close_r...@basic-threads.html

  * igt@i915_selftest@live_gem_contexts:
- fi-bsw-nick:[INCOMPLETE][9] ([i915#392]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/fi-bsw-nick/igt@i915_selftest@live_gem_contexts.html

  * igt@i915_selftest@live_gtt:
- {fi-tgl-dsi}:   [TIMEOUT][11] ([fdo#112126] / [fdo#112271]) -> 
[PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-tgl-dsi/igt@i915_selftest@live_gtt.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/fi-tgl-dsi/igt@i915_selftest@live_gtt.html

  * igt@kms_chamelium@dp-edid-read:
- fi-cml-u2:  [FAIL][13] ([i915#217] / [i915#976]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7948/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/fi-cml-u2/igt@kms_chamel...@dp-edid-read.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#112126]: https://bugs.freedesktop.org/show_bug.cgi?id=112126
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#392]: https://gitlab.freedesktop.org/drm/intel/issues/392
  [i915#45]: https://gitlab.freedesktop.org/drm/intel/issues/45
  [i915#976]: https://gitlab.freedesktop.org/drm/intel/issues/976


Participating hosts (46 -> 35)
--

  Additional (1): fi-bsw-kefka 
  Missing(12): fi-ehl-1 fi-bdw-samus fi-hsw-4200u fi-byt-squawks 
fi-bwr-2160 fi-ctg-p8600 fi-cfl-8109u fi-elk-e7500 fi-skl-lmem fi-blb-e6850 
fi-byt-clapper fi-skl-6600u 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7948 -> Patchwork_16584

  CI-20190529: 20190529
  CI_DRM_7948: 129a4630a618fee5d2eaa4290cd367e24893bc91 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5444: c46bae259d427f53fcfcd5f05de0181a9e82d6fe @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16584: 953502e2ee734d9982f5f9dedb0baa48a4221601 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

953502e2ee73 drm/i915: Track hw reported context runtime

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16584/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] kernel 5.5.4: BUG: kernel NULL pointer dereference, address: 000000000000000

2020-02-16 Thread Toralf Förster
On 2/16/20 4:26 AM, Hillf Danton wrote:
> Looks like a stray lock counts for the above NULL dereference.
Hi, the patch applied on top of 5.5.4 breaks the internal display now even in 
the boot phase.
Gert just a black screen after few seconds, nothing in the logs except:

Feb 16 11:21:57 t44 kernel: elogind-daemon[1431]: Removed session c15.
Feb 16 11:21:57 t44 start-stop-daemon[6462]: Will stop PID 1431
Feb 16 11:21:57 t44 start-stop-daemon[6462]: Sending signal 15 to PID 1431
Feb 16 11:21:57 t44 kernel: elogind-daemon[1431]: Received signal 15 [TERM]
Feb 16 11:21:57 t44 kernel: elogind-daemon[1431]: segfault at 56264c00 ip 
7fddfcf76882 sp 7ffc98c721b0 error 4 in 
libc-2.29.so[7fddfcf0c000+15a000]
Feb 16 11:21:57 t44 kernel: Code: a8 02 75 4c 48 8b 15 05 e5 13 00 64 48 83 3a 
00 0f 84 f2 00 00 00 48 8d 3d 2b f2 13 00 a8 04 74 0c 48 89 f0 48 25 00 00 00 
fc <48> 8b 38 48 8b 44 24 18 64 48 33 04 25 28 00
00 00 0f 85 f8 00 00
Feb 16 11:21:57 t44 start-stop-daemon[6549]: Will stop /usr/sbin/dnsmasq
Feb 16 11:21:57 t44 start-stop-daemon[6549]: Will stop PID 2764
Feb 16 11:21:57 t44 start-stop-daemon[6549]: Sending signal 15 to PID 2764


>
> Btw, send pure text message please.

Ick, I do sned plain text to LKML, or?

>
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -254,8 +254,7 @@ bool i915_request_retire(struct i915_req
>
>   spin_lock_irq(&rq->lock);
>   i915_request_mark_complete(rq);
> - if (!i915_request_signaled(rq))
> - dma_fence_signal_locked(&rq->fence);
> + dma_fence_signal(&rq->fence);
>   if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &rq->fence.flags))
>   i915_request_cancel_breadcrumb(rq);
>   if (i915_request_has_waitboost(rq)) {
>


--
Toralf
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Track hw reported context runtime (rev3)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915: Track hw reported context runtime (rev3)
URL   : https://patchwork.freedesktop.org/series/73499/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
953502e2ee73 drm/i915: Track hw reported context runtime
-:109: WARNING:LINE_SPACING: Missing a blank line after declarations
#109: FILE: drivers/gpu/drm/i915/gt/intel_context_types.h:79:
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);

-:197: WARNING:LINE_SPACING: Missing a blank line after declarations
#197: FILE: drivers/gpu/drm/i915/gt/selftest_lrc.c:4457:
+   struct i915_request *rq;
+   IGT_TIMEOUT(end_time);

total: 0 errors, 2 warnings, 0 checks, 292 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [CI] drm/i915: Track hw reported context runtime

2020-02-16 Thread Chris Wilson
From: Tvrtko Ursulin 

GPU saves accumulated context runtime (in CS timestamp units) in PPHWSP
which will be useful for us in cases when we are not able to track context
busyness ourselves (like with GuC). Keep a copy of this in struct
intel_context from where it can be easily read even if the context is not
pinned.

QQQ: Do we want to make this accounting conditional / able to turn on/off?

v2:
 (Chris)
 * Do not store pphwsp address in intel_context.
 * Log CS wrap-around.
 * Simplify calculation by relying on integer wraparound.

Signed-off-by: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_context.c   |  6 +-
 drivers/gpu/drm/i915/gt/intel_context.h   | 17 
 drivers/gpu/drm/i915/gt/intel_context_types.h | 12 +++
 drivers/gpu/drm/i915/gt/intel_lrc.c   | 44 -
 drivers/gpu/drm/i915/gt/selftest_lrc.c| 90 +++
 drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++-
 drivers/gpu/drm/i915/i915_gpu_error.h |  4 +
 drivers/gpu/drm/i915/intel_device_info.c  |  6 ++
 drivers/gpu/drm/i915/intel_device_info.h  |  1 +
 9 files changed, 186 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index e4f89341d17c..8bb444cda14f 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -220,7 +220,9 @@ static void __intel_context_retire(struct i915_active 
*active)
 {
struct intel_context *ce = container_of(active, typeof(*ce), active);
 
-   CE_TRACE(ce, "retire\n");
+   CE_TRACE(ce, "retire runtime: { total:%lluns, avg:%lluns }\n",
+intel_context_get_total_runtime_ns(ce),
+intel_context_get_avg_runtime_ns(ce));
 
set_bit(CONTEXT_VALID_BIT, &ce->flags);
if (ce->state)
@@ -281,6 +283,8 @@ intel_context_init(struct intel_context *ce,
ce->sseu = engine->sseu;
ce->ring = __intel_context_ring_size(SZ_4K);
 
+   ewma_runtime_init(&ce->runtime.avg);
+
ce->vm = i915_vm_get(engine->gt->vm);
 
INIT_LIST_HEAD(&ce->signal_link);
diff --git a/drivers/gpu/drm/i915/gt/intel_context.h 
b/drivers/gpu/drm/i915/gt/intel_context.h
index 604d5cfc46ba..18efad255124 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.h
+++ b/drivers/gpu/drm/i915/gt/intel_context.h
@@ -12,6 +12,7 @@
 #include 
 
 #include "i915_active.h"
+#include "i915_drv.h"
 #include "intel_context_types.h"
 #include "intel_engine_types.h"
 #include "intel_ring_types.h"
@@ -227,4 +228,20 @@ intel_context_clear_nopreempt(struct intel_context *ce)
clear_bit(CONTEXT_NOPREEMPT, &ce->flags);
 }
 
+static inline u64 intel_context_get_total_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return READ_ONCE(ce->runtime.total) * period;
+}
+
+static inline u64 intel_context_get_avg_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return mul_u32_u32(ewma_runtime_read(&ce->runtime.avg), period);
+}
+
 #endif /* __INTEL_CONTEXT_H__ */
diff --git a/drivers/gpu/drm/i915/gt/intel_context_types.h 
b/drivers/gpu/drm/i915/gt/intel_context_types.h
index ca1420fb8b53..90f8f4dd7091 100644
--- a/drivers/gpu/drm/i915/gt/intel_context_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_context_types.h
@@ -7,6 +7,7 @@
 #ifndef __INTEL_CONTEXT_TYPES__
 #define __INTEL_CONTEXT_TYPES__
 
+#include 
 #include 
 #include 
 #include 
@@ -19,6 +20,8 @@
 
 #define CONTEXT_REDZONE POISON_INUSE
 
+DECLARE_EWMA(runtime, 3, 4);
+
 struct i915_gem_context;
 struct i915_vma;
 struct intel_context;
@@ -68,6 +71,15 @@ struct intel_context {
u64 lrc_desc;
u32 tag; /* cookie passed to HW to track this context on submission */
 
+   /* Time on GPU as tracked by the hw. */
+   struct {
+   struct ewma_runtime avg;
+   u64 total;
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 num_underflow);
+   I915_SELFTEST_DECLARE(u32 max_underflow);
+   } runtime;
+
unsigned int active_count; /* protected by timeline->mutex */
 
atomic_t pin_count;
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index c3d7727021db..ec9df88eb867 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1195,6 +1195,40 @@ static void reset_active(struct i915_request *rq,
ce->lrc_desc |= CTX_DESC_FORCE_RESTORE;
 }
 
+static u32 intel_context_get_runtime(const struct intel_context *ce)
+{
+   /*
+* PPHWSP is one page before the lrc state page and in it at
+* dword 16 we have cumulative context runtime in CS timestamp ticks.
+*/
+   BUILD_BUG_ON((LRC_STATE_PN - LRC_PPHWSP_PN) != 1);
+   return READ_ONCE(ce->lrc_reg_state[-1024 + 16]);
+}
+
+static void intel

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/dsb: Pre allocate and late cleanup of cmd buffer (rev2)

2020-02-16 Thread Patchwork
== Series Details ==

Series: drm/i915/dsb: Pre allocate and late cleanup of cmd buffer (rev2)
URL   : https://patchwork.freedesktop.org/series/73036/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7926_full -> Patchwork_16543_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_16543_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_16543_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gem_tiled_partial_pwrite_pread@writes-after-reads:
- shard-hsw:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-hsw5/igt@gem_tiled_partial_pwrite_pr...@writes-after-reads.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-hsw5/igt@gem_tiled_partial_pwrite_pr...@writes-after-reads.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_busy@busy-vcs1:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#112080]) +10 similar 
issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb4/igt@gem_b...@busy-vcs1.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-iclb3/igt@gem_b...@busy-vcs1.html

  * igt@gem_exec_schedule@out-order-bsd2:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276]) +16 similar 
issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb4/igt@gem_exec_sched...@out-order-bsd2.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-iclb5/igt@gem_exec_sched...@out-order-bsd2.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +7 similar 
issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb7/igt@gem_exec_sched...@reorder-wide-bsd.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-iclb4/igt@gem_exec_sched...@reorder-wide-bsd.html

  * igt@gem_softpin@noreloc-s3:
- shard-apl:  [PASS][9] -> [DMESG-WARN][10] ([i915#180]) +1 similar 
issue
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-apl4/igt@gem_soft...@noreloc-s3.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-apl4/igt@gem_soft...@noreloc-s3.html

  * igt@i915_pm_dc@dc5-dpms:
- shard-iclb: [PASS][11] -> [FAIL][12] ([i915#447])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-iclb1/igt@i915_pm...@dc5-dpms.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-iclb3/igt@i915_pm...@dc5-dpms.html

  * igt@i915_pm_rpm@system-suspend:
- shard-skl:  [PASS][13] -> [INCOMPLETE][14] ([i915#151] / 
[i915#69])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl6/igt@i915_pm_...@system-suspend.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-skl3/igt@i915_pm_...@system-suspend.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-random:
- shard-skl:  [PASS][15] -> [FAIL][16] ([i915#54])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-skl1/igt@kms_cursor_...@pipe-c-cursor-128x128-random.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
- shard-hsw:  [PASS][17] -> [FAIL][18] ([i915#57])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-hsw2/igt@kms_cursor_leg...@cursor-vs-flip-toggle.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-hsw6/igt@kms_cursor_leg...@cursor-vs-flip-toggle.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-glk:  [PASS][19] -> [FAIL][20] ([IGT#5])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk7/igt@kms_cursor_leg...@flip-vs-cursor-atomic-transitions-varying-size.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-glk9/igt@kms_cursor_leg...@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
- shard-glk:  [PASS][21] -> [FAIL][22] ([i915#34])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7926/shard-glk7/igt@kms_f...@2x-plain-flip-ts-check-interruptible.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16543/shard-glk9/igt@kms_f...@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_fli

Re: [Intel-gfx] [CI] drm/i915: Track hw reported context runtime

2020-02-16 Thread Lionel Landwerlin

On 16/02/2020 00:06, Chris Wilson wrote:

From: Tvrtko Ursulin 

GPU saves accumulated context runtime (in CS timestamp units) in PPHWSP
which will be useful for us in cases when we are not able to track context
busyness ourselves (like with GuC). Keep a copy of this in struct
intel_context from where it can be easily read even if the context is not
pinned.

QQQ: Do we want to make this accounting conditional / able to turn on/off?

v2:
  (Chris)
  * Do not store pphwsp address in intel_context.
  * Log CS wrap-around.
  * Simplify calculation by relying on integer wraparound.

Signed-off-by: Tvrtko Ursulin 
---
  drivers/gpu/drm/i915/gt/intel_context.c   |  6 +-
  drivers/gpu/drm/i915/gt/intel_context.h   | 18 
  drivers/gpu/drm/i915/gt/intel_context_types.h | 11 +++
  drivers/gpu/drm/i915/gt/intel_lrc.c   | 42 -
  drivers/gpu/drm/i915/gt/selftest_lrc.c| 87 +++
  drivers/gpu/drm/i915/i915_gpu_error.c | 11 ++-
  drivers/gpu/drm/i915/i915_gpu_error.h |  4 +
  drivers/gpu/drm/i915/intel_device_info.c  |  6 ++
  drivers/gpu/drm/i915/intel_device_info.h  |  1 +
  9 files changed, 181 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c 
b/drivers/gpu/drm/i915/gt/intel_context.c
index e4f89341d17c..8bb444cda14f 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -220,7 +220,9 @@ static void __intel_context_retire(struct i915_active 
*active)
  {
struct intel_context *ce = container_of(active, typeof(*ce), active);
  
-	CE_TRACE(ce, "retire\n");

+   CE_TRACE(ce, "retire runtime: { total:%lluns, avg:%lluns }\n",
+intel_context_get_total_runtime_ns(ce),
+intel_context_get_avg_runtime_ns(ce));
  
  	set_bit(CONTEXT_VALID_BIT, &ce->flags);

if (ce->state)
@@ -281,6 +283,8 @@ intel_context_init(struct intel_context *ce,
ce->sseu = engine->sseu;
ce->ring = __intel_context_ring_size(SZ_4K);
  
+	ewma_runtime_init(&ce->runtime.avg);

+
ce->vm = i915_vm_get(engine->gt->vm);
  
  	INIT_LIST_HEAD(&ce->signal_link);

diff --git a/drivers/gpu/drm/i915/gt/intel_context.h 
b/drivers/gpu/drm/i915/gt/intel_context.h
index 604d5cfc46ba..e58da0938dcb 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.h
+++ b/drivers/gpu/drm/i915/gt/intel_context.h
@@ -12,6 +12,7 @@
  #include 
  
  #include "i915_active.h"

+#include "i915_drv.h"
  #include "intel_context_types.h"
  #include "intel_engine_types.h"
  #include "intel_ring_types.h"
@@ -227,4 +228,21 @@ intel_context_clear_nopreempt(struct intel_context *ce)
clear_bit(CONTEXT_NOPREEMPT, &ce->flags);
  }
  
+static inline u64 intel_context_get_total_runtime_ns(struct intel_context *ce)

+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return ce->runtime.total * period;
+}
+
+static inline u64 intel_context_get_avg_runtime_ns(struct intel_context *ce)
+{
+   const u32 period =
+   RUNTIME_INFO(ce->engine->i915)->cs_timestamp_period_ns;
+
+   return mul_u32_u32(ewma_runtime_read(&ce->runtime.avg), period);
+}
+
+
  #endif /* __INTEL_CONTEXT_H__ */
diff --git a/drivers/gpu/drm/i915/gt/intel_context_types.h 
b/drivers/gpu/drm/i915/gt/intel_context_types.h
index ca1420fb8b53..6112ec97fbdf 100644
--- a/drivers/gpu/drm/i915/gt/intel_context_types.h
+++ b/drivers/gpu/drm/i915/gt/intel_context_types.h
@@ -7,6 +7,7 @@
  #ifndef __INTEL_CONTEXT_TYPES__
  #define __INTEL_CONTEXT_TYPES__
  
+#include 

  #include 
  #include 
  #include 
@@ -19,6 +20,8 @@
  
  #define CONTEXT_REDZONE POISON_INUSE
  
+DECLARE_EWMA(runtime, 3, 4);

+
  struct i915_gem_context;
  struct i915_vma;
  struct intel_context;
@@ -68,6 +71,14 @@ struct intel_context {
u64 lrc_desc;
u32 tag; /* cookie passed to HW to track this context on submission */
  
+	/* Time on GPU as tracked by the hw. */

+   struct {
+   struct ewma_runtime avg;
+   u64 total;
+   u32 last;
+   I915_SELFTEST_DECLARE(u32 underflow);
+   } runtime;
+
unsigned int active_count; /* protected by timeline->mutex */
  
  	atomic_t pin_count;

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index c3d7727021db..c09079c93345 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1195,6 +1195,38 @@ static void reset_active(struct i915_request *rq,
ce->lrc_desc |= CTX_DESC_FORCE_RESTORE;
  }
  
+static u32 intel_context_get_runtime(const struct intel_context *ce)

+{
+   /*
+* PPHWSP is one page before the lrc state page and in it at
+* dword 16 we have cumulative context runtime in CS timestamp ticks.
+*/



I read somewhere this accumulated runtime was incremented only every 8th 
CS timestamp tick.



-Lionel


+   BUILD_BUG_ON((LRC_STATE_PN -