Patches 1-3 are Reviewed-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> About the direct mode, that removes a bunch of synchronization, so it must make some assumptions about the state of the page tables. What makes that safe? Is it safe to use direct-mode on a per-page-table-update basis? Or do all page table updates have to go through direct mode to avoid hazards? If yes, then maybe this should be a property of the VM rather than a parameter that gets passed to a bunch of function calls. Regards, Felix On 2019-03-29 6:45 a.m., Christian König wrote: > Otherwise we don't correctly use translate further. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index 3d221f044183..059d9802e713 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -767,14 +767,17 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev, > > addr = 0; > if (ats_entries) { > - uint64_t ats_value; > + uint64_t value = 0, flags; > > - ats_value = AMDGPU_PTE_DEFAULT_ATC; > - if (level != AMDGPU_VM_PTB) > - ats_value |= AMDGPU_PDE_PTE; > + flags = AMDGPU_PTE_DEFAULT_ATC; > + if (level != AMDGPU_VM_PTB) { > + /* Handle leaf PDEs as PTEs */ > + flags |= AMDGPU_PDE_PTE; > + amdgpu_gmc_get_vm_pde(adev, level, &value, &flags); > + } > > r = vm->update_funcs->update(¶ms, bo, addr, 0, ats_entries, > - 0, ats_value); > + value, flags); > if (r) > return r; > _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx