Messages in this thread | | | Date | Thu, 13 Nov 2008 20:19:31 +0100 | From | Andi Kleen <> | Subject | Re: [PATCH 1/2] tracing/function-return-tracer: Make the function return tracer lockless |
| |
> barrier: > __asm__ __volatile__("": : :"memory") > > local_add_return: > asm volatile(_ASM_XADD "%0, %1;" > : "+r" (i), "+m" (l->a.counter) > : : "memory"); > > > Your argument was that barrier clobbers memory, but it looks like the > local_add_return does the same.
That's a fair point. I'm not sure why the local_add_* has a memory barrier at all, imho it shouldn't need it. I bet it's just a hold over from the atomic code this was based one.
> I don't see any major gain in switching to local_add_return.
That's true with the current implementation. It would be a good idea to consider dropping that explicit barrier though, then it would be likely a slight win.
-Andi
-- ak@linux.intel.com
| |