[PATCH 00/20] prime/flink fixes and related stuff
Inki Dae
inki.dae at samsung.com
Sat Jul 27 02:22:08 PDT 2013
Hi Daniel, sorry for being late.
2013/7/16 Daniel Vetter <daniel.vetter at ffwll.ch>
> Hi all,
>
> This patch series is my 2nd real stab at fixing up the locking issues
> around our
> two buffer sharing mechanisms in gem: flink and prime.
>
> I think the approach taken here is much better than my first stab, and it
> also
> seems to no longer leak buffers ;-) There some assorted cleanup and prep
> work
> (and one i915 fix) thrown into the mix, it's all stuff I've stumbled over
> while
> digging through the code.
>
> Open issues left in prime-land after these patches:
> - exynos probably wants a similar patch to "drm/i915: explicit store base
> gem
> object in dma_buf->priv". The current code should be correct, but it's a
> bit
>
How about using stuffs of drm_prime instead of specific ones? Seem like
that we could replace specific dmabuf stuffs with common ones of drm_prime,
at least in case of Exynos: i.e. each driver can export a gem to a dmabuf
through drm_gem_prime_export function of drm_prime instead of specific one.
By doing so, I think we could remove duplicated codes of drivers, specific
dmabuf stuffs. I'm not sure but it seems like that there is any reason you
try to use existing stuffs with a little change: maybe the stuffs of
drm_prime couldn't be used for all drm drivers commonly.
Thanks,
Inki Dae
> tricky. I've opted not to do that since last time around I've touched
> exynos a
>
bit it broke horribly ;-)
>
- The prime core should now no longer depend upon obj->import_attach being
> set
> by drivers in their prime_import callback. This should allos us to fix
> udl
> which really doesn't need (nor want, it confuses swiotlb among other
> things)
> a device attachment. Didn't write that patch since my displaylink seems
> to
> have died.
> - There's still the issue Inki's team pointed out where if you import a
> foreign
> object on different fds you'll get different gem objects. So we need
> some form
> of a per-device import cache (on top of the per-file-priv dma-buf cache
> we
> already have). Didn't do this yet since I want to have good test coverage
> (already started a bit), it looks like a bit more work and I'm not sure
> about
> the exact design of the code yet.
>
> Review and testing highly welcome.
>
> Cheers, Daniel
>
> Daniel Vetter (20):
> drm: use common drm_gem_dmabuf_release in i915/exynos drivers
> drm/i915: unpin backing storage in dmabuf_unmap
> drm/i915: explicit store base gem object in dma_buf->priv
> drm/prime: add a bit of documentation about gem_obj->import_attach
> drm/gem: remove drm_gem_object_handle_unreference
> drm/gem: inline drm_gem_object_handle_reference
> drm/gem: move drm_gem_object_handle_unreference_unlocked into
> drm_gem.c
> drm/gem: remove bogus NULL check from
> drm_gem_object_handle_unreference_unlocked
> drm/gem: WARN about unbalanced handle refcounts
> drm/gem: fix up flink name create race
> drm/prime: fix error path in drm_gem_prime_fd_to_handle
> drm/gem: make drm_gem_object_handle_unreference_unlocked static
> drm/gem: create drm_gem_dumb_destroy
> drm/prime: use proper pointer in drm_gem_prime_handle_to_fd
> drm/prime: shrink critical section protected by prime lock
> drm/prime: clarify logic a bit in drm_gem_prime_fd_to_handle
> drm/gem: switch dev->object_name_lock to a mutex
> drm/gem: completely close gem_open vs. gem_close races
> drm/prime: proper locking+refcounting for obj->dma_buf link
> drm/prime: Simplify drm_gem_remove_prime_handles
>
> drivers/gpu/drm/ast/ast_drv.c | 2 +-
> drivers/gpu/drm/ast/ast_drv.h | 3 -
> drivers/gpu/drm/ast/ast_main.c | 7 --
> drivers/gpu/drm/cirrus/cirrus_drv.c | 2 +-
> drivers/gpu/drm/cirrus/cirrus_drv.h | 3 -
> drivers/gpu/drm/cirrus/cirrus_main.c | 7 --
> drivers/gpu/drm/drm_fops.c | 1 +
> drivers/gpu/drm/drm_gem.c | 192
> ++++++++++++++++++++---------
> drivers/gpu/drm/drm_gem_cma_helper.c | 10 --
> drivers/gpu/drm/drm_info.c | 2 +-
> drivers/gpu/drm/drm_prime.c | 96 ++++++++++-----
> drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 23 +---
> drivers/gpu/drm/exynos/exynos_drm_drv.c | 2 +-
> drivers/gpu/drm/exynos/exynos_drm_gem.c | 22 +---
> drivers/gpu/drm/exynos/exynos_drm_gem.h | 9 --
> drivers/gpu/drm/gma500/gem.c | 17 ---
> drivers/gpu/drm/gma500/psb_drv.c | 2 +-
> drivers/gpu/drm/gma500/psb_drv.h | 2 -
> drivers/gpu/drm/i915/i915_drv.c | 2 +-
> drivers/gpu/drm/i915/i915_drv.h | 2 -
> drivers/gpu/drm/i915/i915_gem.c | 7 --
> drivers/gpu/drm/i915/i915_gem_dmabuf.c | 34 +++--
> drivers/gpu/drm/mgag200/mgag200_drv.c | 2 +-
> drivers/gpu/drm/mgag200/mgag200_drv.h | 3 -
> drivers/gpu/drm/mgag200/mgag200_main.c | 7 --
> drivers/gpu/drm/nouveau/nouveau_display.c | 7 --
> drivers/gpu/drm/nouveau/nouveau_display.h | 2 -
> drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +-
> drivers/gpu/drm/omapdrm/omap_drv.c | 2 +-
> drivers/gpu/drm/omapdrm/omap_drv.h | 2 -
> drivers/gpu/drm/omapdrm/omap_gem.c | 15 ---
> drivers/gpu/drm/qxl/qxl_drv.c | 2 +-
> drivers/gpu/drm/qxl/qxl_drv.h | 3 -
> drivers/gpu/drm/qxl/qxl_dumb.c | 7 --
> drivers/gpu/drm/radeon/radeon.h | 3 -
> drivers/gpu/drm/radeon/radeon_drv.c | 5 +-
> drivers/gpu/drm/radeon/radeon_gem.c | 7 --
> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 +-
> drivers/gpu/drm/shmobile/shmob_drm_drv.c | 2 +-
> drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +-
> drivers/gpu/drm/udl/udl_drv.c | 2 +-
> drivers/gpu/drm/udl/udl_drv.h | 2 -
> drivers/gpu/drm/udl/udl_gem.c | 6 -
> drivers/gpu/host1x/drm/drm.c | 2 +-
> drivers/gpu/host1x/drm/gem.c | 6 -
> drivers/gpu/host1x/drm/gem.h | 2 -
> drivers/staging/imx-drm/imx-drm-core.c | 2 +-
> include/drm/drmP.h | 94 +++++++-------
> include/drm/drm_gem_cma_helper.h | 8 --
> 49 files changed, 279 insertions(+), 367 deletions(-)
>
> --
> 1.8.3.2
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20130727/1ca8db5f/attachment-0001.html>
More information about the dri-devel
mailing list