[PATCH v4 00/17] drm: add gem ttm helpers, rework mmap workflow.
Daniel Vetter
daniel at ffwll.ch
Mon Aug 26 09:04:30 UTC 2019
On Mon, Aug 26, 2019 at 10:47 AM Thomas Zimmermann <tzimmermann at suse.de> wrote:
>
> Hi,
>
> I would have liked to get some context on the purpose of GEM TTM
> helpers. Is is just share-able code?
>
> From my understanding VRAM helpers _are_ GEM TTM helpers. And they where
> re-named to VRAM helpers, so that the naming is independent from the
> implementation (and vice versa).
The point of the vram helpers was to have something to manage vram for
dumb display-only drivers. It's prep work for Thomas Zimmermann's plan
to port a pile of fbdev drivers over. So fairly intentionally limit in
the use-cases it supports to keep it simple. Kinda similar to how the
simple display pipe helper is designed on the kms side of things.
> Wrt qxl, would it be possible to convert the driver over to VRAM helpers
> entirely? I noticed a memory region named PRIV. Could we add this to
> VRAM helpers?
For both simple display pipe and vram helpers I'd say if your use-case
goes beyond simple dumb display-only driver, it's probably better to
have something more flexible.
Also this patch series also adjust vram helpers, and I think it has a
slightly different goal: Just aligning mmap paths a bit more between
ttm and not-ttm based drivers. That's also what motivated my lockdep
series, but from a locking rules instead of from a code-sharing point
of view. Seems like a good goal, details might need adjustment.
-Daniel
>
> Best regards
> Thomas
>
>
> Am 08.08.19 um 15:44 schrieb Gerd Hoffmann:
> >
> >
> > Gerd Hoffmann (17):
> > drm/ttm: turn ttm_bo_device.vma_manager into a pointer
> > drm/ttm: add gem_ttm_bo_device_init()
> > drm/vram: switch vram helpers to the new gem_ttm_bo_device_init()
> > drm/qxl: switch qxl to the new gem_ttm_bo_device_init()
> > drm: add mmap() to drm_gem_object_funcs
> > drm/shmem: switch shmem helper to drm_gem_object_funcs->mmap
> > drm/shmem: drop DEFINE_DRM_GEM_SHMEM_FOPS
> > drm/ttm: factor out ttm_bo_mmap_vma_setup
> > drm/ttm: add drm_gem_ttm_mmap()
> > drm/vram: switch vram helper to drm_gem_object_funcs->mmap codepath
> > drm/vram: drop verify_access
> > drm: drop DRM_VRAM_MM_FILE_OPERATIONS
> > drm/qxl: use drm_gem_object_funcs
> > drm/qxl: drop qxl_ttm_fault
> > drm/qxl: switch qxl to drm_gem_object_funcs->mmap codepath
> > drm/qxl: drop verify_access
> > drm/qxl: use DEFINE_DRM_GEM_FOPS()
> >
> > drivers/gpu/drm/qxl/qxl_drv.h | 5 +-
> > drivers/gpu/drm/qxl/qxl_object.h | 5 --
> > include/drm/drm_gem.h | 9 +++
> > include/drm/drm_gem_shmem_helper.h | 28 +--------
> > include/drm/drm_gem_ttm_helper.h | 32 ++++++++++
> > include/drm/drm_gem_vram_helper.h | 9 +--
> > include/drm/drm_vram_mm_helper.h | 27 ---------
> > include/drm/ttm/ttm_bo_api.h | 8 +++
> > include/drm/ttm/ttm_bo_driver.h | 11 +++-
> > drivers/gpu/drm/ast/ast_drv.c | 5 +-
> > drivers/gpu/drm/bochs/bochs_drv.c | 5 +-
> > drivers/gpu/drm/cirrus/cirrus.c | 2 +-
> > drivers/gpu/drm/drm_gem.c | 6 ++
> > drivers/gpu/drm/drm_gem_shmem_helper.c | 18 +++---
> > drivers/gpu/drm/drm_gem_ttm_helper.c | 47 +++++++++++++++
> > drivers/gpu/drm/drm_gem_vram_helper.c | 53 +----------------
> > drivers/gpu/drm/drm_vram_mm_helper.c | 44 +-------------
> > .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 6 +-
> > drivers/gpu/drm/mgag200/mgag200_drv.c | 5 +-
> > drivers/gpu/drm/panfrost/panfrost_drv.c | 2 +-
> > drivers/gpu/drm/panfrost/panfrost_gem.c | 1 +
> > drivers/gpu/drm/qxl/qxl_drv.c | 19 +-----
> > drivers/gpu/drm/qxl/qxl_dumb.c | 17 ------
> > drivers/gpu/drm/qxl/qxl_ioctl.c | 5 +-
> > drivers/gpu/drm/qxl/qxl_object.c | 13 +++++
> > drivers/gpu/drm/qxl/qxl_ttm.c | 58 ++-----------------
> > drivers/gpu/drm/ttm/ttm_bo.c | 29 +++++++---
> > drivers/gpu/drm/ttm/ttm_bo_vm.c | 53 +++++++++--------
> > drivers/gpu/drm/v3d/v3d_bo.c | 1 +
> > drivers/gpu/drm/v3d/v3d_drv.c | 2 +-
> > drivers/gpu/drm/vboxvideo/vbox_drv.c | 5 +-
> > Documentation/gpu/drm-mm.rst | 12 ++++
> > drivers/gpu/drm/Kconfig | 8 +++
> > drivers/gpu/drm/Makefile | 3 +
> > drivers/gpu/drm/qxl/Kconfig | 1 +
> > 35 files changed, 231 insertions(+), 323 deletions(-)
> > create mode 100644 include/drm/drm_gem_ttm_helper.h
> > create mode 100644 drivers/gpu/drm/drm_gem_ttm_helper.c
> >
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
> GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
> HRB 21284 (AG Nürnberg)
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the dri-devel
mailing list