Bug 89493 - [SKL] sporadic "missed interrupts"
Summary: [SKL] sporadic "missed interrupts"
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-09 06:07 UTC by lu hua
Modified: 2017-07-24 22:48 UTC (History)
2 users (show)

See Also:
i915 platform: SKL
i915 features: GEM/Other


Attachments
dmesg (119.39 KB, text/plain)
2015-03-09 06:07 UTC, lu hua
no flags Details
output (8.83 KB, text/plain)
2015-03-09 06:07 UTC, lu hua
no flags Details

Description lu hua 2015-03-09 06:07:04 UTC
Created attachment 114141 [details]
dmesg

==System Environment==
--------------------------
Regression: not sure, it always has gpu hang issue on SKL, reported bug 89037

no-working platforms: SKL

==kernel==
--------------------------
drm-intel-nightly/c2f6e584b215dd0d7e5a8a02716a89e985366ec0
commit c2f6e584b215dd0d7e5a8a02716a89e985366ec0
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Fri Mar 6 18:30:27 2015 +0100

    drm-intel-nightly: 2015y-03m-06d-17h-29m-53s UTC integration manifest

==Bug detailed description==
-----------------------------
Run this case 20 cycles, it causes GPU hang. 

root@x-skly05:/home/lh# dmesg -r|egrep "<[1-4]>"|grep drm
<3>[   46.724398] [drm:i915_hangcheck_elapsed [i915]] *ERROR* Hangcheck timer elapsed... blitter ring idle
<3>[   48.589274] [drm:gen8_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun

Reproduce steps:
-------------------------
1. xinit
2. bin/copyteximage 1D_ARRAY -samples=2 -auto
Comment 1 lu hua 2015-03-09 06:07:44 UTC
Created attachment 114142 [details]
output

no error state collected in /sys/kernel/debug/dri/0/i915_error_state
Comment 2 Damien Lespiau 2015-03-11 13:16:24 UTC
Neil reports that hangcheck is triggering "from time to time", not just on this piglit test. No better characterization yet.
Comment 3 Mika Kuoppala 2015-05-06 09:28:14 UTC
This hangcheck complaint is due to race between request->list addition and hangcheck inspecting that list. 

This is not real hang and and could be not even a missed interrupt. Very likely that hangcheck seeing ring being idle even if its not (due to that race).
Comment 4 Jani Nikula 2016-01-18 13:11:12 UTC
Please try kernel v4.4.
Comment 5 Chris Wilson 2016-01-18 16:55:49 UTC
Known to be still broken in -nightly.
Comment 6 Chris Wilson 2016-02-26 14:04:36 UTC
commit 7c17d377374ddbcfb7873366559fc4ed8b296e11
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 20 15:43:35 2016 +0200

    drm/i915: Use ordered seqno write interrupt generation on gen8+ execlists
    
    Broadwell and later currently use the same unordered command sequence to
    update the seqno in the HWS status page and then assert the user
    interrupt. We should apply the w/a from legacy (where we do an mmio
    read to delay the seqno read after the interrupt), but this is not
    enough to enforce coherent seqno visibilty on Skylake. Rather than
    search for the proper post-interrupt seqno barrier, use a strongly
    ordered command sequence to write the seqno, then assert the user
    interrupt from the ring.
    
    v2: Move around the wa tail dwords to avoid adding duplicate code.
    
    v3: Add references, comments on workarounds and bit5 check.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=93693
    Testcase: igt/gem_ring_sync_loop #skl
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Mika Kuoppala <mika.kuoppala@intel.com>
    Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1453297415-17793-1-git-send-email-mika.kuoppala@intel.com


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.