Lines Matching refs:tracker
690 smr_enter_sleepable(smr_t smr, smr_tracker_t tracker) in smr_enter_sleepable() argument
704 tracker->smrt_domain = smr; in smr_enter_sleepable()
705 tracker->smrt_seq = __smr_enter(smr, pcpu, SMR_SEQ_SLEEPABLE); in smr_enter_sleepable()
706 smrq_serialized_insert_head_relaxed(&smrw->sect_queue, &tracker->smrt_link); in smr_enter_sleepable()
707 smrq_serialized_insert_head_relaxed(&self->smr_stack, &tracker->smrt_stack); in smr_enter_sleepable()
708 tracker->smrt_ctid = 0; in smr_enter_sleepable()
709 tracker->smrt_cpu = -1; in smr_enter_sleepable()
792 __smr_leave_stalled(smr_t smr, smr_tracker_t tracker, thread_t self) in __smr_leave_stalled() argument
799 pcpu = __smr_pcpu(smr, tracker->smrt_cpu); in __smr_leave_stalled()
804 struct smr_tracker, smrt_link) == tracker; in __smr_leave_stalled()
806 smrq_serialized_remove(&self->smr_stack, &tracker->smrt_stack); in __smr_leave_stalled()
807 smrq_serialized_remove(&pcpu->stall_queue, &tracker->smrt_link); in __smr_leave_stalled()
808 bzero(tracker, sizeof(*tracker)); in __smr_leave_stalled()
853 smr_leave_sleepable(smr_t smr, smr_tracker_t tracker) in smr_leave_sleepable() argument
858 assert(tracker->smrt_seq != SMR_SEQ_INVALID); in smr_leave_sleepable()
865 if (__improbable(tracker->smrt_cpu != -1)) { in smr_leave_sleepable()
866 return __smr_leave_stalled(smr, tracker, self); in smr_leave_sleepable()
872 smrq_serialized_remove(&self->smr_stack, &tracker->smrt_stack); in smr_leave_sleepable()
873 smrq_serialized_remove(&smrw->sect_queue, &tracker->smrt_link); in smr_leave_sleepable()
874 bzero(tracker, sizeof(*tracker)); in smr_leave_sleepable()