[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46C703C9.9060507@s5r6.in-berlin.de>
Date: Sat, 18 Aug 2007 16:35:53 +0200
From: Stefan Richter <stefanr@...6.in-berlin.de>
To: Jonathan Corbet <corbet@....net>,
Greg Kroah-Hartman <gregkh@...e.de>
CC: Nick Piggin <nickpiggin@...oo.com.au>, paulmck@...ux.vnet.ibm.com,
Herbert Xu <herbert@...dor.apana.org.au>,
Paul Mackerras <paulus@...ba.org>,
Satyam Sharma <satyam@...radead.org>,
Christoph Lameter <clameter@....com>,
Chris Snook <csnook@...hat.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-arch@...r.kernel.org,
Linus Torvalds <torvalds@...ux-foundation.org>,
netdev@...r.kernel.org, Andrew Morton <akpm@...ux-foundation.org>,
ak@...e.de, heiko.carstens@...ibm.com, davem@...emloft.net,
schwidefsky@...ibm.com, wensong@...ux-vs.org, horms@...ge.net.au,
wjiang@...ilience.com, cfriesen@...tel.com, zlynx@....org,
rpjday@...dspring.com, jesper.juhl@...il.com,
segher@...nel.crashing.org
Subject: LDD3 pitfalls (was Re: [PATCH 0/24] make atomic_read() behave consistently
across all architectures)
Nick Piggin wrote:
> Stefan Richter wrote:
>> Nick Piggin wrote:
>>
>>> I don't know why people would assume volatile of atomics. AFAIK, most
>>> of the documentation is pretty clear that all the atomic stuff can be
>>> reordered etc. except for those that modify and return a value.
>>
>>
>> Which documentation is there?
>
> Documentation/atomic_ops.txt
>
>
>> For driver authors, there is LDD3. It doesn't specifically cover
>> effects of optimization on accesses to atomic_t.
>>
>> For architecture port authors, there is Documentation/atomic_ops.txt.
>> Driver authors also can learn something from that document, as it
>> indirectly documents the atomic_t and bitops APIs.
>>
>
> "Semantics and Behavior of Atomic and Bitmask Operations" is
> pretty direct :)
>
> Sure, it says that it's for arch maintainers, but there is no
> reason why users can't make use of it.
Note, LDD3 page 238 says: "It is worth noting that most of the other
kernel primitives dealing with synchronization, such as spinlock and
atomic_t operations, also function as memory barriers."
I don't know about Linux 2.6.10 against which LDD3 was written, but
currently only _some_ atomic_t operations function as memory barriers.
Besides, judging from some posts in this thread, saying that atomic_t
operations dealt with synchronization may not be entirely precise.
--
Stefan Richter
-=====-=-=== =--- =--=-
http://arcgraph.de/sr/
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists