Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures
From: Segher Boessenkool <hidden>
Date: 2007-08-16 01:33:09
Also in:
linux-arch, lkml
From: Segher Boessenkool <hidden>
Date: 2007-08-16 01:33:09
Also in:
linux-arch, lkml
quoted
quoted
Part of the motivation here is to fix heisenbugs. If I knew where theyBy the same token we should probably disable optimisations altogether since that too can create heisenbugs.Precisely the point -- use of volatile (whether in casts or on asms) in these cases are intended to disable those optimizations likely to result in heisenbugs.
The only thing volatile on an asm does is create a side effect on the asm statement; in effect, it tells the compiler "do not remove this asm even if you don't need any of its outputs". It's not disabling optimisation likely to result in bugs, heisen- or otherwise; _not_ putting the volatile on an asm that needs it simply _is_ a bug :-) Segher