[PATCH v2] drm/amdgpu: Verify root PD is mapped into kernel address space.
Christian König
ckoenig.leichtzumerken at gmail.com
Fri Jul 6 08:02:32 UTC 2018
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.
> }
>
> /**
More information about the amd-gfx
mailing list