drm/i915: Only start with the fake-irq timer if interrupts are dead
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 17 Feb 2017 15:13:03 +0000 (15:13 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 17 Feb 2017 15:31:14 +0000 (15:31 +0000)
commit6ef98ea0dacd8bee62d6823b1dea80269137c240
treec613abdd4e36436d4bb2f334f268b51bdca41cc9
parent8998567b51141f79309d1267640c919dfd23d3a4
drm/i915: Only start with the fake-irq timer if interrupts are dead

As a backup to waiting on a user-interrupt from the GPU, we use a heavy
and frequent timer to wake up the waiting process should we detect an
inconsistency whilst waiting. After seeing a "missed interrupt", the
next time we wait, we restart the heavy timer. This patch is more
reluctant to restart the timer and will only do so if we have not see any
interrupts since when we started the fake irq timer. If we are seeing
interrupts, then the waiters are being woken normally and we had an
incoherency that caused to miss last time - that is unlikely to reoccur
and so taking the risk of stalling again seems pragmatic.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170217151304.16665-5-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_breadcrumbs.c