[Intel-gfx] [PATCH 3/3] drm/i915: More surgically unbreak the modeset vs reset deadlock

Daniel Vetter daniel.vetter at ffwll.ch
Wed Aug 16 12:43:28 UTC 2017


On Tue, Aug 15, 2017 at 5:32 PM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> Quoting Michel Thierry (2017-08-14 15:13:59)
>> On 8/8/2017 1:08 AM, Daniel Vetter wrote:
>> > @@ -3458,12 +3462,14 @@ void intel_prepare_reset(struct drm_i915_private *dev_priv)
>> >           !gpu_reset_clobbers_display(dev_priv))
>> >               return;
>> >
>> > -     /* We have a modeset vs reset deadlock, defensively unbreak it.
>> > -      *
>> > -      * FIXME: We can do a _lot_ better, this is just a first iteration.
>> > -      */
>> > -     i915_gem_set_wedged(dev_priv);
>> > -     DRM_DEBUG_DRIVER("Wedging GPU to avoid deadlocks with pending modeset updates\n");
>> > +     /* We have a modeset vs reset deadlock, defensively unbreak it. */
>> > +     set_bit(I915_RESET_MODESET, &dev_priv->gpu_error.flags);
>> > +     wake_up_all(&dev_priv->gpu_error.wait_queue);
>> > +
>> > +     if (atomic_read(&dev_priv->gpu_error.pending_fb_pin)) {
>> > +             DRM_DEBUG_KMS("Modeset potentially stuck, unbreaking through wedging\n");
>
> I still maintain that all discarding of user data should be at DRM_ERROR level.

Fully agreed, except we just argued yesterday and you had the firm
stance that it's not ok. So that idea died with the "don't report this
hang" igt infrastructure. Yes we still shout "reset timed out" into
dmesg for expected hangs and expected cases for gen3, but since that's
just another gem tested I also can't be bothered to fix things up.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the Intel-gfx mailing list