Bug 96806

Summary: [BAT BDW SKL] gem_exec_flush "*ERROR* Hangcheck timer elapsed..."
Product: DRI Reporter: Tvrtko Ursulin <tvrtko.ursulin>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: critical    
Priority: highest CC: intel-gfx-bugs
Version: DRI git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: BDW, SKL i915 features: GEM/execlists

Description Tvrtko Ursulin 2016-07-04 15:46:51 UTC
Currently under debug, some testcases like basic-batch-kernel-default-uc currently sporadically fail with:

[ 4141.902815] gem_exec_flush: starting subtest basic-batch-kernel-default-uc
[ 4444.233013] [drm:i915_hangcheck_elapsed [i915]] *ERROR* Hangcheck timer elapsed... render ring idle
Comment 1 Chris Wilson 2016-07-06 12:17:47 UTC
commit 04171313cb25311acf82279284d722fed7b70d53
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jul 6 12:39:00 2016 +0100

    drm/i915: Always double check for a missed interrupt for new bottom halves
    
    After assigning ourselves as the new bottom-half, we must perform a
    cursory check to prevent a missed interrupt.  Either we miss the interrupt
    whilst programming the hardware, or if there was a previous waiter (for
    a later seqno) they may be woken instead of us (due to the inherent race
    in the unlocked read of b->tasklet in the irq handler) and so we miss the
    wake up.
    
    Spotted-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96806
    Fixes: 688e6c725816 ("drm/i915: Slaughter the thundering... herd")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1467805142-22219-1-git-send-email-chris@chris-wilson.co.uk

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.