diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2025-05-06 13:48:59 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2025-05-06 13:51:05 -0700 |
commit | 829e5bd756be9cbceeee54f2a1fefb30054a2d58 (patch) | |
tree | c1935c08407cde61ca2c7eb75cd99e6050e13034 | |
parent | aa0c2c5ae9a917917a17f14a4eb68119fb5a6c65 (diff) | |
download | perfbook-master.tar.gz |
Reported-by: Daniel Xu <dxu@dxuuu.xyz>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rw-r--r-- | memorder/memorder.tex | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/memorder/memorder.tex b/memorder/memorder.tex index a89d1507..62b6f7a5 100644 --- a/memorder/memorder.tex +++ b/memorder/memorder.tex @@ -97,7 +97,19 @@ you most of its benefits. % @@@ summarizing the intervening discussion with some appeals to transitive % @@@ intuitions and with more sophisticated rules of thumb. -But first, it is necessary to understand the temporal and non-temporal +But first, it is necessary to understand that useful ordering is a +property not of any single component of the system, but of the system +as a whole. +For example, it does not help for the hardware to preserve ordering if +the compiler does not also do so. +Nor does it help for both the hardware and compiler to provide ways +to preserve ordering if developers fail to use them. +The Linux kernel adds architecture-specific assembly-language primitives +to the mix, which must also preserve the required orderings. +In short, all the components of the system must work together to provide +any needed ordering. + +Next, it is necessary to understand the temporal and non-temporal nature of communication from one thread to another when using memory as the communications medium, as will be discussed in detail in \cref{sec:memorder:Multicopy Atomicity}. |