Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures
From: Paul E. McKenney <hidden>
Date: 2007-08-16 02:31:19
Also in:
linux-arch, lkml
From: Paul E. McKenney <hidden>
Date: 2007-08-16 02:31:19
Also in:
linux-arch, lkml
On Thu, Aug 16, 2007 at 03:30:44AM +0200, Segher Boessenkool wrote:
quoted
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 :-)
Yep. And the reason it is a bug is that it fails to disable the relevant compiler optimizations. So I suspect that we might actually be saying the same thing here. Thanx, Paul