[PATCH] drm/radeon: only warn once in radeon_ttm_bo_destroy if va list not empty

Christian König deathsimple at vodafone.de
Thu Apr 27 12:14:06 UTC 2017


Am 27.04.2017 um 12:58 schrieb Julien Isorce:
> But always print an error.
>
> Encountered a dozen of exact same backtraces when mesa's
> pb_cache_release_all_buffers is called after that a gpu reset failed.
>
> An other approach would be to check rdev->vm_manager.enabled instead
> of rdev->accel_working in the other function radeon_gem_object_close.
> But it will only work if the vm_manager succeeded to be re-enabled
> after a gpu reset.
>
> bug: https://bugs.freedesktop.org/show_bug.cgi?id=96271
>
> Signed-off-by: Julien Isorce <jisorce at oblong.com>
> ---
>   drivers/gpu/drm/radeon/radeon_object.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> index bec2ec0..76cc039 100644
> --- a/drivers/gpu/drm/radeon/radeon_object.c
> +++ b/drivers/gpu/drm/radeon/radeon_object.c
> @@ -81,7 +81,13 @@ static void radeon_ttm_bo_destroy(struct ttm_buffer_object *tbo)
>   	list_del_init(&bo->list);
>   	mutex_unlock(&bo->rdev->gem.mutex);
>   	radeon_bo_clear_surface_reg(bo);
> -	WARN_ON(!list_empty(&bo->va));
> +
> +	if (!list_empty(&bo->va)) {
> +		DRM_ERROR("Virtual address list not empty, accel: %d\n",
> +			  bo->rdev->accel_working);
> +		WARN_ON_ONCE(1);
> +	}
> +

The message is superfluous if we initially started up the GPU and found 
later that we can't get GFX working again after a GPU reset it is pretty 
much impossible to continue.

I would just change the "WARN_ON(!list_empty(&bo->va));" to a 
"WARN_ON_ONCE(!list_empty(&bo->va));".

Regards,
Christian.

>   	drm_gem_object_release(&bo->gem_base);
>   	kfree(bo);
>   }




More information about the amd-gfx mailing list