mbox series

[pull] drm: dma-fence-deadline for v6.4

Message ID CAF6AEGt5nDQpa6J86V1oFKPA30YcJzPhAVpmF7N1K1g2N3c=Zg@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series [pull] drm: dma-fence-deadline for v6.4 | expand

Pull-request

https://gitlab.freedesktop.org/drm/msm.git tags/dma-fence-deadline

Message

Rob Clark March 28, 2023, 10:34 p.m. UTC
Hi Dave and Daniel,

Here is the series for dma-fence deadline hint, without driver
specific patches, or UAPI, with the intent that it can be merged into
drm-next as well as -driver next trees to enable landing driver
specific support through their corresponding -next trees.

The following changes since commit eeac8ede17557680855031c6f305ece2378af326:

  Linux 6.3-rc2 (2023-03-12 16:36:44 -0700)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/msm.git tags/dma-fence-deadline

for you to fetch changes up to d39e48ca80c0960b039cb38633957f0040f63e1a:

  drm/atomic-helper: Set fence deadline for vblank (2023-03-28 14:52:59 -0700)

----------------------------------------------------------------
This series adds a deadline hint to fences, so realtime deadlines
such as vblank can be communicated to the fence signaller for power/
frequency management decisions.

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

See https://patchwork.freedesktop.org/series/93035/

This does not yet add any UAPI, although this will be needed in
a number of cases:

1) Workloads "ping-ponging" between CPU and GPU, where we don't
   want the GPU freq governor to interpret time stalled waiting
   for GPU as "idle" time
2) Cases where the compositor is waiting for fences to be signaled
   before issuing the atomic ioctl, for example to maintain 60fps
   cursor updates even when the GPU is not able to maintain that
   framerate.

----------------------------------------------------------------
Rob Clark (8):
      dma-buf/dma-fence: Add deadline awareness
      dma-buf/fence-array: Add fence deadline support
      dma-buf/fence-chain: Add fence deadline support
      dma-buf/dma-resv: Add a way to set fence deadline
      dma-buf/sync_file: Surface sync-file uABI
      drm/scheduler: Add fence deadline support
      drm/vblank: Add helper to get next vblank time
      drm/atomic-helper: Set fence deadline for vblank

 Documentation/driver-api/dma-buf.rst    | 16 +++++++--
 drivers/dma-buf/dma-fence-array.c       | 11 ++++++
 drivers/dma-buf/dma-fence-chain.c       | 12 +++++++
 drivers/dma-buf/dma-fence.c             | 59 +++++++++++++++++++++++++++++++++
 drivers/dma-buf/dma-resv.c              | 22 ++++++++++++
 drivers/gpu/drm/drm_atomic_helper.c     | 37 +++++++++++++++++++++
 drivers/gpu/drm/drm_vblank.c            | 53 ++++++++++++++++++++++++-----
 drivers/gpu/drm/scheduler/sched_fence.c | 46 +++++++++++++++++++++++++
 drivers/gpu/drm/scheduler/sched_main.c  |  2 +-
 include/drm/drm_vblank.h                |  1 +
 include/drm/gpu_scheduler.h             | 17 ++++++++++
 include/linux/dma-fence.h               | 22 ++++++++++++
 include/linux/dma-resv.h                |  2 ++
 include/uapi/linux/sync_file.h          | 37 +++++++++------------
 14 files changed, 303 insertions(+), 34 deletions(-)

Comments

Daniel Vetter March 29, 2023, 2 p.m. UTC | #1
On Tue, Mar 28, 2023 at 03:34:02PM -0700, Rob Clark wrote:
> Hi Dave and Daniel,
> 
> Here is the series for dma-fence deadline hint, without driver
> specific patches, or UAPI, with the intent that it can be merged into
> drm-next as well as -driver next trees to enable landing driver
> specific support through their corresponding -next trees.
> 
> The following changes since commit eeac8ede17557680855031c6f305ece2378af326:
> 
>   Linux 6.3-rc2 (2023-03-12 16:36:44 -0700)
> 
> are available in the Git repository at:
> 
>   https://gitlab.freedesktop.org/drm/msm.git tags/dma-fence-deadline

Thanks for respinnning to unblock this, merged to drm-next. I'll also do
an -rc4 backmerge, so please hold for that if you backmerge yourself.

> 
> for you to fetch changes up to d39e48ca80c0960b039cb38633957f0040f63e1a:
> 
>   drm/atomic-helper: Set fence deadline for vblank (2023-03-28 14:52:59 -0700)
> 
> ----------------------------------------------------------------
> This series adds a deadline hint to fences, so realtime deadlines
> such as vblank can be communicated to the fence signaller for power/
> frequency management decisions.
> 
> 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
> 
> See https://patchwork.freedesktop.org/series/93035/
> 
> This does not yet add any UAPI, although this will be needed in
> a number of cases:
> 
> 1) Workloads "ping-ponging" between CPU and GPU, where we don't
>    want the GPU freq governor to interpret time stalled waiting
>    for GPU as "idle" time
> 2) Cases where the compositor is waiting for fences to be signaled
>    before issuing the atomic ioctl, for example to maintain 60fps
>    cursor updates even when the GPU is not able to maintain that
>    framerate.
> 
> ----------------------------------------------------------------
> Rob Clark (8):
>       dma-buf/dma-fence: Add deadline awareness
>       dma-buf/fence-array: Add fence deadline support
>       dma-buf/fence-chain: Add fence deadline support
>       dma-buf/dma-resv: Add a way to set fence deadline
>       dma-buf/sync_file: Surface sync-file uABI
>       drm/scheduler: Add fence deadline support
>       drm/vblank: Add helper to get next vblank time
>       drm/atomic-helper: Set fence deadline for vblank
> 
>  Documentation/driver-api/dma-buf.rst    | 16 +++++++--
>  drivers/dma-buf/dma-fence-array.c       | 11 ++++++
>  drivers/dma-buf/dma-fence-chain.c       | 12 +++++++
>  drivers/dma-buf/dma-fence.c             | 59 +++++++++++++++++++++++++++++++++
>  drivers/dma-buf/dma-resv.c              | 22 ++++++++++++
>  drivers/gpu/drm/drm_atomic_helper.c     | 37 +++++++++++++++++++++
>  drivers/gpu/drm/drm_vblank.c            | 53 ++++++++++++++++++++++++-----
>  drivers/gpu/drm/scheduler/sched_fence.c | 46 +++++++++++++++++++++++++
>  drivers/gpu/drm/scheduler/sched_main.c  |  2 +-
>  include/drm/drm_vblank.h                |  1 +
>  include/drm/gpu_scheduler.h             | 17 ++++++++++
>  include/linux/dma-fence.h               | 22 ++++++++++++
>  include/linux/dma-resv.h                |  2 ++
>  include/uapi/linux/sync_file.h          | 37 +++++++++------------
>  14 files changed, 303 insertions(+), 34 deletions(-)