• Daniel Vetter's avatar
    drm/i915: Avoid the gpu reset vs. modeset deadlock · 781cc76e
    Daniel Vetter authored
    ... using the biggest hammer we have. This is essentially a weaponized
    version of the timeout-based wedging Chris added in
    
    commit 36703e79
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Thu Jun 22 11:56:25 2017 +0100
    
        drm/i915: Break modeset deadlocks on reset
    
    Because defense-in-depth is good it's good to still have both. Also
    note that with the locking change we can now restrict this a lot (old
    gpus and special testing only), so this doesn't kill the TDR benefits
    on at least anything remotely modern.
    
    And futuremore with a few tricks it should be possible to make a much
    more educated guess about whether an atomic commit is stuck waiting on
    the gpu (atomic_t counting the pending i915_sw_fence used by the
    atomic modeset code should do it), so we can improve this.
    
    But for now just start with something that is guaranteed to recover
    faster, for much better CI througput.
    
    This defacto reverts TDR on these platforms, but there's not really a
    single commit to specify as the sole offender.
    
    v2: Add a debug message to explain what's going on. We can't DRM_ERROR
    because that spams CI. And the timeout based fallback still prints a
    DRM_ERROR, in case something goes wrong.
    
    v3: Fix comment layout (Michel)
    
    Fixes: 4680816b ("drm/i915: Wait first for submission, before waiting for request completion")
    Fixes: 221fe799 ("drm/i915: Perform a direct reset of the GPU from the waiter")
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Mika Kuoppala <mika.kuoppala@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> (v2)
    Cc: Michel Thierry <michel.thierry@intel.com>
    Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> (v2)
    Reviewed-by: default avatarMichel Thierry <michel.thierry@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170808080828.23650-1-daniel.vetter@ffwll.ch
    (cherry picked from commit 97154ec2)
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    781cc76e
intel_display.c 450 KB