[Intel-gfx] [PATCH 03/25] drm/i915: Prevent user context creation while wedged
Chris Wilson
chris at chris-wilson.co.uk
Tue Feb 19 13:20:06 UTC 2019
Quoting Mika Kuoppala (2019-02-19 13:07:08)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
>
> > Introduce a new ABI method for detecting a wedged driver by reporting
> > -EIO from DRM_IOCTL_I915_GEM_CONTEXT_CREATE.
>
> Need more on the 'why' department. What is lacking with
> the method of submitting and noticing the wedged?
>
> Also detecting banned from wedged is not trivial.
The biggest problem is our transient wedging, where we use
i915_gem_set_wedged() to cancel inflight rendering to avoid a deadlock
during reset. That is an issue here as we may submit and see -EIO even
though the driver isn't strictly terminally wedged and may reset.
We've even seen that once in practice,
https://bugs.freedesktop.org/show_bug.cgi?id=109580.
Hmm, pre-existing problem requiring more general solution. I'm thinking
along the lines of
if (i915_terminally_wedged())
return i915_reset_backoff() ? -EAGAIN : -EIO;
Joy. /o\
ret = i915_reset_backoff();
static int i915_reset_backoff()
{
unsigned long flags = READ_ONCE(error->flags);
if (!(flags & WEDGED))
return 0;
if (flags & BACKOFF)
return -EAGAIN;
return -EIO;
}
Seems eerily familiar, like a full circle.
-Chris
More information about the Intel-gfx
mailing list