Lines Matching refs:exec
207 struct drm_exec *exec) in resume_and_reinstall_preempt_fences() argument
217 drm_gpuvm_resv_add_fence(&vm->gpuvm, exec, q->lr.pfence, in resume_and_reinstall_preempt_fences()
229 struct drm_exec *exec = &vm_exec.exec; in xe_vm_add_compute_exec_queue() local
254 drm_gpuvm_resv_add_fence(&vm->gpuvm, exec, pfence, in xe_vm_add_compute_exec_queue()
269 drm_exec_fini(exec); in xe_vm_add_compute_exec_queue()
369 bool xe_vm_validate_should_retry(struct drm_exec *exec, int err, ktime_t *end) in xe_vm_validate_should_retry() argument
385 static int xe_gpuvm_validate(struct drm_gpuvm_bo *vm_bo, struct drm_exec *exec) in xe_gpuvm_validate() argument
419 int xe_vm_validate_rebind(struct xe_vm *vm, struct drm_exec *exec, in xe_vm_validate_rebind() argument
427 ret = drm_gpuvm_validate(&vm->gpuvm, exec); in xe_vm_validate_rebind()
436 drm_exec_for_each_locked_object(exec, index, obj) { in xe_vm_validate_rebind()
445 static int xe_preempt_work_begin(struct drm_exec *exec, struct xe_vm *vm, in xe_preempt_work_begin() argument
450 err = drm_gpuvm_prepare_vm(&vm->gpuvm, exec, 0); in xe_preempt_work_begin()
465 err = drm_gpuvm_prepare_objects(&vm->gpuvm, exec, 0); in xe_preempt_work_begin()
479 return xe_vm_validate_rebind(vm, exec, vm->preempt.num_exec_queues); in xe_preempt_work_begin()
485 struct drm_exec exec; in preempt_rebind_work_func() local
511 drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT, 0); in preempt_rebind_work_func()
513 drm_exec_until_all_locked(&exec) { in preempt_rebind_work_func()
516 err = xe_preempt_work_begin(&exec, vm, &done); in preempt_rebind_work_func()
517 drm_exec_retry_on_contention(&exec); in preempt_rebind_work_func()
519 drm_exec_fini(&exec); in preempt_rebind_work_func()
520 if (err && xe_vm_validate_should_retry(&exec, err, &end)) in preempt_rebind_work_func()
564 resume_and_reinstall_preempt_fences(vm, &exec); in preempt_rebind_work_func()
568 drm_exec_fini(&exec); in preempt_rebind_work_func()
1367 int xe_vm_lock_vma(struct drm_exec *exec, struct xe_vma *vma) in xe_vm_lock_vma() argument
1375 err = drm_exec_lock_obj(exec, xe_vm_obj(vm)); in xe_vm_lock_vma()
1377 err = drm_exec_lock_obj(exec, &bo->ttm.base); in xe_vm_lock_vma()
1384 struct drm_exec exec; in xe_vma_destroy_unlocked() local
1387 drm_exec_init(&exec, 0, 0); in xe_vma_destroy_unlocked()
1388 drm_exec_until_all_locked(&exec) { in xe_vma_destroy_unlocked()
1389 err = xe_vm_lock_vma(&exec, vma); in xe_vma_destroy_unlocked()
1390 drm_exec_retry_on_contention(&exec); in xe_vma_destroy_unlocked()
1397 drm_exec_fini(&exec); in xe_vma_destroy_unlocked()
2449 struct drm_exec exec; in new_vma() local
2456 drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT, 0); in new_vma()
2457 drm_exec_until_all_locked(&exec) { in new_vma()
2460 err = drm_exec_lock_obj(&exec, xe_vm_obj(vm)); in new_vma()
2461 drm_exec_retry_on_contention(&exec); in new_vma()
2464 err = drm_exec_lock_obj(&exec, &bo->ttm.base); in new_vma()
2465 drm_exec_retry_on_contention(&exec); in new_vma()
2468 drm_exec_fini(&exec); in new_vma()
2486 drm_exec_fini(&exec); in new_vma()
2855 static int vma_lock_and_validate(struct drm_exec *exec, struct xe_vma *vma, in vma_lock_and_validate() argument
2864 err = drm_exec_lock_obj(exec, &bo->ttm.base); in vma_lock_and_validate()
2939 static int op_lock_and_prep(struct drm_exec *exec, struct xe_vm *vm, in op_lock_and_prep() argument
2947 err = vma_lock_and_validate(exec, op->map.vma, in op_lock_and_prep()
2956 err = vma_lock_and_validate(exec, in op_lock_and_prep()
2960 err = vma_lock_and_validate(exec, op->remap.prev, true); in op_lock_and_prep()
2962 err = vma_lock_and_validate(exec, op->remap.next, true); in op_lock_and_prep()
2969 err = vma_lock_and_validate(exec, in op_lock_and_prep()
2985 err = vma_lock_and_validate(exec, in op_lock_and_prep()
3019 static int vm_bind_ioctl_ops_lock_and_prep(struct drm_exec *exec, in vm_bind_ioctl_ops_lock_and_prep() argument
3026 err = drm_exec_lock_obj(exec, xe_vm_obj(vm)); in vm_bind_ioctl_ops_lock_and_prep()
3031 err = op_lock_and_prep(exec, vm, op); in vm_bind_ioctl_ops_lock_and_prep()
3253 struct drm_exec exec; in vm_bind_ioctl_ops_execute() local
3259 drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT | in vm_bind_ioctl_ops_execute()
3261 drm_exec_until_all_locked(&exec) { in vm_bind_ioctl_ops_execute()
3262 err = vm_bind_ioctl_ops_lock_and_prep(&exec, vm, vops); in vm_bind_ioctl_ops_execute()
3263 drm_exec_retry_on_contention(&exec); in vm_bind_ioctl_ops_execute()
3280 drm_exec_fini(&exec); in vm_bind_ioctl_ops_execute()