[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,
> - ¶m);
> + 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(¶m, 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