Re: [PATCH 4/6] drm/amdgpu: Remove redundant state change after validation.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 31.10.23 um 14:40 schrieb Tatsuyuki Ishi:
All the state changes are handled in the TTM move callback; doing it again
here just leads to more confusion.

The state move here is because we need to track which PDs/PTs are already validated and which have new locations reflected in the PDEs.

With this change here you will sooner or later run into PDE corruption.


The table update remains here because it needs to be done exactly once,
while doing it in the move callback will result it getting triggered twice,
once by the actual BO and once by the shadow BO.

The table update isn't done in the move callback because you can't take the appropriate locks there.

Regards,
Christian.



Signed-off-by: Tatsuyuki Ishi <ishitatsuyuki@xxxxxxxxx>
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 7 ++-----
  1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 01d31891cd05..50f7cee639ac 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -495,12 +495,9 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
  				return r;
  		}
- if (bo->tbo.type != ttm_bo_type_kernel) {
-			amdgpu_vm_bo_moved(bo_base);
-		} else {
+		if (bo->tbo.type == ttm_bo_type_kernel)
  			vm->update_funcs->map_table(to_amdgpu_bo_vm(bo));
-			amdgpu_vm_bo_relocated(bo_base);
-		}
+
  		spin_lock(&vm->status_lock);
  	}
  	spin_unlock(&vm->status_lock);




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux