On 16/02/2017 12:00, Chris Wilson wrote:
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.
Sounds good to me.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
Intel-gfx mailing list