From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
Herbert Xu <herbert@gondor.apana.org.au>,
csnook@redhat.com, dhowells@redhat.com,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
torvalds@linux-foundation.org, netdev@vger.kernel.org,
akpm@linux-foundation.org, ak@suse.de, heiko.carstens@de.ibm.com,
davem@davemloft.net, schwidefsky@de.ibm.com,
wensong@linux-vs.org, horms@verge.net.au, wjiang@resilience.com,
cfriesen@nortel.com, zlynx@acm.org, rpjday@mindspring.com,
jesper.juhl@gmail.com
Subject: Re: [PATCH 6/24] make atomic_read() behave consistently on frv
Date: Tue, 14 Aug 2007 15:43:54 -0700 [thread overview]
Message-ID: <20070814224354.GE8243@linux.vnet.ibm.com> (raw)
In-Reply-To: <200708150001.58217.arnd@arndb.de>
On Wed, Aug 15, 2007 at 12:01:54AM +0200, Arnd Bergmann wrote:
> On Tuesday 14 August 2007, Paul E. McKenney wrote:
> > > #define order(x) asm volatile("" : "+m" (x))
> >
> > There was something very similar discussed earlier in this thread,
> > with quite a bit of debate as to exactly what the "m" flag should
> > look like. I suggested something similar named ACCESS_ONCE in the
> > context of RCU (http://lkml.org/lkml/2007/7/11/664):
> >
> > #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
> >
> > The nice thing about this is that it works for both loads and stores.
> > Not clear that order() above does this -- I get compiler errors when
> > I try something like "b = order(a)" or "order(a) = 1" using gcc 4.1.2.
>
> Well, it serves a different purpose: While your ACCESS_ONCE() macro is
> an lvalue, the order() macro is a statement that can be used in place
> of the barrier() macro. order() is the most lightweight barrier as it
> only enforces ordering on a single variable in the compiler, but does
> not have any side-effects visible to other threads, like the cache
> line access in ACCESS_ONCE has.
ACCESS_ONCE() is indeed intended to be used when actually loading or
storing the variable. That said, I must admit that it is not clear to me
why you would want to add an extra order() rather than ACCESS_ONCE()ing
one or both of the adjacent accesses to that same variable.
So, what am I missing?
Thanx, Paul
next prev parent reply other threads:[~2007-08-14 22:43 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-09 13:41 [PATCH 6/24] make atomic_read() behave consistently on frv Chris Snook
2007-08-09 16:54 ` Chris Snook
2007-08-10 9:23 ` David Howells
2007-08-10 19:54 ` Chris Snook
2007-08-11 0:54 ` Herbert Xu
2007-08-11 0:54 ` Herbert Xu
2007-08-11 4:29 ` Paul E. McKenney
2007-08-13 5:15 ` Herbert Xu
2007-08-13 6:03 ` Paul E. McKenney
2007-08-14 5:34 ` Nick Piggin
2007-08-14 7:26 ` Herbert Xu
2007-08-14 17:01 ` Paul E. McKenney
2007-08-14 22:01 ` Arnd Bergmann
2007-08-14 22:43 ` Paul E. McKenney [this message]
2007-08-15 13:29 ` Arnd Bergmann
2007-08-15 15:06 ` Michael Buesch
2007-08-15 13:30 ` Nick Piggin
2007-08-15 20:15 ` Paul E. McKenney
2007-08-16 1:09 ` Nick Piggin
2007-08-16 2:27 ` Paul E. McKenney
2007-08-11 8:47 ` David Howells
2007-08-13 6:44 ` Chris Snook
2007-08-14 5:42 ` Nick Piggin
2007-08-15 18:51 ` Segher Boessenkool
2007-08-15 19:18 ` Paul E. McKenney
2007-08-15 19:46 ` Segher Boessenkool
2007-08-15 19:59 ` Paul E. McKenney
2007-08-15 20:13 ` Segher Boessenkool
2007-08-15 20:38 ` Paul E. McKenney
2007-08-15 21:15 ` Segher Boessenkool
2007-08-16 1:20 ` Nick Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070814224354.GE8243@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=cfriesen@nortel.com \
--cc=csnook@redhat.com \
--cc=davem@davemloft.net \
--cc=dhowells@redhat.com \
--cc=heiko.carstens@de.ibm.com \
--cc=herbert@gondor.apana.org.au \
--cc=horms@verge.net.au \
--cc=jesper.juhl@gmail.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=rpjday@mindspring.com \
--cc=schwidefsky@de.ibm.com \
--cc=torvalds@linux-foundation.org \
--cc=wensong@linux-vs.org \
--cc=wjiang@resilience.com \
--cc=zlynx@acm.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.