• Mika Kuoppala's avatar
    drm/i915: Inspect subunit states on hangcheck · 61642ff0
    Mika Kuoppala authored
    If head seems stuck and engine in question is rcs,
    inspect subunit state transitions from undone to done,
    before deciding that this really is a hang instead of limited
    progress. Only account the transitions of subunits from
    undone to done once, to prevent unstable subunit states
    to keep us falsely active.
    
    As this adds one extra steps to hangcheck heuristics,
    before hang is declared, it adds 1500ms to to detect hang
    for render ring to a total of 7500ms. We could sample
    the subunit states on first head stuck condition but
    decide not to do so only in order to mimic old behaviour. This
    way the check order of promotion from seqno > atchd > instdone
    is consistently done.
    
    v2: Deal with unstable done states (Arun)
        Clear instdone progress on head and seqno movement (Chris)
        Report raw and accumulated instdone's in in debugfs (Chris)
        Return HANGCHECK_ACTIVE on undone->done
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=93029
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Dave Gordon <david.s.gordon@intel.com>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: Arun Siluvery <arun.siluvery@linux.intel.com>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1448985372-19535-1-git-send-email-mika.kuoppala@intel.com
    61642ff0
i915_irq.c 130 KB