Lines Matching refs: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->intvl_log); in est_timer()
84 brate = (brate >> est->ewma_log) - (est->avbps >> est->ewma_log); in est_timer()
86 rate = (b.packets - est->last_packets) << (10 - est->intvl_log); in est_timer()
87 rate = (rate >> est->ewma_log) - (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
149 est = kzalloc(sizeof(*est), GFP_KERNEL); in gen_new_estimator()
150 if (!est) in gen_new_estimator()
153 seqcount_init(&est->seq); in gen_new_estimator()
155 est->bstats = bstats; in gen_new_estimator()
156 est->stats_lock = lock; in gen_new_estimator()
157 est->running = running; in gen_new_estimator()
158 est->ewma_log = parm->ewma_log; in gen_new_estimator()
159 est->intvl_log = intvl_log; in gen_new_estimator()
160 est->cpu_bstats = cpu_bstats; in gen_new_estimator()
164 est_fetch_counters(est, &b); in gen_new_estimator()
167 est->last_bytes = b.bytes; in gen_new_estimator()
168 est->last_packets = b.packets; in gen_new_estimator()
175 est->avbps = old->avbps; in gen_new_estimator()
176 est->avpps = old->avpps; in gen_new_estimator()
179 est->next_jiffies = jiffies + ((HZ/4) << intvl_log); in gen_new_estimator()
180 timer_setup(&est->timer, est_timer, 0); in gen_new_estimator()
181 mod_timer(&est->timer, est->next_jiffies); in gen_new_estimator()
183 rcu_assign_pointer(*rate_est, est); in gen_new_estimator()
201 struct net_rate_estimator *est; in gen_kill_estimator() local
203 est = xchg((__force struct net_rate_estimator **)rate_est, NULL); in gen_kill_estimator()
204 if (est) { in gen_kill_estimator()
205 del_timer_sync(&est->timer); in gen_kill_estimator()
206 kfree_rcu(est, rcu); in gen_kill_estimator()
251 struct net_rate_estimator *est; in gen_estimator_read() local
255 est = rcu_dereference(*rate_est); in gen_estimator_read()
256 if (!est) { in gen_estimator_read()
262 seq = read_seqcount_begin(&est->seq); in gen_estimator_read()
263 sample->bps = est->avbps >> 8; in gen_estimator_read()
264 sample->pps = est->avpps >> 8; in gen_estimator_read()
265 } while (read_seqcount_retry(&est->seq, seq)); in gen_estimator_read()