Messages in this thread Patch in this message | | | From | "Joel Fernandes (Google)" <> | Subject | [PATCH 2/2] docs: memory-barriers: Add note on plain-accesses to address-dependency barriers | Date | Thu, 3 Aug 2023 03:24:07 +0000 |
| |
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 and point to rcu-dereference.rst for more information.
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org> --- Documentation/memory-barriers.txt | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 06e14efd8662..acc8ec5ce563 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt @@ -435,6 +435,11 @@ Memory barriers come in four basic varieties: variables such as READ_ONCE() and rcu_dereference() provide implicit address-dependency barriers. + [!] Note that address dependency barriers can be destroyed by comparison + of a pointer obtained by a marked accessor such as READ_ONCE() or + rcu_dereference() with some value. For an example of this, see + rcu_dereference.rst (part where the comparison of pointers is discussed). + (3) Read (or load) memory barriers. A read barrier is an address-dependency barrier plus a guarantee that all -- 2.41.0.585.gd2178a4bd4-goog
| |