[PATCH 00/25] dma-fence annotations, round 3
Daniel Vetter
daniel.vetter at ffwll.ch
Tue Jul 7 20:12:04 UTC 2020
Hi all,
Bunch of changes that might matter:
- Clarification that dma_fences are for drivers/gpu, requested by Jason
Gunthorpe.
- New patch to list all the past discussions around
indefinite/future/whatever fences, and why this (sadly) still just plain
doesn't work. Came up again when discussing this stuff, I'd like to just
be able to point at some doc going forward.
- I rolled dma-fence critical section annotations to (almost, vc4, nouveau
and i915 have a bit too much custom commit functions) atomic kms
drivers. Really looking for some serious testing with these, aside from
the amdgpu atomic commit issues we've also found some problems in vmwgfx
commit code. All real issues, and noted in the patches.
After the modeset stuff there's still the drm/scheduler annotations.
Testing with other drivers than amdgpu using the drm scheduler would be
very much welcome.
Then the usual pile of amdgpu hacks that I used for developing this. That
stuff isn't for merging, I'm hoping amd is working on proper patches for
these things.
Testing for this series means, especially for the atomic kms drivers:
- build with CONFIG_PROVE_LOCKING
- run the kms_atomic igt, that one actually uses atomic in&out fences -
withotu these it's only half the fun
- run anything else you feel like which might use fences, like your
rendering driver. You do have testcases for that right :-)
The mmu notifier annotation integration landed in -mm for a few days
meanwhile, but I busted it pretty bad. That one needs more baking, I'm
trying to figure out how to write unit tests for these annotations so I'm
not blowing them up all the time.
Also I think it'd be nice if we could start merging some of the earlier
stuff maybe, that doest start to feel solid (at least to me).
Review, commenst and testing on drivers as per above very much welcome.
Thanks, Daniel
Daniel Vetter (25):
dma-fence: basic lockdep annotations
dma-fence: prime lockdep annotations
dma-buf.rst: Document why idenfinite fences are a bad idea
drm/vkms: Annotate vblank timer
drm/vblank: Annotate with dma-fence signalling section
drm/amdgpu: add dma-fence annotations to atomic commit path
drm/komdea: Annotate dma-fence critical section in commit path
drm/malidp: Annotate dma-fence critical section in commit path
drm/atmel: Use drm_atomic_helper_commit
drm/imx: Annotate dma-fence critical section in commit path
drm/omapdrm: Annotate dma-fence critical section in commit path
drm/rcar-du: Annotate dma-fence critical section in commit path
drm/tegra: Annotate dma-fence critical section in commit path
drm/tidss: Annotate dma-fence critical section in commit path
drm/tilcdc: Use standard drm_atomic_helper_commit
drm/atomic-helper: Add dma-fence annotations
drm/scheduler: use dma-fence annotations in main thread
drm/amdgpu: use dma-fence annotations in cs_submit()
drm/amdgpu: s/GFP_KERNEL/GFP_ATOMIC in scheduler code
drm/amdgpu: DC also loves to allocate stuff where it shouldn't
drm/amdgpu/dc: Stop dma_resv_lock inversion in commit_tail
drm/scheduler: use dma-fence annotations in tdr work
drm/amdgpu: use dma-fence annotations for gpu reset code
Revert "drm/amdgpu: add fbdev suspend/resume on gpu reset"
drm/amdgpu: gpu recovery does full modesets
Documentation/driver-api/dma-buf.rst | 82 +++++++
drivers/dma-buf/dma-fence.c | 207 ++++++++++++++++++
drivers/dma-buf/dma-resv.c | 8 +
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 5 +
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 22 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 2 +-
drivers/gpu/drm/amd/amdgpu/atom.c | 2 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 18 +-
drivers/gpu/drm/amd/display/dc/core/dc.c | 4 +-
.../gpu/drm/arm/display/komeda/komeda_kms.c | 3 +
drivers/gpu/drm/arm/malidp_drv.c | 3 +
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 96 +-------
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h | 4 -
drivers/gpu/drm/drm_atomic_helper.c | 16 ++
drivers/gpu/drm/drm_vblank.c | 8 +-
drivers/gpu/drm/imx/imx-drm-core.c | 2 +
drivers/gpu/drm/omapdrm/omap_drv.c | 9 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 2 +
drivers/gpu/drm/scheduler/sched_main.c | 11 +
drivers/gpu/drm/tegra/drm.c | 3 +
drivers/gpu/drm/tidss/tidss_kms.c | 4 +
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 47 +---
drivers/gpu/drm/virtio/virtgpu_display.c | 20 --
drivers/gpu/drm/vkms/vkms_crtc.c | 8 +-
include/linux/dma-fence.h | 13 ++
27 files changed, 421 insertions(+), 182 deletions(-)
--
2.27.0
More information about the dri-devel
mailing list