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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx