aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/percpu_counter.h
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2007-10-17 02:25:43 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-17 11:42:44 -0400
commit252e0ba6b77dcfae448fa2fbaf796e8a83839e75 (patch)
treef21bcd6994b65ba947b41ae7d2519a960185a029 /include/linux/percpu_counter.h
parent3cb4f9fa0c5f3ded9f70f85b70ee6d429834f911 (diff)
lib: percpu_counter variable batch
Because the current batch setup has an quadric error bound on the counter, allow for an alternative setup. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/percpu_counter.h')
-rw-r--r--include/linux/percpu_counter.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/percpu_counter.h b/include/linux/percpu_counter.h
index 438a170187ec..40df86f7a3b4 100644
--- a/include/linux/percpu_counter.h
+++ b/include/linux/percpu_counter.h
@@ -32,9 +32,14 @@ struct percpu_counter {
32 32
33void percpu_counter_init(struct percpu_counter *fbc, s64 amount); 33void percpu_counter_init(struct percpu_counter *fbc, s64 amount);
34void percpu_counter_destroy(struct percpu_counter *fbc); 34void percpu_counter_destroy(struct percpu_counter *fbc);
35void percpu_counter_add(struct percpu_counter *fbc, s32 amount); 35void __percpu_counter_add(struct percpu_counter *fbc, s32 amount, s32 batch);
36s64 percpu_counter_sum(struct percpu_counter *fbc); 36s64 percpu_counter_sum(struct percpu_counter *fbc);
37 37
38static inline void percpu_counter_add(struct percpu_counter *fbc, s32 amount)
39{
40 __percpu_counter_add(fbc, amount, FBC_BATCH);
41}
42
38static inline s64 percpu_counter_read(struct percpu_counter *fbc) 43static inline s64 percpu_counter_read(struct percpu_counter *fbc)
39{ 44{
40 return fbc->count; 45 return fbc->count;
@@ -70,6 +75,9 @@ static inline void percpu_counter_destroy(struct percpu_counter *fbc)
70{ 75{
71} 76}
72 77
78#define __percpu_counter_add(fbc, amount, batch) \
79 percpu_counter_add(fbc, amount)
80
73static inline void 81static inline void
74percpu_counter_add(struct percpu_counter *fbc, s32 amount) 82percpu_counter_add(struct percpu_counter *fbc, s32 amount)
75{ 83{