drm/i915: Use synchronize_srcu_expedited() for resets
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 11 Feb 2019 13:50:40 +0000 (13:50 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 11 Feb 2019 20:46:30 +0000 (20:46 +0000)
We impose upon ourselves a strict timeout for resets (to ensure forward
progress by use of a failsafe). Prefer to use the expedited
synchronisation function in this case to reduce the likelihood of a
spurious delay being treated as a deadlock.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190211135040.1234-2-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
drivers/gpu/drm/i915/i915_reset.c

index c2b7570730c215d2fa7e8ce4c420f0307e4aa472..c1b53533ada60ab53d94499dcc3fb7bcf4007efb 100644 (file)
@@ -1138,7 +1138,7 @@ static void i915_reset_device(struct drm_i915_private *i915,
                intel_prepare_reset(i915);
 
                /* Flush everyone using a resource about to be clobbered */
-               synchronize_srcu(&error->reset_backoff_srcu);
+               synchronize_srcu_expedited(&error->reset_backoff_srcu);
 
                mutex_lock(&error->wedge_mutex);
                i915_reset(i915, engine_mask, reason);