Lines Matching refs:tlb_invalidation
71 tlb_invalidation.fence_tdr.work); in xe_gt_tlb_fence_timeout()
77 spin_lock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_fence_timeout()
79 >->tlb_invalidation.pending_fences, link) { in xe_gt_tlb_fence_timeout()
88 fence->seqno, gt->tlb_invalidation.seqno_recv); in xe_gt_tlb_fence_timeout()
93 if (!list_empty(>->tlb_invalidation.pending_fences)) in xe_gt_tlb_fence_timeout()
95 >->tlb_invalidation.fence_tdr, in xe_gt_tlb_fence_timeout()
97 spin_unlock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_fence_timeout()
111 gt->tlb_invalidation.seqno = 1; in xe_gt_tlb_invalidation_init()
112 INIT_LIST_HEAD(>->tlb_invalidation.pending_fences); in xe_gt_tlb_invalidation_init()
113 spin_lock_init(>->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_init()
114 spin_lock_init(>->tlb_invalidation.lock); in xe_gt_tlb_invalidation_init()
115 INIT_DELAYED_WORK(>->tlb_invalidation.fence_tdr, in xe_gt_tlb_invalidation_init()
138 spin_lock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_reset()
139 cancel_delayed_work(>->tlb_invalidation.fence_tdr); in xe_gt_tlb_invalidation_reset()
147 if (gt->tlb_invalidation.seqno == 1) in xe_gt_tlb_invalidation_reset()
150 pending_seqno = gt->tlb_invalidation.seqno - 1; in xe_gt_tlb_invalidation_reset()
151 WRITE_ONCE(gt->tlb_invalidation.seqno_recv, pending_seqno); in xe_gt_tlb_invalidation_reset()
154 >->tlb_invalidation.pending_fences, link) in xe_gt_tlb_invalidation_reset()
156 spin_unlock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_reset()
162 int seqno_recv = READ_ONCE(gt->tlb_invalidation.seqno_recv); in tlb_invalidation_seqno_past()
191 seqno = gt->tlb_invalidation.seqno; in send_tlb_invalidation()
198 spin_lock_irq(>->tlb_invalidation.pending_lock); in send_tlb_invalidation()
210 >->tlb_invalidation.pending_fences); in send_tlb_invalidation()
212 if (list_is_singular(>->tlb_invalidation.pending_fences)) in send_tlb_invalidation()
214 >->tlb_invalidation.fence_tdr, in send_tlb_invalidation()
217 spin_unlock_irq(>->tlb_invalidation.pending_lock); in send_tlb_invalidation()
222 gt->tlb_invalidation.seqno = (gt->tlb_invalidation.seqno + 1) % in send_tlb_invalidation()
224 if (!gt->tlb_invalidation.seqno) in send_tlb_invalidation()
225 gt->tlb_invalidation.seqno = 1; in send_tlb_invalidation()
454 spin_lock_irqsave(>->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
456 spin_unlock_irqrestore(>->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
460 WRITE_ONCE(gt->tlb_invalidation.seqno_recv, msg[0]); in xe_guc_tlb_invalidation_done_handler()
463 >->tlb_invalidation.pending_fences, link) { in xe_guc_tlb_invalidation_done_handler()
472 if (!list_empty(>->tlb_invalidation.pending_fences)) in xe_guc_tlb_invalidation_done_handler()
474 >->tlb_invalidation.fence_tdr, in xe_guc_tlb_invalidation_done_handler()
477 cancel_delayed_work(>->tlb_invalidation.fence_tdr); in xe_guc_tlb_invalidation_done_handler()
479 spin_unlock_irqrestore(>->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
517 spin_lock_irq(>->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()
519 >->tlb_invalidation.lock, in xe_gt_tlb_invalidation_fence_init()
521 spin_unlock_irq(>->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()