When a BO is evicted immedially invalidate the mapped PTEs.

Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index a03cfbe670c4..6844ba7467a6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -2569,6 +2569,7 @@ void amdgpu_vm_bo_invalidate(struct amdgpu_device *adev,
                             struct amdgpu_bo *bo, bool evicted)
 {
        struct amdgpu_vm_bo_base *bo_base;
+       int r;
 
        /* shadow bo doesn't have bo base, its validation needs its parent */
        if (bo->parent && bo->parent->shadow == bo)
@@ -2576,8 +2577,22 @@ void amdgpu_vm_bo_invalidate(struct amdgpu_device *adev,
 
        for (bo_base = bo->vm_bo; bo_base; bo_base = bo_base->next) {
                struct amdgpu_vm *vm = bo_base->vm;
+               struct dma_resv *resv = vm->root.base.bo->tbo.base.resv;
+
+               if (bo->tbo.type != ttm_bo_type_kernel) {
+                       struct amdgpu_bo_va *bo_va;
+
+                       bo_va = container_of(bo_base, struct amdgpu_bo_va,
+                                            base);
+                       r = amdgpu_vm_bo_update(adev, bo_va,
+                                               bo->tbo.base.resv != resv);
+                       if (!r) {
+                               amdgpu_vm_bo_idle(bo_base);
+                               continue;
+                       }
+               }
 
-               if (evicted && bo->tbo.base.resv == 
vm->root.base.bo->tbo.base.resv) {
+               if (evicted && bo->tbo.base.resv == resv) {
                        amdgpu_vm_bo_evicted(bo_base);
                        continue;
                }
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to