Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures
From: Paul E. McKenney <hidden>
Date: 2007-08-16 02:33:26
Also in:
linux-arch, lkml
From: Paul E. McKenney <hidden>
Date: 2007-08-16 02:33:26
Also in:
linux-arch, lkml
On Wed, Aug 15, 2007 at 06:41:40PM -0700, Christoph Lameter wrote:
On Wed, 15 Aug 2007, Paul E. McKenney wrote:quoted
Understood. My point is not that the impact is precisely zero, but rather that the impact on optimization is much less hurtful than the problems that could arise otherwise, particularly as compilers become more aggressive in their optimizations.The problems arise because barriers are not used as required. Volatile has wishy washy semantics and somehow marries memory barriers with data access. It is clearer to separate the two. Conceptual cleanness usually translates into better code. If one really wants the volatile then lets make it explicit and use atomic_read_volatile()
There are indeed architectures where you can cause gcc to emit memory barriers in response to volatile. I am assuming that we are -not- making gcc do this. Given this, then volatiles and memory barrier instructions are orthogonal -- one controls the compiler, the other controls the CPU. Thanx, Paul