Messages in this thread | | | Date | Wed, 4 Dec 2013 14:46:28 -0800 | From | "Paul E. McKenney" <> | Subject | [PATCH v4 tip/core/locking 0/4] Memory-barrier documentation updates |
| |
Hello!
This series applies some long-needed updates to memory-barriers.txt:
1. Add ACCESS_ONCE() calls where needed to ensure their inclusion in code copy-and-pasted from this file.
2. Add long atomic examples alongside the existing atomics.
3. Prohibit architectures supporting the Linux kernel from speculating stores.
4. Document what ACCESS_ONCE() does along with a number of situations requiring its use.
Changes from v3:
o Fix typos noted by Peter Zijlstra.
o Added the documentation about ACCESS_ONCE(), which expands on http://thread.gmane.org/gmane.linux.kernel.mm/82891/focus=14696, ably summarized by Jon Corbet at http://lwn.net/Articles/508991/.
Changes from v2:
o Update examples so that that load against which the subsequent store is to be ordered is part of the "if" condition.
o Add an example showing how the compiler can remove "if" conditions and how to prevent it from doing so.
o Add ACCESS_ONCE() to the compiler-barrier section.
o Add a sentence noting that transitivity requires smp_mb().
Changes from v1:
o Combined with Peter Zijlstra's speculative-store-prohibition patch.
o Added more pitfalls to avoid when prohibiting speculative stores, along with how to avoid them.
o Applied Josh Triplett's review comments.
Thanx, Paul
b/Documentation/memory-barriers.txt | 666 ++++++++++++++++++++++++++++-------- 1 file changed, 533 insertions(+), 133 deletions(-)
| |