[Intel-gfx] [PATCH] drm/i915: Set sync_seqno properly after seqno wrap

Daniel Vetter daniel at ffwll.ch
Thu Nov 29 11:03:00 CET 2012


On Wed, Nov 28, 2012 at 05:18:45PM +0200, Mika Kuoppala wrote:
> i915_gem_handle_seqno_wrap() will zero all sync_seqnos but as the
> wrap can happen inside ring->sync_to(), pre wrap seqno was
> carried over and overwrote the zeroed sync_seqno.
> 
> When wrap is handled, all outstanding requests will be retired and
> objects moved to inactive queue, causing their last_read_seqno to be zero.
> Use this to update the sync_seqno correctly.
> 
> RING_SYNC registers after wrap will contain pre wrap values which
> are >= seqno. So injecting the semaphore wait into ring completes
> immediately.
> 
> Original idea for using last_read_seqno from Chris Wilson.
> 
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
Queued for -next, thanks for the patch.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list