]> git.baikalelectronics.ru Git - kernel.git/commit
drm/vram: Add kmap ref-counting to GEM VRAM objects
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 6 Sep 2019 12:20:53 +0000 (14:20 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 9 Sep 2019 10:51:31 +0000 (12:51 +0200)
commit4ef0ff6843bef11cf14a37f0e1161ae5c0098a06
tree63662d6aecee637b866a226e64e89384df408761
parent430efb8fae3d22cf247aa2631e6742cbdfad56e7
drm/vram: Add kmap ref-counting to GEM VRAM objects

The kmap and kunmap operations of GEM VRAM buffers can now be called
in interleaving pairs. The first call to drm_gem_vram_kmap() maps the
buffer's memory to kernel address space and the final call to
drm_gem_vram_kunmap() unmaps the memory. Intermediate calls to these
functions increment or decrement a reference counter.

This change allows for keeping buffer memory mapped for longer and
minimizes the amount of changes to TLB, page tables, etc.

v4:
* lock in kmap()/kunmap() with ttm_bo_reserve()

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reported-and-tested-by: Davidlohr Bueso <dbueso@suse.de>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20190906122056.32018-2-tzimmermann@suse.de
drivers/gpu/drm/drm_gem_vram_helper.c
include/drm/drm_gem_vram_helper.h