[PATCH 1/2] drm/ttm: ensure ttm_mem_io_free is called on bo destruction

Thomas Hellstrom thomas at shipmail.org
Thu Nov 4 04:24:29 PDT 2010


On 11/04/2010 01:03 AM, Ben Skeggs wrote:
> From: Ben Skeggs<bskeggs at redhat.com>
>
> Nouveau will start to use ttm_mem_io_reserve to allocate BAR VM space
> for VRAM mappings, and without this call GPU address space gets leaked.
>
> Signed-off-by: Ben Skeggs<bskeggs at redhat.com>
> ---
>   drivers/gpu/drm/ttm/ttm_bo.c |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index dfa163b..c373cf9 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -472,6 +472,7 @@ static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo)
>   	wake_up_all(&bo->event_queue);
>   	spin_unlock(&glob->lru_lock);
>
> +	ttm_mem_io_free(bo->bdev,&tmp_mem);
>   	ttm_bo_mem_put(bo,&tmp_mem);
>   }
>
>    
Ideally this should be done after the last VMA is closed, but since we 
don't count VMAs currently. This place is just as good.

However, the mem members are strictly protected by bo::reserve, so we 
should place this before we unreserve in the same function, Please use 
drm-next where ttm_bo_mem_put() is placed just before the unreserve as well.


/Thomas




More information about the dri-devel mailing list