[PATCH 1/7] drm/amdgpu: clear PDs/PTs only after initializing them

Kuehling, Felix Felix.Kuehling at amd.com
Wed Feb 20 00:43:51 UTC 2019


I commented on patches 2 and 3 in separate emails. The rest of the 
series is Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>


On 2019-02-19 8:40 a.m., Christian König wrote:
> Clear the VM PDs/PTs only after initializing all the structures.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 942b5ebc6dc2..12d51d96491e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -945,10 +945,6 @@ int amdgpu_vm_alloc_pts(struct amdgpu_device *adev,
>   		if (r)
>   			return r;
>   
> -		r = amdgpu_vm_clear_bo(adev, vm, pt, cursor.level, ats);
> -		if (r)
> -			goto error_free_pt;
> -
>   		if (vm->use_cpu_for_update) {
>   			r = amdgpu_bo_kmap(pt, NULL);
>   			if (r)
> @@ -961,6 +957,10 @@ int amdgpu_vm_alloc_pts(struct amdgpu_device *adev,
>   		pt->parent = amdgpu_bo_ref(cursor.parent->base.bo);
>   
>   		amdgpu_vm_bo_base_init(&entry->base, vm, pt);
> +
> +		r = amdgpu_vm_clear_bo(adev, vm, pt, cursor.level, ats);
> +		if (r)
> +			goto error_free_pt;
>   	}
>   
>   	return 0;
> @@ -3031,13 +3031,14 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
>   	if (r)
>   		goto error_unreserve;
>   
> +	amdgpu_vm_bo_base_init(&vm->root.base, vm, root);
> +
>   	r = amdgpu_vm_clear_bo(adev, vm, root,
>   			       adev->vm_manager.root_level,
>   			       vm->pte_support_ats);
>   	if (r)
>   		goto error_unreserve;
>   
> -	amdgpu_vm_bo_base_init(&vm->root.base, vm, root);
>   	amdgpu_bo_unreserve(vm->root.base.bo);
>   
>   	if (pasid) {


More information about the amd-gfx mailing list