[PATCH v2] drm/amdgpu: Verify root PD is mapped into kernel address space.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 05.07.2018 um 20:56 schrieb Andrey Grodzovsky:
> Problem: When PD/PT update made by CPU root PD was not yet mapped causing
> page fault.
>
> Fix: Verify root PD is mapped into CPU address space.
>
> v2:
> Make sure that we add the root PD to the relocated list
> since then it's get mapped into CPU address space bt default
> in amdgpu_vm_update_directories.
>
> Link: https://bugs.freedesktop.org/show_bug.cgi?id=107065
> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
>
> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 845f73a..1a8caf1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -156,6 +156,9 @@ static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
>   		return;
>   	list_add_tail(&base->bo_list, &bo->va);
>   
> +	if (bo->tbo.type == ttm_bo_type_kernel)
> +		list_move(&base->vm_status, &vm->relocated);
> +
>   	if (bo->tbo.resv != vm->root.base.bo->tbo.resv)
>   		return;
>   
> @@ -168,7 +171,8 @@ static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
>   	 * is currently evicted. add the bo to the evicted list to make sure it
>   	 * is validated on next vm use to avoid fault.
>   	 * */
> -	list_move_tail(&base->vm_status, &vm->evicted);
> +	if (bo->tbo.type != ttm_bo_type_kernel)
> +		list_move_tail(&base->vm_status, &vm->evicted);

You need to drop that chunk, the evicted state supersedes the relocated 
state (e.g. when they are validated they move from evicted to relocated).

Additional to that the now superfluous move in amdgpu_vm_alloc_levels() 
can be removed.

Christian.

>   }
>   
>   /**



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux