linux/Documentation
Russell King 091e635e67 Documentation/volatile-considered-harmful.txt: correct cpu_relax() documentation
cpu_relax() is documented in volatile-considered-harmful.txt to be a
memory barrier.  However, everyone with the exception of Blackfin and
possibly ia64 defines cpu_relax() to be a compiler barrier.

Make the documentation reflect the general concensus.

Linus sayeth:

: I don't think it was ever the intention that it would be seen as anything
: but a compiler barrier, although it is obviously implied that it might
: well perform some per-architecture actions that have "memory barrier-like"
: semantics.
:
: After all, the whole and only point of the "cpu_relax()" thing is to tell
: the CPU that we're busy-looping on some event.
:
: And that "event" might be (and often is) about reading the same memory
: location over and over until it changes to what we want it to be.  So it's
: quite possible that on various architectures the "cpu_relax()" could be
: about making sure that such a tight loop on loads doesn't starve cache
: transactions, for example - and as such look a bit like a memory barrier
: from a CPU standpoint.
:
: But it's not meant to have any kind of architectural memory ordering
: semantics as far as the kernel is concerned - those must come from other
: sources.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: <linux-arch@vger.kernel.org>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-24 16:31:20 -07:00
..
2009-10-01 21:17:49 +02:00
2010-02-24 13:51:32 +01:00
2008-02-14 00:16:13 -05:00
2008-10-16 11:21:30 -07:00
2009-12-16 07:20:05 -08:00
2008-02-03 15:54:28 +02:00
2010-03-02 12:23:49 +01:00
2009-12-09 14:21:36 -08:00
2009-12-12 13:08:16 +01:00
2010-03-01 12:35:43 -03:00
2008-01-11 18:22:30 -06:00
2009-06-18 13:04:04 -07:00
2009-10-04 22:53:41 +02:00
2008-12-03 16:09:53 -07:00
2008-07-25 10:53:30 -07:00
2008-11-14 10:39:26 +11:00
2009-10-15 07:25:20 -06:00
2008-03-24 19:22:19 -07:00
2009-07-01 22:36:22 +02:00
2009-08-28 15:21:12 -04:00
2009-04-27 12:00:27 -07:00
2009-04-27 12:00:27 -07:00
2008-11-12 17:17:17 -08:00
2009-04-14 09:00:23 +10:00