Lines Matching full:now
278 u64 now, state_start; in get_recent_times() local
288 now = cpu_clock(cpu); in get_recent_times()
309 times[s] += now - state_start; in get_recent_times()
418 static void window_reset(struct psi_window *win, u64 now, u64 value, in window_reset() argument
421 win->start_time = now; in window_reset()
437 static u64 window_update(struct psi_window *win, u64 now, u64 value) in window_update() argument
442 elapsed = now - win->start_time; in window_update()
452 window_reset(win, now, value, growth); in window_update()
463 static void update_triggers(struct psi_group *group, u64 now, in update_triggers() argument
500 growth = window_update(&t->win, now, total[t->state]); in update_triggers()
509 if (now < t->last_event_time + t->win.size) in update_triggers()
519 t->last_event_time = now; in update_triggers()
525 static u64 update_averages(struct psi_group *group, u64 now) in update_averages() argument
534 if (now - expires >= psi_period) in update_averages()
535 missed_periods = div_u64(now - expires, psi_period); in update_averages()
545 period = now - (group->avg_last_update + (missed_periods * psi_period)); in update_averages()
546 group->avg_last_update = now; in update_averages()
583 u64 now; in psi_avgs_work() local
590 now = sched_clock(); in psi_avgs_work()
600 if (now >= group->avg_next_update) { in psi_avgs_work()
601 update_triggers(group, now, PSI_AVGS); in psi_avgs_work()
602 group->avg_next_update = update_averages(group, now); in psi_avgs_work()
607 group->avg_next_update - now) + 1); in psi_avgs_work()
613 static void init_rtpoll_triggers(struct psi_group *group, u64 now) in init_rtpoll_triggers() argument
618 window_reset(&t->win, now, in init_rtpoll_triggers()
622 group->rtpoll_next_update = now + group->rtpoll_min_period; in init_rtpoll_triggers()
657 u64 now; in psi_rtpoll_work() local
661 now = sched_clock(); in psi_rtpoll_work()
663 if (now > group->rtpoll_until) { in psi_rtpoll_work()
704 if (now > group->rtpoll_until) in psi_rtpoll_work()
705 init_rtpoll_triggers(group, now); in psi_rtpoll_work()
712 group->rtpoll_until = now + in psi_rtpoll_work()
716 if (now > group->rtpoll_until) { in psi_rtpoll_work()
721 if (now >= group->rtpoll_next_update) { in psi_rtpoll_work()
723 update_triggers(group, now, PSI_POLL); in psi_rtpoll_work()
727 group->rtpoll_next_update = now + group->rtpoll_min_period; in psi_rtpoll_work()
731 nsecs_to_jiffies(group->rtpoll_next_update - now) + 1, in psi_rtpoll_work()
764 static void record_times(struct psi_group_cpu *groupc, u64 now) in record_times() argument
768 delta = now - groupc->state_start; in record_times()
769 groupc->state_start = now; in record_times()
798 u64 now, bool wake_clock) in psi_group_change() argument
854 record_times(groupc, now); in psi_group_change()
874 record_times(groupc, now); in psi_group_change()
912 u64 now; in psi_task_change() local
920 now = cpu_clock(cpu); in psi_task_change()
922 psi_group_change(group, cpu, clear, set, now, true); in psi_task_change()
931 u64 now; in psi_task_switch() local
934 now = cpu_clock(cpu); in psi_task_switch()
950 psi_group_change(group, cpu, 0, TSK_ONCPU, now, true); in psi_task_switch()
987 psi_group_change(group, cpu, clear, set, now, wake_clock); in psi_task_switch()
999 psi_group_change(group, cpu, clear, set, now, wake_clock); in psi_task_switch()
1012 u64 now; in psi_account_irqtime() local
1031 now = cpu_clock(cpu); in psi_account_irqtime()
1039 record_times(groupc, now); in psi_account_irqtime()
1138 /* All triggers must be removed by now */ in psi_cgroup_free()
1226 * and restart groupc->state_start from now, use .clear = .set = 0 in psi_cgroup_restart()
1233 u64 now; in psi_cgroup_restart() local
1238 now = cpu_clock(cpu); in psi_cgroup_restart()
1239 psi_group_change(group, cpu, 0, 0, now, true); in psi_cgroup_restart()
1249 u64 now; in psi_show() local
1261 now = sched_clock(); in psi_show()
1263 if (now >= group->avg_next_update) in psi_show()
1264 group->avg_next_update = update_averages(group, now); in psi_show()