On 17-07-12 04:31 AM, Christian König wrote:
> From: Christian König <[email protected]>
>
> We don't have any update fence in that case, so the need
> for flushing isn't detected atomatically.

s/atomatically/automatically/

>
> Signed-off-by: Christian König <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index ff5de3a..bf7696a7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -421,7 +421,7 @@ static int amdgpu_vm_grab_reserved_vmid_locked(struct 
> amdgpu_vm *vm,
>       struct dma_fence *updates = sync->last_vm_update;
>       int r = 0;
>       struct dma_fence *flushed, *tmp;
> -     bool needs_flush = false;
> +     bool needs_flush = vm->use_cpu_for_update;

I think this will result in unnecessary flushing. To avoid that you'd
probably have to define a new fence timeline for CPU pagetable updates
so that the code below can check which updates have already been
flushed. Fences on that timeline would be signalled as soon as they are
created.

Anyway, this fixes correctness first. Optimization can come later.

With the typo above fixed, this is Reviewed-by: Felix Kuehling
<[email protected]>

Regards,
  Felix

>  
>       flushed  = id->flushed_updates;
>       if ((amdgpu_vm_had_gpu_reset(adev, id)) ||
> @@ -542,11 +542,11 @@ int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct 
> amdgpu_ring *ring,
>       }
>       kfree(fences);
>  
> -     job->vm_needs_flush = false;
> +     job->vm_needs_flush = vm->use_cpu_for_update;
>       /* Check if we can use a VMID already assigned to this VM */
>       list_for_each_entry_reverse(id, &id_mgr->ids_lru, list) {
>               struct dma_fence *flushed;
> -             bool needs_flush = false;
> +             bool needs_flush = vm->use_cpu_for_update;
>  
>               /* Check all the prerequisites to using this VMID */
>               if (amdgpu_vm_had_gpu_reset(adev, id))

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to