dma_fence_array looks simple enough, just propagate the deadline to all children. I guess dma_fence_chain is similar (ie. fence is signalled when all children are signalled), the difference being simply that children are added dynamically? BR, -R On Mon, Aug 16, 2021 at 3:17 AM Christian König <christian.koenig@xxxxxxx> wrote: > > The general approach seems to make sense now I think. > > One minor thing which I'm missing is adding support for this to the > dma_fence_array and dma_fence_chain containers. > > Regards, > Christian. > > Am 07.08.21 um 20:37 schrieb Rob Clark: > > From: Rob Clark <robdclark@xxxxxxxxxxxx> > > > > Based on discussion from a previous series[1] to add a "boost" mechanism > > when, for example, vblank deadlines are missed. Instead of a boost > > callback, this approach adds a way to set a deadline on the fence, by > > which the waiter would like to see the fence signalled. > > > > I've not yet had a chance to re-work the drm/msm part of this, but > > wanted to send this out as an RFC in case I don't have a chance to > > finish the drm/msm part this week. > > > > Original description: > > > > In some cases, like double-buffered rendering, missing vblanks can > > trick the GPU into running at a lower frequence, when really we > > want to be running at a higher frequency to not miss the vblanks > > in the first place. > > > > This is partially inspired by a trick i915 does, but implemented > > via dma-fence for a couple of reasons: > > > > 1) To continue to be able to use the atomic helpers > > 2) To support cases where display and gpu are different drivers > > > > [1] https://patchwork.freedesktop.org/series/90331/ > > > > v1: https://patchwork.freedesktop.org/series/93035/ > > v2: Move filtering out of later deadlines to fence implementation > > to avoid increasing the size of dma_fence > > > > Rob Clark (5): > > dma-fence: Add deadline awareness > > drm/vblank: Add helper to get next vblank time > > drm/atomic-helper: Set fence deadline for vblank > > drm/scheduler: Add fence deadline support > > drm/msm: Add deadline based boost support > > > > drivers/dma-buf/dma-fence.c | 20 +++++++ > > drivers/gpu/drm/drm_atomic_helper.c | 36 ++++++++++++ > > drivers/gpu/drm/drm_vblank.c | 31 ++++++++++ > > drivers/gpu/drm/msm/msm_fence.c | 76 +++++++++++++++++++++++++ > > drivers/gpu/drm/msm/msm_fence.h | 20 +++++++ > > drivers/gpu/drm/msm/msm_gpu.h | 1 + > > drivers/gpu/drm/msm/msm_gpu_devfreq.c | 20 +++++++ > > drivers/gpu/drm/scheduler/sched_fence.c | 25 ++++++++ > > drivers/gpu/drm/scheduler/sched_main.c | 3 + > > include/drm/drm_vblank.h | 1 + > > include/drm/gpu_scheduler.h | 6 ++ > > include/linux/dma-fence.h | 16 ++++++ > > 12 files changed, 255 insertions(+) > > >