Re: [PATCH v2 RFC 1/3] documentation: Add needed ACCESS_ONCE() calls to memory-barriers.txt

Paul E. McKenney
2013-11-21T22:32:36Z

On Thu, Nov 21, 2013 at 11:18:21PM +0100, Peter Zijlstra wrote:
> On Thu, Nov 21, 2013 at 02:09:51PM -0800, Paul E. McKenney wrote:
> > On Thu, Nov 21, 2013 at 10:55:17PM +0100, Peter Zijlstra wrote:
> > > On Thu, Nov 21, 2013 at 01:31:27PM -0800, Paul E. McKenney wrote:
> > > > From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
> > > >
> > > > The Documentation/memory-barriers.txt file was written before the need
> > > > for ACCESS_ONCE() was fully appreciated. It therefore contains no
> > > > ACCESS_ONCE() calls, which can be a problem when people lift examples
> > > > from it. This commit therefore adds ACCESS_ONCE() calls.
> > >
> > > So I find the repeated ACCESS_ONCE() significantly detracts from the
> > > readability of the text.
> > >
> > > Can't we simply state that all accesses are assumed single-copy atomic
> > > and this can be achieved for naturally aligned words using ACCESS_ONCE()
> > > in C/C++ ?
> >
> > We could, but at the moment I would prefer the decrease in readability
> > to the copy-and-paste bugs that omit needed ACCESS_ONCE() calls.
> >
> > Is there some way to get both ACCESS_ONCE() and readability? An
> > abbreviation such as AO()? More easily distinguished variable names?
> > Something else?
>
> Use a form that looks less like C and thus defeats copy/paste?

My concern with that approach is that there is likely to be a large
number of people who are likely to be willing and able to transcribe
from any reasonable non-C form to ACCESS_ONCE()-free C code. :-/

But maybe you have something specific in mind?

Thanx, Paul