public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH memory-model] docs: memory-barriers: Add note on compiler transformation and address deps
@ 2023-10-05 16:53 Paul E. McKenney
  2023-10-06 14:24 ` Andrea Parri
  2023-10-06 16:39 ` Jonas Oberhauser
  0 siblings, 2 replies; 19+ messages in thread
From: Paul E. McKenney @ 2023-10-05 16:53 UTC (permalink / raw)
  To: linux-kernel, linux-arch, linux-doc
  Cc: Alan Stern, Andrea Parri, Will Deacon, Peter Zijlstra, Boqun Feng,
	Nicholas Piggin, David Howells, Jade Alglave, Luc Maranget,
	Akira Yokosawa, Daniel Lustig, Joel Fernandes, Jonathan Corbet

The compiler has the ability to cause misordering by destroying
address-dependency barriers if comparison operations are used. Add a
note about this to memory-barriers.txt in the beginning of both the
historical address-dependency sections and point to rcu-dereference.rst
for more information.

Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>

diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index 06e14efd8662..d414e145f912 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -396,6 +396,10 @@ Memory barriers come in four basic varieties:
 
 
  (2) Address-dependency barriers (historical).
+     [!] This section is marked as HISTORICAL: For more up-to-date
+     information, including how compiler transformations related to pointer
+     comparisons can sometimes cause problems, see
+     Documentation/RCU/rcu_dereference.rst.
 
      An address-dependency barrier is a weaker form of read barrier.  In the
      case where two loads are performed such that the second depends on the
@@ -556,6 +560,9 @@ There are certain things that the Linux kernel memory barriers do not guarantee:
 
 ADDRESS-DEPENDENCY BARRIERS (HISTORICAL)
 ----------------------------------------
+[!] This section is marked as HISTORICAL: For more up-to-date information,
+including how compiler transformations related to pointer comparisons can
+sometimes cause problems, see Documentation/RCU/rcu_dereference.rst.
 
 As of v4.15 of the Linux kernel, an smp_mb() was added to READ_ONCE() for
 DEC Alpha, which means that about the only people who need to pay attention

^ permalink raw reply related	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-10-21 20:07 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-05 16:53 [PATCH memory-model] docs: memory-barriers: Add note on compiler transformation and address deps Paul E. McKenney
2023-10-06 14:24 ` Andrea Parri
2023-10-06 15:49   ` Paul E. McKenney
2023-10-06 16:39 ` Jonas Oberhauser
2023-10-18 10:11   ` Jonas Oberhauser
2023-10-19 16:39     ` Paul E. McKenney
2023-10-20  9:29       ` Jonas Oberhauser
2023-10-20 13:57         ` Paul E. McKenney
2023-10-20 15:24           ` Akira Yokosawa
2023-10-20 16:13             ` Jonas Oberhauser
2023-10-20 17:56               ` Paul E. McKenney
2023-10-21 13:45                 ` Jonas Oberhauser
2023-10-21 15:31                   ` Paul E. McKenney
2023-10-20 16:00           ` Jonas Oberhauser
2023-10-20 18:13             ` Paul E. McKenney
2023-10-21 13:36               ` Jonas Oberhauser
2023-10-21 15:10                 ` Paul E. McKenney
2023-10-21 16:03                   ` Alan Stern
2023-10-21 20:07                     ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox