Lines Matching full:est
78 struct net_rate_estimator *est = from_timer(est, t, timer); in est_timer() local
82 est_fetch_counters(est, &b); in est_timer()
83 brate = (b.bytes - est->last_bytes) << (10 - est->ewma_log - est->intvl_log); in est_timer()
84 brate -= (est->avbps >> est->ewma_log); in est_timer()
86 rate = (b.packets - est->last_packets) << (10 - est->ewma_log - est->intvl_log); in est_timer()
87 rate -= (est->avpps >> est->ewma_log); in est_timer()
89 write_seqcount_begin(&est->seq); in est_timer()
90 est->avbps += brate; in est_timer()
91 est->avpps += rate; in est_timer()
92 write_seqcount_end(&est->seq); in est_timer()
94 est->last_bytes = b.bytes; in est_timer()
95 est->last_packets = b.packets; in est_timer()
97 est->next_jiffies += ((HZ/4) << est->intvl_log); in est_timer()
99 if (unlikely(time_after_eq(jiffies, est->next_jiffies))) { in est_timer()
101 est->next_jiffies = jiffies + 1; in est_timer()
103 mod_timer(&est->timer, est->next_jiffies); in est_timer()
132 struct net_rate_estimator *old, *est; in gen_new_estimator() local
146 est = kzalloc(sizeof(*est), GFP_KERNEL); in gen_new_estimator()
147 if (!est) in gen_new_estimator()
150 seqcount_init(&est->seq); in gen_new_estimator()
152 est->bstats = bstats; in gen_new_estimator()
153 est->stats_lock = lock; in gen_new_estimator()
154 est->running = running; in gen_new_estimator()
155 est->ewma_log = parm->ewma_log; in gen_new_estimator()
156 est->intvl_log = intvl_log; in gen_new_estimator()
157 est->cpu_bstats = cpu_bstats; in gen_new_estimator()
161 est_fetch_counters(est, &b); in gen_new_estimator()
164 est->last_bytes = b.bytes; in gen_new_estimator()
165 est->last_packets = b.packets; in gen_new_estimator()
172 est->avbps = old->avbps; in gen_new_estimator()
173 est->avpps = old->avpps; in gen_new_estimator()
176 est->next_jiffies = jiffies + ((HZ/4) << intvl_log); in gen_new_estimator()
177 timer_setup(&est->timer, est_timer, 0); in gen_new_estimator()
178 mod_timer(&est->timer, est->next_jiffies); in gen_new_estimator()
180 rcu_assign_pointer(*rate_est, est); in gen_new_estimator()
198 struct net_rate_estimator *est; in gen_kill_estimator() local
200 est = xchg((__force struct net_rate_estimator **)rate_est, NULL); in gen_kill_estimator()
201 if (est) { in gen_kill_estimator()
202 del_timer_sync(&est->timer); in gen_kill_estimator()
203 kfree_rcu(est, rcu); in gen_kill_estimator()
248 struct net_rate_estimator *est; in gen_estimator_read() local
252 est = rcu_dereference(*rate_est); in gen_estimator_read()
253 if (!est) { in gen_estimator_read()
259 seq = read_seqcount_begin(&est->seq); in gen_estimator_read()
260 sample->bps = est->avbps >> 8; in gen_estimator_read()
261 sample->pps = est->avpps >> 8; in gen_estimator_read()
262 } while (read_seqcount_retry(&est->seq, seq)); in gen_estimator_read()