Signed-off-by: Junchang Wang <junchangwang@xxxxxxxxx> --- Hi Paul, I'm reading the latest version of the perfbook and this patch contains fixes to some typos in Section Data Structures. Hope it helps. Thanks, --Junchang -- datastruct/datastruct.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/datastruct/datastruct.tex b/datastruct/datastruct.tex index 4b62471..e21952b 100644 --- a/datastruct/datastruct.tex +++ b/datastruct/datastruct.tex @@ -700,7 +700,7 @@ Of course, it is quite possible that the differences in lookup performance are affected by the differences in update rates. One way to check this is to artificially throttle the update rates of per-bucket locking and hazard pointers to match that of RCU. -Doing so does not significantly improve the lookup performace of +Doing so does not significantly improve the lookup performance of per-bucket locking, nor does it close the gap between hazard pointers and RCU. However, removing the read-side memory barriers from hazard pointers @@ -800,8 +800,8 @@ scalability, external consistency, or all of the above. \section{Non-Partitionable Data Structures} \label{sec:datastruct:Non-Partitionable Data Structures} % -\epigraph{Undertake somthing difficult, otherwise you will never grow.} - {\emph{Ronald E.~Osburn}} +\epigraph{Undertake something difficult, otherwise you will never grow.} + {\emph{Ronald E.~Osborn}} \begin{figure}[tb] \centering @@ -1063,7 +1063,7 @@ Otherwise, a concurrent resize operation has already distributed this bucket, so line~\lnref{new_hashtbl} proceeds to the new hash table, line~\lnref{get_newbkt} selects the bucket corresponding to the key, and line~\lnref{acq_newbkt} acquires the bucket's lock. -\Clnref{lsp1b}{lsp1e} store the bucket pointer and +\Clnrefrange{lsp1b}{lsp1e} store the bucket pointer and pointer-set index into their respective fields in the \co{ht_lock_state} structure, which again communicates this information to \co{hashtab_add()}, \co{hashtab_del()}, and \co{hashtab_unlock_mod()}. -- 2.7.4