Thread (30 messages) flat view 30 messages, 8 authors, 2007-08-16

Re: [PATCH 6/24] make atomic_read() behave consistently on frv

From: Paul E. McKenney <hidden>
Date: 2007-08-15 20:39:17
Also in: linux-arch, lkml

On Wed, Aug 15, 2007 at 10:13:49PM +0200, Segher Boessenkool wrote:
quoted
quoted
quoted
quoted
quoted
Well if there is only one memory location involved, then smp_rmb()
isn't
going to really do anything anyway, so it would be incorrect to use
it.
rmb() orders *any* two reads; that includes two reads from the same
location.
If the two reads are to the same location, all CPUs I am aware of
will maintain the ordering without need for a memory barrier.
That's true of course, although there is no real guarantee for that.
A CPU that did not provide this property ("cache coherence") would be
most emphatically reviled.
That doesn't have anything to do with coherency as far as I can see.

It's just about the order in which a CPU (speculatively) performs the 
loads
(which isn't necessarily the same as the order in which it executes the
corresponding instructions, even).
Please check the definition of "cache coherence".

Summary: the CPU is indeed within its rights to execute loads and stores
to a single variable out of order, -but- only if it gets the same result
that it would have obtained by executing them in order.  Which means that
any reordering of accesses by a single CPU to a single variable will be
invisible to the software.
quoted
So we are pretty safe assuming that CPUs
will provide it.
Yeah, pretty safe.  I just don't like undocumented assumptions :-)
Can't help you there!  ;-)

							Thanx, Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help