[Intel-gfx] [PATCH 1/2] drm/i915: Detach hangcheck from request lists

Chris Wilson chris at chris-wilson.co.uk
Tue May 19 06:36:37 PDT 2015


On Tue, May 19, 2015 at 12:03:44PM +0100, Tomas Elf wrote:
> >+	if (ring->buffer &&
> >+	    ring->buffer->tail != tail &&
> >+	    waitqueue_active(&ring->irq_queue))
> >+		return true;
> >+
> 
> 1. For some reason going from one waitqueue_active() check in
> i915_hangcheck_elapsed() to two separate calls in two separate
> functions does not sit perfectly well with me. Maybe it's not that
> important but would it make sense to take the body of
> check_for_missed_irq() and integrate it in engine_idle(), call
> waitqueue_active() once and use the result twice: first in the check
> in the block above and then in the missing irq check that follows
> immediately?

No it is just that stop_rings is the wrong mechanism and that has lead
to this kerfuffle with using waitqueue_active() as a test for engine
busyness. That is plainly wrong.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list