Re: [PATCH] drm/i915: Make mmio flip wait for seqno in the work function

Chris Wilson
2014-11-06T09:25:31Z

On Thu, Nov 06, 2014 at 11:03:40AM +0200, Ander Conselvan de Oliveira wrote:
> This simplifies the code quite a bit compared to iterating over all
> rings during the ring interrupt.
>
> Also, it allows us to drop the mmio_flip spinlock, since the mmio_flip
> struct is only accessed in two places. The first is when the flip is
> queued and the other when the mmio writes are done. Since a flip cannot
> be queued while there is a pending flip, the two paths shouldn't ever
> run in parallel. We might need to revisit that if support for replacing
> flips is implemented though.
>
> v2: Don't hold dev->struct_mutext while waiting (Chris)
>
> v3: Make the wait uninterruptable (Chris)
>
> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

> + WARN_ON(__i915_wait_seqno(ring, seqno,
> + intel_crtc->reset_counter,
> + false, NULL, NULL) != 0);

Should probably mention the caveat that this wants RPS boost tweaks,
which have been posted to the list as well.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre