lib/percpu_counter.c: __this_cpu_write() doesn't need to be protected by spinlock
__this_cpu_write doesn't need to be protected by spinlock, AS we are doing per cpu write with preempt disabled. And another reason to remove __this_cpu_write outside of spinlock: __percpu_counter_sum is not an accurate counter. Signed-off-by: Fan Du <fan.du@windriver.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5cb0656b62
commit
64df3071a9
|
@ -80,8 +80,8 @@ void __percpu_counter_add(struct percpu_counter *fbc, s64 amount, s32 batch)
|
||||||
if (count >= batch || count <= -batch) {
|
if (count >= batch || count <= -batch) {
|
||||||
raw_spin_lock(&fbc->lock);
|
raw_spin_lock(&fbc->lock);
|
||||||
fbc->count += count;
|
fbc->count += count;
|
||||||
__this_cpu_write(*fbc->counters, 0);
|
|
||||||
raw_spin_unlock(&fbc->lock);
|
raw_spin_unlock(&fbc->lock);
|
||||||
|
__this_cpu_write(*fbc->counters, 0);
|
||||||
} else {
|
} else {
|
||||||
__this_cpu_write(*fbc->counters, count);
|
__this_cpu_write(*fbc->counters, count);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue