[PATCH -perfbook 4/6] Get rid of "arydshln"

Akira Yokosawa <[email protected]> Thu, 4 Jun 2026 19:17:58 +0900
Newsgroups org.kernel.vger.perfbook
Message-ID <[email protected]>
Loading both "arydshln" and "tabularx" has started causing fatal
errors since the release of LaTeX2e <2026-06-01>.

arydshln wants to modify some of essential commands defined in
tabular related packages in a dangerous way, which conflicts with
recent changes in LaTeX2e and those packages.

As arydshln hasn't seen any updates since February 2019, and 
perfbook has *only* one table with dashed rules under datastruct/
(with a couple of examples in style guide ignored), getting rid
of arydshln should be the way forward.

While at it, remove most of example tables in style guide.
They are not relevant anymore as their counterparts in the main
matter have had retouches themselves.

Signed-off-by: Akira Yokosawa <[email protected]>
---
 appendix/styleguide/styleguide.tex | 355 +----------------------------
 datastruct/datastruct.tex          |  19 +-
 perfbook-lt.tex                    |   1 -
 3 files changed, 10 insertions(+), 365 deletions(-)

diff --git a/appendix/styleguide/styleguide.tex b/appendix/styleguide/styleguide.tex
index 2f2c9057..38a63937 100644
--- a/appendix/styleguide/styleguide.tex
+++ b/appendix/styleguide/styleguide.tex
@@ -1180,12 +1180,7 @@ used sparingly, especially in tables of simple structure.
 (corresponding to a table from a now-deleted section)
 is drawn by using the features of ``booktabs'' and ``xcolor'' packages.
 Note that ruled lines of booktabs can not be mixed with
-vertical lines in a table.\footnote{
-  There is another package named ``arydshln'' which provides dashed lines
-  to be used in tables.
-  A couple of experimental examples are presented in
-  \cref{sec:app:styleguide:Table Layout Experiment}.
-}
+vertical lines in a table.
 
 \begin{table}
 \rowcolors{1}{}{lightgray}
@@ -1397,7 +1392,7 @@ from the actual number.
 \label{sec:app:styleguide:Table Layout Experiment}
 
 This section presents some experimental tables
-using booktabs, xcolors, and arydshln packages.
+using ``booktabs'' and ``xcolors'' packages.
 The corresponding tables in the text have been converted using one of
 the format shown here.
 The source of this section can be regarded as a reference to be
@@ -1495,352 +1490,6 @@ since they are redundant there.
 \label{tab:app:styleguide:Synchronization and Reference Counting}
 \end{table}
 
-\Cref{tab:app:styleguide:Cache Coherence Example}
-(corresponding to
-\cref{tab:app:whymb:Cache Coherence Example})
-is a sequence diagram drawn as a table.
-
-\begin{table*}
-\small
-\centering
-\renewcommand*{\arraystretch}{1.2}
-\rowcolors{6}{}{lightgray}
-% "6" is chosen due to disturbance of row count by cmidrule.
-% The command definition is:
-%     \rowcolors{<row>}{<odd-row color>}{<even-row color>}
-% Here, <row> specifies the row count where the coloring start.
-% In this table, the "Seq = 0" row is the 3rd row, so a "3" would
-% be a right choice.
-% However, because of the \cmidrule{} commands used in the heading,
-% internal row count of the "Seq = 0" row becomes "6".
-% This is why the 3rd row has the background color of <even-row color>.
-%
-% \cline of plain LaTeX also interfares the row count.
-\ebresizewidth{
-\begin{tabular}{rclcccccc}
-	\toprule
-	& & & \multicolumn{4}{c}{CPU Cache} & \multicolumn{2}{c}{Memory} \\
-	\cmidrule(lr){4-7} \cmidrule(l){8-9}
-	Sequence \# & CPU \# & Operation & 0 & 1 & 2 & 3 & 0 & 8 \\
-	\cmidrule(r){1-3} \cmidrule(lr){4-7} \cmidrule(l){8-9}
-%	Seq CPU Operation	------------- CPU -------------   - Memory -
-%				   0	   1	   2	   3	    0   8
-	0   &   & Initial State	& $-$/I & $-$/I & $-$/I & $-$/I   & V & V \\
-	1   & 0 & Load 0 (cache value miss)
-				& 0/S   & $-$/I & $-$/I & $-$/I   & V & V \\
-	2   & 2 & Load 0 (cache value miss)
-				& 0/S   & $-$/I & 0/S   & $-$/I   & V & V \\
-	3.1 & 0 & Load 8 (collision, invalidation)
-				& $-$/I & $-$/I & 0/S   & $-$/I   & V & V \\
-	3.2 & 0 & Load 8 (cache value miss)
-				& 8/S   & $-$/I & 0/S   & $-$/I   & V & V \\
-	4   & 3 & Load 0 (cache value miss)
-				& 8/S   & $-$/I & 0/S   & 0/S     & V & V \\
-	5.1 & 3 & CAS 0 (cache value hit)
-				& 8/S   & $-$/I & 0/S   & 0/S     & V & V \\
-	5.2 & 3 & CAS 0 (cache permission miss)
-				& 8/S   & $-$/I & $-$/I & 0/E     & V & V \\
-	5.3 & 3 & CAS 0		& 8/S   & $-$/I & $-$/I & 0/M     & I & V \\
-	6.1 & 1 & Store 8 (cache value miss)
-				& $-$/I & 8/E   & $-$/I & 0/M     & I & V \\
-	6.2 & 1 & Store 8 	& $-$/I & 8/M   & $-$/I & 0/M     & I & I \\
-	7   & 3 & CAS 0		& $-$/I & 8/M   & $-$/I & 0/M     & I & I \\
-	8.1 & 1 & Load 0 (collision, flush)
-				& $-$/I & $-$/I & $-$/I & 0/M     & I & V \\
-	8.2 & 1 & Load 0 (cache value miss)
-				& $-$/I & 0/S   & $-$/I & 0/S     & I & V \\
-	9   & 3 & Load 0 (cache value hit)
-				& $-$/I & 0/S   & $-$/I & 0/S     & I & V \\
-	\bottomrule
-\end{tabular}
-}
-\caption{Cache Coherence Example}
-\label{tab:app:styleguide:Cache Coherence Example}
-\end{table*}
-
-\Cref{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs}
-is a tweaked version of
-\cref{tab:defer:RCU Publish-Subscribe and Version Maintenance APIs}.
-Here, the ``Category'' column in the original is removed
-and the categories are indicated in rows of bold-face font
-just below the mid-rules.
-This change makes it easier for \verb|\rowcolors{}| command of
-``xcolor'' package to work properly.
-
-\Cref{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs (colortbl)}
-is another version which keeps original columns and colors rows only where
-a category has multiple rows.
-This is done by combining \verb|\rowcolors{}| of ``xcolor'' and
-\verb|\cellcolor{}| commands of the ``colortbl'' package
-(\verb|\cellcolor{}| overrides \verb|\rowcolors{}|).
-
-In
-\cref{tab:defer:RCU Publish-Subscribe and Version Maintenance APIs},
-the latter layout without partial row coloring has been
-chosen for simplicity.
-
-\begin{table*}
-\rowcolors{2}{}{blue!15}
-\renewcommand*{\arraystretch}{1.1}
-\footnotesize
-\centering
-\ebresizewidth{
-\begin{tabular}{lll}
-\toprule
-	Primitives &
-		Availability &
-			Overhead \\
-\midrule
-	\multicolumn{3}{l}{\bfseries List traversal} \\
-	\tco{list_for_each_entry_rcu()} &
-		2.5.59 &
-			Simple instructions (memory barrier on Alpha) \\
-\midrule
-	\multicolumn{3}{l}{\bfseries List update} \\
-	\tco{list_add_rcu()} &
-		2.5.44 &
-			Memory barrier \\
-	\rowcolor{lightgray}\tco{list_add_tail_rcu()} &
-		2.5.44 &
-			Memory barrier \\
-	\tco{list_del_rcu()} &
-		2.5.44 &
-			Simple instructions \\
-	\rowcolor{lightgray}\tco{list_replace_rcu()} &
-		2.6.9 &
-			Memory barrier \\
-	\tco{list_splice_init_rcu()} &
-		2.6.21 &
-			Grace-period latency \\
-\midrule
-	\multicolumn{3}{l}{\bfseries Hlist traversal} \\
-	\tco{hlist_for_each_entry_rcu()} &
-		2.6.8 &
-			Simple instructions (memory barrier on Alpha) \\
-\midrule
-	\multicolumn{3}{l}{\bfseries Hlist update} \\
-	\tco{hlist_add_after_rcu()} &
-		2.6.14 &
-			Memory barrier \\
-	\rowcolor{lightgray}\tco{hlist_add_before_rcu()} &
-		2.6.14 &
-			Memory barrier \\
-	\tco{hlist_add_head_rcu()} &
-		2.5.64 &
-			Memory barrier \\
-	\rowcolor{lightgray}\tco{hlist_del_rcu()} &
-		2.5.64 &
-			Simple instructions \\
-	\tco{hlist_replace_rcu()} &
-		2.6.15 &
-			Memory barrier \\
-\midrule
-	\multicolumn{3}{l}{\bfseries Pointer traversal} \\
-	\tco{rcu_dereference()} &
-		2.6.9 &
-			Simple instructions (memory barrier on Alpha) \\
-\midrule
-	\multicolumn{3}{l}{\bfseries Pointer update} \\
-	\tco{rcu_assign_pointer()} &
-		2.6.10 &
-			Memory barrier \\
-\bottomrule
-\end{tabular}
-}
-\caption{RCU Publish-Subscribe and Version Maintenance APIs}
-\label{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs}
-\end{table*}
-
-\begin{table*}
-\renewcommand*{\arraystretch}{1.2}
-\rowcolors{3}{lightgray}{}
-\footnotesize
-\centering
-\ebresizewidth{
-\begin{tabular}{lllp{1.2in}}\toprule
-Category &
-	Primitives &
-		Availability &
-			Overhead \\
-\midrule
-List traversal &
-	\tco{list_for_each_entry_rcu()} &
-		2.5.59 &
-			Simple instructions (memory barrier on Alpha) \\
-\midrule
-\cellcolor{white}List update &
-	\tco{list_add_rcu()} &
-		2.5.44 &
-			Memory barrier \\
-&
-	\tco{list_add_tail_rcu()} &
-		2.5.44 &
-			Memory barrier \\
-\cellcolor{white} &
-	\tco{list_del_rcu()} &
-		2.5.44 &
-			Simple instructions \\
-&
-	\tco{list_replace_rcu()} &
-		2.6.9 &
-			Memory barrier \\
-\cellcolor{white} &
-	\tco{list_splice_init_rcu()} &
-		2.6.21 &
-			Grace-period latency \\
-\midrule
-Hlist traversal &
-	\tco{hlist_for_each_entry_rcu()} &
-		2.6.8 &
-			Simple instructions (memory barrier on Alpha) \\
-\midrule
-\cellcolor{white}Hlist update &
-	\tco{hlist_add_after_rcu()} &
-		2.6.14 &
-			Memory barrier \\
-&
-	\tco{hlist_add_before_rcu()} &
-		2.6.14 &
-			Memory barrier \\
-\cellcolor{white} &
-	\tco{hlist_add_head_rcu()} &
-		2.5.64 &
-			Memory barrier \\
-&
-	\tco{hlist_del_rcu()} &
-		2.5.64 &
-			Simple instructions \\
-\cellcolor{white} &
-	\tco{hlist_replace_rcu()} &
-		2.6.15 &
-			Memory barrier \\
-\midrule\hiderowcolors
-Pointer traversal &
-	\tco{rcu_dereference()} &
-		2.6.9 &
-			Simple instructions (memory barrier on Alpha) \\
-\midrule
-Pointer update &
-	\tco{rcu_assign_pointer()} &
-		2.6.10 &
-			Memory barrier \\
-\bottomrule
-\end{tabular}
-}
-\caption{RCU Publish-Subscribe and Version Maintenance APIs}
-\label{tab:app:styleguide:RCU Publish-Subscribe and Version Maintenance APIs (colortbl)}
-\end{table*}
-
-\Cref{tab:app:styleguide:Memory Misordering: Store-Buffering Sequence of Events}
-(corresponding to
-\cref{tab:memorder:Memory Misordering: Store-Buffering Sequence of Events})
-is also a sequence diagram drawn as a tabular object.
-
-\begin{table*}
-\rowcolors{6}{}{lightgray}
-\renewcommand*{\arraystretch}{1.1}
-\small
-\centering\OneColumnHSpace{-0.1in}
-\ebresizewidth{
-\begin{tabular}{rllllll}
-	\toprule
-	& \multicolumn{3}{c}{CPU 0} & \multicolumn{3}{c}{CPU 1} \\
-	\cmidrule(l){2-4} \cmidrule(l){5-7}
-	& Instruction & Store Buffer & Cache &
-		Instruction & Store Buffer & Cache \\
-	\cmidrule{1-1} \cmidrule(l){2-4} \cmidrule(l){5-7}
-	1 & (Initial state) & & \tco{x1==0} &
-		(Initial state) & & \tco{x0==0} \\
-	2 & \tco{x0 = 2;} & \tco{x0==2} & \tco{x1==0} &
-		\tco{x1 = 2;} & \tco{x1==2} & \tco{x0==0} \\
-	3 & \tco{r2 = x1;} (0) & \tco{x0==2} & \tco{x1==0} &
-		\tco{r2 = x0;} (0) & \tco{x1==2} & \tco{x0==0} \\
-	4 & (Read-invalidate) & \tco{x0==2} & \tco{x0==0} &
-		(Read-invalidate) & \tco{x1==2} & \tco{x1==0} \\
-	5 & (Finish store) & & \tco{x0==2} &
-		(Finish store) & & \tco{x1==2} \\
-	\bottomrule
-\end{tabular}
-}
-\caption{Memory Misordering: Store-Buffering Sequence of Events}
-\label{tab:app:styleguide:Memory Misordering: Store-Buffering Sequence of Events}
-\end{table*}
-
-\Cref{tab:app:styleguide:Refrigeration Power Consumption (arydshln)}
-shows another version of
-\cref{tab:app:styleguide:Refrigeration Power Consumption}
-with dashed horizontal and vertical rules of the arydshln package.
-
-\setlength\dashlinedash{.5pt}
-\setlength\dashlinegap{1pt}
-
-\begin{table}
-\renewcommand*{\arraystretch}{1.2}\centering\small
-\begin{tabular}{l:r:r:r}\toprule
-Situation
-	& $T$ (K)
-		& $\CPf$ & \parbox[b]{.75in}{\raggedleft Power per watt\par waste heat (W)} \\
-\hline
-Dry Ice
-	& $195$
-		& $1.990$
-			& 0.5 \\ \hdashline
-Liquid N$_2$
-	& $77$
-		& $0.356$
-			& 2.8 \\ \hdashline
-Liquid H$_2$
-	& $20$
-		& $0.073$
-			& 13.7 \\ \hdashline
-Liquid He
-	& $4$
-		& $0.0138$
-			& 72.3 \\ \hdashline
-IBM~Q	& $0.015$
-		& $0.000051$
-			& 19,500.0 \\
-\bottomrule
-\end{tabular}
-\caption{Refrigeration Power Consumption}
-\label{tab:app:styleguide:Refrigeration Power Consumption (arydshln)}
-\end{table}
-
-In this case, the vertical dashed rules seems unnecessary.
-The one without the vertical rules is shown in
-\cref{tab:app:styleguide:Refrigeration Power Consumption (arydshln-2)}.
-
-\begin{table}
-\renewcommand*{\arraystretch}{1.2}\centering\small
-\begin{tabular}{lrrr}\toprule
-Situation
-	& $T$ (K)
-		& $\CPf$ & \parbox[b]{.75in}{\raggedleft Power per watt\par waste heat (W)} \\
-\midrule
-Dry Ice
-	& $195$
-		& $1.990$
-			& 0.5 \\ \hdashline
-Liquid N$_2$
-	& $77$
-		& $0.356$
-			& 2.8 \\ \hdashline
-Liquid H$_2$
-	& $20$
-		& $0.073$
-			& 13.7 \\ \hdashline
-Liquid He
-	& $4$
-		& $0.0138$
-			& 72.3 \\ \hdashline
-IBM~Q	& $0.015$
-		& $0.000051$
-			& 19,500.0 \\
-\bottomrule
-\end{tabular}
-\caption{Refrigeration Power Consumption}
-\label{tab:app:styleguide:Refrigeration Power Consumption (arydshln-2)}
-\end{table}
 
 \IfTblCpTop{}{
 \floatstyle{plain}
diff --git a/datastruct/datastruct.tex b/datastruct/datastruct.tex
index 527a269d..fa483d39 100644
--- a/datastruct/datastruct.tex
+++ b/datastruct/datastruct.tex
@@ -450,32 +450,29 @@ the caches, which in turn promotes locality of reference.
 The next section therefore examines optimizations that can be carried out in
 read-mostly cases where updates are rare, but could happen at any time.
 
-\setlength\dashlinedash{1pt}
-\setlength\dashlinegap{2pt}
-
 \begin{table}
 \renewcommand*{\arraystretch}{1.2}
 \centering
-\begin{tabular}{r||c:c}
+\begin{tabular}{r||c|c}
 	& \multicolumn{2}{c}{Hyperthread} \\
 	\cline{2-3}
 	Socket & 0 &  1 \\
 	\hline
 	\hline
 	0 &    0--27 & 224--251 \\
-	\cdashline{2-3}
+	\cline{2-3}
 	1 &   28--55 & 252--279 \\
-	\cdashline{2-3}
+	\cline{2-3}
 	2 &   56--83 & 280--307 \\
-	\cdashline{2-3}
+	\cline{2-3}
 	3 &  84--111 & 308--335 \\
-	\cdashline{2-3}
+	\cline{2-3}
 	4 & 112--139 & 336--363 \\
-	\cdashline{2-3}
+	\cline{2-3}
 	5 & 140--167 & 364--391 \\
-	\cdashline{2-3}
+	\cline{2-3}
 	6 & 168--195 & 392--419 \\
-	\cdashline{2-3}
+	\cline{2-3}
 	7 & 196--223 & 420--447 \\
 \end{tabular}
 \caption{NUMA Topology of System Under Test}
diff --git a/perfbook-lt.tex b/perfbook-lt.tex
index 4eec9b67..9957abef 100644
--- a/perfbook-lt.tex
+++ b/perfbook-lt.tex
@@ -369,7 +369,6 @@
 
 \usepackage{bm} % for bold math mode fonts --- should be after math mode font choice
 \usepackage{booktabs}
-\usepackage{arydshln}
 \definecolor{lightgray}{gray}{0.9} % for coloring alternate rows in table
 
 \fvset{fontsize=\scriptsize,obeytabs=true}
-- 
2.43.0