On Fri, Jul 06, 2018 at 10:02:32AM +0200, Christian König wrote:
> 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 <[email protected]>
> >
> >Signed-off-by: Andrey Grodzovsky <[email protected]>
> >---
> >  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).
> 

Is that mean we must also move root bo to relocated list like other PD/PT
BOs, then we do the kmap under amdgpu_vm_update_directories for updating
pte with mmio from pcie?

Why we avoid kernel type bo to move evicted list if they are not in
preferred_domains here? You know we checked (bo->preferred_domains &
amdgpu_mem_type_to_domain(bo->tbo.mem.mem_type)) last step.

Thanks,
Ray

> Additional to that the now superfluous move in
> amdgpu_vm_alloc_levels() can be removed.
> 
> Christian.
> 
> >  }
> >  /**
> 
> _______________________________________________
> amd-gfx mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to