diff mbox

[1/2] drm/i915: Start WM computation from scratch on ILK-BDW

Message ID 1452776015-22076-1-git-send-email-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ville Syrjälä Jan. 14, 2016, 12:53 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

ilk_compute_pipe_wm() assumes as zeroed pipe_wm structure when it
starts. We used to pass such a zeroed struct in, but this got broken
when the pipe_wm structure got embedded in the crtc state.

To fix it without too much fuzz, we need to resort to a memset().

Fixes: 4e0963c7663b ("drm/i915: Calculate pipe watermarks into CRTC state (v3)")
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ville Syrjälä Jan. 14, 2016, 2:29 p.m. UTC | #1
On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> == Summary ==
> 
> Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> 
> Test gem_basic:
>         Subgroup create-close:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_cpu_reloc:
>         Subgroup basic:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
> Test gem_ctx_param_basic:
>         Subgroup basic:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup invalid-param-set:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup non-root-set-no-zeromap:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup root-set-no-zeromap-disabled:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_mmap:
>         Subgroup basic:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_mmap_gtt:
>         Subgroup basic-read:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup basic-write:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test gem_storedw_loop:
>         Subgroup basic-render:
>                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
>                 dmesg-warn -> PASS       (bdw-nuci7)
>                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> Test kms_addfb_basic:
>         Subgroup addfb25-modifier-no-flag:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup addfb25-x-tiled-mismatch:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup addfb25-yf-tiled:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup bad-pitch-1024:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup bad-pitch-63:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup bad-pitch-999:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup clobberred-modifier:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup too-high:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup too-wide:
>                 pass       -> DMESG-WARN (skl-i7k-2)
>         Subgroup unused-offsets:
>                 pass       -> DMESG-WARN (skl-i7k-2)
> Test kms_flip:
>         Subgroup basic-plain-flip:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
> Test kms_pipe_crc_basic:
>         Subgroup nonblocking-crc-pipe-a-frame-sequence:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
>         Subgroup read-crc-pipe-b-frame-sequence:
>                 pass       -> DMESG-FAIL (skl-i7k-2)
> Test prime_self_import:
>         Subgroup basic-with_two_bos:
>                 pass       -> DMESG-WARN (skl-i7k-2)

Looks like the GPU died or something on that skl. Can't imagine it being related
to watermark patches.

Unfortunately these didn't cure the recent underrun regressions from
the ilk-ivb machines. So seems like there's something more busted
somewhere.

> 
> bdw-nuci7        total:138  pass:129  dwarn:0   dfail:0   fail:0   skip:9  
> bdw-ultra        total:138  pass:131  dwarn:1   dfail:0   fail:0   skip:6  
> bsw-nuc-2        total:141  pass:115  dwarn:2   dfail:0   fail:0   skip:24 
> hsw-brixbox      total:141  pass:134  dwarn:0   dfail:0   fail:0   skip:7  
> hsw-gt2          total:141  pass:137  dwarn:0   dfail:0   fail:0   skip:4  
> ilk-hp8440p      total:141  pass:101  dwarn:3   dfail:0   fail:0   skip:37 
> ivb-t430s        total:135  pass:122  dwarn:3   dfail:4   fail:0   skip:6  
> skl-i5k-2        total:141  pass:132  dwarn:1   dfail:0   fail:0   skip:8  
> skl-i7k-2        total:141  pass:108  dwarn:20  dfail:4   fail:0   skip:8  
> snb-dellxps      total:141  pass:122  dwarn:5   dfail:0   fail:0   skip:14 
> snb-x220t        total:141  pass:122  dwarn:5   dfail:0   fail:1   skip:13 
> 
> Results at /archive/results/CI_IGT_test/Patchwork_1187/
Daniel Vetter Jan. 19, 2016, 1:58 p.m. UTC | #2
On Thu, Jan 14, 2016 at 04:29:14PM +0200, Ville Syrjälä wrote:
> On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> > == Summary ==
> > 
> > Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> > 
> > Test gem_basic:
> >         Subgroup create-close:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_cpu_reloc:
> >         Subgroup basic:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > Test gem_ctx_param_basic:
> >         Subgroup basic:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup invalid-param-set:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup non-root-set-no-zeromap:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup root-set-no-zeromap-disabled:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_mmap:
> >         Subgroup basic:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_mmap_gtt:
> >         Subgroup basic-read:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup basic-write:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test gem_storedw_loop:
> >         Subgroup basic-render:
> >                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
> >                 dmesg-warn -> PASS       (bdw-nuci7)
> >                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> > Test kms_addfb_basic:
> >         Subgroup addfb25-modifier-no-flag:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup addfb25-x-tiled-mismatch:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup addfb25-yf-tiled:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup bad-pitch-1024:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup bad-pitch-63:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup bad-pitch-999:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup clobberred-modifier:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup too-high:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup too-wide:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> >         Subgroup unused-offsets:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> > Test kms_flip:
> >         Subgroup basic-plain-flip:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > Test kms_pipe_crc_basic:
> >         Subgroup nonblocking-crc-pipe-a-frame-sequence:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> >         Subgroup read-crc-pipe-b-frame-sequence:
> >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > Test prime_self_import:
> >         Subgroup basic-with_two_bos:
> >                 pass       -> DMESG-WARN (skl-i7k-2)
> 
> Looks like the GPU died or something on that skl. Can't imagine it being related
> to watermark patches.

Mika created a bugzilla for this since this isn't the first time this
happened. We have 2 instances of a failure with matching syptoms in normal
-nightly CI runs already:

https://bugs.freedesktop.org/show_bug.cgi?id=93768

In the future if you have a case where an entire machine dies it's useful
to look at the machine history. That shows you the results for the last 50
runs on only that machine for any testcase where results changed. That
helps in figuring out whether there's something wrong with that machine,
or whether there might indeed be trouble with your patch set.

Thanks, Daniel
Ville Syrjälä Jan. 19, 2016, 2:09 p.m. UTC | #3
On Tue, Jan 19, 2016 at 02:58:14PM +0100, Daniel Vetter wrote:
> On Thu, Jan 14, 2016 at 04:29:14PM +0200, Ville Syrjälä wrote:
> > On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> > > == Summary ==
> > > 
> > > Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> > > 
> > > Test gem_basic:
> > >         Subgroup create-close:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_cpu_reloc:
> > >         Subgroup basic:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > Test gem_ctx_param_basic:
> > >         Subgroup basic:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup invalid-param-set:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup non-root-set-no-zeromap:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup root-set-no-zeromap-disabled:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_mmap:
> > >         Subgroup basic:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_mmap_gtt:
> > >         Subgroup basic-read:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup basic-write:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test gem_storedw_loop:
> > >         Subgroup basic-render:
> > >                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
> > >                 dmesg-warn -> PASS       (bdw-nuci7)
> > >                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> > > Test kms_addfb_basic:
> > >         Subgroup addfb25-modifier-no-flag:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup addfb25-x-tiled-mismatch:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup addfb25-yf-tiled:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup bad-pitch-1024:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup bad-pitch-63:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup bad-pitch-999:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup clobberred-modifier:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup too-high:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup too-wide:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > >         Subgroup unused-offsets:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > Test kms_flip:
> > >         Subgroup basic-plain-flip:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > Test kms_pipe_crc_basic:
> > >         Subgroup nonblocking-crc-pipe-a-frame-sequence:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > >         Subgroup read-crc-pipe-b-frame-sequence:
> > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > Test prime_self_import:
> > >         Subgroup basic-with_two_bos:
> > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > 
> > Looks like the GPU died or something on that skl. Can't imagine it being related
> > to watermark patches.
> 
> Mika created a bugzilla for this since this isn't the first time this
> happened. We have 2 instances of a failure with matching syptoms in normal
> -nightly CI runs already:
> 
> https://bugs.freedesktop.org/show_bug.cgi?id=93768
> 
> In the future if you have a case where an entire machine dies it's useful
> to look at the machine history. That shows you the results for the last 50
> runs on only that machine for any testcase where results changed. That
> helps in figuring out whether there's something wrong with that machine,
> or whether there might indeed be trouble with your patch set.

Sadly the link to the machine history is busted for patchwork CI results,
so doing that is somewhat more tedious than it should be. Might be a
good idea to fix all the links once and for all. Cc:ing Tomi...
Daniel Vetter Jan. 19, 2016, 4:43 p.m. UTC | #4
On Tue, Jan 19, 2016 at 04:09:48PM +0200, Ville Syrjälä wrote:
> On Tue, Jan 19, 2016 at 02:58:14PM +0100, Daniel Vetter wrote:
> > On Thu, Jan 14, 2016 at 04:29:14PM +0200, Ville Syrjälä wrote:
> > > On Thu, Jan 14, 2016 at 02:20:40PM -0000, Patchwork wrote:
> > > > == Summary ==
> > > > 
> > > > Built on 8fb2feecca499d11e104264071ac55e273e23af5 drm-intel-nightly: 2016y-01m-14d-13h-06m-44s UTC integration manifest
> > > > 
> > > > Test gem_basic:
> > > >         Subgroup create-close:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_cpu_reloc:
> > > >         Subgroup basic:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > > Test gem_ctx_param_basic:
> > > >         Subgroup basic:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup invalid-param-set:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup non-root-set-no-zeromap:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup root-set-no-zeromap-disabled:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_mmap:
> > > >         Subgroup basic:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_mmap_gtt:
> > > >         Subgroup basic-read:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup basic-write:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test gem_storedw_loop:
> > > >         Subgroup basic-render:
> > > >                 dmesg-warn -> PASS       (skl-i5k-2) UNSTABLE
> > > >                 dmesg-warn -> PASS       (bdw-nuci7)
> > > >                 dmesg-warn -> PASS       (skl-i7k-2) UNSTABLE
> > > > Test kms_addfb_basic:
> > > >         Subgroup addfb25-modifier-no-flag:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup addfb25-x-tiled-mismatch:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup addfb25-yf-tiled:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup bad-pitch-1024:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup bad-pitch-63:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup bad-pitch-999:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup clobberred-modifier:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup too-high:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup too-wide:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > >         Subgroup unused-offsets:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > > Test kms_flip:
> > > >         Subgroup basic-plain-flip:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > > Test kms_pipe_crc_basic:
> > > >         Subgroup nonblocking-crc-pipe-a-frame-sequence:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > >         Subgroup read-crc-pipe-b-frame-sequence:
> > > >                 pass       -> DMESG-FAIL (skl-i7k-2)
> > > > Test prime_self_import:
> > > >         Subgroup basic-with_two_bos:
> > > >                 pass       -> DMESG-WARN (skl-i7k-2)
> > > 
> > > Looks like the GPU died or something on that skl. Can't imagine it being related
> > > to watermark patches.
> > 
> > Mika created a bugzilla for this since this isn't the first time this
> > happened. We have 2 instances of a failure with matching syptoms in normal
> > -nightly CI runs already:
> > 
> > https://bugs.freedesktop.org/show_bug.cgi?id=93768
> > 
> > In the future if you have a case where an entire machine dies it's useful
> > to look at the machine history. That shows you the results for the last 50
> > runs on only that machine for any testcase where results changed. That
> > helps in figuring out whether there's something wrong with that machine,
> > or whether there might indeed be trouble with your patch set.
> 
> Sadly the link to the machine history is busted for patchwork CI results,
> so doing that is somewhat more tedious than it should be. Might be a
> good idea to fix all the links once and for all. Cc:ing Tomi...

Yeah it only works in the master CI overview, both for the long-term view
for machines and for testcases.

I'll paste you the link to the overall howto on the internal wiki page in
private.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 9df9e9a22f3c..e9f4e6e7b736 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2317,6 +2317,7 @@  static int ilk_compute_pipe_wm(struct intel_crtc *intel_crtc,
 		return PTR_ERR(cstate);
 
 	pipe_wm = &cstate->wm.optimal.ilk;
+	memset(pipe_wm, 0, sizeof(*pipe_wm));
 
 	for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
 		ps = drm_atomic_get_plane_state(state,