All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] Remove \co{} commands in tables
@ 2017-01-04  1:15 Akira Yokosawa
  2017-01-04  1:17 ` [PATCH 01/13] Define \tco{} command to be used in table Akira Yokosawa
                   ` (13 more replies)
  0 siblings, 14 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:15 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From d07bf0df57c597c22de9a7c159f10b0247cea8c2 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Wed, 4 Jan 2017 08:51:15 +0900
Subject: [PATCH 00/13] Remove \co{} commands in tables

\co{} command confuses column width estimation of tabular environment.
By removing \co{} commands in tables, bogus "~"s for manual width
adjustment can be removed.

Patch 1 introduces an alternative command \tco{} to be used in tables.
Patches 2--8 remove \co{} commands by using \tco{} or removing unnecessary
commands.
Patch 9 removes another "~" and uses \vspace{} instead.
Patches 10--13 do additional font tweaks. It looks better for me if
headers of tables such as "Thread 1" and "CPU 1" are typeset in normal font
of the text (Times Roman). Patch 13, which tweaks font of non-code words in
table, may be an excessive tweak. Whether or not to apply it is up to the
editor.

--
Akira Yokosawa (13):
  Define \tco{} command to be used in table
  rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives'
  rcuapi: Rewrite table 'RCU Wait-to-Finish APIs'
  rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance
    APIs'
  whichtochoose: Rewrite table 'Which Deferred Technique to Choose?'
  memorybarriers: Remove \co{} in tabular env
  memorybarriers: Use \verb in table 'Lock-Based Critical Sections'
  whymemorybarriers: Remove \co{} in tabular env
  memorybarriers: Replace nbsp with \vspace
  Add \nf{} command to go back to normal font
  memorybarriers: Add \nf{} command to table header
  whymemorybarriers: Add \nf{} command to table header
  memorybarriers: Add \nf{} command to descriptive words in table

 advsync/memorybarriers.tex           | 187 +++++++++++++++++------------------
 appendix/whymb/whymemorybarriers.tex |  70 ++++++-------
 defer/rcuapi.tex                     | 110 +++++++++------------
 defer/rcufundamental.tex             |  18 ++--
 defer/whichtochoose.tex              |  20 ++--
 perfbook.tex                         |   6 +-
 6 files changed, 200 insertions(+), 211 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 01/13] Define \tco{} command to be used in table
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
@ 2017-01-04  1:17 ` Akira Yokosawa
  2017-01-04  1:19 ` [PATCH 02/13] rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives' Akira Yokosawa
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:17 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 6ccc6c3ca1d324ff09b79fc955eed07b13a4575c Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 13:01:28 +0900
Subject: [PATCH 01/13] Define \tco{} command to be used in table

The \co{} command interferes with column width estimation of
tabular environment. To avoid the issue, this commit defines
a command "\tco{}" to be used instead. It will still break at white
spaces, but not at "_".
This commit also updates the definition of \nbco{} to make sure
that it won't break at "_".

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 perfbook.tex | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/perfbook.tex b/perfbook.tex
index 2942a3f..4eaace8 100644
--- a/perfbook.tex
+++ b/perfbook.tex
@@ -94,7 +94,10 @@
 \makeatother
 % ---  End of workaround for Fedora 23 Texlive bug
 \newcommand{\co}[1]{\lstinline[breaklines=true,breakatwhitespace=true]{#1}}
-\newcommand{\nbco}[1]{\lstinline[breaklines=false,breakatwhitespace=false]{#1}}
+\newcommand{\nbco}[1]{\hbox{\texttt{\detokenize{#1}}}} % no break lines for short snippet
+\newcommand{\tco}[1]{\texttt{\detokenize{#1}}} % for code in tabular environment
+% \tco{} will break at spaces but not at underscores
+
 \newcommand{\Epigraph}[2]{\epigraphhead[65]{\rmfamily\epigraph{#1}{#2}}}

 \title{Is Parallel Programming Hard, And, If So, What Can You Do About It?}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 02/13] rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives'
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
  2017-01-04  1:17 ` [PATCH 01/13] Define \tco{} command to be used in table Akira Yokosawa
@ 2017-01-04  1:19 ` Akira Yokosawa
  2017-01-04  1:20 ` [PATCH 03/13] rcuapi: Rewrite table 'RCU Wait-to-Finish APIs' Akira Yokosawa
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:19 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 5644ba4f62ce26df9c531e72f2a6a630ae80ce5c Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 13:13:18 +0900
Subject: [PATCH 02/13] rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives'

By using \tco{}, this commit removes bogus "~"s.
It also tweaks layout options of parboxes for better looks.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 defer/rcufundamental.tex | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/defer/rcufundamental.tex b/defer/rcufundamental.tex
index 0c97b8c..11d8d55 100644
--- a/defer/rcufundamental.tex
+++ b/defer/rcufundamental.tex
@@ -386,24 +386,24 @@ circular list:
 Category  & Publish	& Retract	& Subscribe \\
 \hline
 \hline
-Pointers  & \co{rcu_assign_pointer()}
-			& \co{rcu_assign_pointer(..., NULL)}~~
-					& \co{rcu_dereference()} \\
+Pointers  & \tco{rcu_assign_pointer()}
+			& \tco{rcu_assign_pointer(..., NULL)}
+					& \tco{rcu_dereference()} \\
 \hline
-Lists     & \parbox{1.5in}{
+Lists     & \parbox[c][0.37in][c]{1.3in}{
 		\co{list_add_rcu()} \\
 		\co{list_add_tail_rcu()} \\
 		\co{list_replace_rcu()} }
-			& \co{list_del_rcu()}
-					& \co{list_for_each_entry_rcu()}~~~ \\
+			& \tco{list_del_rcu()}
+					& \tco{list_for_each_entry_rcu()} \\
 \hline
-Hlists    & \parbox{1.5in}{
+Hlists    & \parbox[c][0.5in][c]{1.3in}{
 		\co{hlist_add_after_rcu()} \\
 		\co{hlist_add_before_rcu()}  \\
 		\co{hlist_add_head_rcu()} \\
 		\co{hlist_replace_rcu()} }
-			& \co{hlist_del_rcu()}
-					& \co{hlist_for_each_entry_rcu()}~~~~~
+			& \tco{hlist_del_rcu()}
+					& \tco{hlist_for_each_entry_rcu()}
 \end{tabular}
 \caption{RCU Publish and Subscribe Primitives}
 \label{tab:defer:RCU Publish and Subscribe Primitives}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 03/13] rcuapi: Rewrite table 'RCU Wait-to-Finish APIs'
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
  2017-01-04  1:17 ` [PATCH 01/13] Define \tco{} command to be used in table Akira Yokosawa
  2017-01-04  1:19 ` [PATCH 02/13] rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives' Akira Yokosawa
@ 2017-01-04  1:20 ` Akira Yokosawa
  2017-01-04  1:21 ` [PATCH 04/13] rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance APIs' Akira Yokosawa
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:20 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 3081eb38520f7e9415758f40ec4a26bb17bffbc0 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 13:53:15 +0900
Subject: [PATCH 03/13] rcuapi: Rewrite table 'RCU Wait-to-Finish APIs'

By using \tco{}, protection by minipages is not necessary anymore.
Now, features of "tabulary" can be fully utilized. Parameters of
the environment are tweaked somewhat.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 defer/rcuapi.tex | 67 +++++++++++++++++++++++---------------------------------
 1 file changed, 28 insertions(+), 39 deletions(-)

diff --git a/defer/rcuapi.tex b/defer/rcuapi.tex
index 830019e..8a678f6 100644
--- a/defer/rcuapi.tex
+++ b/defer/rcuapi.tex
@@ -18,8 +18,8 @@ presents concluding remarks.

 \begin{sidewaystable*}[htbp]
 \centering
-\scriptsize\tymin=1.4in
-\begin{tabulary}{7.8in}{L|L|L|L|L|L}
+\scriptsize\tymin=1.0in
+\begin{tabulary}{7.6in}{L|L|L|L|L|L}
 Attribute &
     RCU Classic &
 	RCU BH &
@@ -43,49 +43,38 @@ Availability &
 		    2.6.19 \\
 \hline
 Read-side primitives &
-    \begin{minipage}[t]{1.4in}{ \raggedright
-      \co{rcu_read_lock()}~! \\
-      \co{rcu_read_unlock()}~! }\end{minipage} &
-	\begin{minipage}[t]{1.4in}{ \raggedright
-	  \co{rcu_read_lock_bh()} \\
-	  \co{rcu_read_unlock_bh()} }\end{minipage} &
-	    \begin{minipage}[t]{1.4in}{ \raggedright
-	      \co{preempt_disable()} \\
-	      \co{preempt_enable()} \\
-	      (and friends) }\end{minipage} &
-	        \begin{minipage}[t]{1.4in}{ \raggedright
-		  \co{rcu_read_lock()} \\
-		  \co{rcu_read_unlock()} }\end{minipage} &
-		    \begin{minipage}[t]{1.4in}{ \raggedright
-		      \co{srcu_read_lock()} \\
-		      \co{srcu_read_unlock()} }\end{minipage} \\
+    \tco{rcu_read_lock()}~! \tco{rcu_read_unlock()}~! &
+	\tco{rcu_read_lock_bh()} \tco{rcu_read_unlock_bh()} &
+	    \tco{preempt_disable()} \tco{preempt_enable()} (and friends) &
+	        \tco{rcu_read_lock()} \tco{rcu_read_unlock()} &
+		    \tco{srcu_read_lock()} \tco{srcu_read_unlock()} \\
 \hline
 { Update-side primitives (synchronous) } &
-    { \co{synchronize_rcu()} \co{synchronize_net()} } &
-	\co{synchronize_rcu_bh()} &
-	    \co{synchronize_sched()} &
-	        { \co{synchronize_rcu()} \co{synchronize_net()} } &
-		    \co{synchronize_srcu()} \\
+    { \tco{synchronize_rcu()} \tco{synchronize_net()} } &
+	\tco{synchronize_rcu_bh()} &
+	    \tco{synchronize_sched()} &
+	        { \tco{synchronize_rcu()} \tco{synchronize_net()} } &
+		    \tco{synchronize_srcu()} \\
 \hline
 { Update-side primitives (asynchronous/callback) } &
-    \co{call_rcu()} ! &
-	\co{call_rcu_bh()} &
-	    \co{call_rcu_sched()} &
-	        \co{call_rcu()} &
-		    \co{call_srcu()} \\
+    \tco{call_rcu()} ! &
+	\tco{call_rcu_bh()} &
+	    \tco{call_rcu_sched()} &
+	        \tco{call_rcu()} &
+		    \tco{call_srcu()} \\
 \hline
 { Update-side primitives (wait for callbacks) } &
-    \co{rcu_barrier()} &
-	\co{rcu_barrier_bh()} &
-	    \co{rcu_barrier_sched()} &
-	        \co{rcu_barrier()} &
+    \tco{rcu_barrier()} &
+	\tco{rcu_barrier_bh()} &
+	    \tco{rcu_barrier_sched()} &
+	        \tco{rcu_barrier()} &
 		    N/A \\
 \hline
 Type-safe memory &
-    \co{SLAB_DESTROY_BY_RCU} &
+    \tco{SLAB_DESTROY_BY_RCU} &
 	&
 	    &
-	        \co{SLAB_DESTROY_BY_RCU} &
+	        \tco{SLAB_DESTROY_BY_RCU} &
 		    \\
 \hline
 Read side constraints &
@@ -93,12 +82,12 @@ Read side constraints &
 	No bottom-half (BH) enabling &
 	    No blocking &
 	        Only preemption and lock acquisition &
-		    No \co{synchronize_srcu()} with same \co{srcu_struct} \\
+		    No \tco{synchronize_srcu()} with same \tco{srcu_struct} \\
 \hline
 Read side overhead &
-    Preempt disable/enable (free on non-PREEMPT) &
+    Preempt disable/enable (free on non-\tco{PREEMPT}) &
 	BH disable/enable &
-	    Preempt disable/enable (free on non-PREEMPT) &
+	    Preempt disable/enable (free on non-\tco{PREEMPT}) &
 	        Simple instructions, irq disable/enable &
 		    Simple instructions, preempt disable/enable, memory barriers \\
 \hline
@@ -116,14 +105,14 @@ Grace-period latency &
 	        10s of milliseconds &
 		    10s of milliseconds \\
 \hline
-Non-\co{PREEMPT_RT} implementation &
+Non-\tco{PREEMPT_RT} implementation &
     RCU Classic &
 	RCU BH &
 	    RCU Classic &
 	        Preemptible RCU &
 		    SRCU \\
 \hline
-\co{PREEMPT_RT} implementation &
+\tco{PREEMPT_RT} implementation &
     Preemptible RCU &
 	Realtime RCU &
 	    Forced Schedule on all CPUs &
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 04/13] rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance APIs'
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (2 preceding siblings ...)
  2017-01-04  1:20 ` [PATCH 03/13] rcuapi: Rewrite table 'RCU Wait-to-Finish APIs' Akira Yokosawa
@ 2017-01-04  1:21 ` Akira Yokosawa
  2017-01-04  1:23 ` [PATCH 05/13] whichtochoose: Rewrite table 'Which Deferred Technique to Choose?' Akira Yokosawa
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:21 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 5c513c2e5b0b9978093475d91cc55c634002aa84 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 15:56:01 +0900
Subject: [PATCH 04/13] rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance APIs'

By using \tco{} command, this table can be easily expressed in
normal tabular environment.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 defer/rcuapi.tex | 43 ++++++++++++++++++++-----------------------
 1 file changed, 20 insertions(+), 23 deletions(-)

diff --git a/defer/rcuapi.tex b/defer/rcuapi.tex
index 8a678f6..f2aa3ff 100644
--- a/defer/rcuapi.tex
+++ b/defer/rcuapi.tex
@@ -456,8 +456,8 @@ that Linux supports~\cite{Spraul01}.

 \begin{table*}[tb]
 \footnotesize
-\centering\tymin=1.0in\tymax=1.6in
-\begin{tabulary}{5in}{l|L|l|L}
+\centering
+\begin{tabular}{l|l|l|p{1.2in}}
 Category &
 	Primitives &
 		Availability &
@@ -465,69 +465,66 @@ Category &
 \hline
 \hline
 List traversal &
-	\co{list_for_each_entry_rcu()} &
+	\tco{list_for_each_entry_rcu()} &
 		2.5.59 &
-			{ \raggedright
-			  Simple instructions (memory barrier on Alpha) } \\
+			Simple instructions (memory barrier on Alpha) \\
 \hline
 List update &
-	\co{list_add_rcu()} &
+	\tco{list_add_rcu()} &
 		2.5.44 &
 			Memory barrier \\
 &
-	\co{list_add_tail_rcu()} &
+	\tco{list_add_tail_rcu()} &
 		2.5.44 &
 			Memory barrier \\
 &
-	\co{list_del_rcu()} &
+	\tco{list_del_rcu()} &
 		2.5.44 &
 			Simple instructions \\
 &
-	\co{list_replace_rcu()} &
+	\tco{list_replace_rcu()} &
 		2.6.9 &
 			Memory barrier \\
 &
-	\co{list_splice_init_rcu()} &
+	\tco{list_splice_init_rcu()} &
 		2.6.21 &
 			Grace-period latency \\
 \hline
 Hlist traversal &
-	\co{hlist_for_each_entry_rcu()} &
+	\tco{hlist_for_each_entry_rcu()} &
 		2.6.8 &
-			{ \raggedright
-			  Simple instructions (memory barrier on Alpha) } \\
+			Simple instructions (memory barrier on Alpha) \\
 &
-	\co{hlist_add_after_rcu()} &
+	\tco{hlist_add_after_rcu()} &
 		2.6.14 &
 			Memory barrier \\
 &
-	\co{hlist_add_before_rcu()} &
+	\tco{hlist_add_before_rcu()} &
 		2.6.14 &
 			Memory barrier \\
 &
-	\co{hlist_add_head_rcu()} &
+	\tco{hlist_add_head_rcu()} &
 		2.5.64 &
 			Memory barrier \\
 &
-	\co{hlist_del_rcu()} &
+	\tco{hlist_del_rcu()} &
 		2.5.64 &
 			Simple instructions \\
 &
-	\co{hlist_replace_rcu()} &
+	\tco{hlist_replace_rcu()} &
 		2.6.15 &
 			Memory barrier \\
 \hline
 Pointer traversal &
-	\co{rcu_dereference()} &
+	\tco{rcu_dereference()} &
 		2.6.9 &
-			{ \raggedright
-			  Simple instructions (memory barrier on Alpha) } \\
+			Simple instructions (memory barrier on Alpha) \\
 \hline
 Pointer update &
-	\co{rcu_assign_pointer()} &
+	\tco{rcu_assign_pointer()} &
 		2.6.10 &
 			Memory barrier \\
-\end{tabulary}
+\end{tabular}
 \caption{RCU Publish-Subscribe and Version Maintenance APIs}
 \label{tab:defer:RCU Publish-Subscribe and Version Maintenance APIs}
 \end{table*}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 05/13] whichtochoose: Rewrite table 'Which Deferred Technique to Choose?'
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (3 preceding siblings ...)
  2017-01-04  1:21 ` [PATCH 04/13] rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance APIs' Akira Yokosawa
@ 2017-01-04  1:23 ` Akira Yokosawa
  2017-01-04  1:24 ` [PATCH 06/13] memorybarriers: Remove \co{} in tabular env Akira Yokosawa
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:23 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 62c8c8b8060cc50f2c17e626723b801def90b29e Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 15:57:59 +0900
Subject: [PATCH 05/13] whichtochoose: Rewrite table 'Which Deferred Technique to Choose?'

By using \tco{} command, this table can be more easily expressed
in "tabulary" environment. This commit also removes bogus "~"s and
reduces font size to footnotesize. It also appends short cut command
of extdash to compound words.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 defer/whichtochoose.tex | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/defer/whichtochoose.tex b/defer/whichtochoose.tex
index 11f3b0a..cf21341 100644
--- a/defer/whichtochoose.tex
+++ b/defer/whichtochoose.tex
@@ -5,10 +5,10 @@
 \label{sec:defer:Which to Choose?}

 \begin{table*}
-\small
-\centering
-\begin{tabular}{p{1.5in}||p{1.5in}|p{0.8in}|p{0.8in}|p{1.0in}}
-	~ ~ ~ ~ ~ ~ ~ ~ ~
+\footnotesize
+\centering\tymin=0.4in\tymax=2in
+\begin{tabulary}{5.3in}{L||L|L|L|L}
+
 		& Reference Counting
 			& Hazard Pointers
 				& Sequence Locks
@@ -34,17 +34,17 @@
 				& None
 					& None \\
 	\hline
-	Reader Per-Critical-Section Overhead
+	Reader Per\-/Critical\-/Section Overhead
 		& N/A
 			& N/A
-				& Two \co{smp_mb()}
+				& Two \tco{smp_mb()}
 					& Ranges from none to two
-					  \co{smp_mb()} \\
+					  \tco{smp_mb()} \\
 	\hline
 	Reader Per-Object Traversal Overhead
-		& Read-modify-write atomic operations, memory-barrier
+		& Read-modify-write atomic operations, memory\-/barrier
 		  instructions, and cache misses
-			& \co{smp_mb()}
+			& \tco{smp_mb()}
 				& None, but unsafe
 					& None (volatile accesses) \\
 	\hline
@@ -83,7 +83,7 @@
 			& 79
 				& 79
 					& 73 \\
-\end{tabular}
+\end{tabulary}
 \caption{Which Deferred Technique to Choose?}
 \label{tab:defer:Which Deferred Technique to Choose?}
 \end{table*}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 06/13] memorybarriers: Remove \co{} in tabular env
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (4 preceding siblings ...)
  2017-01-04  1:23 ` [PATCH 05/13] whichtochoose: Rewrite table 'Which Deferred Technique to Choose?' Akira Yokosawa
@ 2017-01-04  1:24 ` Akira Yokosawa
  2017-01-04  1:25 ` [PATCH 07/13] memorybarriers: Use \verb in table 'Lock-Based Critical Sections' Akira Yokosawa
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:24 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 0c2deaa9675059d632aed04cfbd6f9f86f045720 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sun, 1 Jan 2017 13:41:04 +0900
Subject: [PATCH 06/13] memorybarriers: Remove \co{} in tabular env

Not just replacing \co{}s, this commit removes unnecessary commands
which are already in typewriter font. It also proactively uses
escapes by "\" for a single "_" in API.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 advsync/memorybarriers.tex | 109 ++++++++++++++++++++++-----------------------
 1 file changed, 54 insertions(+), 55 deletions(-)

diff --git a/advsync/memorybarriers.tex b/advsync/memorybarriers.tex
index b8bc611..100b67d 100644
--- a/advsync/memorybarriers.tex
+++ b/advsync/memorybarriers.tex
@@ -13,15 +13,15 @@ use of standard mutual-exclusion mechanisms, such as locking and
 RCU.

 \begin{table}
-\centering
+\centering{\tt
 \begin{tabular}{l|l}
 	Thread 1 & Thread 2 \\
 	\hline
-	\co{x = 1;} & \co{y = 1;} \\
-	\co{r1 = y;} & \co{r2 = x;} \\
+	x = 1;  & y = 1; \\
+	r1 = y; & r2 = x; \\
 	\hline
-	\multicolumn{2}{l}{\co{assert(r1 == 1 || r2 == 1);}} \\
-\end{tabular}
+	\multicolumn{2}{l}{assert(r1 == 1 || r2 == 1);} \\
+\end{tabular}}
 \caption{Memory Misordering: Dekker}
 \label{tab:advsync:Memory Misordering: Dekker}
 \end{table}
@@ -522,9 +522,9 @@ on this weaker if-then conditional ordering guarantee.
 \begin{tabular}{l|l}
 	CPU 1 &			CPU 2 \\
 	\hline
-	\co{access(A);} &	\co{access(B);} \\
-	\co{smp_mb();} &	\co{smp_mb();} \\
-	\co{access(B);} &	\co{access(A);} \\
+	access(A);	&	access(B); \\
+	smp\_mb();	&	smp\_mb(); \\
+	access(B);	&	access(A); \\
 \end{tabular}
 \end{minipage}
 \vspace{5pt}
@@ -617,9 +617,9 @@ pairings that portable software may depend on.
 	\begin{tabular}{l|l}
 		CPU 1 &			CPU 2 \\
 		\hline
-		\co{A=1;} &		\co{Y=B;} \\
-		\co{smp_mb();} &	\co{smp_mb();} \\
-		\co{B=1;} &		\co{X=A;} \\
+		A=1;		&	Y=B; \\
+		smp\_mb();	&	smp\_mb(); \\
+		B=1;		&	X=A; \\
 	\end{tabular}
 	\end{minipage}
 	\vspace{5pt}
@@ -649,9 +649,9 @@ pairings that portable software may depend on.
 	\begin{tabular}{l|l}
 		CPU 1 &			CPU 2 \\
 		\hline
-		\co{X=A;} &		\co{Y=B;} \\
-		\co{smp_mb();} &	\co{smp_mb();} \\
-		\co{B=1;} &		\co{A=1;} \\
+		X=A;            &	Y=B; \\
+		smp\_mb();	&	smp\_mb(); \\
+		B=1;            &	A=1; \\
 	\end{tabular}
 	\end{minipage}
 	\vspace{5pt}
@@ -686,9 +686,9 @@ pairings that portable software may depend on.
 	\begin{tabular}{l|l}
 		CPU 1 &			CPU 2 \\
 		\hline
-		\co{X=A;} &		\co{B=2;} \\
-		\co{smp_mb();} &	\co{smp_mb();} \\
-		\co{B=1;} &		\co{A=1;} \\
+		X=A;		&	B=2; \\
+		smp\_mb();	&	smp\_mb(); \\
+		B=1;		&	A=1; \\
 	\end{tabular}
 	\end{minipage}
 	\vspace{5pt}
@@ -767,9 +767,9 @@ keep in mind that they used to be a \emph{lot} harder on some systems!
 	\begin{tabular}{l|l}
 		CPU 1 &			CPU 2 \\
 		\hline
-		\co{A=1;} &		\co{B=2;} \\
-		\co{smp_mb();} &	\co{smp_mb();} \\
-		\co{B=1;} &		\co{A=2;} \\
+		A=1;		&	B=2; \\
+		smp\_mb();	&	smp\_mb(); \\
+		B=1;		&	A=2; \\
 	\end{tabular}
 	\end{minipage}
 	\vspace{5pt}
@@ -1049,17 +1049,16 @@ the sequence of operations might be as follows:
 \vspace{5pt}
 \begin{minipage}[t]{\columnwidth}
 \tt \scriptsize
-\scriptsize
 \begin{tabular}{l|l}
 	CPU 1 &			CPU 2 \\
 	\hline
-	(critical section) &	\co{atomic_xchg(&lck->a, 1)->1} \\
-	\co{smp_mb();} &	\co{lck->a->1} \\
-	\co{lck->a=0;} &	\co{lck->a->1} \\
-	&			\co{lck->a->0} \\
-	&			(implicit \co{smp_mb()} 1) \\
-	&			\co{atomic_xchg(&lck->a, 1)->0} \\
-	&			(implicit \co{smp_mb()} 2) \\
+	(critical section) &	\tco{atomic_xchg(&lck->a, 1)->1} \\
+	\tco{smp_mb();}    &	lck->a->1 \\
+	lck->a=0;	   &	lck->a->1 \\
+	&			lck->a->0 \\
+	&			(implicit \tco{smp_mb()} 1) \\
+	&			\tco{atomic_xchg(&lck->a, 1)->0} \\
+	&			(implicit \tco{smp_mb()} 2) \\
 	&			(critical section) \\
 \end{tabular}
 \end{minipage}
@@ -2077,14 +2076,14 @@ This is demonstrated by two related examples, with the initial values of
 \begin{tabular}{l|p{1.5in}}
 	CPU 0 &		CPU 1 \\
 	\hline
-	\co{r1 = READ_ONCE(x);} &
-		\co{r2 = READ_ONCE(y);} \\
-	\co{if (r1 > 0)} &
-		\co{if (r2 > 0)} \\
-	~~~\co{WRITE_ONCE(y, 1);} &
-		~~~\co{WRITE_ONCE(x, 1);} \\
+	r1 = READ\_ONCE(x); &
+		r2 = READ\_ONCE(y); \\
+	if (r1 > 0) &
+		if (r2 > 0) \\
+	~~~WRITE\_ONCE(y, 1); &
+		~~~WRITE\_ONCE(x, 1); \\
 	\multicolumn{2}{l}{~} \\
-	\multicolumn{2}{l}{\co{assert(!(r1 == 1 && r2 == 1));}} \\
+	\multicolumn{2}{l}{\tco{assert(!(r1 == 1 && r2 == 1));}} \\
 \end{tabular}
 \end{minipage}
 \vspace{5pt}
@@ -2100,9 +2099,9 @@ not), then adding the following CPU would guarantee a related assertion:
 \begin{tabular}{l}
 	CPU 2 \\
 	\hline
-	\co{WRITE_ONCE(y, 1);} \\
+	WRITE\_ONCE(y, 1); \\
 	\multicolumn{1}{l}{~} \\
-	\multicolumn{1}{l}{\co{assert(!(r1 == 1 && r2 == 1 && x == 1));}} \\
+	\multicolumn{1}{l}{\tco{assert(!(r1 == 1 && r2 == 1 && x == 1));}} \\
 \end{tabular}
 \end{minipage}
 \vspace{5pt}
@@ -2744,17 +2743,17 @@ Table~\ref{tab:advsync:Ordering With Multiple Locks}, which uses
 a pair of locks named ``M'' and ``Q''.

 \begin{table}[htbp]
-\scriptsize\centering
+\scriptsize\centering{\tt
 \begin{tabular}{r|l}
-  \co{CPU 1}     & \co{CPU 2} \\
+  CPU 1 &	CPU 2 \\
   \hline
-  \co{A = a;}    & \co{E = e;} \\
-  \co{LOCK M;}   & \co{LOCK Q;} \\
-  \co{B = b;}    & \co{F = f;} \\
-  \co{C = c;}    & \co{G = g;} \\
-  \co{UNLOCK M;} & \co{UNLOCK Q;} \\
-  \co{D = d;}    & \co{H = h;} \\
-\end{tabular}
+  A = a; &	E = e; \\
+  LOCK M; &	LOCK Q; \\
+  B = b; &	F = f; \\
+  C = c; &	G = g; \\
+  UNLOCK M; &	UNLOCK Q; \\
+  D = d; &	H = h; \\
+\end{tabular}}
 \caption{Ordering With Multiple Locks}
 \label{tab:advsync:Ordering With Multiple Locks}
 \end{table}
@@ -2784,17 +2783,17 @@ the same lock, as shown in
 Table~\ref{tab:advsync:Ordering With Multiple CPUs on One Lock}?

 \begin{table}[htbp]
-\scriptsize\centering
+\scriptsize\centering{\tt
 \begin{tabular}{r|l}
-  \co{CPU 1}     & \co{CPU 2} \\
+  CPU 1 &	CPU 2 \\
   \hline
-  \co{A = a;}    & \co{E = e;} \\
-  \co{LOCK M;}   & \co{LOCK M;} \\
-  \co{B = b;}    & \co{F = f;} \\
-  \co{C = c;}    & \co{G = g;} \\
-  \co{UNLOCK M;} & \co{UNLOCK M;} \\
-  \co{D = d;}    & \co{H = h;} \\
-\end{tabular}
+  A = a; &	E = e; \\
+  LOCK M; &	LOCK M; \\
+  B = b; &	F = f; \\
+  C = c; &	G = g; \\
+  UNLOCK M; &	UNLOCK M; \\
+  D = d; &	H = h; \\
+\end{tabular}}
 \caption{Ordering With Multiple CPUs on One Lock}
 \label{tab:advsync:Ordering With Multiple CPUs on One Lock}
 \end{table}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 07/13] memorybarriers: Use \verb in table 'Lock-Based Critical Sections'
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (5 preceding siblings ...)
  2017-01-04  1:24 ` [PATCH 06/13] memorybarriers: Remove \co{} in tabular env Akira Yokosawa
@ 2017-01-04  1:25 ` Akira Yokosawa
  2017-01-04  1:26 ` [PATCH 08/13] whymemorybarriers: Remove \co{} in tabular env Akira Yokosawa
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:25 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 63d69c9948baaf52f8dffb76f86f308b05050118 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 17:53:35 +0900
Subject: [PATCH 07/13] memorybarriers: Use \verb in table 'Lock-Based Critical Sections'

In this case, using \verb makes your life simpler.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 advsync/memorybarriers.tex | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/advsync/memorybarriers.tex b/advsync/memorybarriers.tex
index 100b67d..6291097 100644
--- a/advsync/memorybarriers.tex
+++ b/advsync/memorybarriers.tex
@@ -2685,23 +2685,23 @@ operations concurrently:
   \# & Ordering: legitimate or not? \\
   \hline
   \hline
-  1 & \co{*A; *B; LOCK; *C; *D; UNLOCK; *E; *F;} \\
+  1 & \verb|*A; *B; LOCK; *C; *D; UNLOCK; *E; *F;| \\
   \hline
-  2 & \tt{*A; \{*B; LOCK;\} *C; *D; UNLOCK; *E; *F;} \\
+  2 & \verb|*A; {*B; LOCK;} *C; *D; UNLOCK; *E; *F;| \\
   \hline
-  3 & \tt{\{*F; *A;\} *B; LOCK; *C; *D; UNLOCK; *E;} \\
+  3 & \verb|{*F; *A;} *B; LOCK; *C; *D; UNLOCK; *E;| \\
   \hline
-  4 & \tt{*A; *B; \{LOCK; *C;\} *D; \{UNLOCK; *E;\} *F;} \\
+  4 & \verb|*A; *B; {LOCK; *C;} *D; {UNLOCK; *E;} *F;| \\
   \hline
-  5 & \co{*B; LOCK; *C; *D; *A; UNLOCK; *E; *F;} \\
+  5 & \verb|*B; LOCK; *C; *D; *A; UNLOCK; *E; *F;| \\
   \hline
-  6 & \co{*A; *B; *C; LOCK; *D; UNLOCK; *E; *F;} \\
+  6 & \verb|*A; *B; *C; LOCK; *D; UNLOCK; *E; *F;| \\
   \hline
-  7 & \co{*A; *B; LOCK; *C; UNLOCK; *D; *E; *F;} \\
+  7 & \verb|*A; *B; LOCK; *C; UNLOCK; *D; *E; *F;| \\
   \hline
-  8 & \tt{\{*B; *A; LOCK;\} \{*D; *C;\} \{UNLOCK; *F; *E;\}} \\
+  8 & \verb|{*B; *A; LOCK;} {*D; *C;} {UNLOCK; *F; *E;}| \\
   \hline
-  9 & \tt{*B; LOCK; *C; *D; UNLOCK; \{*F; *A;\} *E; } \\
+  9 & \verb|*B; LOCK; *C; *D; UNLOCK; {*F; *A;} *E;| \\
 \end{tabular}
 \caption{Lock-Based Critical Sections}
 \label{tab:advsync:Lock-Based Critical Sections}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 08/13] whymemorybarriers: Remove \co{} in tabular env
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (6 preceding siblings ...)
  2017-01-04  1:25 ` [PATCH 07/13] memorybarriers: Use \verb in table 'Lock-Based Critical Sections' Akira Yokosawa
@ 2017-01-04  1:26 ` Akira Yokosawa
  2017-01-04  1:28 ` [PATCH 09/13] memorybarriers: Replace nbsp with \vspace Akira Yokosawa
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:26 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 7ca309f9799fd412cc4c09adcf98e46ec4aea61a Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Mon, 2 Jan 2017 08:44:33 +0900
Subject: [PATCH 08/13] whymemorybarriers: Remove \co{} in tabular env

By setting typewriter font as default, this commit removes \co{}
commands. It also proactively uses escapes by "\" for a single
"_" in API.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 appendix/whymb/whymemorybarriers.tex | 52 ++++++++++++++++++------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/appendix/whymb/whymemorybarriers.tex b/appendix/whymb/whymemorybarriers.tex
index 2b6fc97..f97160a 100644
--- a/appendix/whymb/whymemorybarriers.tex
+++ b/appendix/whymb/whymemorybarriers.tex
@@ -1355,20 +1355,20 @@ Each of ``a'', ``b'', and ``c'' are initially zero.

 \begin{table*}
 \small
-\centering
+\centering{\tt
 \begin{tabular}{l|l|l}
 	\multicolumn{1}{c|}{CPU~0} &
 		\multicolumn{1}{c|}{CPU~1} &
 			\multicolumn{1}{c}{CPU~2} \\
 	\hline
 	\hline
-	\co{a = 1;}	 &		& \\
-	\co{smp_wmb();} & \co{while (b == 0)}; & \\
-	\co{b = 1;}	 & \co{c = 1;} & \co{z = c;} \\
-			 &		& \co{smp_rmb();} \\
-			 &		& \co{x = a;} \\
-			 &		& \co{assert(z == 0 || x == 1);} \\
-\end{tabular}
+	a = 1;		 &		& \\
+	smp\_wmb(); 	 & while (b == 0); & \\
+	b = 1;		 & c = 1;	& z = c; \\
+			 &		& smp\_rmb(); \\
+			 &		& x = a; \\
+			 &		& assert(z == 0 || x == 1); \\
+\end{tabular}}
 \caption{Memory Barrier Example 1}
 \label{tab:app:whymb:Memory Barrier Example 1}
 \end{table*}
@@ -1415,19 +1415,19 @@ Both ``a'' and ``b'' are initially zero.

 \begin{table*}
 \small
-\centering
+\centering{\tt
 \begin{tabular}{l|l|l}
 	\multicolumn{1}{c|}{CPU~0} &
 		\multicolumn{1}{c|}{CPU~1} &
 			\multicolumn{1}{c}{CPU~2} \\
 	\hline
 	\hline
-	\co{a = 1;} & \co{while (a == 0)}; & \\
-		     & \co{smp_mb();}	& \co{y = b;} \\
-		     & \co{b = 1;}	& \co{smp_rmb();} \\
-		     &			& \co{x = a;} \\
-		     &			& \co{assert(y == 0 || x == 1);} \\
-\end{tabular}
+	a = 1;	     & while (a == 0); & \\
+		     & smp\_mb();	& y = b; \\
+		     & b = 1;		& smp\_rmb(); \\
+		     &			& x = a; \\
+		     &			& assert(y == 0 || x == 1); \\
+\end{tabular}}
 \caption{Memory Barrier Example 2}
 \label{tab:app:whymb:Memory Barrier Example 2}
 \end{table*}
@@ -1457,23 +1457,23 @@ All variables are initially zero.

 \begin{table*}
 \scriptsize
-\centering
+\centering{\tt
 \begin{tabular}{r|l|l|l}
 	& \multicolumn{1}{c|}{CPU~0} &
 		\multicolumn{1}{c|}{CPU~1} &
 			\multicolumn{1}{c}{CPU~2} \\
 	\hline
 	\hline
- 1 &	\co{a = 1;} &			& \\
- 2 &	\co{smb_wmb();} &		& \\
- 3 &	\co{b = 1;} & \co{while (b == 0)}; & \co{while (b == 0)}; \\
- 4 &		     & \co{smp_mb();}	& \co{smp_mb();} \\
- 5 &		     & \co{c = 1;}	& \co{d = 1;} \\
- 6 &	\co{while (c == 0);} &		& \\
- 7 &	\co{while (d == 0);} &		& \\
- 8 &	\co{smp_mb();} &		& \\
- 9 &	\co{e = 1;} &			& \co{assert(e == 0 || a == 1);} \\
-\end{tabular}
+ 1 &	a = 1; &			& \\
+ 2 &	smb\_wmb();	&		& \\
+ 3 &	b = 1;		& while (b == 0); & while (b == 0); \\
+ 4 &			& smp\_mb();	& smp\_mb(); \\
+ 5 &			& c = 1;	& d = 1; \\
+ 6 &	while (c == 0); &		& \\
+ 7 &	while (d == 0); &		& \\
+ 8 &	smp\_mb();	&		& \\
+ 9 &	e = 1; &			& assert(e == 0 || a == 1); \\
+\end{tabular}}
 \caption{Memory Barrier Example 3}
 \label{tab:app:whymb:Memory Barrier Example 3}
 \end{table*}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 09/13] memorybarriers: Replace nbsp with \vspace
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (7 preceding siblings ...)
  2017-01-04  1:26 ` [PATCH 08/13] whymemorybarriers: Remove \co{} in tabular env Akira Yokosawa
@ 2017-01-04  1:28 ` Akira Yokosawa
  2017-01-04  1:29 ` [PATCH 10/13] Add \nf{} command to go back to normal font Akira Yokosawa
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:28 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From 7fb784f112a501b3fe189538b74f3a3b9f97ad99 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 23:13:49 +0900
Subject: [PATCH 09/13] memorybarriers: Replace nbsp with \vspace

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 advsync/memorybarriers.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/advsync/memorybarriers.tex b/advsync/memorybarriers.tex
index 6291097..3bf3a7f 100644
--- a/advsync/memorybarriers.tex
+++ b/advsync/memorybarriers.tex
@@ -1160,7 +1160,7 @@ The set of accesses as seen by the memory system in the middle can be arranged
 in 24 different combinations, with loads denoted by ``ld'' and stores
 denoted by ``st'':

-~ \\
+\vspace{5pt}
 \begin{minipage}[t]{\columnwidth}
 \tt
 \scriptsize
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 10/13] Add \nf{} command to go back to normal font
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (8 preceding siblings ...)
  2017-01-04  1:28 ` [PATCH 09/13] memorybarriers: Replace nbsp with \vspace Akira Yokosawa
@ 2017-01-04  1:29 ` Akira Yokosawa
  2017-01-04  1:30 ` [PATCH 11/13] memorybarriers: Add \nf{} command to table header Akira Yokosawa
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:29 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From aac92885e4b76e4229fedc388e8539bc0f656153 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sat, 31 Dec 2016 19:00:00 +0900
Subject: [PATCH 10/13] Add \nf{} command to go back to normal font

This command will be used in tables whose base font is typewriter
font. We should avoid \rm{} command in case sans serif font be
selected as default.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 perfbook.tex | 1 +
 1 file changed, 1 insertion(+)

diff --git a/perfbook.tex b/perfbook.tex
index 4eaace8..bb1e47e 100644
--- a/perfbook.tex
+++ b/perfbook.tex
@@ -97,6 +97,7 @@
 \newcommand{\nbco}[1]{\hbox{\texttt{\detokenize{#1}}}} % no break lines for short snippet
 \newcommand{\tco}[1]{\texttt{\detokenize{#1}}} % for code in tabular environment
 % \tco{} will break at spaces but not at underscores
+\newcommand{\nf}[1]{\textnormal{#1}} % to return to normal font

 \newcommand{\Epigraph}[2]{\epigraphhead[65]{\rmfamily\epigraph{#1}{#2}}}

-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 11/13] memorybarriers: Add \nf{} command to table header
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (9 preceding siblings ...)
  2017-01-04  1:29 ` [PATCH 10/13] Add \nf{} command to go back to normal font Akira Yokosawa
@ 2017-01-04  1:30 ` Akira Yokosawa
  2017-01-04  1:31 ` [PATCH 12/13] whymemorybarriers: " Akira Yokosawa
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:30 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From f09bec66accb5e0340777fb4c2590f930ddd5aa6 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sun, 1 Jan 2017 13:57:17 +0900
Subject: [PATCH 11/13] memorybarriers: Add \nf{} command to table header

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 advsync/memorybarriers.tex | 50 +++++++++++++++++++++++-----------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/advsync/memorybarriers.tex b/advsync/memorybarriers.tex
index 3bf3a7f..7f1c3c8 100644
--- a/advsync/memorybarriers.tex
+++ b/advsync/memorybarriers.tex
@@ -15,7 +15,7 @@ RCU.
 \begin{table}
 \centering{\tt
 \begin{tabular}{l|l}
-	Thread 1 & Thread 2 \\
+	\nf{Thread 1} & \nf{Thread 2} \\
 	\hline
 	x = 1;  & y = 1; \\
 	r1 = y; & r2 = x; \\
@@ -520,7 +520,7 @@ on this weaker if-then conditional ordering guarantee.
 \tt
 \scriptsize
 \begin{tabular}{l|l}
-	CPU 1 &			CPU 2 \\
+	\nf{CPU 1} &		\nf{CPU 2} \\
 	\hline
 	access(A);	&	access(B); \\
 	smp\_mb();	&	smp\_mb(); \\
@@ -615,7 +615,7 @@ pairings that portable software may depend on.
 	\tt
 	\scriptsize
 	\begin{tabular}{l|l}
-		CPU 1 &			CPU 2 \\
+		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		A=1;		&	Y=B; \\
 		smp\_mb();	&	smp\_mb(); \\
@@ -647,7 +647,7 @@ pairings that portable software may depend on.
 	\tt
 	\scriptsize
 	\begin{tabular}{l|l}
-		CPU 1 &			CPU 2 \\
+		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		X=A;            &	Y=B; \\
 		smp\_mb();	&	smp\_mb(); \\
@@ -684,7 +684,7 @@ pairings that portable software may depend on.
 	\tt
 	\scriptsize
 	\begin{tabular}{l|l}
-		CPU 1 &			CPU 2 \\
+		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		X=A;		&	B=2; \\
 		smp\_mb();	&	smp\_mb(); \\
@@ -765,7 +765,7 @@ keep in mind that they used to be a \emph{lot} harder on some systems!
 	\tt
 	\scriptsize
 	\begin{tabular}{l|l}
-		CPU 1 &			CPU 2 \\
+		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		A=1;		&	B=2; \\
 		smp\_mb();	&	smp\_mb(); \\
@@ -1050,7 +1050,7 @@ the sequence of operations might be as follows:
 \begin{minipage}[t]{\columnwidth}
 \tt \scriptsize
 \begin{tabular}{l|l}
-	CPU 1 &			CPU 2 \\
+	\nf{CPU 1} &		\nf{CPU 2} \\
 	\hline
 	(critical section) &	\tco{atomic_xchg(&lck->a, 1)->1} \\
 	\tco{smp_mb();}    &	lck->a->1 \\
@@ -1148,7 +1148,7 @@ initial values {\tt \{A = 1, B = 2\}}:
 \tt
 \scriptsize
 \begin{tabular}{l|l}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 3; &	x = A; \\
 	B = 4; &	y = B; \\
@@ -1205,7 +1205,7 @@ initial values {\tt \{A = 1, B = 2, C = 3, P = \&A, Q = \&C\}}:
 \tt
 \scriptsize
 \begin{tabular}{l|l}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	B = 4; &	Q = P; \\
 	P = \&B &	D = *Q; \\
@@ -1654,7 +1654,7 @@ following sequence of events, with initial values
 \tt
 \scriptsize
 \begin{tabular}{l|l}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	B = 4; & \\
 	<write barrier> & \\
@@ -1707,7 +1707,7 @@ address load and the data load (again with initial values of
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	B = 4; & \\
 	<write barrier> & \\
@@ -1743,7 +1743,7 @@ access with initial values
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	M[1] = 4; & \\
 	<write barrier> & \\
@@ -2074,7 +2074,7 @@ This is demonstrated by two related examples, with the initial values of
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 0 &		CPU 1 \\
+	\nf{CPU 0} &	\nf{CPU 1} \\
 	\hline
 	r1 = READ\_ONCE(x); &
 		r2 = READ\_ONCE(y); \\
@@ -2097,7 +2097,7 @@ not), then adding the following CPU would guarantee a related assertion:
 \tt
 \scriptsize
 \begin{tabular}{l}
-	CPU 2 \\
+	\nf{CPU 2} \\
 	\hline
 	WRITE\_ONCE(y, 1); \\
 	\multicolumn{1}{l}{~} \\
@@ -2181,7 +2181,7 @@ write barrier, though, again, a general barrier is viable:
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 1; & \\
 	<write barrier> & \\
@@ -2200,7 +2200,7 @@ Or:
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 1; & \\
 	<write barrier> & \\
@@ -2270,7 +2270,7 @@ loads.  Consider the following sequence of events with initial values
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 1; & \\
 	B = 2; & \\
@@ -2306,7 +2306,7 @@ values of {\tt \{B = 7, X = 9, Y = 8, C = \&Y\}}:
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 1; & \\
 	B = 2; & \\
@@ -2338,7 +2338,7 @@ following sequence of events, with initial values
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 1; & \\
 	<write barrier> & \\
@@ -2369,7 +2369,7 @@ and the load of \co{A} on CPU~2, again with initial values of
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 1; & \\
 	<write barrier> & \\
@@ -2402,7 +2402,7 @@ with the same initial values of
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 	A = 1; & \\
 	<write barrier> & \\
@@ -2465,7 +2465,7 @@ For example, consider the following:
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 		&	LOAD B \\
 		&	DIVIDE \\
@@ -2500,7 +2500,7 @@ load:
 \tt
 \scriptsize
 \begin{tabular}{l|p{1.5in}}
-	CPU 1 &		CPU 2 \\
+	\nf{CPU 1} &	\nf{CPU 2} \\
 	\hline
 		&	LOAD B \\
 		&	DIVIDE \\
@@ -2745,7 +2745,7 @@ a pair of locks named ``M'' and ``Q''.
 \begin{table}[htbp]
 \scriptsize\centering{\tt
 \begin{tabular}{r|l}
-  CPU 1 &	CPU 2 \\
+  \nf{CPU 1} &	\nf{CPU 2} \\
   \hline
   A = a; &	E = e; \\
   LOCK M; &	LOCK Q; \\
@@ -2785,7 +2785,7 @@ Table~\ref{tab:advsync:Ordering With Multiple CPUs on One Lock}?
 \begin{table}[htbp]
 \scriptsize\centering{\tt
 \begin{tabular}{r|l}
-  CPU 1 &	CPU 2 \\
+  \nf{CPU 1} &	\nf{CPU 2} \\
   \hline
   A = a; &	E = e; \\
   LOCK M; &	LOCK M; \\
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 12/13] whymemorybarriers: Add \nf{} command to table header
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (10 preceding siblings ...)
  2017-01-04  1:30 ` [PATCH 11/13] memorybarriers: Add \nf{} command to table header Akira Yokosawa
@ 2017-01-04  1:31 ` Akira Yokosawa
  2017-01-04  1:32 ` [PATCH 13/13] memorybarriers: Add \nf{} command to descriptive words in table Akira Yokosawa
  2017-01-04  1:40 ` [PATCH 00/13] Remove \co{} commands in tables Paul E. McKenney
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:31 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From bfed77e57f50ca1e4068f46c3b5b3ded1070287e Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sun, 1 Jan 2017 13:11:42 +0900
Subject: [PATCH 12/13] whymemorybarriers: Add \nf{} command to table header

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 appendix/whymb/whymemorybarriers.tex | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/appendix/whymb/whymemorybarriers.tex b/appendix/whymb/whymemorybarriers.tex
index f97160a..bb8808d 100644
--- a/appendix/whymb/whymemorybarriers.tex
+++ b/appendix/whymb/whymemorybarriers.tex
@@ -1357,9 +1357,9 @@ Each of ``a'', ``b'', and ``c'' are initially zero.
 \small
 \centering{\tt
 \begin{tabular}{l|l|l}
-	\multicolumn{1}{c|}{CPU~0} &
-		\multicolumn{1}{c|}{CPU~1} &
-			\multicolumn{1}{c}{CPU~2} \\
+	\multicolumn{1}{c|}{\nf{CPU~0}} &
+		\multicolumn{1}{c|}{\nf{CPU~1}} &
+			\multicolumn{1}{c}{\nf{CPU~2}} \\
 	\hline
 	\hline
 	a = 1;		 &		& \\
@@ -1417,9 +1417,9 @@ Both ``a'' and ``b'' are initially zero.
 \small
 \centering{\tt
 \begin{tabular}{l|l|l}
-	\multicolumn{1}{c|}{CPU~0} &
-		\multicolumn{1}{c|}{CPU~1} &
-			\multicolumn{1}{c}{CPU~2} \\
+	\multicolumn{1}{c|}{\nf{CPU~0}} &
+		\multicolumn{1}{c|}{\nf{CPU~1}} &
+			\multicolumn{1}{c}{\nf{CPU~2}} \\
 	\hline
 	\hline
 	a = 1;	     & while (a == 0); & \\
@@ -1459,9 +1459,9 @@ All variables are initially zero.
 \scriptsize
 \centering{\tt
 \begin{tabular}{r|l|l|l}
-	& \multicolumn{1}{c|}{CPU~0} &
-		\multicolumn{1}{c|}{CPU~1} &
-			\multicolumn{1}{c}{CPU~2} \\
+	& \multicolumn{1}{c|}{\nf{CPU~0}} &
+		\multicolumn{1}{c|}{\nf{CPU~1}} &
+			\multicolumn{1}{c}{\nf{CPU~2}} \\
 	\hline
 	\hline
  1 &	a = 1; &			& \\
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 13/13] memorybarriers: Add \nf{} command to descriptive words in table
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (11 preceding siblings ...)
  2017-01-04  1:31 ` [PATCH 12/13] whymemorybarriers: " Akira Yokosawa
@ 2017-01-04  1:32 ` Akira Yokosawa
  2017-01-04  1:40 ` [PATCH 00/13] Remove \co{} commands in tables Paul E. McKenney
  13 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04  1:32 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: perfbook, Akira Yokosawa

From d07bf0df57c597c22de9a7c159f10b0247cea8c2 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Sun, 1 Jan 2017 14:02:06 +0900
Subject: [PATCH 13/13] memorybarriers: Add \nf{} command to descriptive words in table

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 advsync/memorybarriers.tex | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/advsync/memorybarriers.tex b/advsync/memorybarriers.tex
index 7f1c3c8..74d4f7b 100644
--- a/advsync/memorybarriers.tex
+++ b/advsync/memorybarriers.tex
@@ -2276,8 +2276,8 @@ loads.  Consider the following sequence of events with initial values
 	B = 2; & \\
 	<write barrier> & \\
 	C = \&B; & 	LOAD X\\
-	D = 4;	&	LOAD C (gets \&B) \\
-		&	LOAD *C (reads B) \\
+	D = 4;	&	LOAD C \nf{(gets \tco{&B})} \\
+		&	LOAD *C \nf{(reads \tco{B})} \\
 \end{tabular}
 \end{minipage}
 \vspace{5pt}
@@ -2312,9 +2312,9 @@ values of {\tt \{B = 7, X = 9, Y = 8, C = \&Y\}}:
 	B = 2; & \\
 	<write barrier> & \\
 	C = \&B; & 	LOAD X\\
-	D = 4;	&	LOAD C (gets \&B) \\
+	D = 4;	&	LOAD C \nf{(gets \tco{&B})} \\
 		&	<data dependency barrier> \\
-		&	LOAD *C (reads B) \\
+		&	LOAD *C \nf{(reads \tco{B})} \\
 \end{tabular}
 \end{minipage}
 \vspace{5pt}
@@ -2408,9 +2408,9 @@ with the same initial values of
 	<write barrier> & \\
 	B = 2; & \\
 		&	LOAD B \\
-		&	LOAD A (1\textsuperscript{st}) \\
+		&	LOAD A \nf{(1\textsuperscript{st})} \\
 		&	<read barrier> \\
-		&	LOAD A (2\textsuperscript{nd}) \\
+		&	LOAD A \nf{(2\textsuperscript{nd})} \\
 \end{tabular}
 \end{minipage}
 \vspace{5pt}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 00/13] Remove \co{} commands in tables
  2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
                   ` (12 preceding siblings ...)
  2017-01-04  1:32 ` [PATCH 13/13] memorybarriers: Add \nf{} command to descriptive words in table Akira Yokosawa
@ 2017-01-04  1:40 ` Paul E. McKenney
  2017-01-04 11:35   ` [PATCH 0/2] Use \tco{} for API names inside of tables Akira Yokosawa
  13 siblings, 1 reply; 19+ messages in thread
From: Paul E. McKenney @ 2017-01-04  1:40 UTC (permalink / raw)
  To: Akira Yokosawa; +Cc: perfbook

On Wed, Jan 04, 2017 at 10:15:40AM +0900, Akira Yokosawa wrote:
> >From d07bf0df57c597c22de9a7c159f10b0247cea8c2 Mon Sep 17 00:00:00 2001
> From: Akira Yokosawa <akiyks@gmail.com>
> Date: Wed, 4 Jan 2017 08:51:15 +0900
> Subject: [PATCH 00/13] Remove \co{} commands in tables
> 
> \co{} command confuses column width estimation of tabular environment.
> By removing \co{} commands in tables, bogus "~"s for manual width
> adjustment can be removed.
> 
> Patch 1 introduces an alternative command \tco{} to be used in tables.
> Patches 2--8 remove \co{} commands by using \tco{} or removing unnecessary
> commands.
> Patch 9 removes another "~" and uses \vspace{} instead.
> Patches 10--13 do additional font tweaks. It looks better for me if
> headers of tables such as "Thread 1" and "CPU 1" are typeset in normal font
> of the text (Times Roman). Patch 13, which tweaks font of non-code words in
> table, may be an excessive tweak. Whether or not to apply it is up to the
> editor.

I queued and pushed these, thank you!

I am a little concerned about the added "\_" instances that show up
in some of the tables, though.  Does it work to use \tco{} or similar
to avoid these?  My concern is frustration for people searching the
.tex source for tables containing (say) smp_wmb().

							Thanx, Paul

> --
> Akira Yokosawa (13):
>   Define \tco{} command to be used in table
>   rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives'
>   rcuapi: Rewrite table 'RCU Wait-to-Finish APIs'
>   rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance
>     APIs'
>   whichtochoose: Rewrite table 'Which Deferred Technique to Choose?'
>   memorybarriers: Remove \co{} in tabular env
>   memorybarriers: Use \verb in table 'Lock-Based Critical Sections'
>   whymemorybarriers: Remove \co{} in tabular env
>   memorybarriers: Replace nbsp with \vspace
>   Add \nf{} command to go back to normal font
>   memorybarriers: Add \nf{} command to table header
>   whymemorybarriers: Add \nf{} command to table header
>   memorybarriers: Add \nf{} command to descriptive words in table
> 
>  advsync/memorybarriers.tex           | 187 +++++++++++++++++------------------
>  appendix/whymb/whymemorybarriers.tex |  70 ++++++-------
>  defer/rcuapi.tex                     | 110 +++++++++------------
>  defer/rcufundamental.tex             |  18 ++--
>  defer/whichtochoose.tex              |  20 ++--
>  perfbook.tex                         |   6 +-
>  6 files changed, 200 insertions(+), 211 deletions(-)
> 
> -- 
> 2.7.4
> 


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 0/2] Use \tco{} for API names inside of tables
  2017-01-04  1:40 ` [PATCH 00/13] Remove \co{} commands in tables Paul E. McKenney
@ 2017-01-04 11:35   ` Akira Yokosawa
  2017-01-04 11:36     ` [PATCH 1/2] " Akira Yokosawa
                       ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04 11:35 UTC (permalink / raw)
  To: paulmck; +Cc: perfbook, Akira Yokosawa

On 2017/01/03 17:40:04 -0800, Paul E. McKenney wrote:
> On Wed, Jan 04, 2017 at 10:15:40AM +0900, Akira Yokosawa wrote:
>> >From d07bf0df57c597c22de9a7c159f10b0247cea8c2 Mon Sep 17 00:00:00 2001
>> From: Akira Yokosawa <akiyks@gmail.com>
>> Date: Wed, 4 Jan 2017 08:51:15 +0900
>> Subject: [PATCH 00/13] Remove \co{} commands in tables
>>
>> \co{} command confuses column width estimation of tabular environment.
>> By removing \co{} commands in tables, bogus "~"s for manual width
>> adjustment can be removed.
>>
>> Patch 1 introduces an alternative command \tco{} to be used in tables.
>> Patches 2--8 remove \co{} commands by using \tco{} or removing unnecessary
>> commands.
>> Patch 9 removes another "~" and uses \vspace{} instead.
>> Patches 10--13 do additional font tweaks. It looks better for me if
>> headers of tables such as "Thread 1" and "CPU 1" are typeset in normal font
>> of the text (Times Roman). Patch 13, which tweaks font of non-code words in
>> table, may be an excessive tweak. Whether or not to apply it is up to the
>> editor.
> 
> I queued and pushed these, thank you!
> 
> I am a little concerned about the added "\_" instances that show up
> in some of the tables, though.  Does it work to use \tco{} or similar
> to avoid these?  My concern is frustration for people searching the
> .tex source for tables containing (say) smp_wmb().

I see your point.  Using \tco{} for API names should work.
A patch set follows.

In preparing this, I also found a long-lived typo in Table "Memory Barrier
Example 3". Patch 2 fixes it.

> 
> 							Thanx, Paul
> 
[snip]

--
Akira Yokosawa (2):
  Use \tco{} for API names inside of tables
  Fix typo smb_wmb() -> smp_wmb()

 advsync/memorybarriers.tex           | 20 ++++++++++----------
 appendix/whymb/whymemorybarriers.tex | 14 +++++++-------
 2 files changed, 17 insertions(+), 17 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 1/2] Use \tco{} for API names inside of tables
  2017-01-04 11:35   ` [PATCH 0/2] Use \tco{} for API names inside of tables Akira Yokosawa
@ 2017-01-04 11:36     ` Akira Yokosawa
  2017-01-04 11:37     ` [PATCH 2/2] Fix typo smb_wmb() -> smp_wmb() Akira Yokosawa
  2017-01-04 16:28     ` [PATCH 0/2] Use \tco{} for API names inside of tables Paul E. McKenney
  2 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04 11:36 UTC (permalink / raw)
  To: paulmck; +Cc: perfbook, Akira Yokosawa

From 93c2f3e7f773e15ff21ef2ea11a7d6c4e230b3c0 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Wed, 4 Jan 2017 18:38:02 +0900
Subject: [PATCH 1/2] Use \tco{} for API names inside of tables

For people searching API names in latex sources, escaping by "\"
should be avoided.

Suggested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 advsync/memorybarriers.tex           | 20 ++++++++++----------
 appendix/whymb/whymemorybarriers.tex | 14 +++++++-------
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/advsync/memorybarriers.tex b/advsync/memorybarriers.tex
index 74d4f7b..721d893 100644
--- a/advsync/memorybarriers.tex
+++ b/advsync/memorybarriers.tex
@@ -523,7 +523,7 @@ on this weaker if-then conditional ordering guarantee.
 	\nf{CPU 1} &		\nf{CPU 2} \\
 	\hline
 	access(A);	&	access(B); \\
-	smp\_mb();	&	smp\_mb(); \\
+	\tco{smp_mb();}	&	\tco{smp_mb();} \\
 	access(B);	&	access(A); \\
 \end{tabular}
 \end{minipage}
@@ -618,7 +618,7 @@ pairings that portable software may depend on.
 		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		A=1;		&	Y=B; \\
-		smp\_mb();	&	smp\_mb(); \\
+		\tco{smp_mb();}	&	\tco{smp_mb();} \\
 		B=1;		&	X=A; \\
 	\end{tabular}
 	\end{minipage}
@@ -650,7 +650,7 @@ pairings that portable software may depend on.
 		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		X=A;            &	Y=B; \\
-		smp\_mb();	&	smp\_mb(); \\
+		\tco{smp_mb();}	&	\tco{smp_mb();} \\
 		B=1;            &	A=1; \\
 	\end{tabular}
 	\end{minipage}
@@ -687,7 +687,7 @@ pairings that portable software may depend on.
 		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		X=A;		&	B=2; \\
-		smp\_mb();	&	smp\_mb(); \\
+		\tco{smp_mb();}	&	\tco{smp_mb();} \\
 		B=1;		&	A=1; \\
 	\end{tabular}
 	\end{minipage}
@@ -768,7 +768,7 @@ keep in mind that they used to be a \emph{lot} harder on some systems!
 		\nf{CPU 1} &		\nf{CPU 2} \\
 		\hline
 		A=1;		&	B=2; \\
-		smp\_mb();	&	smp\_mb(); \\
+		\tco{smp_mb();}	&	\tco{smp_mb();} \\
 		B=1;		&	A=2; \\
 	\end{tabular}
 	\end{minipage}
@@ -2076,12 +2076,12 @@ This is demonstrated by two related examples, with the initial values of
 \begin{tabular}{l|p{1.5in}}
 	\nf{CPU 0} &	\nf{CPU 1} \\
 	\hline
-	r1 = READ\_ONCE(x); &
-		r2 = READ\_ONCE(y); \\
+	\tco{r1 = READ_ONCE(x);} &
+		\tco{r2 = READ_ONCE(y);} \\
 	if (r1 > 0) &
 		if (r2 > 0) \\
-	~~~WRITE\_ONCE(y, 1); &
-		~~~WRITE\_ONCE(x, 1); \\
+	~~~\tco{WRITE_ONCE(y, 1);} &
+		~~~\tco{WRITE_ONCE(x, 1);} \\
 	\multicolumn{2}{l}{~} \\
 	\multicolumn{2}{l}{\tco{assert(!(r1 == 1 && r2 == 1));}} \\
 \end{tabular}
@@ -2099,7 +2099,7 @@ not), then adding the following CPU would guarantee a related assertion:
 \begin{tabular}{l}
 	\nf{CPU 2} \\
 	\hline
-	WRITE\_ONCE(y, 1); \\
+	\tco{WRITE_ONCE(y, 1);} \\
 	\multicolumn{1}{l}{~} \\
 	\multicolumn{1}{l}{\tco{assert(!(r1 == 1 && r2 == 1 && x == 1));}} \\
 \end{tabular}
diff --git a/appendix/whymb/whymemorybarriers.tex b/appendix/whymb/whymemorybarriers.tex
index bb8808d..0956226 100644
--- a/appendix/whymb/whymemorybarriers.tex
+++ b/appendix/whymb/whymemorybarriers.tex
@@ -1363,9 +1363,9 @@ Each of ``a'', ``b'', and ``c'' are initially zero.
 	\hline
 	\hline
 	a = 1;		 &		& \\
-	smp\_wmb(); 	 & while (b == 0); & \\
+	\tco{smp_wmb();} & while (b == 0); & \\
 	b = 1;		 & c = 1;	& z = c; \\
-			 &		& smp\_rmb(); \\
+			 &		& \tco{smp_rmb();} \\
 			 &		& x = a; \\
 			 &		& assert(z == 0 || x == 1); \\
 \end{tabular}}
@@ -1423,8 +1423,8 @@ Both ``a'' and ``b'' are initially zero.
 	\hline
 	\hline
 	a = 1;	     & while (a == 0); & \\
-		     & smp\_mb();	& y = b; \\
-		     & b = 1;		& smp\_rmb(); \\
+		     & \tco{smp_mb();}	& y = b; \\
+		     & b = 1;		& \tco{smp_rmb();} \\
 		     &			& x = a; \\
 		     &			& assert(y == 0 || x == 1); \\
 \end{tabular}}
@@ -1465,13 +1465,13 @@ All variables are initially zero.
 	\hline
 	\hline
  1 &	a = 1; &			& \\
- 2 &	smb\_wmb();	&		& \\
+ 2 &	\tco{smb_wmb();}&		& \\
  3 &	b = 1;		& while (b == 0); & while (b == 0); \\
- 4 &			& smp\_mb();	& smp\_mb(); \\
+ 4 &			& \tco{smp_mb();}& \tco{smp_mb();} \\
  5 &			& c = 1;	& d = 1; \\
  6 &	while (c == 0); &		& \\
  7 &	while (d == 0); &		& \\
- 8 &	smp\_mb();	&		& \\
+ 8 &	\tco{smp_mb();}	&		& \\
  9 &	e = 1; &			& assert(e == 0 || a == 1); \\
 \end{tabular}}
 \caption{Memory Barrier Example 3}
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/2] Fix typo smb_wmb() -> smp_wmb()
  2017-01-04 11:35   ` [PATCH 0/2] Use \tco{} for API names inside of tables Akira Yokosawa
  2017-01-04 11:36     ` [PATCH 1/2] " Akira Yokosawa
@ 2017-01-04 11:37     ` Akira Yokosawa
  2017-01-04 16:28     ` [PATCH 0/2] Use \tco{} for API names inside of tables Paul E. McKenney
  2 siblings, 0 replies; 19+ messages in thread
From: Akira Yokosawa @ 2017-01-04 11:37 UTC (permalink / raw)
  To: paulmck; +Cc: perfbook, Akira Yokosawa

From daa13e2a26b5470ed7b6082998aabdfd73cde517 Mon Sep 17 00:00:00 2001
From: Akira Yokosawa <akiyks@gmail.com>
Date: Wed, 4 Jan 2017 20:11:07 +0900
Subject: [PATCH 2/2] Fix typo smb_wmb() -> smp_wmb()

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 appendix/whymb/whymemorybarriers.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/appendix/whymb/whymemorybarriers.tex b/appendix/whymb/whymemorybarriers.tex
index 0956226..70e1d30 100644
--- a/appendix/whymb/whymemorybarriers.tex
+++ b/appendix/whymb/whymemorybarriers.tex
@@ -1465,7 +1465,7 @@ All variables are initially zero.
 	\hline
 	\hline
  1 &	a = 1; &			& \\
- 2 &	\tco{smb_wmb();}&		& \\
+ 2 &	\tco{smp_wmb();}&		& \\
  3 &	b = 1;		& while (b == 0); & while (b == 0); \\
  4 &			& \tco{smp_mb();}& \tco{smp_mb();} \\
  5 &			& c = 1;	& d = 1; \\
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 0/2] Use \tco{} for API names inside of tables
  2017-01-04 11:35   ` [PATCH 0/2] Use \tco{} for API names inside of tables Akira Yokosawa
  2017-01-04 11:36     ` [PATCH 1/2] " Akira Yokosawa
  2017-01-04 11:37     ` [PATCH 2/2] Fix typo smb_wmb() -> smp_wmb() Akira Yokosawa
@ 2017-01-04 16:28     ` Paul E. McKenney
  2 siblings, 0 replies; 19+ messages in thread
From: Paul E. McKenney @ 2017-01-04 16:28 UTC (permalink / raw)
  To: Akira Yokosawa; +Cc: perfbook

On Wed, Jan 04, 2017 at 08:35:25PM +0900, Akira Yokosawa wrote:
> On 2017/01/03 17:40:04 -0800, Paul E. McKenney wrote:
> > On Wed, Jan 04, 2017 at 10:15:40AM +0900, Akira Yokosawa wrote:
> >> >From d07bf0df57c597c22de9a7c159f10b0247cea8c2 Mon Sep 17 00:00:00 2001
> >> From: Akira Yokosawa <akiyks@gmail.com>
> >> Date: Wed, 4 Jan 2017 08:51:15 +0900
> >> Subject: [PATCH 00/13] Remove \co{} commands in tables
> >>
> >> \co{} command confuses column width estimation of tabular environment.
> >> By removing \co{} commands in tables, bogus "~"s for manual width
> >> adjustment can be removed.
> >>
> >> Patch 1 introduces an alternative command \tco{} to be used in tables.
> >> Patches 2--8 remove \co{} commands by using \tco{} or removing unnecessary
> >> commands.
> >> Patch 9 removes another "~" and uses \vspace{} instead.
> >> Patches 10--13 do additional font tweaks. It looks better for me if
> >> headers of tables such as "Thread 1" and "CPU 1" are typeset in normal font
> >> of the text (Times Roman). Patch 13, which tweaks font of non-code words in
> >> table, may be an excessive tweak. Whether or not to apply it is up to the
> >> editor.
> > 
> > I queued and pushed these, thank you!
> > 
> > I am a little concerned about the added "\_" instances that show up
> > in some of the tables, though.  Does it work to use \tco{} or similar
> > to avoid these?  My concern is frustration for people searching the
> > .tex source for tables containing (say) smp_wmb().
> 
> I see your point.  Using \tco{} for API names should work.
> A patch set follows.
> 
> In preparing this, I also found a long-lived typo in Table "Memory Barrier
> Example 3". Patch 2 fixes it.

Very good, queued and pushed!

							Thanx, Paul

> [snip]
> 
> --
> Akira Yokosawa (2):
>   Use \tco{} for API names inside of tables
>   Fix typo smb_wmb() -> smp_wmb()
> 
>  advsync/memorybarriers.tex           | 20 ++++++++++----------
>  appendix/whymb/whymemorybarriers.tex | 14 +++++++-------
>  2 files changed, 17 insertions(+), 17 deletions(-)
> 
> -- 
> 2.7.4
> 


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-01-04 16:28 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-04  1:15 [PATCH 00/13] Remove \co{} commands in tables Akira Yokosawa
2017-01-04  1:17 ` [PATCH 01/13] Define \tco{} command to be used in table Akira Yokosawa
2017-01-04  1:19 ` [PATCH 02/13] rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives' Akira Yokosawa
2017-01-04  1:20 ` [PATCH 03/13] rcuapi: Rewrite table 'RCU Wait-to-Finish APIs' Akira Yokosawa
2017-01-04  1:21 ` [PATCH 04/13] rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance APIs' Akira Yokosawa
2017-01-04  1:23 ` [PATCH 05/13] whichtochoose: Rewrite table 'Which Deferred Technique to Choose?' Akira Yokosawa
2017-01-04  1:24 ` [PATCH 06/13] memorybarriers: Remove \co{} in tabular env Akira Yokosawa
2017-01-04  1:25 ` [PATCH 07/13] memorybarriers: Use \verb in table 'Lock-Based Critical Sections' Akira Yokosawa
2017-01-04  1:26 ` [PATCH 08/13] whymemorybarriers: Remove \co{} in tabular env Akira Yokosawa
2017-01-04  1:28 ` [PATCH 09/13] memorybarriers: Replace nbsp with \vspace Akira Yokosawa
2017-01-04  1:29 ` [PATCH 10/13] Add \nf{} command to go back to normal font Akira Yokosawa
2017-01-04  1:30 ` [PATCH 11/13] memorybarriers: Add \nf{} command to table header Akira Yokosawa
2017-01-04  1:31 ` [PATCH 12/13] whymemorybarriers: " Akira Yokosawa
2017-01-04  1:32 ` [PATCH 13/13] memorybarriers: Add \nf{} command to descriptive words in table Akira Yokosawa
2017-01-04  1:40 ` [PATCH 00/13] Remove \co{} commands in tables Paul E. McKenney
2017-01-04 11:35   ` [PATCH 0/2] Use \tco{} for API names inside of tables Akira Yokosawa
2017-01-04 11:36     ` [PATCH 1/2] " Akira Yokosawa
2017-01-04 11:37     ` [PATCH 2/2] Fix typo smb_wmb() -> smp_wmb() Akira Yokosawa
2017-01-04 16:28     ` [PATCH 0/2] Use \tco{} for API names inside of tables Paul E. McKenney

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.