[PATCH 4/5] drm/amdgpu: use amdgpu_bo_create_user() for when possible

Christian König christian.koenig at amd.com
Tue Mar 9 12:40:29 UTC 2021


Am 09.03.21 um 09:46 schrieb Nirmoy Das:
> Use amdgpu_bo_create_user() for all the BO allocations for
> ttm_bo_type_device type.
>
> v2: include amdgpu_amdkfd_alloc_gws() as well it calls amdgpu_bo_create()
>      for  ttm_bo_type_device
>
> CC: felix.kuehling at amd.com
> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>

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

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 4 +++-
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c    | 4 +++-
>   2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> index 2151fcb1e19d..de6b3ca64b45 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> @@ -317,6 +317,7 @@ int amdgpu_amdkfd_alloc_gws(struct kgd_dev *kgd, size_t size,
>   {
>   	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
>   	struct amdgpu_bo *bo = NULL;
> +	struct amdgpu_bo_user *ubo;
>   	struct amdgpu_bo_param bp;
>   	int r;
>
> @@ -329,13 +330,14 @@ int amdgpu_amdkfd_alloc_gws(struct kgd_dev *kgd, size_t size,
>   	bp.resv = NULL;
>   	bp.bo_ptr_size = sizeof(struct amdgpu_bo);
>
> -	r = amdgpu_bo_create(adev, &bp, &bo);
> +	r = amdgpu_bo_create_user(adev, &bp, &ubo);
>   	if (r) {
>   		dev_err(adev->dev,
>   			"failed to allocate gws BO for amdkfd (%d)\n", r);
>   		return r;
>   	}
>
> +	bo = &ubo->bo;
>   	*mem_obj = bo;
>   	return 0;
>   }
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index bca260d56f76..311bcdc59eda 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -58,6 +58,7 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size,
>   			     struct drm_gem_object **obj)
>   {
>   	struct amdgpu_bo *bo;
> +	struct amdgpu_bo_user *ubo;
>   	struct amdgpu_bo_param bp;
>   	int r;
>
> @@ -73,10 +74,11 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, unsigned long size,
>   	bp.domain = initial_domain;
>   	bp.bo_ptr_size = sizeof(struct amdgpu_bo);
>
> -	r = amdgpu_bo_create(adev, &bp, &bo);
> +	r = amdgpu_bo_create_user(adev, &bp, &ubo);
>   	if (r)
>   		return r;
>
> +	bo = &ubo->bo;
>   	*obj = &bo->tbo.base;
>   	(*obj)->funcs = &amdgpu_gem_object_funcs;
>
> --
> 2.30.1
>



More information about the amd-gfx mailing list