Messages in this thread | | | Date | Thu, 13 Nov 2008 18:01:08 +0100 | From | "Frédéric Weisbecker" <> | Subject | Re: [PATCH 1/2] tracing/function-return-tracer: Make the function return tracer lockless |
| |
2008/11/13 Andi Kleen <andi@firstfloor.org>: > The problem I think is that you assume the ++ is atomic against > interrupts, which is not guaranteed by the C compiler. e.g. > it would be perfectly legal for the compiler to generate code like > > local register i > i = index; > write to index'ed array using i > <--------- interrupt here would overwrite data > ... > index = i + 1;
Yes in the common case that would be a danger. But here, if an interrupt is raised, it will increment the counter and then decrement it at return time without dropping the cpu. So after the interrupt, the value will remain the same...
| |