Lines Matching refs:fbc

24 	struct percpu_counter *fbc = addr;
28 percpu_counter_destroy(fbc);
29 debug_object_free(fbc, &percpu_counter_debug_descr);
41 static inline void debug_percpu_counter_activate(struct percpu_counter *fbc)
43 debug_object_init(fbc, &percpu_counter_debug_descr);
44 debug_object_activate(fbc, &percpu_counter_debug_descr);
47 static inline void debug_percpu_counter_deactivate(struct percpu_counter *fbc)
49 debug_object_deactivate(fbc, &percpu_counter_debug_descr);
50 debug_object_free(fbc, &percpu_counter_debug_descr);
54 static inline void debug_percpu_counter_activate(struct percpu_counter *fbc)
56 static inline void debug_percpu_counter_deactivate(struct percpu_counter *fbc)
60 void percpu_counter_set(struct percpu_counter *fbc, s64 amount)
65 raw_spin_lock_irqsave(&fbc->lock, flags);
67 s32 *pcount = per_cpu_ptr(fbc->counters, cpu);
70 fbc->count = amount;
71 raw_spin_unlock_irqrestore(&fbc->lock, flags);
82 void percpu_counter_add_batch(struct percpu_counter *fbc, s64 amount, s32 batch)
87 count = __this_cpu_read(*fbc->counters) + amount;
90 raw_spin_lock_irqsave(&fbc->lock, flags);
91 fbc->count += count;
92 __this_cpu_sub(*fbc->counters, count - amount);
93 raw_spin_unlock_irqrestore(&fbc->lock, flags);
95 this_cpu_add(*fbc->counters, amount);
107 void percpu_counter_sync(struct percpu_counter *fbc)
112 raw_spin_lock_irqsave(&fbc->lock, flags);
113 count = __this_cpu_read(*fbc->counters);
114 fbc->count += count;
115 __this_cpu_sub(*fbc->counters, count);
116 raw_spin_unlock_irqrestore(&fbc->lock, flags);
124 s64 __percpu_counter_sum(struct percpu_counter *fbc)
130 raw_spin_lock_irqsave(&fbc->lock, flags);
131 ret = fbc->count;
133 s32 *pcount = per_cpu_ptr(fbc->counters, cpu);
136 raw_spin_unlock_irqrestore(&fbc->lock, flags);
141 int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, gfp_t gfp,
146 raw_spin_lock_init(&fbc->lock);
147 lockdep_set_class(&fbc->lock, key);
148 fbc->count = amount;
149 fbc->counters = alloc_percpu_gfp(s32, gfp);
150 if (!fbc->counters)
153 debug_percpu_counter_activate(fbc);
156 INIT_LIST_HEAD(&fbc->list);
158 list_add(&fbc->list, &percpu_counters);
165 void percpu_counter_destroy(struct percpu_counter *fbc)
169 if (!fbc->counters)
172 debug_percpu_counter_deactivate(fbc);
176 list_del(&fbc->list);
179 free_percpu(fbc->counters);
180 fbc->counters = NULL;
198 struct percpu_counter *fbc;
203 list_for_each_entry(fbc, &percpu_counters, list) {
206 raw_spin_lock(&fbc->lock);
207 pcount = per_cpu_ptr(fbc->counters, cpu);
208 fbc->count += *pcount;
210 raw_spin_unlock(&fbc->lock);
221 int __percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch)
225 count = percpu_counter_read(fbc);
234 count = percpu_counter_sum(fbc);