On Thu, Feb 16, 2017 at 11:44:31AM +0000, Tvrtko Ursulin wrote:
> On 16/02/2017 11:13, Chris Wilson wrote:
> >When the timer expires for checking on interrupt processing, check to
> >see if any interrupts arrived within the last time period. If real
> >interrupts are still being delivered, we can be reassured that we
> >haven't missed the final interrupt as the waiter will still be woken.
> >Only once all activity ceases, do we have to worry about the waiter
> >never being woken and so need to install a timer to kick the waiter for
> >a slow arrival of a seqno.
> I prefer this version by far. Especially since it keeps the normal
> hangcheck period as long as the interrupts are happening.
> I suppose it could only get foiled if interrupts kept coming but the
> seqno staying put. Does this sounds like a concern?
The failure condition would be the hw gets stuck sending out
user-interrupts, even after the rings stop, and the seqno is stuck.
The seqno sticking even though the rings keep running (until the ring is
empty) is definitely a problem seen in some GPU hangs. But we haven't
been suceptible to a stuck user-interrupt before so I'm not sure if that
is feasible. I hope not.
Chris Wilson, Intel Open Source Technology Centre
Intel-gfx mailing list