On Wed, Apr 06, 2016 at 12:32:29PM +0300, Mika Kuoppala wrote: > Chris Wilson <[email protected]> writes: > > > [ text/plain ] > > Having fixed the tracking of the engine's last_submitted_seqno, we can > > now rely on it for detecting when the engine is idle (and not have to > > touch the requests pointer). > > > > Testcase: igt/gem_exec_whisper > > Signed-off-by: Chris Wilson <[email protected]> > > Cc: Mika Kuoppala <[email protected]> > > Cc: Joonas Lahtinen <[email protected]> > > --- > > drivers/gpu/drm/i915/i915_irq.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_irq.c > > b/drivers/gpu/drm/i915/i915_irq.c > > index c85eb8dec2dc..a56be4f92264 100644 > > --- a/drivers/gpu/drm/i915/i915_irq.c > > +++ b/drivers/gpu/drm/i915/i915_irq.c > > @@ -2805,8 +2805,7 @@ static void gen8_disable_vblank(struct drm_device > > *dev, unsigned int pipe) > > static bool > > ring_idle(struct intel_engine_cs *engine, u32 seqno) > > { > > - return (list_empty(&engine->request_list) || > > - i915_seqno_passed(seqno, engine->last_submitted_seqno)); > > + return i915_seqno_passed(seqno, engine->last_submitted_seqno); > > My concern here is that we should move the write for the > last_submitted_seqno before we push the work into ring. > > To guarantee that the driver never sees a seqno > last_submitted_seqno > on particular ring.
Reasonable request. You'll want a smp_store_mb() on the last_submitted_seqno as well with a comment /* barrier for hangcheck */ In return what's up with the Braswell? -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
