[PATCH v3 1/1] drm/amdkfd: use allowed domain for vmbo validation

Christian König christian.koenig at amd.com
Tue Jun 8 13:08:24 UTC 2021


Am 08.06.21 um 15:06 schrieb Nirmoy Das:
> Fixes handling when page tables are in system memory.
>
> v3: remove struct amdgpu_vm_parser.
> v2: remove unwanted variable.
>      change amdgpu_amdkfd_validate instead of amdgpu_amdkfd_bo_validate.
>
> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>

Reviewed-by: Christian König <christian.koenig at amd.com> but Felix should 
probably take a look as well.

> ---
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c  | 21 ++++---------------
>   1 file changed, 4 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> index d6cb7cf76623..016815b7a773 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
> @@ -47,12 +47,6 @@ static struct {
>   	spinlock_t mem_limit_lock;
>   } kfd_mem_limit;
>
> -/* Struct used for amdgpu_amdkfd_bo_validate */
> -struct amdgpu_vm_parser {
> -	uint32_t        domain;
> -	bool            wait;
> -};
> -
>   static const char * const domain_bit_to_string[] = {
>   		"CPU",
>   		"GTT",
> @@ -348,11 +342,9 @@ static int amdgpu_amdkfd_bo_validate(struct amdgpu_bo *bo, uint32_t domain,
>   	return ret;
>   }
>
> -static int amdgpu_amdkfd_validate(void *param, struct amdgpu_bo *bo)
> +static int amdgpu_amdkfd_validate_vm_bo(void *_unused, struct amdgpu_bo *bo)
>   {
> -	struct amdgpu_vm_parser *p = param;
> -
> -	return amdgpu_amdkfd_bo_validate(bo, p->domain, p->wait);
> +	return amdgpu_amdkfd_bo_validate(bo, bo->allowed_domains, false);
>   }
>
>   /* vm_validate_pt_pd_bos - Validate page table and directory BOs
> @@ -366,20 +358,15 @@ static int vm_validate_pt_pd_bos(struct amdgpu_vm *vm)
>   {
>   	struct amdgpu_bo *pd = vm->root.base.bo;
>   	struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
> -	struct amdgpu_vm_parser param;
>   	int ret;
>
> -	param.domain = AMDGPU_GEM_DOMAIN_VRAM;
> -	param.wait = false;
> -
> -	ret = amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_amdkfd_validate,
> -					&param);
> +	ret = amdgpu_vm_validate_pt_bos(adev, vm, amdgpu_amdkfd_validate_vm_bo, NULL);
>   	if (ret) {
>   		pr_err("failed to validate PT BOs\n");
>   		return ret;
>   	}
>
> -	ret = amdgpu_amdkfd_validate(&param, pd);
> +	ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd);
>   	if (ret) {
>   		pr_err("failed to validate PD\n");
>   		return ret;
> --
> 2.31.1
>



More information about the amd-gfx mailing list