Re: [PATCH -perfbook 2/4] memorder: Add index markers for 'address/control/data dependency', take 2
"Paul E. McKenney" <[email protected]>
| Newsgroups | org.kernel.vger.perfbook |
|---|---|
| Message-ID | <5a2ed909-84c9-4f2d-b598-d0b7442d92f0@paulmck-laptop> |
On Fri, Sep 22, 2023 at 10:55:44PM +0900, Akira Yokosawa wrote:
> Add a few more index markers.
>
> Note that the macro \IXpl{} and its friends don't work for the
> plural form of "dependencies".
>
> \IXalth{}{}{} is used instead.
>
> Signed-off-by: Akira Yokosawa <[email protected]>
> ---
> memorder/memorder.tex | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/memorder/memorder.tex b/memorder/memorder.tex
> index 9610618b41f4..9af41194f1de 100644
> --- a/memorder/memorder.tex
> +++ b/memorder/memorder.tex
> @@ -3411,7 +3411,8 @@ In contrast, the penalty for failing to use them when needed can be quite high.
> \label{sec:memorder:Address- and Data-Dependency Difficulties}
> \OriginallyPublished{sec:memorder:Address- and Data-Dependency Difficulties}{Address- and Data-Dependency Difficulties}{the Linux kernel}{PaulEMcKenney2014rcu-dereference}
>
> -The low overheads of the address and data dependencies discussed in
> +The low overheads of the \IXalth{address}{address}{dependency}
This looks strange given the different parameters to the \IXalth above
and the \IXalth below, but it gets the right thing to the right place
in the index, so I queued and pushed all four.
Thank you!!! And yes, I am now generating a set of glossary entries. ;-)
Thanx, Paul
> +and \IXalth{data dependencies}{data}{dependency} discussed in
> \cref{sec:memorder:Address Dependencies,%
> sec:memorder:Data Dependencies},
> respectively, makes their use extremely attractive.
> @@ -3770,7 +3771,7 @@ compiler-generated assembly code.
> \subsection{Control-Dependency Calamities}
> \label{sec:memorder:Control-Dependency Calamities}
>
> -The control dependencies described in
> +The \IXalth{control dependencies}{control}{dependency} described in
> \cref{sec:memorder:Control Dependencies}
> are attractive due to their low overhead, but are also especially
> tricky because current compilers do not understand them and can easily
> @@ -5403,7 +5404,8 @@ One could place an \co{smp_rmb()} primitive
> between the pointer fetch and dereference in order to force Alpha
> to order the pointer fetch with the later dependent load.
> However, this imposes unneeded overhead on systems (such as \ARM,
> -Itanium, PPC, and SPARC) that respect address dependencies on the read side.
> +Itanium, PPC, and SPARC) that respect
> +\IXalth{address dependencies}{address}{dependency} on the read side.
> A \co{smp_read_barrier_depends()} primitive was therefore added to the
> Linux kernel to eliminate overhead on these systems, but was removed
> in v5.9 of the Linux kernel in favor of augmenting Alpha's definition
> @@ -5550,7 +5552,8 @@ similar to that of \Power{}'s cumulativity, both of which are
> stronger than \IXacr{lkmm}'s cumulativity described in
> \cref{sec:memorder:Cumulativity}.
>
> -\ARM\ also implements control dependencies, so that if a conditional
> +\ARM\ also implements \IXalth{control dependencies}{control}{dependency},
> +so that if a conditional
> branch depends on a load, then any store executed after that conditional
> branch will be ordered after the load.
> However, loads following the conditional branch will \emph{not}
> --
> 2.25.1
>
>