Le jeudi 14 avril 2011 Ã 08:55 +0900, Tejun Heo a Ãcrit : > Hello, Christoph. > > On Wed, Apr 13, 2011 at 05:23:04PM -0500, Christoph Lameter wrote: > > > > Suggested fixup. Return from slowpath and update percpu variable under > > spinlock. > > > > Signed-off-by: Christoph Lameter <cl@xxxxxxxxx> > > > > --- > > lib/percpu_counter.c | 8 ++------ > > 1 file changed, 2 insertions(+), 6 deletions(-) > > > > Index: linux-2.6/lib/percpu_counter.c > > =================================================================== > > --- linux-2.6.orig/lib/percpu_counter.c 2011-04-13 17:20:41.000000000 -0500 > > +++ linux-2.6/lib/percpu_counter.c 2011-04-13 17:21:33.000000000 -0500 > > @@ -82,13 +82,9 @@ void __percpu_counter_add(struct percpu_ > > spin_lock(&fbc->lock); > > count = __this_cpu_read(*fbc->counters); > > fbc->count += count + amount; > > + __this_cpu_write(*fbc->counters, 0); > > spin_unlock(&fbc->lock); > > - /* > > - * If cmpxchg fails then we need to subtract the amount that > > - * we found in the percpu value. > > - */ > > - amount = -count; > > - new = 0; > > + return; > > Yeah, looks pretty good to me now. Just a couple more things. > > * Please fold this one into the original patch. > > * While you're restructuring the functions, can you add unlikely to > the slow path? > > It now looks correct to me but just in case, Eric, do you mind > reviewing and acking it? > > Thanks. > I am not sure its worth it, considering we hit this on machines where preemption is off (CONFIG_PREEMPT_NONE=y) ? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>