Lines Matching refs:tlb_invalidation

71 					tlb_invalidation.fence_tdr.work);  in xe_gt_tlb_fence_timeout()
77 spin_lock_irq(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_fence_timeout()
79 &gt->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(&gt->tlb_invalidation.pending_fences)) in xe_gt_tlb_fence_timeout()
95 &gt->tlb_invalidation.fence_tdr, in xe_gt_tlb_fence_timeout()
97 spin_unlock_irq(&gt->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(&gt->tlb_invalidation.pending_fences); in xe_gt_tlb_invalidation_init()
113 spin_lock_init(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_init()
114 spin_lock_init(&gt->tlb_invalidation.lock); in xe_gt_tlb_invalidation_init()
115 INIT_DELAYED_WORK(&gt->tlb_invalidation.fence_tdr, in xe_gt_tlb_invalidation_init()
138 spin_lock_irq(&gt->tlb_invalidation.pending_lock); in xe_gt_tlb_invalidation_reset()
139 cancel_delayed_work(&gt->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 &gt->tlb_invalidation.pending_fences, link) in xe_gt_tlb_invalidation_reset()
156 spin_unlock_irq(&gt->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(&gt->tlb_invalidation.pending_lock); in send_tlb_invalidation()
210 &gt->tlb_invalidation.pending_fences); in send_tlb_invalidation()
212 if (list_is_singular(&gt->tlb_invalidation.pending_fences)) in send_tlb_invalidation()
214 &gt->tlb_invalidation.fence_tdr, in send_tlb_invalidation()
217 spin_unlock_irq(&gt->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(&gt->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
456 spin_unlock_irqrestore(&gt->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 &gt->tlb_invalidation.pending_fences, link) { in xe_guc_tlb_invalidation_done_handler()
472 if (!list_empty(&gt->tlb_invalidation.pending_fences)) in xe_guc_tlb_invalidation_done_handler()
474 &gt->tlb_invalidation.fence_tdr, in xe_guc_tlb_invalidation_done_handler()
477 cancel_delayed_work(&gt->tlb_invalidation.fence_tdr); in xe_guc_tlb_invalidation_done_handler()
479 spin_unlock_irqrestore(&gt->tlb_invalidation.pending_lock, flags); in xe_guc_tlb_invalidation_done_handler()
517 spin_lock_irq(&gt->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()
519 &gt->tlb_invalidation.lock, in xe_gt_tlb_invalidation_fence_init()
521 spin_unlock_irq(&gt->tlb_invalidation.lock); in xe_gt_tlb_invalidation_fence_init()