All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: DRI Development <dri-devel@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: [PATCH 0/7] dma-resv fence DAG fixes
Date: Tue,  6 Jul 2021 12:12:02 +0200	[thread overview]
Message-ID: <20210706101209.3034092-1-daniel.vetter@ffwll.ch> (raw)

Hi all,

Finally I think I got them all in trying to audit all drivers for how they
deal with dma-resv dependencies in their command submission ioctl.

This series is incomplete, it also needs a few things from Christian
- nouveau fix for waiting for all fences
- various patches for fixing up dma-buf/resv functions to always wait for
  all fences (dma-buf poll, is_signalled, ...)
- I do include the one msm patch from Christian here since there was
  another issue in msm that needed fixing, and to make sure we have the
  complete set for msm

Two main things:
- fix drivers that currently can break the DAG. I opted for the dumbest
  possible way and not for rolling out dma_fence_chain - this can be fixed
  later on if needed.

- allow shared fences to be decoupled from the exclusive slot, which
  mostly means we can't skip waiting for the exclusive fence if there's
  shared fences present, we have to wait for all fences. This is a
  semantic change compared to what we've had thus far, but really makes a
  ton of sense given where things are heading towards.

Note that this means the import/export patches from Jason need to be
adjusted too to fit.

Plus some docs for dma-resv, they've been rather lacking.

Testing and review highly welcome.

Christian König (1):
  drm/msm: always wait for the exclusive fence

Daniel Vetter (6):
  drm/msm: Don't break exclusive fence ordering
  drm/etnaviv: Don't break exclusive fence ordering
  drm/i915: delete exclude argument from i915_sw_fence_await_reservation
  drm/i915: Always wait for the exclusive fence
  drm/i915: Don't break exclusive fence ordering
  dma-resv: Give the docs a do-over

 drivers/dma-buf/dma-resv.c                    |  22 +++-
 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c  |   8 +-
 drivers/gpu/drm/i915/display/intel_display.c  |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_clflush.c   |   2 +-
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   8 +-
 drivers/gpu/drm/i915/i915_sw_fence.c          |  10 +-
 drivers/gpu/drm/i915/i915_sw_fence.h          |   1 -
 drivers/gpu/drm/msm/msm_gem.c                 |  16 ++-
 drivers/gpu/drm/msm/msm_gem_submit.c          |   3 +-
 include/linux/dma-resv.h                      | 104 +++++++++++++++++-
 10 files changed, 142 insertions(+), 36 deletions(-)

-- 
2.32.0


WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: DRI Development <dri-devel@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: [Intel-gfx] [PATCH 0/7] dma-resv fence DAG fixes
Date: Tue,  6 Jul 2021 12:12:02 +0200	[thread overview]
Message-ID: <20210706101209.3034092-1-daniel.vetter@ffwll.ch> (raw)

Hi all,

Finally I think I got them all in trying to audit all drivers for how they
deal with dma-resv dependencies in their command submission ioctl.

This series is incomplete, it also needs a few things from Christian
- nouveau fix for waiting for all fences
- various patches for fixing up dma-buf/resv functions to always wait for
  all fences (dma-buf poll, is_signalled, ...)
- I do include the one msm patch from Christian here since there was
  another issue in msm that needed fixing, and to make sure we have the
  complete set for msm

Two main things:
- fix drivers that currently can break the DAG. I opted for the dumbest
  possible way and not for rolling out dma_fence_chain - this can be fixed
  later on if needed.

- allow shared fences to be decoupled from the exclusive slot, which
  mostly means we can't skip waiting for the exclusive fence if there's
  shared fences present, we have to wait for all fences. This is a
  semantic change compared to what we've had thus far, but really makes a
  ton of sense given where things are heading towards.

Note that this means the import/export patches from Jason need to be
adjusted too to fit.

Plus some docs for dma-resv, they've been rather lacking.

Testing and review highly welcome.

Christian König (1):
  drm/msm: always wait for the exclusive fence

Daniel Vetter (6):
  drm/msm: Don't break exclusive fence ordering
  drm/etnaviv: Don't break exclusive fence ordering
  drm/i915: delete exclude argument from i915_sw_fence_await_reservation
  drm/i915: Always wait for the exclusive fence
  drm/i915: Don't break exclusive fence ordering
  dma-resv: Give the docs a do-over

 drivers/dma-buf/dma-resv.c                    |  22 +++-
 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c  |   8 +-
 drivers/gpu/drm/i915/display/intel_display.c  |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_clflush.c   |   2 +-
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |   8 +-
 drivers/gpu/drm/i915/i915_sw_fence.c          |  10 +-
 drivers/gpu/drm/i915/i915_sw_fence.h          |   1 -
 drivers/gpu/drm/msm/msm_gem.c                 |  16 ++-
 drivers/gpu/drm/msm/msm_gem_submit.c          |   3 +-
 include/linux/dma-resv.h                      | 104 +++++++++++++++++-
 10 files changed, 142 insertions(+), 36 deletions(-)

-- 
2.32.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

             reply	other threads:[~2021-07-06 10:12 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-06 10:12 Daniel Vetter [this message]
2021-07-06 10:12 ` [Intel-gfx] [PATCH 0/7] dma-resv fence DAG fixes Daniel Vetter
2021-07-06 10:12 ` [PATCH 1/7] drm/msm: Don't break exclusive fence ordering Daniel Vetter
2021-07-06 10:12   ` [Intel-gfx] " Daniel Vetter
2021-07-06 10:12   ` Daniel Vetter
2021-07-06 10:12 ` [PATCH 2/7] drm/msm: always wait for the exclusive fence Daniel Vetter
2021-07-06 10:12   ` [Intel-gfx] " Daniel Vetter
2021-07-06 10:12   ` Daniel Vetter
2021-07-06 10:12 ` [PATCH 3/7] drm/etnaviv: Don't break exclusive fence ordering Daniel Vetter
2021-07-06 10:12   ` [Intel-gfx] " Daniel Vetter
2021-07-07  8:54   ` Lucas Stach
2021-07-07  8:54     ` [Intel-gfx] " Lucas Stach
2021-07-07 11:37     ` Daniel Vetter
2021-07-07 11:37       ` [Intel-gfx] " Daniel Vetter
2021-07-07 12:31       ` Lucas Stach
2021-07-07 12:31         ` [Intel-gfx] " Lucas Stach
2021-07-07 12:59         ` Daniel Vetter
2021-07-07 12:59           ` [Intel-gfx] " Daniel Vetter
2021-07-06 10:12 ` [PATCH 4/7] drm/i915: delete exclude argument from i915_sw_fence_await_reservation Daniel Vetter
2021-07-06 10:12   ` [Intel-gfx] " Daniel Vetter
2021-07-06 10:12 ` [PATCH 5/7] drm/i915: Always wait for the exclusive fence Daniel Vetter
2021-07-06 10:12   ` [Intel-gfx] " Daniel Vetter
2021-07-06 12:47   ` Matthew Auld
2021-07-06 12:47     ` Matthew Auld
2021-07-06 12:58     ` Daniel Vetter
2021-07-06 12:58       ` Daniel Vetter
2021-07-06 10:12 ` [PATCH 6/7] drm/i915: Don't break exclusive fence ordering Daniel Vetter
2021-07-06 10:12   ` [Intel-gfx] " Daniel Vetter
2021-07-06 10:12 ` [PATCH 7/7] dma-resv: Give the docs a do-over Daniel Vetter
2021-07-06 10:12   ` [Intel-gfx] " Daniel Vetter
2021-07-06 10:12   ` Daniel Vetter
2021-07-06 12:34   ` [Intel-gfx] " Matthew Auld
2021-07-06 12:34     ` Matthew Auld
2021-07-06 12:34     ` Matthew Auld
2021-07-06 23:47   ` Jason Ekstrand
2021-07-06 23:47     ` [Intel-gfx] " Jason Ekstrand
2021-07-06 23:47     ` Jason Ekstrand
2021-07-07  8:06   ` [Linaro-mm-sig] " Christian König
2021-07-07  8:06     ` [Intel-gfx] " Christian König
2021-07-07  8:06     ` Christian König
2021-07-07  9:13     ` Daniel Vetter
2021-07-07  9:13       ` [Intel-gfx] " Daniel Vetter
2021-07-07  9:13       ` Daniel Vetter
2021-07-06 10:35 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for dma-resv fence DAG fixes Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210706101209.3034092-1-daniel.vetter@ffwll.ch \
    --to=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.