From: "tip-bot for Paul E. McKenney" <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: akpm@linux-foundation.org, hpa@zytor.com,
paulmck@linux.vnet.ibm.com, mingo@kernel.org,
linux-kernel@vger.kernel.org, peterz@infradead.org,
mathieu.desnoyers@efficios.com, tglx@linutronix.de,
torvalds@linux-foundation.org
Subject: [tip:locking/core] locking/Documentation: Clarify relationship of barrier() to control dependencies
Date: Wed, 13 Apr 2016 00:27:49 -0700 [thread overview]
Message-ID: <tip-a5052657c164107032d521f0d9e92703d78845f2@git.kernel.org> (raw)
In-Reply-To: <1460476375-27803-1-git-send-email-paulmck@linux.vnet.ibm.com>
Commit-ID: a5052657c164107032d521f0d9e92703d78845f2
Gitweb: http://git.kernel.org/tip/a5052657c164107032d521f0d9e92703d78845f2
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
AuthorDate: Tue, 12 Apr 2016 08:52:49 -0700
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 13 Apr 2016 08:52:21 +0200
locking/Documentation: Clarify relationship of barrier() to control dependencies
The current documentation claims that the compiler ignores barrier(),
which is not the case. Instead, the compiler carefully pays attention
to barrier(), but in a creative way that still manages to destroy
the control dependency. This commit sets the story straight.
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: bobby.prani@gmail.com
Cc: dhowells@redhat.com
Cc: dipankar@in.ibm.com
Cc: dvhart@linux.intel.com
Cc: edumazet@google.com
Cc: fweisbec@gmail.com
Cc: jiangshanlai@gmail.com
Cc: josh@joshtriplett.org
Cc: oleg@redhat.com
Cc: rostedt@goodmis.org
Link: http://lkml.kernel.org/r/1460476375-27803-1-git-send-email-paulmck@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
Documentation/memory-barriers.txt | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index 3729cbe..ec12890 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -813,9 +813,10 @@ In summary:
the same variable, then those stores must be ordered, either by
preceding both of them with smp_mb() or by using smp_store_release()
to carry out the stores. Please note that it is -not- sufficient
- to use barrier() at beginning of each leg of the "if" statement,
- as optimizing compilers do not necessarily respect barrier()
- in this case.
+ to use barrier() at beginning of each leg of the "if" statement
+ because, as shown by the example above, optimizing compilers can
+ destroy the control dependency while respecting the letter of the
+ barrier() law.
(*) Control dependencies require at least one run-time conditional
between the prior load and the subsequent store, and this
next prev parent reply other threads:[~2016-04-13 7:28 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-12 15:52 [PATCH memory-barriers.txt 0/7] Memory-model updates for 4.7 Paul E. McKenney
2016-04-12 15:52 ` [PATCH memory-barriers.txt 1/7] documentation: Clarify relationship of barrier() to control dependencies Paul E. McKenney
2016-04-13 7:27 ` tip-bot for Paul E. McKenney [this message]
2016-04-14 3:56 ` Steven Rostedt
2016-04-14 15:28 ` Paul E. McKenney
2016-04-12 15:52 ` [PATCH memory-barriers.txt 2/7] documentation: Fix missed renaming: s/lock/acquire Paul E. McKenney
2016-04-13 7:28 ` [tip:locking/core] locking/Documentation: Fix missed s/lock/acquire renames tip-bot for SeongJae Park
2016-04-13 12:46 ` [PATCH memory-barriers.txt 2/7] documentation: Fix missed renaming: s/lock/acquire Peter Zijlstra
2016-04-13 14:29 ` Paul E. McKenney
2016-04-12 15:52 ` [PATCH memory-barriers.txt 3/7] documentation: Add missed subsection in TOC Paul E. McKenney
2016-04-13 7:28 ` [tip:locking/core] locking/Documentation: " tip-bot for SeongJae Park
2016-04-12 15:52 ` [PATCH memory-barriers.txt 4/7] Documentation: Fix typo Paul E. McKenney
2016-04-13 7:29 ` [tip:locking/core] locking/Documentation: Fix formatting inconsistencies tip-bot for SeongJae Park
2016-04-12 15:52 ` [PATCH memory-barriers.txt 5/7] Documentation: Insert white spaces consistently Paul E. McKenney
2016-04-13 7:29 ` [tip:locking/core] locking/Documentation: " tip-bot for SeongJae Park
2016-04-12 15:52 ` [PATCH memory-barriers.txt 6/7] documentation: Add Korean translation Paul E. McKenney
2016-04-13 6:38 ` Ingo Molnar
2016-04-13 8:11 ` SeongJae Park
2016-04-13 12:49 ` Paul E. McKenney
2016-04-13 18:46 ` Jonathan Corbet
2016-04-13 19:09 ` Paul E. McKenney
2016-04-14 1:04 ` SeongJae Park
2016-04-14 15:25 ` Paul E. McKenney
2016-04-14 22:17 ` SeongJae Park
2016-04-15 23:23 ` Paul E. McKenney
2016-04-18 9:31 ` SeongJae Park
2016-04-18 10:00 ` [PATCH v2] Doc/memory-barriers: add " SeongJae Park
2016-04-18 20:33 ` [PATCH memory-barriers.txt 6/7] documentation: Add " Paul E. McKenney
2016-04-12 15:52 ` [PATCH memory-barriers.txt 7/7] Documentation,barriers: Mention smp_cond_acquire() Paul E. McKenney
2016-04-13 7:29 ` [tip:locking/core] locking/Documentation: " tip-bot for Davidlohr Bueso
2016-04-13 12:53 ` [PATCH memory-barriers.txt 7/7] Documentation,barriers: " Peter Zijlstra
2016-04-13 14:17 ` Paul E. McKenney
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=tip-a5052657c164107032d521f0d9e92703d78845f2@git.kernel.org \
--to=tipbot@zytor.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).