[RFC] drm: add flip-work helper

Rob Clark robdclark at gmail.com
Sun Aug 4 19:20:54 PDT 2013


On Sun, Aug 4, 2013 at 1:34 PM, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Thu, Aug 1, 2013 at 1:23 AM, Rob Clark <robdclark at gmail.com> wrote:
>> A small helper to queue up work to do, from workqueue context, after a
>> flip.  Typically useful to defer unreffing buffers that may be read by
>> the display controller until vblank.
>>
>> Signed-off-by: Rob Clark <robdclark at gmail.com>
>> ---
>> I've re-inventing the same wheel three times in as many drivers (omapdrm,
>> tilcdc, and in upcoming msm driver I need two of 'em).  I guess it is
>> time to helper-up.
>>
>> I'll update omapdrm and tilcdc to use this as well, but I figured I'd
>> send an RFC first in case anyone wants to get their bikeshed on.  If
>> there are other drivers that could use this, and are straightforward
>> to convert over, let me know and I can update them as well.
>
>
> One thing drm/i915 needs is to be able to flush the workqueue (to make
> sure we don't pile up giant amounts of buffers waiting to be unpinned
> and so temporarily leak a bit of memory). So some way to synchronously
> flush out flip functions would be required (and make sure all that
> have been queued up to that point are really completed). But at that
> point a separate workqueue sounds simpler, so I wonder a bit what this
> gains us? At roughly 50Hz flip work functions aren't really that
> performance critical imo ...

you could of course do separate or same workqueue from your main
render-complete workqueue, or flush the workqueue at whatever point
you want..  I suppose if you are queuing from a context that is safe
to sleep you could have a blocking-queue function.  I haven't really
needed anything like that so far, but feel free to extend the
flip-work helper however you need to be useful for i915.  (Or point me
at the bits in i915 that do something similar and I'll have a think
about how to convert that)

BR,
-R

> -Daniel
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list