Perfbook's convention is to put footnotes after punctuation marks. There are a couple of footnotes placed in front of commas. Fix them. While here, fill in a missing comma in front of a footnote in datastruct so that the phrase "even with today's large-memory systems" reads as such. Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> --- I'm thinking of adding rules to catch this sort of inconsistencies in punctcheck.pl. The one in datastuct would be hard for such a dumb script, though. Thanks, Akira -- datastruct/datastruct.tex | 2 +- intro/intro.tex | 4 ++-- toolsoftrade/toolsoftrade.tex | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/datastruct/datastruct.tex b/datastruct/datastruct.tex index 714795f7c5ed..2b802e0518a5 100644 --- a/datastruct/datastruct.tex +++ b/datastruct/datastruct.tex @@ -2132,7 +2132,7 @@ the one hand, and performance and simplicity on the other. Fortunately, the relatively large memories available on modern systems have allowed us to prioritize performance and simplicity over memory overhead. -However, even with today's large-memory systems\footnote{ +However, even with today's large-memory systems,\footnote{ Smartphones with gigabytes of memory, anyone?} it is sometimes necessary to take extreme measures to reduce memory overhead. diff --git a/intro/intro.tex b/intro/intro.tex index e39ea652ba0a..2c7ad97b8111 100644 --- a/intro/intro.tex +++ b/intro/intro.tex @@ -353,7 +353,7 @@ This change in focus is due to the fact that, although \IXr{Moore's Law} continues to deliver increases in transistor density, it has ceased to provide the traditional single-threaded performance increases. This can be seen in -\cref{fig:intro:Clock-Frequency Trend for Intel CPUs}\footnote{ +\cref{fig:intro:Clock-Frequency Trend for Intel CPUs},\footnote{ This plot shows clock frequencies for newer CPUs theoretically capable of retiring one or more instructions per clock, and MIPS (millions of instructions per second, usually from the old @@ -366,7 +366,7 @@ This can be seen in Furthermore, the benchmarks commonly used on the older CPUs are obsolete, and it is difficult to run the newer benchmarks on systems containing the old CPUs, in part because it is hard - to find working instances of the old CPUs.}, + to find working instances of the old CPUs.} which shows that writing single-threaded code and simply waiting a year or two for the CPUs to catch up may no longer be an option. Given the recent trends on the part of all major manufacturers towards diff --git a/toolsoftrade/toolsoftrade.tex b/toolsoftrade/toolsoftrade.tex index dc24571a1163..97f8f2d3ecf9 100644 --- a/toolsoftrade/toolsoftrade.tex +++ b/toolsoftrade/toolsoftrade.tex @@ -2488,8 +2488,8 @@ per-CPU operations. shows this book's per-thread-variable API, which is patterned after the Linux kernel's per-CPU-variable API\@. This API provides the per-thread equivalent of global variables. -Although this API is, strictly speaking, not necessary\footnote{ - You could instead use \apig{__thread} or \apic{_Thread_local}.}, +Although this API is, strictly speaking, not necessary,\footnote{ + You could instead use \apig{__thread} or \apic{_Thread_local}.} it can provide a good userspace analogy to Linux kernel code. \begin{listing} -- 2.25.1