drm/gpuvm: Let drm_gpuvm_bo_put() report when the vm_bo object is destroyed
authorBoris Brezillon <boris.brezillon@collabora.com>
Mon, 4 Dec 2023 15:14:06 +0000 (16:14 +0100)
committerBoris Brezillon <boris.brezillon@collabora.com>
Tue, 5 Dec 2023 10:43:57 +0000 (11:43 +0100)
commitc50a291d621aa7abaa27b05f56d450a388b64948
treed78045005c2c019b75d727149c5a55b1f9d30a68
parent157ad4ccff0754d9eb57d3a4fa31264ee6e9716b
drm/gpuvm: Let drm_gpuvm_bo_put() report when the vm_bo object is destroyed

Some users need to release resources attached to the vm_bo object when
it's destroyed. In Panthor's case, we need to release the pin ref so
BO pages can be returned to the system when all GPU mappings are gone.

This could be done through a custom drm_gpuvm::vm_bo_free() hook, but
this has all sort of locking implications that would force us to expose
a drm_gem_shmem_unpin_locked() helper, not to mention the fact that
having a ::vm_bo_free() implementation without a ::vm_bo_alloc() one
seems odd. So let's keep things simple, and extend drm_gpuvm_bo_put()
to report when the object is destroyed.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Danilo Krummrich <dakr@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231204151406.1977285-1-boris.brezillon@collabora.com
drivers/gpu/drm/drm_gpuvm.c
include/drm/drm_gpuvm.h