Lines Matching full:vm
34 static inline struct xe_vm *xe_vm_get(struct xe_vm *vm) in xe_vm_get() argument
36 drm_gpuvm_get(&vm->gpuvm); in xe_vm_get()
37 return vm; in xe_vm_get()
40 static inline void xe_vm_put(struct xe_vm *vm) in xe_vm_put() argument
42 drm_gpuvm_put(&vm->gpuvm); in xe_vm_put()
45 int xe_vm_lock(struct xe_vm *vm, bool intr);
47 void xe_vm_unlock(struct xe_vm *vm);
49 static inline bool xe_vm_is_closed(struct xe_vm *vm) in xe_vm_is_closed() argument
51 /* Only guaranteed not to change when vm->lock is held */ in xe_vm_is_closed()
52 return !vm->size; in xe_vm_is_closed()
55 static inline bool xe_vm_is_banned(struct xe_vm *vm) in xe_vm_is_banned() argument
57 return vm->flags & XE_VM_FLAG_BANNED; in xe_vm_is_banned()
60 static inline bool xe_vm_is_closed_or_banned(struct xe_vm *vm) in xe_vm_is_closed_or_banned() argument
62 lockdep_assert_held(&vm->lock); in xe_vm_is_closed_or_banned()
63 return xe_vm_is_closed(vm) || xe_vm_is_banned(vm); in xe_vm_is_closed_or_banned()
67 xe_vm_find_overlapping_vma(struct xe_vm *vm, u64 start, u64 range);
70 * xe_vm_has_scratch() - Whether the vm is configured for scratch PTEs
71 * @vm: The vm
73 * Return: whether the vm populates unmapped areas with scratch PTEs
75 static inline bool xe_vm_has_scratch(const struct xe_vm *vm) in xe_vm_has_scratch() argument
77 return vm->flags & XE_VM_FLAG_SCRATCH_PAGE; in xe_vm_has_scratch()
93 return gpuvm_to_vm(gpuva->vm); in gpuva_to_vm()
138 return container_of(vma->gpuva.vm, struct xe_vm, gpuvm); in xe_vma_vm()
184 u64 xe_vm_pdp4_descriptor(struct xe_vm *vm, struct xe_tile *tile);
193 void xe_vm_close_and_put(struct xe_vm *vm);
195 static inline bool xe_vm_in_fault_mode(struct xe_vm *vm) in xe_vm_in_fault_mode() argument
197 return vm->flags & XE_VM_FLAG_FAULT_MODE; in xe_vm_in_fault_mode()
200 static inline bool xe_vm_in_lr_mode(struct xe_vm *vm) in xe_vm_in_lr_mode() argument
202 return vm->flags & XE_VM_FLAG_LR_MODE; in xe_vm_in_lr_mode()
205 static inline bool xe_vm_in_preempt_fence_mode(struct xe_vm *vm) in xe_vm_in_preempt_fence_mode() argument
207 return xe_vm_in_lr_mode(vm) && !xe_vm_in_fault_mode(vm); in xe_vm_in_preempt_fence_mode()
210 int xe_vm_add_compute_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q);
211 void xe_vm_remove_compute_exec_queue(struct xe_vm *vm, struct xe_exec_queue *q);
213 int xe_vm_userptr_pin(struct xe_vm *vm);
215 int __xe_vm_userptr_needs_repin(struct xe_vm *vm);
217 int xe_vm_userptr_check_repin(struct xe_vm *vm);
219 int xe_vm_rebind(struct xe_vm *vm, bool rebind_worker);
220 struct dma_fence *xe_vma_rebind(struct xe_vm *vm, struct xe_vma *vma,
222 struct dma_fence *xe_vm_range_rebind(struct xe_vm *vm,
226 struct dma_fence *xe_vm_range_unbind(struct xe_vm *vm,
231 int xe_vm_validate_protected(struct xe_vm *vm);
233 static inline void xe_vm_queue_rebind_worker(struct xe_vm *vm) in xe_vm_queue_rebind_worker() argument
235 xe_assert(vm->xe, xe_vm_in_preempt_fence_mode(vm)); in xe_vm_queue_rebind_worker()
236 queue_work(vm->xe->ordered_wq, &vm->preempt.rebind_work); in xe_vm_queue_rebind_worker()
242 * @vm: The vm.
244 * If the rebind functionality on a compute vm was disabled due
246 * This function should be called after submitting a batch to a compute vm.
248 static inline void xe_vm_reactivate_rebind(struct xe_vm *vm) in xe_vm_reactivate_rebind() argument
250 if (xe_vm_in_preempt_fence_mode(vm) && vm->preempt.rebind_deactivated) { in xe_vm_reactivate_rebind()
251 vm->preempt.rebind_deactivated = false; in xe_vm_reactivate_rebind()
252 xe_vm_queue_rebind_worker(vm); in xe_vm_reactivate_rebind()
264 int xe_vm_validate_rebind(struct xe_vm *vm, struct drm_exec *exec,
267 struct dma_fence *xe_vm_bind_kernel_bo(struct xe_vm *vm, struct xe_bo *bo,
272 * xe_vm_resv() - Return's the vm's reservation object
273 * @vm: The vm
275 * Return: Pointer to the vm's reservation object.
277 static inline struct dma_resv *xe_vm_resv(struct xe_vm *vm) in xe_vm_resv() argument
279 return drm_gpuvm_resv(&vm->gpuvm); in xe_vm_resv()
282 void xe_vm_kill(struct xe_vm *vm, bool unlocked);
285 * xe_vm_assert_held(vm) - Assert that the vm's reservation object is held.
286 * @vm: The vm
288 #define xe_vm_assert_held(vm) dma_resv_assert_held(xe_vm_resv(vm)) argument
299 struct xe_vm_snapshot *xe_vm_snapshot_capture(struct xe_vm *vm);