• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/xnu-2782.1.97/osfmk/kern/

Lines Matching refs:deadline

104 	uint64_t	deadline;	/* first/soonest longterm deadline */
144 uint64_t deadline,
161 static boolean_t timer_call_enter_internal(timer_call_t call, timer_call_param_t param1, uint64_t deadline, uint64_t leeway, uint32_t flags, boolean_t ratelimited);
167 uint64_t deadline,
284 uint64_t deadline)
299 call_entry_enqueue_deadline(TCE(entry), QUEUE(queue), deadline);
301 /* For efficiency, track the earliest soft deadline on the queue, so that
306 queue->earliest_soft_deadline = thead->flags & TIMER_CALL_RATELIMITED ? TCE(thead)->deadline : thead->soft_deadline;
333 uint64_t deadline)
337 call_entry_enqueue_deadline(TCE(entry), QUEUE(queue), deadline);
339 /* For efficiency, track the earliest soft deadline on the queue,
344 queue->earliest_soft_deadline = thead->flags & TIMER_CALL_RATELIMITED ? TCE(thead)->deadline : thead->soft_deadline;
393 uint64_t deadline,
444 timer_call_entry_enqueue_deadline(call, queue, deadline);
528 * 3) A callout's parameters (deadline, flags, parameters, soft deadline &c.)
549 uint64_t deadline,
563 sdeadline = deadline;
569 param1, deadline, flags, 0);
574 slop = timer_call_slop(deadline, ctime, urgency, current_thread(), &slop_ratelimited);
579 if (UINT64_MAX - deadline <= slop) {
580 deadline = UINT64_MAX;
582 deadline += slop;
585 if (__improbable(deadline < ctime)) {
586 uint64_t delta = (ctime - deadline);
591 past_deadline_longest = deadline;
595 deadline = ctime + past_deadline_timer_adjustment;
596 sdeadline = deadline;
609 (deadline - sdeadline),
618 queue = timer_longterm_enqueue_unlocked(call, ctime, deadline, &old_queue, sdeadline, ttd, param1, flags);
622 queue = timer_queue_assign(deadline);
623 old_queue = timer_call_enqueue_deadline_unlocked(call, queue, deadline, sdeadline, ttd, param1, flags);
633 (old_queue != NULL), deadline, queue->count, 0);
647 uint64_t deadline,
650 return timer_call_enter_internal(call, NULL, deadline, 0, flags, FALSE);
657 uint64_t deadline,
660 return timer_call_enter_internal(call, param1, deadline, 0, flags, FALSE);
667 uint64_t deadline,
672 return timer_call_enter_internal(call, param1, deadline, leeway, flags, ratelimited);
687 TCE(call)->deadline, call->soft_deadline, call->flags, 0);
694 timer_queue_cancel(old_queue, TCE(call)->deadline, CE(queue_first(&old_queue->head))->deadline);
696 old_queue->earliest_soft_deadline = thead->flags & TIMER_CALL_RATELIMITED ? TCE(thead)->deadline : thead->soft_deadline;
699 timer_queue_cancel(old_queue, TCE(call)->deadline, UINT64_MAX);
708 TCE(call)->deadline - mach_absolute_time(),
709 TCE(call)->deadline - TCE(call)->entry_time, 0);
769 new_queue = timer_queue_assign(TCE(call)->deadline);
772 call, new_queue, TCE(call)->deadline);
795 uint64_t deadline,
802 uint64_t cur_deadline = deadline;
807 * deadline to account for time elapsed in the callout
824 TCE(call)->deadline,
828 (TCE(call)->deadline > cur_deadline)) {
860 /* Maintain time-to-deadline in per-processor data
861 * structure for thread wakeup deadline statistics.
881 int64_t skew = TCE(call)->deadline - call->soft_deadline;
882 assert(TCE(call)->deadline >= call->soft_deadline);
891 * deadline" is the sort key.
913 cur_deadline = TCE(call)->deadline;
914 queue->earliest_soft_deadline = (call->flags & TIMER_CALL_RATELIMITED) ? TCE(call)->deadline: call->soft_deadline;
927 uint64_t deadline)
929 return timer_queue_expire_with_options(queue, deadline, FALSE);
968 * - the local queue's first deadline is later than the target's
989 if (TCE(call)->deadline < TCE(head_to)->deadline) {
1022 call, queue_to, TCE(call)->deadline);
1067 TCE(call)->deadline,
1095 * and adjust the next timer callout deadline if the new timer is first.
1100 uint64_t deadline,
1117 * - this deadline is too short.
1121 (deadline <= longterm_threshold))
1136 TCE(call)->deadline = deadline;
1147 * if the new deadline is sooner and no sooner update is in flight.
1149 if (deadline < tlp->threshold.deadline &&
1150 deadline < tlp->threshold.preempted) {
1151 tlp->threshold.preempted = deadline;
1182 * - if sooner, deadline becomes the next threshold deadline.
1191 uint64_t deadline;
1202 tlp->threshold.deadline = TIMER_LONGTERM_NONE;
1214 deadline = call->soft_deadline;
1229 if (deadline < threshold) {
1235 if (deadline < now)
1239 deadline,
1247 TCE(call)->deadline,
1254 call, timer_master_queue, TCE(call)->deadline);
1257 * the actual hardware deadline if required.
1259 (void) timer_queue_assign(deadline);
1261 if (deadline < tlp->threshold.deadline) {
1262 tlp->threshold.deadline = deadline;
1288 tlp->threshold.deadline,
1295 tlp->threshold.deadline = tlp->threshold.preempted;
1325 tlp->threshold.deadline_set = tlp->threshold.deadline;
1326 /* The next deadline timer to be set is adjusted */
1327 if (tlp->threshold.deadline != TIMER_LONGTERM_NONE) {
1335 tlp->threshold.deadline,
1352 if (tlp->threshold.deadline != TIMER_LONGTERM_NONE)
1395 tlp->threshold.deadline = TIMER_LONGTERM_NONE;
1458 uint64_t deadline;
1472 deadline = TCE(call)->deadline;
1481 if (deadline > threshold) {
1485 if (deadline < tlp->threshold.deadline) {
1486 tlp->threshold.deadline = deadline;
1539 tlp->threshold.deadline_set = tlp->threshold.deadline;
1540 if (tlp->threshold.deadline != TIMER_LONGTERM_NONE) {
1603 * timers are no longer necessarily sorted in order of soft deadline
1606 * processed than is technically possible when the HW deadline arrives.
1662 timer_call_slop(uint64_t deadline, uint64_t now, uint32_t flags, thread_t cthread, boolean_t *pratelimited)
1670 (deadline > now) && (urgency != TIMER_CALL_SYS_CRITICAL)) {
1674 adjval = MIN((deadline - now) >> tcs_shift, tcs_max_abstime);
1676 adjval = MIN((deadline - now) << (-tcs_shift), tcs_max_abstime);