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

Daniel Vetter daniel at ffwll.ch
Thu Nov 6 14:53:09 CET 2014


On Thu, Nov 06, 2014 at 09:25:22AM +0000, Chris Wilson wrote:
> 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)

Can we actually send singals to kworker threads? Just out of curiosity ...

> > Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
> 
> Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>

Queued for -next, thanks for the patch.
 
> > +		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.

Yeah I guess we don't want to boost here by default (since userspace might
send the pageflip right after having queued the pageflip), but only when
we indeed missed the next vblank. So I guess we should disable the
boosting here and get your pageflip booster in. Can you please
rebase/adapt and Ander could perhaps review?
-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