Lines Matching refs:tlb_invalidation
79 tlb_invalidation.fence_tdr.work); in xe_gt_tlb_fence_timeout()
85 spin_lock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_fence_timeout()
87 >->tlb_invalidation.pending_fences, link) { in xe_gt_tlb_fence_timeout()
96 fence->seqno, gt->tlb_invalidation.seqno_recv); in xe_gt_tlb_fence_timeout()
101 if (!list_empty(>->tlb_invalidation.pending_fences)) in xe_gt_tlb_fence_timeout()
103 >->tlb_invalidation.fence_tdr, in xe_gt_tlb_fence_timeout()
105 spin_unlock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_fence_timeout()
119 gt->tlb_invalidation.seqno = 1; in xe_gt_tlb_invalidation_init_early()
120 INIT_LIST_HEAD(>->tlb_invalidation.pending_fences); in xe_gt_tlb_invalidation_init_early()
121 spin_lock_init(>->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_init_early()
122 spin_lock_init(>->tlb_invalidation.lock); in xe_gt_tlb_invalidation_init_early()
123 INIT_DELAYED_WORK(>->tlb_invalidation.fence_tdr, in xe_gt_tlb_invalidation_init_early()
154 spin_lock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_reset()
155 cancel_delayed_work(>->tlb_invalidation.fence_tdr); in xe_gt_tlb_invalidation_reset()
163 if (gt->tlb_invalidation.seqno == 1) in xe_gt_tlb_invalidation_reset()
166 pending_seqno = gt->tlb_invalidation.seqno - 1; in xe_gt_tlb_invalidation_reset()
167 WRITE_ONCE(gt->tlb_invalidation.seqno_recv, pending_seqno); in xe_gt_tlb_invalidation_reset()
170 >->tlb_invalidation.pending_fences, link) in xe_gt_tlb_invalidation_reset()
172 spin_unlock_irq(>->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_reset()
178 int seqno_recv = READ_ONCE(gt->tlb_invalidation.seqno_recv); in tlb_invalidation_seqno_past()
207 seqno = gt->tlb_invalidation.seqno; in send_tlb_invalidation()
214 spin_lock_irq(>->tlb_invalidation.pending_lock); in send_tlb_invalidation()
226 >->tlb_invalidation.pending_fences); in send_tlb_invalidation()
228 if (list_is_singular(>->tlb_invalidation.pending_fences)) in send_tlb_invalidation()
230 >->tlb_invalidation.fence_tdr, in send_tlb_invalidation()
233 spin_unlock_irq(>->tlb_invalidation.pending_lock); in send_tlb_invalidation()
238 gt->tlb_invalidation.seqno = (gt->tlb_invalidation.seqno + 1) % in send_tlb_invalidation()
240 if (!gt->tlb_invalidation.seqno) in send_tlb_invalidation()
241 gt->tlb_invalidation.seqno = 1; in send_tlb_invalidation()
522 spin_lock_irqsave(>->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
524 spin_unlock_irqrestore(>->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
528 WRITE_ONCE(gt->tlb_invalidation.seqno_recv, msg[0]); in xe_guc_tlb_invalidation_done_handler()
531 >->tlb_invalidation.pending_fences, link) { in xe_guc_tlb_invalidation_done_handler()
540 if (!list_empty(>->tlb_invalidation.pending_fences)) in xe_guc_tlb_invalidation_done_handler()
542 >->tlb_invalidation.fence_tdr, in xe_guc_tlb_invalidation_done_handler()
545 cancel_delayed_work(>->tlb_invalidation.fence_tdr); in xe_guc_tlb_invalidation_done_handler()
547 spin_unlock_irqrestore(>->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
585 spin_lock_irq(>->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()
587 >->tlb_invalidation.lock, in xe_gt_tlb_invalidation_fence_init()
589 spin_unlock_irq(>->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()