Lines Matching refs:pl
94 int fprop_local_init_single(struct fprop_local_single *pl) in fprop_local_init_single() argument
96 pl->events = 0; in fprop_local_init_single()
97 pl->period = 0; in fprop_local_init_single()
98 raw_spin_lock_init(&pl->lock); in fprop_local_init_single()
102 void fprop_local_destroy_single(struct fprop_local_single *pl) in fprop_local_destroy_single() argument
107 struct fprop_local_single *pl) in fprop_reflect_period_single() argument
113 if (pl->period == period) in fprop_reflect_period_single()
115 raw_spin_lock_irqsave(&pl->lock, flags); in fprop_reflect_period_single()
117 if (pl->period >= period) { in fprop_reflect_period_single()
118 raw_spin_unlock_irqrestore(&pl->lock, flags); in fprop_reflect_period_single()
122 if (period - pl->period < BITS_PER_LONG) in fprop_reflect_period_single()
123 pl->events >>= period - pl->period; in fprop_reflect_period_single()
125 pl->events = 0; in fprop_reflect_period_single()
126 pl->period = period; in fprop_reflect_period_single()
127 raw_spin_unlock_irqrestore(&pl->lock, flags); in fprop_reflect_period_single()
131 void __fprop_inc_single(struct fprop_global *p, struct fprop_local_single *pl) in __fprop_inc_single() argument
133 fprop_reflect_period_single(p, pl); in __fprop_inc_single()
134 pl->events++; in __fprop_inc_single()
140 struct fprop_local_single *pl, in fprop_fraction_single() argument
148 fprop_reflect_period_single(p, pl); in fprop_fraction_single()
149 num = pl->events; in fprop_fraction_single()
172 int fprop_local_init_percpu(struct fprop_local_percpu *pl, gfp_t gfp) in fprop_local_init_percpu() argument
176 err = percpu_counter_init(&pl->events, 0, gfp); in fprop_local_init_percpu()
179 pl->period = 0; in fprop_local_init_percpu()
180 raw_spin_lock_init(&pl->lock); in fprop_local_init_percpu()
184 void fprop_local_destroy_percpu(struct fprop_local_percpu *pl) in fprop_local_destroy_percpu() argument
186 percpu_counter_destroy(&pl->events); in fprop_local_destroy_percpu()
190 struct fprop_local_percpu *pl) in fprop_reflect_period_percpu() argument
196 if (pl->period == period) in fprop_reflect_period_percpu()
198 raw_spin_lock_irqsave(&pl->lock, flags); in fprop_reflect_period_percpu()
200 if (pl->period >= period) { in fprop_reflect_period_percpu()
201 raw_spin_unlock_irqrestore(&pl->lock, flags); in fprop_reflect_period_percpu()
205 if (period - pl->period < BITS_PER_LONG) { in fprop_reflect_period_percpu()
206 s64 val = percpu_counter_read(&pl->events); in fprop_reflect_period_percpu()
209 val = percpu_counter_sum(&pl->events); in fprop_reflect_period_percpu()
211 percpu_counter_add_batch(&pl->events, in fprop_reflect_period_percpu()
212 -val + (val >> (period-pl->period)), PROP_BATCH); in fprop_reflect_period_percpu()
214 percpu_counter_set(&pl->events, 0); in fprop_reflect_period_percpu()
215 pl->period = period; in fprop_reflect_period_percpu()
216 raw_spin_unlock_irqrestore(&pl->lock, flags); in fprop_reflect_period_percpu()
220 void __fprop_add_percpu(struct fprop_global *p, struct fprop_local_percpu *pl, in __fprop_add_percpu() argument
223 fprop_reflect_period_percpu(p, pl); in __fprop_add_percpu()
224 percpu_counter_add_batch(&pl->events, nr, PROP_BATCH); in __fprop_add_percpu()
229 struct fprop_local_percpu *pl, in fprop_fraction_percpu() argument
237 fprop_reflect_period_percpu(p, pl); in fprop_fraction_percpu()
238 num = percpu_counter_read_positive(&pl->events); in fprop_fraction_percpu()
261 struct fprop_local_percpu *pl, int max_frac, long nr) in __fprop_add_percpu_max() argument
267 fprop_fraction_percpu(p, pl, &numerator, &denominator); in __fprop_add_percpu_max()
281 __fprop_add_percpu(p, pl, nr); in __fprop_add_percpu_max()