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 <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). > 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 > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx