Bug 90191 - [HSW/BDW/BSW/SKL Bisected]ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_minifying_blit cause GPU hang
Summary: [HSW/BDW/BSW/SKL Bisected]ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_b...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: highest major
Assignee: Daniel Vetter
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-27 07:21 UTC by lu hua
Modified: 2017-10-06 14:30 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg (125.01 KB, text/plain)
2015-04-27 07:21 UTC, lu hua
no flags Details

Description lu hua 2015-04-27 07:21:30 UTC
Created attachment 115365 [details]
dmesg

==System Environment==
--------------------------
Regression: YES

Non-working platforms: BSW

==kernel==
--------------------------
drm-intel-nightly/92bb36c80e561f82b1f4b63cc269a71833137841
commit 92bb36c80e561f82b1f4b63cc269a71833137841
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Fri Apr 24 00:26:53 2015 +0300

    drm-intel-nightly: 2015y-04m-23d-21h-26m-24s UTC integration manifest

==Bug detailed description==
-----------------------------
It happens with drm-intel-nightly and drm-intel-next-queued kernel.It doesn't happen on drm-intel-fixes kernel.
Following case also have this issue:
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_color_and_depth_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_color_and_stencil_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_linear_filter_color_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_magnifying_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_minifying_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_multisampled_to_singlesampled_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_nearest_filter_color_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_negative_dimensions_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_negative_height_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_negative_width_blit
ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_scissor_blit

Bisect shows: 0875546c5318c85c13d07014af5350e9000bc9e9 is the first bad commit(It's the same as bug 90190).
commit 0875546c5318c85c13d07014af5350e9000bc9e9
Author:     Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Mon Apr 20 09:04:05 2015 -0700
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Thu Apr 23 21:06:39 2015 +0200

    drm/i915: Fix up the vma aliasing ppgtt binding

    Currently we have the problem that the decision whether ptes need to
    be (re)written is splattered all over the codebase. Move all that into
    i915_vma_bind. This needs a few changes:
    - Just reuse the PIN_* flags for i915_vma_bind and do the conversion
      to vma->bound in there to avoid duplicating the conversion code all
      over.
    - We need to make binding for EXECBUF (i.e. pick aliasing ppgtt if
      around) explicit, add PIN_USER for that.
    - Two callers want to update ptes, give them a PIN_UPDATE for that.

    Of course we still want to avoid double-binding, but that should be
    taken care of:
    - A ppgtt vma will only ever see PIN_USER, so no issue with
      double-binding.
    - A ggtt vma with aliasing ppgtt needs both types of binding, and we
      track that properly now.
    - A ggtt vma without aliasing ppgtt could be bound twice. In the
      lower-level ->bind_vma functions hence unconditionally set
      GLOBAL_BIND when writing the ggtt ptes.

    There's still a bit room for cleanup, but that's for follow-up
    patches.

    v2: Fixup fumbles.

    v3: s/PIN_EXECBUF/PIN_USER/ for clearer meaning, suggested by Chris.

    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

output:
dEQP Core GL-CTS-2.0 (0x0052484b) starting..
  target implementation = 'X11'

Test case 'ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_minifying_blit'..
INFO:framebuffer_blit_functionality_minifying_blit:BEGIN ------------------------------------------------------------------
INFO:framebuffer_blit_functionality_minifying_blit:BLITTING in GL_COLOR_ATTACHMENT0 from GL_TEXTURE_2D to GL_TEXTURE_2D (different buffers)
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf1 color [1.000000,0.000000,0.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf1 color [0.000000,1.000000,0.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf1 color [0.000000,0.000000,1.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf1 color [1.000000,1.000000,1.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf2 color [0.000000,0.000000,0.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 depth [0.250000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 depth [0.500000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 depth [0.750000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 depth [1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf12 depth [0.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 stencil [1]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 stencil [2]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 stencil [3]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf3 stencil [4]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf12 stencil [0]
INFO:framebuffer_blit_functionality_minifying_blit:BLIT blt_src_rect=[0,0,64,64] blt_dst_rect=[0,0,32,32]
INFO:framebuffer_blit_functionality_minifying_blit:END --------------------------------------------------------------------
INFO:framebuffer_blit_functionality_minifying_blit:BEGIN ------------------------------------------------------------------
INFO:framebuffer_blit_functionality_minifying_blit:BLITTING in GL_COLOR_ATTACHMENT1 from GL_TEXTURE_2D to GL_TEXTURE_2D (different buffers)
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf32 color [1.000000,0.000000,0.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf32 color [0.000000,1.000000,0.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf32 color [0.000000,0.000000,1.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf32 color [1.000000,1.000000,1.000000,1.000000]
ERROR:framebuffer_blit_functionality_minifying_blit:ERROR: expected RGBA[255,255,255,255] but got RGBA[0,0,0,0]
ERROR:framebuffer_blit_functionality_minifying_blit:checkColor: /GFX/Test/Ogles3conform/ogles3conform/GTF_ES/glsl/GTF/Source/GL3Tests/GTFTestFramebufferBlit.c:1355: expected GL_TRUE but got ZERO/GL_FALSE/GL_NO_ERROR
ERROR:framebuffer_blit_functionality_minifying_blit:ERROR: Cleanup and continue to next configuration
INFO:framebuffer_blit_functionality_minifying_blit:BEGIN ------------------------------------------------------------------
INFO:framebuffer_blit_functionality_minifying_blit:BLITTING in GL_COLOR_ATTACHMENT2 from GL_TEXTURE_2D to GL_TEXTURE_2D (different buffers)
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf33 color [1.000000,0.000000,0.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf33 color [0.000000,1.000000,0.000000,1.000000]
INFO:framebuffer_blit_functionality_minifying_blit:verifying initial texbuf33 color [0.000000,0.000000,1.000000,1.000000]
intel_do_flush_locked failed: Input/output error


dmesg:
[  160.815905] [drm] stuck on render ring
[  160.840233] [drm] GPU HANG: ecode 8:0:0xbe5fffff, in glcts [4333], reason: Ring hung, action: reset
[  160.840239] [drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.
[  160.840242] [drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel
[  160.840245] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
[  160.840248] [drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it.
[  160.840252] [drm] GPU crash dump saved to /sys/class/drm/card0/error
[  160.840311] [drm:i915_reset_and_wakeup] resetting chip
[  160.842720] drm/i915: Resetting chip after gpu hang
[  160.842814] [drm:gen8_init_common_ring] Execlists enabled for render ring
[  160.842822] [drm:gen8_init_common_ring] Execlists enabled for bsd ring
[  160.842828] [drm:gen8_init_common_ring] Execlists enabled for blitter ring
[  160.842833] [drm:gen8_init_common_ring] Execlists enabled for video enhancement ring
[  162.816919] [drm:cherryview_enable_rps] GT fifo had a previous error 1080000
[  162.819115] [drm:cherryview_enable_rps] GPLL enabled? yes
[  162.819121] [drm:cherryview_enable_rps] GPU status: 0x00004010
[  162.819127] [drm:cherryview_enable_rps] current GPU freq: 640 MHz (64)
[  162.819131] [drm:cherryview_enable_rps] setting GPU freq to 400 MHz (40)
[  168.819380] [drm] stuck on render ring
[  168.843718] [drm] GPU HANG: ecode 8:0:0x00200000, in glcts [4333], reason: Ring hung, action: reset
[  168.843812] [drm:i915_reset_and_wakeup] resetting chip
[  168.846218] drm/i915: Resetting chip after gpu hang


==Reproduce steps==
---------------------------- 
1. xinit&
2. ./glcts --deqp-case=ES3-CTS.gtf.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_minifying_blit  --deqp-surface-width=64 --deqp-surface-height=64 --deqp-base-seed=1 --deqp-surface-type=window --deqp-gl-config-id=14
Comment 1 Chris Wilson 2015-04-27 08:02:43 UTC
Please try: http://patchwork.freedesktop.org/patch/47858/
Comment 2 lu hua 2015-04-28 03:00:07 UTC
It also happens on BDW.
Comment 3 ye.tian 2015-04-30 02:28:30 UTC
[patch1]
Created attachment 115452 [details] [review] [review]
drm/i915: Arm cmd parser with aliasng ppgtt only
[patch2]
Created attachment 115453 [details] [review] [review]
drm/i915: Clear vma->bound on unbinding

Tested it on the latest nightly kernel with bug 90190 two patches, this issue does not exists.
Comment 4 lu hua 2015-04-30 05:17:17 UTC
It also happens on SKL.
Comment 5 lu hua 2015-05-04 02:30:38 UTC
It also happens on HSW.
Comment 6 Mika Kuoppala 2015-05-04 10:26:49 UTC
(In reply to lu hua from comment #5)
> It also happens on HSW.

Could you please retest with latest nightly. Very likely dup of
https://bugs.freedesktop.org/show_bug.cgi?id=90190
Comment 7 Gavin Hindman 2015-05-04 17:37:08 UTC
Comment #3 seems to indicate this is fixed with pending patches - is this really still and issue?
Comment 8 ye.tian 2015-05-05 01:54:34 UTC
Tested it on BDW with the latest nightly kernel(2ead07) and Mesa(1ac7db07b), this problem has gone away.
So Verified.
Comment 9 Elizabeth 2017-10-06 14:30:21 UTC
Closing old verified.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.