[PATCH 11/11] drm/amdgpu: enable GTT PD/PT for raven

Huang Rui ray.huang at amd.com
Thu Aug 23 12:54:22 UTC 2018


On Wed, Aug 22, 2018 at 11:44:04AM -0400, Andrey Grodzovsky wrote:
> 
> 
> On 08/22/2018 11:05 AM, Christian König wrote:
> >Should work on Vega10 as well, but with an obvious performance hit.
> >
> >Older APUs can be enabled as well, but will probably be more work.

Raven's VRAM is actually the system memory. May I know the benefit if we
switch the PD/PT BO from vram to gart?

> >
> >Signed-off-by: Christian König <christian.koenig at amd.com>
> >---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 11 ++++++++++-
> >  1 file changed, 10 insertions(+), 1 deletion(-)
> >
> >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> >index 928fdae0dab4..670a42729f88 100644
> >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> >@@ -308,6 +308,7 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
> >  			list_move(&bo_base->vm_status, &vm->moved);
> >  			spin_unlock(&vm->moved_lock);
> >  		} else {
> >+			amdgpu_ttm_alloc_gart(&bo->tbo);
> 
> Looks like you forgot to check for return value here.
> 

Yes, the same comment with me. 

Thanks,
Ray

> Andrey
> 
> >  			list_move(&bo_base->vm_status, &vm->relocated);
> >  		}
> >  	}
> >@@ -396,6 +397,10 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
> >  	if (r)
> >  		goto error;
> >+	r = amdgpu_ttm_alloc_gart(&bo->tbo);
> >+	if (r)
> >+		return r;
> >+
> >  	r = amdgpu_job_alloc_with_ib(adev, 64, &job);
> >  	if (r)
> >  		goto error;
> >@@ -461,7 +466,11 @@ static void amdgpu_vm_bo_param(struct amdgpu_device *adev, struct amdgpu_vm *vm,
> >  	bp->size = amdgpu_vm_bo_size(adev, level);
> >  	bp->byte_align = AMDGPU_GPU_PAGE_SIZE;
> >  	bp->domain = AMDGPU_GEM_DOMAIN_VRAM;
> >-	bp->flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
> >+	if (bp->size <= PAGE_SIZE && adev->asic_type == CHIP_RAVEN)
> >+		bp->domain |= AMDGPU_GEM_DOMAIN_GTT;
> >+	bp->domain = amdgpu_bo_get_preferred_pin_domain(adev, bp->domain);
> >+	bp->flags = AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS |
> >+		AMDGPU_GEM_CREATE_CPU_GTT_USWC;
> >  	if (vm->use_cpu_for_update)
> >  		bp->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
> >  	else
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list