[PATCH 3/5] drm/ttm: Add release_notify callback to ttm_bo_driver
Kuehling, Felix
Felix.Kuehling at amd.com
Wed Jul 10 22:02:57 UTC 2019
[adding dri-devel]
On 2019-07-09 11:59 p.m., Kuehling, Felix wrote:
> This notifies the driver that a BO is about to be released.
>
> Releasing a BO also invokes the move_notify callback from
> ttm_bo_cleanup_memtype_use, but that happens too late for anything
> that would add fences to the BO and require a delayed delete.
>
> Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com>
> ---
> drivers/gpu/drm/ttm/ttm_bo.c | 3 +++
> include/drm/ttm/ttm_bo_driver.h | 10 ++++++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 58c403eda04e..2070e8a57ed8 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -671,6 +671,9 @@ static void ttm_bo_release(struct kref *kref)
> struct ttm_bo_device *bdev = bo->bdev;
> struct ttm_mem_type_manager *man = &bdev->man[bo->mem.mem_type];
>
> + if (bo->bdev->driver->release_notify)
> + bo->bdev->driver->release_notify(bo);
> +
> drm_vma_offset_remove(&bdev->vma_manager, &bo->vma_node);
> ttm_mem_io_lock(man, false);
> ttm_mem_io_free_vm(bo);
> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
> index c9b8ba492f24..d69121c43e58 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -390,6 +390,16 @@ struct ttm_bo_driver {
> * notify driver that a BO was deleted from LRU.
> */
> void (*del_from_lru_notify)(struct ttm_buffer_object *bo);
> +
> + /**
> + * Notify the driver that we're about to release a BO
> + *
> + * @bo: BO that is about to be released
> + *
> + * Gives the driver a chance to do any cleanup, including
> + * adding fences that may force a delayed delete
> + */
> + void (*release_notify)(struct ttm_buffer_object *bo);
> };
>
> /**
More information about the dri-devel
mailing list