summaryrefslogtreecommitdiffstats
path: root/ack.tex
blob: 1794dee0df26221698b97efeee3074fae2a0e6f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
% ack.tex
% mainfile: perfbook.tex
% SPDX-License-Identifier: CC-BY-SA-3.0

\chapter{Credits}
\label{bck:ack:Credits}
%
\Epigraph{If I have seen further it is by standing on the shoulders of
	  giants.}{Isaac Newton, modernized}

% \section{Authors}

% CCASA 3.0 US wording from John Wiegley.
%  http://www.newartisans.com/blog_assets/git.from.bottom.up.pdf

\section{\LaTeX\ Advisor}

Akira Yokosawa is this book's \LaTeX\ advisor, which perhaps most
notably includes the care and feeding of the style guide laid out
in \cref{chp:app:styleguide:Style Guide}\@.
This work includes table layout, listings, fonts, rendering of math,
acronyms, bibliography formatting, epigraphs, hyperlinks, paper size.
Akira also perfected the cross-referencing of quick quizzes, allowing
easy and exact navigation between quick quizzes and their answers.
He also added build options that permit quick quizzes to be hidden
and to be gathered at the end of each chapter, textbook style.

This role also includes the build system, which Akira has optimized and
made much more user-friendly.
His enhancements have included automating response to bibliography
changes, automatically determining which source files are present,
and automatically generating listings (with automatically generated
hyperlinked line-number references) from the source files.

\section{Reviewers}

\begin{itemize}
\item	Alan Stern (\cref{chp:Advanced Synchronization: Memory Ordering}).
\item	Andy Whitcroft (\cref{sec:defer:RCU Fundamentals},
	\cref{sec:defer:RCU Linux-Kernel API}).
\item	Artem Bityutskiy (\cref{chp:Advanced Synchronization: Memory Ordering},
	\cref{chp:app:whymb:Why Memory Barriers?}).
\item	Dave Keck (\cref{chp:app:whymb:Why Memory Barriers?}).
\item	David S. Horner
	(\cref{sec:formal:Promela Parable: dynticks and Preemptible RCU}).
\item	Gautham Shenoy (\cref{sec:defer:RCU Fundamentals},
	\cref{sec:defer:RCU Linux-Kernel API}).
\item	``jarkao2'', AKA LWN guest \#41960 (\cref{sec:defer:RCU Linux-Kernel API}).
\item	Jonathan Walpole (\cref{sec:defer:RCU Linux-Kernel API}).
\item	Josh Triplett (\cref{chp:Formal Verification}).
\item	Michael Factor (\cref{sec:future:Transactional Memory}).
\item	Mike Fulton (\cref{sec:defer:RCU Fundamentals}).
\item	Peter Zijlstra
	(\cref{sec:defer:RCU Usage}). % Lanin and Shasha citation.
\item	Richard Woodruff (\cref{chp:app:whymb:Why Memory Barriers?}).
\item	Suparna Bhattacharya (\cref{chp:Formal Verification}).
\item	Vara Prasad
	(\cref{sec:formal:Promela Parable: dynticks and Preemptible RCU}).
\end{itemize}

Reviewers whose feedback took the extremely welcome form of a patch
are credited in the git logs.

\section{Machine Owners}

Readers might have noticed some graphs showing scalability data out
to several hundred CPUs, courtesy of my current employer, with special
thanks to Paul Saab, Yashar Bayani, Joe Boyd, and Kyle McMartin.

From back in my time at IBM,
a great debt of thanks goes to Martin Bligh, who originated the
Advanced Build and Test (ABAT) system at IBM's Linux Technology
Center, as well as to Andy Whitcroft, Dustin Kirkland, and many
others who extended this system.
Many thanks go also to a great number of machine owners:
Andrew Theurer,
Andy Whitcroft,
Anton Blanchard,
Chris McDermott,
Cody Schaefer,
Darrick Wong,
David ``Shaggy'' Kleikamp,
Jon M. Tollefson,
Jose R. Santos,
Marvin Heffler,
Nathan Lynch,
Nishanth Aravamudan,
Tim Pepper,
and
Tony Breeds.

\section{Original Publications}

\ListOriginalPublications

\section{Figure Credits}

\ListContributions

\Cref{fig:defer:RCU Areas of Applicability} was adapted from
\ppl{Fedor}{Pikus}'s ``When to use RCU'' slide~\cite{FedorPikus2017RCUthenWhat}.
The discussion of mechanical reference counters in
\cref{sec:defer:Reference Counting}
stemmed from a private conversation with \ppl{Dave}{Regan}.

\section{Other Support}

We owe thanks to many CPU architects for patiently explaining the
instruction- and memory-reordering features of their CPUs, particularly
Wayne Cardoza, Ed Silha, Anton Blanchard, Tim Slegel, Juergen Probst,
Ingo Adlung, Ravi Arimilli, Cathy May, Derek Williams,
H.~Peter Anvin,
Andy Glew, Leonid Yegoshin,
Richard Grisenthwaite, and Will Deacon.
Wayne deserves special thanks for his patience in explaining Alpha's reordering
of dependent loads, a lesson that Paul resisted quite strenuously!

The bibtex-generation service of the Association for Computing Machinery
has saved us a huge amount of time and effort compiling the bibliography,
for which we are grateful.
Thanks are also due to Stamatis Karnouskos, who convinced me to drag my
antique bibliography database kicking and screaming into the
21\textsuperscript{st} century.
Any technical work of this sort owes thanks to the many individuals and
organizations that keep Internet and the World Wide Web up and running,
and this one is no exception.

Portions of this material are based upon work supported by the National
Science Foundation under Grant No.\@ CNS-0719851.