[Intel-xe] [CI 09/10] drm/xe: Use the evicted flag and RESV_PROTECTED vm.
Thomas Hellström
thomas.hellstrom at linux.intel.com
Mon Oct 9 13:13:39 UTC 2023
Signed-off-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>
---
drivers/gpu/drm/drm_gpuvm.c | 12 ++++++------
drivers/gpu/drm/xe/xe_vm.c | 5 +++--
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/drm_gpuvm.c b/drivers/gpu/drm/drm_gpuvm.c
index c0d41ad236a5..2deeeb5d8577 100644
--- a/drivers/gpu/drm/drm_gpuvm.c
+++ b/drivers/gpu/drm/drm_gpuvm.c
@@ -1068,8 +1068,10 @@ drm_gpuvm_prepare_objects_locked(struct drm_gpuvm *gpuvm,
if (ret)
break;
- if (vm_bo->evicted)
+ if (vm_bo->evicted) {
drm_gpuvm_bo_list_add(vm_bo, evict, false);
+ vm_bo->evicted = false;
+ }
}
return ret;
@@ -1626,11 +1628,9 @@ drm_gpuvm_bo_evict(struct drm_gpuvm_bo *vm_bo, bool evict)
dma_resv_assert_held(obj->resv);
- if (drm_gpuvm_is_extobj(gpuvm, obj)) {
- vm_bo->evicted = evict;
-
- if (!lock)
- return;
+ if (evict && !lock && drm_gpuvm_is_extobj(gpuvm, obj)) {
+ vm_bo->evicted = true;
+ return;
}
if (evict)
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 3da97442d415..aba299216c55 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1235,8 +1235,9 @@ struct xe_vm *xe_vm_create(struct xe_device *xe, u32 flags)
goto err_no_resv;
}
- drm_gpuvm_init(&vm->gpuvm, vm_resv_obj, "Xe VM", 0, 0, vm->size,
- 0, 0,
+ drm_gpuvm_init(&vm->gpuvm, vm_resv_obj, "Xe VM",
+ DRM_GPUVM_RESV_PROTECTED,
+ 0, vm->size, 0, 0,
&gpuvm_ops);
drm_gem_object_put(vm_resv_obj);
--
2.41.0
More information about the Intel-xe
mailing list