Re: [PATCH 1/2] tracing/function-return-tracer: Make the function return tracer lockless

From: Andi Kleen
Date: Thu Nov 13 2008 - 14:10:27 EST


> 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@xxxxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/