Daniel Vetter
2021-Apr-08 11:19 UTC
[Nouveau] [PATCH 0/8] drm: Clean up mmap for TTM-based GEM drivers
On Tue, Apr 06, 2021 at 11:08:55AM +0200, Thomas Zimmermann wrote:> Implement mmap via struct drm_gem_object_functions.mmap for amdgpu, > radeon and nouveau. This allows for using common DRM helpers for > the mmap-related callbacks in struct file_operations and struct > drm_driver. The drivers have their own vm_ops, which are now set > automatically by the DRM core functions. The code in each driver's > verify_access becomes part of the driver's new mmap implementation.Is there anything left in there which isn't already handled by the gem checks? Iirc there was some custom limit for ttm drivers once to allow co-existing with ums drivers, but that's never really been a thing since forever ... -Daniel> > With the GEM drivers converted, vmwgfx is the only user of > ttm_bo_mmap() and related infrastructure. So move everything into > vmwgfx and delete the rsp code from TTM. > > This touches several drivers. Preferably everything would be merged > at once via drm-misc-next. > > Thomas Zimmermann (8): > drm/ttm: Don't override vm_ops callbacks, if set > drm/amdgpu: Remove unused function amdgpu_bo_fbdev_mmap() > drm/amdgpu: Implement mmap as GEM object function > drm/radeon: Implement mmap as GEM object function > drm/nouveau: Implement mmap as GEM object function > drm/vmwgfx: Inline ttm_bo_mmap() into vmwgfx driver > drm/vmwgfx: Inline vmw_verify_access() > drm/ttm: Remove ttm_bo_mmap() and friends > > drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 46 ------------- > drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h | 2 - > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 64 +++++++++++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 19 ------ > drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 - > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 71 --------------------- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 1 - > drivers/gpu/drm/nouveau/nouveau_bo.c | 10 --- > drivers/gpu/drm/nouveau/nouveau_drm.c | 3 +- > drivers/gpu/drm/nouveau/nouveau_gem.c | 36 +++++++++++ > drivers/gpu/drm/nouveau/nouveau_ttm.c | 49 -------------- > drivers/gpu/drm/nouveau/nouveau_ttm.h | 1 - > drivers/gpu/drm/radeon/radeon_drv.c | 3 +- > drivers/gpu/drm/radeon/radeon_gem.c | 52 +++++++++++++++ > drivers/gpu/drm/radeon/radeon_ttm.c | 65 ------------------- > drivers/gpu/drm/radeon/radeon_ttm.h | 1 - > drivers/gpu/drm/ttm/ttm_bo_vm.c | 60 ++--------------- > drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 9 --- > drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c | 51 ++++++++++++++- > include/drm/ttm/ttm_bo_api.h | 13 ---- > include/drm/ttm/ttm_device.h | 15 ----- > 22 files changed, 212 insertions(+), 365 deletions(-) > > -- > 2.30.2 >-- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch
Thomas Zimmermann
2021-Apr-08 11:38 UTC
[Nouveau] [PATCH 0/8] drm: Clean up mmap for TTM-based GEM drivers
Hi Am 08.04.21 um 13:19 schrieb Daniel Vetter:> On Tue, Apr 06, 2021 at 11:08:55AM +0200, Thomas Zimmermann wrote: >> Implement mmap via struct drm_gem_object_functions.mmap for amdgpu, >> radeon and nouveau. This allows for using common DRM helpers for >> the mmap-related callbacks in struct file_operations and struct >> drm_driver. The drivers have their own vm_ops, which are now set >> automatically by the DRM core functions. The code in each driver's >> verify_access becomes part of the driver's new mmap implementation. > > Is there anything left in there which isn't already handled by the gem > checks? Iirc there was some custom limit for ttm drivers once to allow > co-existing with ums drivers, but that's never really been a thing since > forever ...Vmwgfx does its own thing. radeon and amdgpu have some checks (userptr). But it's all very small. The general tests will be in the GEM helpers. Best regards Thomas> -Daniel > >> >> With the GEM drivers converted, vmwgfx is the only user of >> ttm_bo_mmap() and related infrastructure. So move everything into >> vmwgfx and delete the rsp code from TTM. >> >> This touches several drivers. Preferably everything would be merged >> at once via drm-misc-next. >> >> Thomas Zimmermann (8): >> drm/ttm: Don't override vm_ops callbacks, if set >> drm/amdgpu: Remove unused function amdgpu_bo_fbdev_mmap() >> drm/amdgpu: Implement mmap as GEM object function >> drm/radeon: Implement mmap as GEM object function >> drm/nouveau: Implement mmap as GEM object function >> drm/vmwgfx: Inline ttm_bo_mmap() into vmwgfx driver >> drm/vmwgfx: Inline vmw_verify_access() >> drm/ttm: Remove ttm_bo_mmap() and friends >> >> drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 46 ------------- >> drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h | 2 - >> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +- >> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 64 +++++++++++++++++++ >> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 19 ------ >> drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 - >> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 71 --------------------- >> drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 1 - >> drivers/gpu/drm/nouveau/nouveau_bo.c | 10 --- >> drivers/gpu/drm/nouveau/nouveau_drm.c | 3 +- >> drivers/gpu/drm/nouveau/nouveau_gem.c | 36 +++++++++++ >> drivers/gpu/drm/nouveau/nouveau_ttm.c | 49 -------------- >> drivers/gpu/drm/nouveau/nouveau_ttm.h | 1 - >> drivers/gpu/drm/radeon/radeon_drv.c | 3 +- >> drivers/gpu/drm/radeon/radeon_gem.c | 52 +++++++++++++++ >> drivers/gpu/drm/radeon/radeon_ttm.c | 65 ------------------- >> drivers/gpu/drm/radeon/radeon_ttm.h | 1 - >> drivers/gpu/drm/ttm/ttm_bo_vm.c | 60 ++--------------- >> drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 9 --- >> drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c | 51 ++++++++++++++- >> include/drm/ttm/ttm_bo_api.h | 13 ---- >> include/drm/ttm/ttm_device.h | 15 ----- >> 22 files changed, 212 insertions(+), 365 deletions(-) >> >> -- >> 2.30.2 >> >-- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 N?rnberg, Germany (HRB 36809, AG N?rnberg) Gesch?ftsf?hrer: Felix Imend?rffer -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 840 bytes Desc: OpenPGP digital signature URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20210408/0ea1c816/attachment.sig>