Re: [PATCH v3 1/1] drm/amdkfd: use allowed domain for vmbo validation
Am 2021-06-08 um 9:08 a.m. schrieb Christian König: > 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 > > Reviewed-by: Christian König but Felix > should probably take a look as well. Reviewed-by: Felix Kuehling Thanks. > >> --- >> .../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, >> - ); >> + 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(, pd); >> + ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd); >> if (ret) { >> pr_err("failed to validate PD\n"); >> return ret; >> -- >> 2.31.1 >> > ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH v3 1/1] drm/amdkfd: use allowed domain for vmbo validation
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 Reviewed-by: Christian König 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_tdomain; - boolwait; -}; - 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, - ); + 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(, pd); + ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd); if (ret) { pr_err("failed to validate PD\n"); return ret; -- 2.31.1 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
[PATCH v3 1/1] drm/amdkfd: use allowed domain for vmbo validation
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 --- .../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_tdomain; - boolwait; -}; - 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, - ); + 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(, pd); + ret = amdgpu_amdkfd_validate_vm_bo(NULL, pd); if (ret) { pr_err("failed to validate PD\n"); return ret; -- 2.31.1 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx