[PATCH 28/65] drm/ttm: WARN_ON non-empty lru when disabling a resource manager

Christian König christian.koenig at amd.com
Fri Oct 23 14:54:18 UTC 2020


Am 23.10.20 um 14:21 schrieb Daniel Vetter:
> ttm_resource_manager->use_type is only used for runtime changes by
> vmwgfx. I think ideally we'd push this functionality into drivers -
> ttm itself does not provide any locking to guarantee this is safe, so
> the only way this can work at runtime is if the driver does provide
> additional guarantees. vwmgfx does that through the
> vmw_private->reservation_sem. Therefore supporting this feature in
> shared code feels a bit misplaced.
>
> As a first step add a WARN_ON to make sure the resource manager is
> empty. This is just to make sure I actually understand correctly what
> vmwgfx is doing, and to make sure an eventual subsequent refactor
> doesn't break anything.
>
> This check should also be useful for other drivers, to make sure they
> haven't leaked anything.
>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> Cc: Christian Koenig <christian.koenig at amd.com>
> Cc: Huang Rui <ray.huang at amd.com>

I'm pretty sure that this will trigger for vmwgfx. But that's what it is 
supposed to do, isn't it?

Reviewed-by: Christian König <christian.koenig at amd.com>

> ---
>   include/drm/ttm/ttm_resource.h | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/include/drm/ttm/ttm_resource.h b/include/drm/ttm/ttm_resource.h
> index f48a70d39ac5..789ec477b607 100644
> --- a/include/drm/ttm/ttm_resource.h
> +++ b/include/drm/ttm/ttm_resource.h
> @@ -191,6 +191,10 @@ struct ttm_resource {
>   static inline void
>   ttm_resource_manager_set_used(struct ttm_resource_manager *man, bool used)
>   {
> +	int i;
> +
> +	for (i = 0; i < TTM_MAX_BO_PRIORITY; i++)
> +		WARN_ON(!list_empty(&man->lru[i]));
>   	man->use_type = used;
>   }
>   



More information about the dri-devel mailing list