Lines Matching refs:pt_update_ops

1099 				 struct xe_vm_pgtable_update_ops *pt_update_ops,  in xe_pt_vm_dependencies()  argument
1112 if (!job && !xe_exec_queue_is_idle(pt_update_ops->q)) in xe_pt_vm_dependencies()
1115 if (pt_update_ops->wait_vm_bookkeep || pt_update_ops->wait_vm_kernel) { in xe_pt_vm_dependencies()
1117 pt_update_ops->wait_vm_bookkeep ? in xe_pt_vm_dependencies()
1124 rtfence = xe_range_fence_tree_first(rftree, pt_update_ops->start, in xe_pt_vm_dependencies()
1125 pt_update_ops->last); in xe_pt_vm_dependencies()
1144 pt_update_ops->start, in xe_pt_vm_dependencies()
1145 pt_update_ops->last); in xe_pt_vm_dependencies()
1154 if (!(pt_update_ops->q->flags & EXEC_QUEUE_FLAG_KERNEL)) { in xe_pt_vm_dependencies()
1158 err = xe_exec_queue_last_fence_test_dep(pt_update_ops->q, vm); in xe_pt_vm_dependencies()
1172 struct xe_vm_pgtable_update_ops *pt_update_ops = in xe_pt_pre_commit() local
1173 &vops->pt_update_ops[pt_update->tile_id]; in xe_pt_pre_commit()
1176 pt_update_ops, rftree); in xe_pt_pre_commit()
1291 struct xe_vm_pgtable_update_ops *pt_update_ops = in xe_pt_userptr_pre_commit() local
1292 &vops->pt_update_ops[pt_update->tile_id]; in xe_pt_userptr_pre_commit()
1303 err = op_check_userptr(vm, op, pt_update_ops); in xe_pt_userptr_pre_commit()
1605 xe_pt_update_ops_rfence_interval(struct xe_vm_pgtable_update_ops *pt_update_ops, in xe_pt_update_ops_rfence_interval() argument
1608 u32 current_op = pt_update_ops->current_op; in xe_pt_update_ops_rfence_interval()
1609 struct xe_vm_pgtable_update_op *pt_op = &pt_update_ops->ops[current_op]; in xe_pt_update_ops_rfence_interval()
1624 if (start < pt_update_ops->start) in xe_pt_update_ops_rfence_interval()
1625 pt_update_ops->start = start; in xe_pt_update_ops_rfence_interval()
1626 if (last > pt_update_ops->last) in xe_pt_update_ops_rfence_interval()
1627 pt_update_ops->last = last; in xe_pt_update_ops_rfence_interval()
1642 struct xe_vm_pgtable_update_ops *pt_update_ops, in bind_op_prepare() argument
1645 u32 current_op = pt_update_ops->current_op; in bind_op_prepare()
1646 struct xe_vm_pgtable_update_op *pt_op = &pt_update_ops->ops[current_op]; in bind_op_prepare()
1671 xe_pt_update_ops_rfence_interval(pt_update_ops, vma); in bind_op_prepare()
1672 ++pt_update_ops->current_op; in bind_op_prepare()
1673 pt_update_ops->needs_userptr_lock |= xe_vma_is_userptr(vma); in bind_op_prepare()
1689 pt_update_ops->needs_invalidation = true; in bind_op_prepare()
1706 struct xe_vm_pgtable_update_ops *pt_update_ops, in unbind_op_prepare() argument
1709 u32 current_op = pt_update_ops->current_op; in unbind_op_prepare()
1710 struct xe_vm_pgtable_update_op *pt_op = &pt_update_ops->ops[current_op]; in unbind_op_prepare()
1741 xe_pt_update_ops_rfence_interval(pt_update_ops, vma); in unbind_op_prepare()
1742 ++pt_update_ops->current_op; in unbind_op_prepare()
1743 pt_update_ops->needs_userptr_lock |= xe_vma_is_userptr(vma); in unbind_op_prepare()
1744 pt_update_ops->needs_invalidation = true; in unbind_op_prepare()
1753 struct xe_vm_pgtable_update_ops *pt_update_ops, in op_prepare() argument
1765 err = bind_op_prepare(vm, tile, pt_update_ops, op->map.vma); in op_prepare()
1766 pt_update_ops->wait_vm_kernel = true; in op_prepare()
1769 err = unbind_op_prepare(tile, pt_update_ops, in op_prepare()
1773 err = bind_op_prepare(vm, tile, pt_update_ops, in op_prepare()
1775 pt_update_ops->wait_vm_bookkeep = true; in op_prepare()
1778 err = bind_op_prepare(vm, tile, pt_update_ops, in op_prepare()
1780 pt_update_ops->wait_vm_bookkeep = true; in op_prepare()
1784 err = unbind_op_prepare(tile, pt_update_ops, in op_prepare()
1788 err = bind_op_prepare(vm, tile, pt_update_ops, in op_prepare()
1790 pt_update_ops->wait_vm_kernel = true; in op_prepare()
1800 xe_pt_update_ops_init(struct xe_vm_pgtable_update_ops *pt_update_ops) in xe_pt_update_ops_init() argument
1802 init_llist_head(&pt_update_ops->deferred); in xe_pt_update_ops_init()
1803 pt_update_ops->start = ~0x0ull; in xe_pt_update_ops_init()
1804 pt_update_ops->last = 0x0ull; in xe_pt_update_ops_init()
1820 struct xe_vm_pgtable_update_ops *pt_update_ops = in xe_pt_update_ops_prepare() local
1821 &vops->pt_update_ops[tile->id]; in xe_pt_update_ops_prepare()
1829 xe_pt_update_ops_init(pt_update_ops); in xe_pt_update_ops_prepare()
1837 err = op_prepare(vops->vm, tile, pt_update_ops, op); in xe_pt_update_ops_prepare()
1843 xe_tile_assert(tile, pt_update_ops->current_op <= in xe_pt_update_ops_prepare()
1844 pt_update_ops->num_ops); in xe_pt_update_ops_prepare()
1856 struct xe_vm_pgtable_update_ops *pt_update_ops, in bind_op_commit() argument
1862 pt_update_ops->wait_vm_bookkeep ? in bind_op_commit()
1867 pt_update_ops->wait_vm_bookkeep ? in bind_op_commit()
1882 if (pt_update_ops->wait_vm_bookkeep && in bind_op_commit()
1889 struct xe_vm_pgtable_update_ops *pt_update_ops, in unbind_op_commit() argument
1895 pt_update_ops->wait_vm_bookkeep ? in unbind_op_commit()
1900 pt_update_ops->wait_vm_bookkeep ? in unbind_op_commit()
1919 struct xe_vm_pgtable_update_ops *pt_update_ops, in op_commit() argument
1930 bind_op_commit(vm, tile, pt_update_ops, op->map.vma, fence, in op_commit()
1934 unbind_op_commit(vm, tile, pt_update_ops, in op_commit()
1939 bind_op_commit(vm, tile, pt_update_ops, op->remap.prev, in op_commit()
1942 bind_op_commit(vm, tile, pt_update_ops, op->remap.next, in op_commit()
1946 unbind_op_commit(vm, tile, pt_update_ops, in op_commit()
1950 bind_op_commit(vm, tile, pt_update_ops, in op_commit()
1985 struct xe_vm_pgtable_update_ops *pt_update_ops = in xe_pt_update_ops_run() local
1986 &vops->pt_update_ops[tile->id]; in xe_pt_update_ops_run()
1995 .ops = pt_update_ops->needs_userptr_lock ? in xe_pt_update_ops_run()
2005 if (!pt_update_ops->current_op) { in xe_pt_update_ops_run()
2017 if (pt_update_ops->needs_invalidation) { in xe_pt_update_ops_run()
2055 for (i = 0; i < pt_update_ops->current_op; ++i) { in xe_pt_update_ops_run()
2056 struct xe_vm_pgtable_update_op *pt_op = &pt_update_ops->ops[i]; in xe_pt_update_ops_run()
2059 pt_op->num_entries, &pt_update_ops->deferred); in xe_pt_update_ops_run()
2065 pt_update_ops->start, in xe_pt_update_ops_run()
2066 pt_update_ops->last, fence)) in xe_pt_update_ops_run()
2074 pt_update_ops->start, in xe_pt_update_ops_run()
2075 pt_update_ops->last, vm->usm.asid); in xe_pt_update_ops_run()
2078 pt_update_ops->start, in xe_pt_update_ops_run()
2079 pt_update_ops->last, vm->usm.asid); in xe_pt_update_ops_run()
2094 pt_update_ops->wait_vm_bookkeep ? in xe_pt_update_ops_run()
2099 op_commit(vops->vm, tile, pt_update_ops, op, fence, NULL); in xe_pt_update_ops_run()
2102 pt_update_ops->wait_vm_bookkeep ? in xe_pt_update_ops_run()
2107 pt_update_ops->wait_vm_bookkeep ? in xe_pt_update_ops_run()
2112 op_commit(vops->vm, tile, pt_update_ops, op, in xe_pt_update_ops_run()
2116 if (pt_update_ops->needs_userptr_lock) in xe_pt_update_ops_run()
2144 struct xe_vm_pgtable_update_ops *pt_update_ops = in xe_pt_update_ops_fini() local
2145 &vops->pt_update_ops[tile->id]; in xe_pt_update_ops_fini()
2151 for (i = 0; i < pt_update_ops->current_op; ++i) { in xe_pt_update_ops_fini()
2152 struct xe_vm_pgtable_update_op *pt_op = &pt_update_ops->ops[i]; in xe_pt_update_ops_fini()
2156 xe_bo_put_commit(&vops->pt_update_ops[tile->id].deferred); in xe_pt_update_ops_fini()
2168 struct xe_vm_pgtable_update_ops *pt_update_ops = in xe_pt_update_ops_abort() local
2169 &vops->pt_update_ops[tile->id]; in xe_pt_update_ops_abort()
2175 for (i = pt_update_ops->num_ops - 1; i >= 0; --i) { in xe_pt_update_ops_abort()
2177 &pt_update_ops->ops[i]; in xe_pt_update_ops_abort()
2179 if (!pt_op->vma || i >= pt_update_ops->current_op) in xe_pt_update_ops_abort()