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:
- To continue to be able to use the atomic helpers
- 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:
- 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
- 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(-)