Merge tag 'for-paul-2021.02.27b' of https://github.com/akiyks/perfbook
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/README b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/README
index 1764c8c..8d8febe 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/README
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/README
@@ -1,2 +1,12 @@
 Combine with hps.perf-hashsize.2020.12.29a in order to account for
 late-breaking changes to perf.sh and reduce.sh.
+
+plot dashtype assignment:
+
+bucket: 2
+hazptr: 3
+RCU: 4
+global: 5
+unsync: 6
+qsbr: 8
+ideal: 1
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftest.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftest.eps
index cdec71f..0dabd5a 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftest.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftest.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: perftest.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2303,6 +2303,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2364,7 +2365,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1517 M
@@ -2425,7 +2426,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1660 M
@@ -2486,7 +2487,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1643 M
@@ -2526,6 +2527,7 @@
 stroke
 2.000 UL
 LTb
+LT5
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1744 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftestlin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftestlin.eps
index 94f3529..e283ede 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftestlin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/perftestlin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: perftestlin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2178,6 +2178,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2239,7 +2240,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1077 M
@@ -2300,7 +2301,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1081 M
@@ -2361,7 +2362,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT5
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1086 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/plots.sh b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/plots.sh
index 11b7d4d..4100729 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/plots.sh
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/plots.sh
@@ -48,7 +48,7 @@
 set label 3 "bucket" at 40,130000 left
 set label 4 "global" at 5,4500 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "perftest.hash_bkt.${tag}.dat" w l, "perftest.hash_bkt_hazptr.${tag}.dat" w l, "perftest.hash_bkt_rcu.${tag}.dat" w l, "perftest.hash_global.${tag}.dat" w l, "perftest.hash_unsync.${tag}.dat" w l
+plot "perftest.hash_bkt.${tag}.dat" w l dashtype 2, "perftest.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "perftest.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "perftest.hash_global.${tag}.dat" w l dashtype 5, "perftest.hash_unsync.${tag}.dat" w l dashtype 6
 ---EOF---
 
 gnuplot << ---EOF---
@@ -66,7 +66,7 @@
 set label 3 "hazptr" at 200,3.5e6 left
 set label 4 "bucket" at 330,1.1e6 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "perftest.hash_bkt.${tag}.dat" w l, "perftest.hash_bkt_hazptr.${tag}.dat" w l, "perftest.hash_bkt_rcu.${tag}.dat" w l, "perftest.hash_unsync.${tag}.dat" w l
+plot "perftest.hash_bkt.${tag}.dat" w l dashtype 2, "perftest.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "perftest.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "perftest.hash_unsync.${tag}.dat" w l dashtype 6
 ---EOF---
 
 gnuplot << ---EOF---
@@ -84,7 +84,7 @@
 set label 3 "RCU" at 170,3200000 right rotate by 28
 set label 4 "hazptr" at 350,2000000 right rotate by 28
 set label 5 "ideal" at 35,2500000 right
-plot "zoo.cpus.hash_bkt.${tag}.dat" w l, "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l, "zoo.cpus.hash_global.${tag}.dat" w l, x*44666.3 w l
+plot "zoo.cpus.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.cpus.hash_global.${tag}.dat" w l dashtype 5, x*44666.3 w l dashtype 1
 ---EOF---
 
 gnuplot << ---EOF---
@@ -102,7 +102,7 @@
 set label 3 "ideal" at 400,14000000 right
 # set label 4 "unsync" at 250,5000000 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l, x*44666.3 w l
+plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l dashtype 4, x*44666.3 w l dashtype 1
 ---EOF---
 
 gnuplot << ---EOF---
@@ -120,7 +120,7 @@
 set label 3 "ideal" at 400,14000000 right
 # set label 4 "qsbr" at 400,14000000 right
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l, "zoo.cpus.hash_bkt_qsbr.${tag}.dat" w l, x*44666.3 w l
+plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.cpus.hash_bkt_qsbr.${tag}.dat" w l dashtype 8, x*44666.3 w l dashtype 1
 ---EOF---
 
 gnuplot << ---EOF---
@@ -138,7 +138,7 @@
 set label 3 "ideal" at 400,14000000 right
 # set label 4 "qsbr" at 400,14000000 right
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l, "zoo.cpus.hash_bkt_qsbr.${tag}.dat" w l, "zoo.cpus.hash_unsync.${tag}.dat" w l, x*44666.3 w l
+plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.cpus.hash_bkt_qsbr.${tag}.dat" w l dashtype 8, "zoo.cpus.hash_unsync.${tag}.dat" w l dashtype 6, x*44666.3 w l dashtype 1
 ---EOF---
 
 gnuplot << ---EOF---
@@ -156,7 +156,7 @@
 set label 3 "RCU,hazptr" at 350,2000000 right rotate by 28
 set label 4 "unsync" at 200,5000000 right rotate by 26
 set label 5 "ideal" at 35,2500000 right
-plot "zoo.cpus.hash_bkt.${tag}.dat" w l, "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l, "zoo.cpus.hash_global.${tag}.dat" w l, "zoo.cpus.hash_unsync.${tag}.dat" w l, x*44666.3 w l
+plot "zoo.cpus.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.cpus.hash_global.${tag}.dat" w l dashtype 5, "zoo.cpus.hash_unsync.${tag}.dat" w l dashtype 6, x*44666.3 w l dashtype 1
 ---EOF---
 
 gnuplot << ---EOF---
@@ -174,7 +174,7 @@
 set label 3 "ideal" at 400,14000000 right
 set label 4 "unsync" at 250,5000000 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l, "zoo.cpus.hash_unsync.${tag}.dat" w l, x*44666.3 w l
+plot "zoo.cpus.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cpus.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.cpus.hash_unsync.${tag}.dat" w l dashtype 6, x*44666.3 w l dashtype 1
 ---EOF---
 
 gnuplot << ---EOF---
@@ -192,7 +192,7 @@
 # set label 3 "brlock" at 0.4,0.6 left
 # set label 4 "rwlock" at 0.3,1.6 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cpus.hash_bkt.${tag}.dat" w l, x*44666.3 w l
+plot "zoo.cpus.hash_bkt.${tag}.dat" w l dashtype 2, x*44666.3 w l dashtype 1
 # plot "zoo.cpus.hash_bkt.${tag}.dat" w l, "zoo.cpus.hash_unsync.${tag}.dat" w l, x*44666.3 w l
 ---EOF---
 
@@ -211,7 +211,7 @@
 # set label 3 "brlock" at 0.4,0.6 left
 # set label 4 "rwlock" at 0.3,1.6 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cpus.hash_bkt.${tag}.dat" w l
+plot "zoo.cpus.hash_bkt.${tag}.dat" w l dashtype 2
 ---EOF---
 
 gnuplot << ---EOF---
@@ -247,7 +247,7 @@
 set label 3 "bucket" at 10,100000 left
 set label 4 "global" at 2,4000 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.catall.hash_bkt.${tag}.dat" w l, "zoo.catall.hash_bkt_hazptr.${tag}.dat" w l, "zoo.catall.hash_bkt_rcu.${tag}.dat" w l, "zoo.catall.hash_global.${tag}.dat" w l
+plot "zoo.catall.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.catall.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.catall.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.catall.hash_global.${tag}.dat" w l dashtype 5
 ---EOF---
 
 gnuplot << ---EOF---
@@ -265,7 +265,7 @@
 set label 3 "bucket" at 10,230000 left
 # set label 4 "rwlock" at 0.3,1.6 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.catall.hash_bkt.${tag}.dat" w l, "zoo.catall.hash_bkt_hazptr.${tag}.dat" w l, "zoo.catall.hash_bkt_rcu.${tag}.dat" w l
+plot "zoo.catall.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.catall.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.catall.hash_bkt_rcu.${tag}.dat" w l dashtype 4
 ---EOF---
 
 gnuplot << ---EOF---
@@ -284,7 +284,7 @@
 set label 4 "global" at 2,4000 left
 set label 5 "unsync" at 15,2.7e6 left
 # set label 5 "ideal" at 0.15,2.8 left
-plot "zoo.catall.hash_bkt.${tag}.dat" w l, "zoo.catall.hash_bkt_hazptr.${tag}.dat" w l, "zoo.catall.hash_bkt_rcu.${tag}.dat" w l, "zoo.catall.hash_global.${tag}.dat" w l, "zoo.catall.hash_unsync.${tag}.dat" w l
+plot "zoo.catall.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.catall.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.catall.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.catall.hash_global.${tag}.dat" w l dashtype 5, "zoo.catall.hash_unsync.${tag}.dat" w l dashtype 6
 ---EOF---
 
 gnuplot << ---EOF---
@@ -302,7 +302,7 @@
 set label 3 "hazptr" at 10,70000 left
 set label 4 "RCU" at 10,450000 right
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cat.hash_bkt.${tag}.dat" w l, "zoo.cat.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cat.hash_bkt_rcu.${tag}.dat" w l, "zoo.cat.hash_global.${tag}.dat" w l
+plot "zoo.cat.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.cat.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cat.hash_bkt_rcu.${tag}.dat" w l dashtype 4, "zoo.cat.hash_global.${tag}.dat" w l dashtype 5
 ---EOF---
 
 gnuplot << ---EOF---
@@ -320,7 +320,7 @@
 # set label 3 "brlock" at 0.4,0.6 left
 # set label 4 "rwlock" at 0.3,1.6 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.cat.hash_bkt_hazptr.${tag}.dat" w l, "zoo.cat.hash_bkt_rcu.${tag}.dat" w l
+plot "zoo.cat.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.cat.hash_bkt_rcu.${tag}.dat" w l dashtype 4
 ---EOF---
 
 gnuplot << ---EOF---
@@ -338,7 +338,7 @@
 set label 3 "hazptr" at 80,800000 right
 set label 4 "RCU" at 130,3400000 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.updrd.hash_global.${tag}.dat" w l, "zoo.updrd.hash_bkt.${tag}.dat" w l, "zoo.updrd.hash_bkt_hazptr.${tag}.dat" w l, "zoo.updrd.hash_bkt_rcu.${tag}.dat" w l
+plot "zoo.updrd.hash_global.${tag}.dat" w l dashtype 5, "zoo.updrd.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.updrd.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.updrd.hash_bkt_rcu.${tag}.dat" w l dashtype 4
 ---EOF---
 
 gnuplot << ---EOF---
@@ -356,7 +356,7 @@
 set label 3 "bucket" at 200,37000 left
 set label 4 "global" at 50,800 left
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.updrd.hash_global.${tag}.dat" w l, "zoo.updrd.hash_bkt.${tag}.dat" w l, "zoo.updrd.hash_bkt_hazptr.${tag}.dat" w l, "zoo.updrd.hash_bkt_rcu.${tag}.dat" w l
+plot "zoo.updrd.hash_global.${tag}.dat" w l dashtype 5, "zoo.updrd.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.updrd.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.updrd.hash_bkt_rcu.${tag}.dat" w l dashtype 4
 ---EOF---
 
 gnuplot << ---EOF---
@@ -374,5 +374,5 @@
 set label 3 "RCU" at 120,12000 left
 set label 4 "hazptr" at 50,45000 right
 # set label 5 "refcnt" at 0.15,2.8 left
-plot "zoo.upd.hash_global.${tag}.dat" w l, "zoo.upd.hash_bkt.${tag}.dat" w l, "zoo.upd.hash_bkt_hazptr.${tag}.dat" w l, "zoo.upd.hash_bkt_rcu.${tag}.dat" w l
+plot "zoo.upd.hash_global.${tag}.dat" w l dashtype 5, "zoo.upd.hash_bkt.${tag}.dat" w l dashtype 2, "zoo.upd.hash_bkt_hazptr.${tag}.dat" w l dashtype 3, "zoo.upd.hash_bkt_rcu.${tag}.dat" w l dashtype 4
 ---EOF---
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall-unsync.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall-unsync.eps
index 13fe875..7485ccc 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall-unsync.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall-unsync.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocatall-unsync.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2224,6 +2224,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2263,7 +2264,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 2257 M
@@ -2302,7 +2303,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 2294 M
@@ -2341,7 +2342,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1250 M
@@ -2381,6 +2382,7 @@
 stroke
 2.000 UL
 LTb
+LT5
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 2351 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall.eps
index 86b97f0..206c0f3 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatall.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocatall.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2220,6 +2220,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2259,7 +2260,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 2257 M
@@ -2298,7 +2299,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 2294 M
@@ -2337,7 +2338,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1250 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatalllin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatalllin.eps
index 739cec6..6c06f96 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatalllin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatalllin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocatalllin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2172,6 +2172,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2211,7 +2212,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 694 1641 M
@@ -2250,7 +2251,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 694 1769 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonly.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonly.eps
index 125c303..cac3307 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonly.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonly.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocatonly.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2306,6 +2306,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2345,7 +2346,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1950 M
@@ -2384,7 +2385,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 2037 M
@@ -2423,7 +2424,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1298 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonlylin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonlylin.eps
index b6e71ce..a28708d 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonlylin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocatonlylin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocatonlylin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:16 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:16 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2168,6 +2168,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2207,7 +2208,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 694 1099 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsync.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsync.eps
index 35f16b1..dae32e0 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsync.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsync.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpu-unsync.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2307,6 +2307,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2368,7 +2369,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1487 M
@@ -2429,7 +2430,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1554 M
@@ -2490,7 +2491,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1576 M
@@ -2530,6 +2531,7 @@
 stroke
 2.000 UL
 LTb
+LT5
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1626 M
@@ -2591,7 +2593,6 @@
 stroke
 1.200 UL
 LTb
-[8.0 dl1 4.0 dl2 1.0 dl1 2.5 dl2 1.0 dl1 2.5 dl2 1.0 dl1 4.0 dl2 ] 0 setdash
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1626 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsynclin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsynclin.eps
index 303b88a..0b112b2 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsynclin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu-unsynclin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpu-unsynclin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2210,6 +2210,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2271,7 +2272,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1077 M
@@ -2332,7 +2333,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT5
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1078 M
@@ -2393,7 +2394,6 @@
 % Begin plot #4
 stroke
 LTb
-LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1078 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu.eps
index b6812ec..6072ece 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpu.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpu.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2307,6 +2307,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2368,7 +2369,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1487 M
@@ -2429,7 +2430,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1554 M
@@ -2490,7 +2491,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1576 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin.eps
index f6b2d63..056cb11 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpubktlin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2121,6 +2121,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin8.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin8.eps
index 2644df6..a6c03aa 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin8.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktlin8.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpubktlin8.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2099,6 +2099,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2128,7 +2129,6 @@
 % Begin plot #2
 stroke
 LTb
-LT1
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 670 1128 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktsizelin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktsizelin.eps
index cd8f341..a6bb16a 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktsizelin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpubktsizelin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpubktsizelin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulin.eps
index 9cfab2a..d088a46 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpulin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2210,6 +2210,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2271,7 +2272,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1077 M
@@ -2332,7 +2333,6 @@
 % Begin plot #3
 stroke
 LTb
-LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1078 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbr.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbr.eps
index a2dee4c..c4c8622 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbr.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbr.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpulinqsbr.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2210,6 +2210,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2271,7 +2272,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1077 M
@@ -2332,7 +2333,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT7
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1077 M
@@ -2393,7 +2394,6 @@
 % Begin plot #4
 stroke
 LTb
-LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1078 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbrunsync.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbrunsync.eps
index 1f452a2..3da1b0e 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbrunsync.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zoocpulinqsbrunsync.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zoocpulinqsbrunsync.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:15 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:15 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2210,6 +2210,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT2
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
@@ -2271,7 +2272,7 @@
 % Begin plot #2
 stroke
 LTb
-LT1
+LT3
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1077 M
@@ -2332,7 +2333,7 @@
 % Begin plot #3
 stroke
 LTb
-LT2
+LT7
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1077 M
@@ -2393,7 +2394,7 @@
 % Begin plot #4
 stroke
 LTb
-LT3
+LT5
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 674 1078 M
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdate.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdate.eps
index ac767ef..d631dc7 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdate.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdate.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zooupdate.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:16 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:16 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2297,6 +2297,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelu.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelu.eps
index 8def236..517da19 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelu.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelu.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zooupdatelu.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:16 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:16 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2298,6 +2298,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
diff --git a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelulin.eps b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelulin.eps
index 34e1f5d..2d46518 100644
--- a/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelulin.eps
+++ b/CodeSamples/datastruct/hash/data/hps.perf.2020.11.26a/zooupdatelulin.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Title: zooupdatelulin.eps
 %%Creator: gnuplot 5.2 patchlevel 2
-%%CreationDate: Sat Feb 20 18:10:20 2021
+%%CreationDate: Mon Feb 22 00:11:16 2021
 %%DocumentFonts: (atend)
 %%BoundingBox: 50 50 302 410
 %%Orientation: Portrait
@@ -1872,7 +1872,7 @@
   /Creator (gnuplot 5.2 patchlevel 2)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sat Feb 20 18:10:20 2021)
+  /CreationDate (Mon Feb 22 00:11:16 2021)
   /DOCINFO pdfmark
 end
 } ifelse
@@ -2299,6 +2299,7 @@
 % Begin plot #1
 1.000 UL
 LTb
+LT4
 LCb setrgbcolor
 /NimbusSanL-Regu findfont 100 scalefont setfont
 /vshift -33 def
diff --git a/SMPdesign/partexercises.tex b/SMPdesign/partexercises.tex
index 34ce2c2..790a242 100644
--- a/SMPdesign/partexercises.tex
+++ b/SMPdesign/partexercises.tex
@@ -660,7 +660,7 @@
 These queues are not strictly FIFO with respect to (say) the times at which
 the individual operations started~\cite{AndreasHaas2012FIFOisnt}.
 This indicates that the strict FIFO property is not all that valuable
-in concurrent programs, and in fact, Kirsch et al.~present less-strict
+in concurrent programs, and in fact, Kirsch et al.\ present less-strict
 queues that provide improved performance and
 scalability~\cite{ChristophMKirsch2012FIFOisntTR}.\footnote{
 	Nir Shavit produced relaxed stacks for roughly the same
diff --git a/advsync/advsync.tex b/advsync/advsync.tex
index 2f984af..8cf1a70 100644
--- a/advsync/advsync.tex
+++ b/advsync/advsync.tex
@@ -89,7 +89,7 @@
 	will make progress within
 	a specific finite period of time~\cite{Herlihy91}.
 	This level is widely considered to be unachievable, which might be why
-	Alitarh et al.~omitted it~\cite{DanAlitarh2013PracticalProgress}.
+	Alitarh et al.\ omitted it~\cite{DanAlitarh2013PracticalProgress}.
 \item	\emph{Wait-free synchronization}: Every thread will make progress
 	in finite time~\cite{Herlihy93}.
 \item	\emph{Lock-free synchronization}: At least one thread will
@@ -165,6 +165,21 @@
 \subsubsection{Half-NBS Queue}
 \label{sec:advsync:Half-NBS Queue}
 
+\begin{fcvref}[ln:count:NBS Enqueue Algorithm]
+Another common NBS algorithm is the atomic queue where elements are
+enqueued using an atomic exchange instruction~\cite{MagedMichael1993JPDC},
+followed by a store into the \co{->next} pointer of the new element's
+predecessor, as shown in \cref{lst:count:NBS Enqueue Algorithm},
+which shows the userspace-RCU library
+implementation~\cite{MathieuDesnoyers2009URCU}.
+\Clnref{tail} updates the tail pointer to reference the new element while
+returning a reference to its predecessor, which is stored in
+local variable \co{old_tail}.
+\Clnref{pred} then updates the predecessor's \co{->next} pointer to
+reference the newly added element, and finally \clnref{ret}
+returns an indication as to whether or not the queue was initially
+empty.
+
 \begin{listing}[tbp]
 \begin{fcvlabel}[ln:count:NBS Enqueue Algorithm]
 \begin{VerbatimL}[commandchars=\\\[\]]
@@ -195,21 +210,6 @@
 \label{lst:count:NBS Enqueue Algorithm}
 \end{listing}
 
-\begin{fcvref}[ln:count:NBS Enqueue Algorithm]
-Another common NBS algorithm is the atomic queue where elements are
-enqueued using an atomic exchange instruction~\cite{MagedMichael1993JPDC},
-followed by a store into the \co{->next} pointer of the new element's
-predecessor, as shown in \cref{lst:count:NBS Enqueue Algorithm},
-which shows the userspace-RCU library
-implementation~\cite{MathieuDesnoyers2009URCU}.
-\Clnref{tail} updates the tail pointer to reference the new element while
-returning a reference to its predecessor, which is stored in
-local variable \co{old_tail}.
-\Clnref{pred} then updates the predecessor's \co{->next} pointer to
-reference the newly added element, and finally \clnref{ret}
-returns an indication as to whether or not the queue was initially
-empty.
-
 Although mutual exclusion is required to dequeue a single element
 (so that dequeue is blocking), it is possible to carry out a non-blocking
 removal of the entire contents of the queue.
@@ -226,12 +226,6 @@
 \subsubsection{NBS Stack}
 \label{sec:advsync:NBS Stack}
 
-\begin{listing}[tbp]
-\input{CodeSamples/advsync/lifo_push@whole.fcv}
-\caption{NBS Stack Algorithm}
-\label{lst:advsync:NBS Stack Algorithm}
-\end{listing}
-
 \begin{fcvref}[ln:advsync:lifo_push:whole]
 \Cref{lst:advsync:NBS Stack Algorithm}
 shows the LIFO push algorithm, which boasts lock-free push and
@@ -241,6 +235,12 @@
 This patent was filed in 1973, a few months before your editor
 saw his first computer, which had but one CPU.
 
+\begin{listing}[tbp]
+\input{CodeSamples/advsync/lifo_push@whole.fcv}
+\caption{NBS Stack Algorithm}
+\label{lst:advsync:NBS Stack Algorithm}
+\end{listing}
+
 \Clnrefrange{struct:b}{struct:e} shows the \co{node_t} structure,
 which contains an arbitrary value and a pointer to the next structure
 on the stack and
diff --git a/appendix/styleguide/styleguide.tex b/appendix/styleguide/styleguide.tex
index e0ead86..b2ad637 100644
--- a/appendix/styleguide/styleguide.tex
+++ b/appendix/styleguide/styleguide.tex
@@ -54,8 +54,8 @@
   For example neither of the following can reasonably be interpreted
   as two sentences:
   \begin{itemize}
-  \item Say hello, to Mr. Jones.
-  \item If it looks like she sprained her ankle, call Dr. Smith and
+  \item Say hello, to Mr.~Jones.
+  \item If it looks like she sprained her ankle, call Dr.~Smith and
     then tell her to keep the ankle iced and elevated.
   \end{itemize}
 
@@ -787,7 +787,7 @@
 
 Cross-references to \namecrefs{chp:Introduction},
 \namecrefs{sec:intro:Parallel Programming Goals},
-\namecrefs{lst:app:styleguide:Source of Code Sample}, etc. have
+\namecrefs{lst:app:styleguide:Source of Code Sample}, etc.\ have
 been expressed by combinations of names and bare \verb|\ref{}|
 commands in the following way:
 
@@ -906,7 +906,7 @@
 \label{sec:app:styleguide:Non Breakable Hyphen}
 
 We want hyphenated compound terms such as ``x\=/coordinate'',
-``y\=/coordinate'', etc. not to be broken at the hyphen
+``y\=/coordinate'', etc.\ not to be broken at the hyphen
 following a single letter.
 
 To make a hyphen unbreakable, we can use a short cut
diff --git a/appendix/whymb/whymemorybarriers.tex b/appendix/whymb/whymemorybarriers.tex
index 1dae3fc..134eb15 100644
--- a/appendix/whymb/whymemorybarriers.tex
+++ b/appendix/whymb/whymemorybarriers.tex
@@ -1301,7 +1301,7 @@
 	architectures are encouraged to consult CPU vendors'
 	manuals~\cite{ALPHA95,AMDOpteron02,IntelItanium02v2,PowerPC94,MichaelLyons05a,SPARC94,IntelXeonV3-96a,IntelXeonV2b-96a,IBMzSeries04a},
 	Gharachorloo's dissertation~\cite{Gharachorloo95},
-	Peter Sewell's work~\cite{PeterSewell2010weakmemory}, or
+	Peter Sewell's work~\cite{PeterSewell2021weakmemory}, or
 	the excellent hardware-oriented primer by
 	Sorin, Hill, and Wood~\cite{DanielJSorin2011MemModel}.}
 
diff --git a/bib/RCU.bib b/bib/RCU.bib
index e8cbe9a..415479f 100644
--- a/bib/RCU.bib
+++ b/bib/RCU.bib
@@ -50,6 +50,7 @@
  volume="9",
  number="3",
  pages="439-455",
+ doi="10.1145/1270.318576",
 }
 
 @Conference{RichardRashid87a,
@@ -61,13 +62,12 @@
  Booktitle="{2\textsuperscript{nd} Symposium on Architectural Support
 for Programming Languages and Operating Systems}",
  Publisher="Association for Computing Machinery",
+ address="New York, NY, USA",
  Month="October",
  Year="1987",
  pages="31-39",
- Address="Palo Alto, CA",
- note="Available:
-\url{http://www.cse.ucsc.edu/~randal/221/rashid-machvm.pdf}
-[Viewed February 17, 2005]",
+ location="Palo Alto, CA",
+ url="https://dl.acm.org/doi/10.1145/36206.36181",
 }
 
 @article{BarbaraLiskov1988ArgusCACM,
@@ -93,6 +93,7 @@
  number="US Patent 4,809,168",
  month="February",
  pages="11",
+ url="https://patents.google.com/patent/US4809168A/en",
 }
 
 @techreport{Pugh90,
@@ -103,6 +104,7 @@
  year="1990",
  number="CS-TR-2222.1",
  month="June",
+ url="http://hdl.handle.net/1903/542",
 }
 
 @Book{Andrews91textbook,
@@ -141,9 +143,10 @@
  Booktitle = "International Conference on Configurable Distributed Systems
 (ICCDS'96)",
  address = "Annapolis, MD",
+ doi="10.1109/CDS.1996.509352",
  month="May",
  year="1996",
- pages="108",
+ pages="108-115",
  isbn="0-8186-7395-8",
 }
 
@@ -157,6 +160,7 @@
  year="1995",
  number="US Patent 5,442,758",
  month="August",
+ url="https://www.google.com/patents/US5442758",
 }
 
 @techreport{Slingwine97,
@@ -169,6 +173,7 @@
  number="US Patent 5,608,893",
  month="March",
  pages="19",
+ url="https://www.google.com/patents/US5608893",
 }
 
 @inproceedings{Rastogi:1997:LPV:645923.671017,
@@ -197,6 +202,7 @@
  year="1998",
  number="US Patent 5,727,209",
  month="March",
+ url="https://www.google.com/patents/US5727209",
 }
 
 @Conference{McKenney98,
@@ -232,9 +238,9 @@
  month="June",
  year="2000",
  day="23",
- note="Available:
-\url{http://oss.sgi.com/projects/netdev/archive/2000-06/msg00250.html}
-[Viewed April 10, 2006]",
+ note="URL:
+\nolinkurl{http://oss.sgi.com/projects/netdev/archive/2000-06/msg00250.html}
+[broken, February 15, 2021]",
 }
 
 @unpublished{RustyRussell2000b,
@@ -243,9 +249,9 @@
  month="June",
  year="2000",
  day="24",
- note="Available:
-\url{http://oss.sgi.com/projects/netdev/archive/2000-06/msg00254.html}
-[Viewed April 10, 2006]",
+ note="URL:
+\nolinkurl{http://oss.sgi.com/projects/netdev/archive/2000-06/msg00254.html}
+[broken, February 15, 2021]",
 }
 
 @unpublished{McKenney01b,
@@ -375,8 +381,8 @@
  Year="2002",
  pages="338-367",
  note="Available:
-\url{http://www.linux.org.uk/~ajh/ols2002_proceedings.pdf.gz}
-[Viewed June 23, 2004]",
+\url{https://www.kernel.org/doc/ols/2002/ols2002-pages-338-367.pdf}
+[Viewed February 14, 2021]",
 }
 
 @unpublished{Sarma02a,
@@ -1177,9 +1183,7 @@
  booktitle="Workshop on High Performance Switching and Routing (HPSR'07)",
  month="May",
  year="2007",
- note="Available:
-\url{http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4281239}
-[Viewed October 1, 2010]",
+ doi="10.1109/HPSR.2007.4281239",
 }
 
 @conference{PeterZijlstra2007ConcurrentPagecacheRCU,
@@ -1734,6 +1738,7 @@
  title="Stopping Data Races Using Redflag",
  school="Stony Brook University",
  year="2010",
+ url="https://core.ac.uk/display/22595987",
 }
 
 @article{JoshTriplett2010RPHash,
@@ -1769,9 +1774,7 @@
  title="Read-Copy-Update for OpenSolaris",
  school="Charles University in Prague",
  year="2010",
- note="Available:
-\url{https://andrej.podzimek.org/thesis.pdf}
-[Viewed January 31, 2011]",
+ url="https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.185.1547&rep=rep1&type=pdf",
 }
 
 @unpublished{LinusTorvalds2011Linux2:6:38:rc1:NPigginVFS,
@@ -1881,7 +1884,7 @@
  title="Relativistic Causal Ordering: A Memory Model for Scalable Concurrent Data Structures",
  school="Portland State University",
  year="2012",
- url="http://www.pdx.edu/computer-science/sites/www.pdx.edu.computer-science/files/Triplett.pdf",
+ url="https://doi.org/10.15760/etd.497",
 }
 
 @phdthesis{PhilHowardPhD,
@@ -2031,6 +2034,7 @@
  title="Runtime Verification of Kernel-Level Concurrency Using Compiler-Based Instrumentation",
  school="Stony Brook University",
  year="2012",
+ url="http://hdl.handle.net/1951/59858",
 }
 
 @inproceedings{AndrejPodzimek2012RCU-UTS,
@@ -2365,7 +2369,8 @@
  series = {PODC '14},
  year = {2014},
  location = {Paris, France},
- pages = {???--???},
+ pages = {196–205},
+ doi = {10.1145/2611462.2611471},
  publisher = {ACM},
  address = {New York, NY, USA},
 }
@@ -2408,7 +2413,7 @@
  isbn = {978-1-931971-10-2},
  address = {Philadelphia, PA},
  pages = {219--230},
- url = {http://blogs.usenix.org/conference/atc14/technical-sessions/presentation/liu},
+ url = {https://www.usenix.org/conference/atc14/technical-sessions/presentation/liu},
  publisher = {USENIX Association},
 }
 
diff --git a/bib/TM.bib b/bib/TM.bib
index 83d0bce..fff0255 100644
--- a/bib/TM.bib
+++ b/bib/TM.bib
@@ -290,6 +290,7 @@
  location={Austin, Texas, United States},
  publisher={IEEE},
  address = "Washington, DC, USA",
+ doi="10.1109/HPCA.2006.1598134",
  note="Available:
 \url{http://www.cs.wisc.edu/multifacet/papers/hpca06_logtm.pdf}
 [Viewed December 21, 2006]",
@@ -865,8 +866,9 @@
  year = {2011},
  isbn = {978-1-4503-0266},
  location = {Newport Beach, CA, USA},
- pages = {???-???},
+ pages = {39–52},
  numpages = {13},
+ doi = {10.1145/1961295.1950373},
  url = {http://www.cs.rochester.edu/u/scott/papers/2011_asplos.pdf},
  publisher = {ACM},
  address = {New York, NY, USA},
@@ -1084,7 +1086,7 @@
 }
 
 @inproceedings{Siakavaras2017CombiningHA,
- title={Combining HTM and RCU to Implement Highly Efficient Balanced Binary Search Trees},
+ title={Combining {HTM} and {RCU} to Implement Highly Efficient Balanced Binary Search Trees},
  author={Dimitrios Siakavaras and Konstantinos Nikas and Georgios Goumas and Nectarios Koziris},
  year={2017},
  month={February},
@@ -1092,6 +1094,7 @@
  location="Austin, TX, USA",
  booktitle="12\textsuperscript{th} {ACM} {SIGPLAN} Workshop on Transactional Computing",
  pages={},
+ url="http://transact2017.cse.lehigh.edu/siakavaras.pdf",
 }
 
 @article{DBLP:journals/corr/AlistarhKKRS14,
@@ -1224,12 +1227,13 @@
  lastchecked="January 4, 2021",
 }
 
-@unpublished{Intel2020TSXdevguide,
- author={Intel},
- title="Intel(R) Transactional Synchronization Extensions (Intel(R) TSX) Programming Considerations",
+@manual{Intel2020TSXdevguide,
+ title="Intel Transactional Synchronization Extensions (Intel TSX) Programming Considerations",
+ organization="{Intel Corporation}",
  day="04",
  month="December",
  year="2020",
- note="\url{https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-reference/intrinsics/intrinsics-for-intel-advanced-vector-extensions-2/intrinsics-for-intel-transactional-synchronization-extensions-intel-tsx/intel-transactional-synchronization-extensions-intel-tsx-programming-considerations.html}",
- lastchecked="January 4, 2021",
+ edition="2021.1",
+ note="In \emph{Intel C++ Compiler Classic Developer Guide and Reference}, \url{https://software.intel.com/content/dam/develop/external/us/en/documents/cpp_compiler_classic.pdf}, page 1506",
+ lastchecked="January 14, 2021",
 }
diff --git a/bib/WFS.bib b/bib/WFS.bib
index 040b32d..573c9b2 100644
--- a/bib/WFS.bib
+++ b/bib/WFS.bib
@@ -139,9 +139,6 @@
  booktitle="Proc of the Fifteenth ACM Symposium on Principles of Distributed Computing",
  pages="267--275",
  doi="10.1145/248052.248106",
- note="Available:
-\url{http://www.research.ibm.com/people/m/michael/podc-1996.pdf}
-[Viewed January 26, 2009]",
 }
 
 @article{MagedMichael1993JPDC,
@@ -241,6 +238,16 @@
  year="2003",
 }
 
+@TechReport{UCAM-CL-TR-579,
+  author =	 {Fraser, Keir},
+  title = 	 {{Practical lock-freedom}},
+  year = 	 2004,
+  month = 	 feb,
+  url = 	 {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.pdf},
+  institution =  {University of Cambridge, Computer Laboratory},
+  number = 	 {UCAM-CL-TR-579}
+}
+
 @article{KeirFraser2007withoutLocks,
  author = {Fraser, Keir and Harris, Tim},
  title = {Concurrent programming without locks},
diff --git a/bib/hw.bib b/bib/hw.bib
index a1833cf..8d092da 100644
--- a/bib/hw.bib
+++ b/bib/hw.bib
@@ -18,10 +18,9 @@
  Title="Die {gegenw\"artige} {Situation} in der {Quantenmechanik}",
  Year="1935",
  Month="November",
- pages="807--812; 823--828; 844--949",
+ pages="807--812; 823--828; 844--849",
  volume="23",
  Journal="Naturwissenschaften",
- note="English translation: \url{http://www.tuhh.de/rzt/rzt/it/QM/cat.html}",
 }
 
 @ARTICLE{1957PhRv..105.1413W,
@@ -110,11 +109,18 @@
 
 @Book{Hennessy2011,
  author="John L. Hennessy and David A. Patterson",
- title="Computer Architecture, Fifth Edition: A Quantitative Approach",
+ title="Computer Architecture: A Quantitative Approach, Fifth Edition",
  year="2011",
  publisher="Morgan Kaufman",
 }
 
+@Book{Hennessy2017,
+ author="John L. Hennessy and David A. Patterson",
+ title="Computer Architecture: A Quantitative Approach, Sixth Edition",
+ year="2017",
+ publisher="Morgan Kaufman",
+}
+
 @Book{DavidECuller1999,
  author="David E. Culler and Jaswinder Pal Singh and Anoop Gupta",
  title="Parallel Computer Architecture: a Hardware/Software Approach",
@@ -332,6 +338,7 @@
  number="US Patent 3,728,692",
  month="April",
  pages="10",
+ url="https://patents.google.com/patent/US3728692A/en",
 }
 
 @article{Stone:1995:SP:623262.623912,
@@ -429,9 +436,6 @@
  organization="{Intel Corporation}",
  year="2004",
  number="253665",
- note="Available:
-\url{ftp://download.intel.com/design/Pentium4/manuals/25366514.pdf}
-[Viewed: February 16, 2005]",
 }
 
 @manual{IntelXeonV2a-96a,
@@ -440,9 +444,6 @@
  organization="{Intel Corporation}",
  year="2004",
  number="253666",
- note="Available:
-\url{ftp://download.intel.com/design/Pentium4/manuals/25366614.pdf}
-[Viewed: February 16, 2005]",
 }
 
 @manual{IntelXeonV2b-96a,
@@ -451,9 +452,6 @@
  organization="{Intel Corporation}",
  year="2004",
  number="253667",
- note="Available:
-\url{ftp://download.intel.com/design/Pentium4/manuals/25366714.pdf}
-[Viewed: February 16, 2005]",
 }
 
 @manual{IntelXeonV3-96a,
@@ -462,9 +460,6 @@
  organization="{Intel Corporation}",
  year="2004",
  number="253668",
- note="Available:
-\url{ftp://download.intel.com/design/Pentium4/manuals/25366814.pdf}
-[Viewed: February 16, 2005]",
 }
 
 @manual{IntelItanium02v3,
@@ -489,10 +484,26 @@
  organization="{Intel Corporation}",
  year="2002",
  number="251429-001",
- note="Available:
-\url{http://developer.intel.com/design/itanium/downloads/251429.htm}
-\url{ftp://download.intel.com/design/Itanium/Downloads/25142901.pdf}
-[Viewed: January 10, 2007]",
+}
+
+@manual{IntelItanium10v3,
+ title="Intel Itanium Architecture Software Developer's Manual
+Volume 3: Instruction Set Reference",
+ organization="{Intel Corporation}",
+ year="2010",
+ number="323207",
+ url="https://www.intel.com/content/dam/www/public/us/en/documents/manuals/itanium-architecture-vol-3-manual.pdf",
+ lastchecked="February 14, 2021",
+}
+
+@manual{IntelItanium10v2,
+ title="Intel Itanium Architecture Software Developer's Manual
+Volume 2: System Architecture",
+ organization="{Intel Corporation}",
+ year="2010",
+ number="245318",
+ url="https://www.intel.com/content/dam/www/public/us/en/documents/manuals/itanium-architecture-software-developer-rev-2-3-vol-2-manual.pdf",
+ lastchecked="February 14, 2021",
 }
 
 @manual{MIPSvII-A-2015,
@@ -502,7 +513,7 @@
  organization="{Imagination Technologies, LTD.}",
  year="2015",
  number="MD00087 Rev. 6.04",
- note={URL: \nolinkurl{https://imgtec.com/?do-download=4302} [Broken: January 2021]},
+ note={URL: \nolinkurl{https://imgtec.com/?do-download=4302} [broken, January 2021]},
 }
 
 @manual{MIPSvII-A-2016,
@@ -522,7 +533,7 @@
  organization="{Imagination Technologies, LTD.}",
  year="2017",
  number="MD00087 Rev. 6.05",
- note={URL: \nolinkurl{https://imgtec.com/?do-download=4302} [Broken: January 2021]},
+ note={URL: \nolinkurl{https://imgtec.com/?do-download=4302} [broken, January 2021]},
 }
 
 @unpublished{LinusTorvalds2006LockingPatchQuality,
@@ -539,9 +550,6 @@
  organization="{Intel Corporation}",
  year="2007",
  number="318147-001",
- note="URL:
-\nolinkurl{http://developer.intel.com/products/processor/manuals/318147.pdf}
-[Broken: January 2021]",
 }
 
 @manual{Intel64IA32v3A2009,
@@ -550,9 +558,6 @@
  organization="{Intel Corporation}",
  year="2009",
  number="253668-030US",
- note="Available:
-\url{http://download.intel.com/design/processor/manuals/253668.pdf}
-[Viewed: November 8, 2009]",
 }
 
 @manual{Intel64IA32v3A2011,
@@ -847,6 +852,14 @@
 [Viewed: June 7, 2010]",
 }
 
+@unpublished{PeterSewell2021weakmemory,
+ author="Peter Sewell",
+ title="Relaxed-Memory Concurrency",
+ note="Available:
+\url{http://www.cl.cam.ac.uk/~pes20/weakmemory/}
+[Viewed: February 15, 2021]",
+}
+
 @inproceedings{SusmitSarkar2011CppPower,
  author="Susmit Sarkar and Peter Sewell and Jade Alglave and Luc Maranget and Derek Williams",
  title="Understanding {POWER} Multiprocessors",
diff --git a/bib/maze.bib b/bib/maze.bib
index a8d41e1..5dd3e72 100644
--- a/bib/maze.bib
+++ b/bib/maze.bib
@@ -25,7 +25,8 @@
  month="November",
  year="2010",
  day="4",
- note={\url{http://www.cs.umd.edu/class/fall2010/cmsc433/p3/}},
+ note={URL: \nolinkurl{http://www.cs.umd.edu/class/fall2010/cmsc433/p3/}
+[broken, February 2021]},
 }
 
 @unpublished{ETHZurich:FS2011maze,
@@ -45,7 +46,8 @@
  month="March",
  year="2011",
  day="3",
- note={\url{http://www.technologyreview.com/blog/arxiv/26467/}},
+ note="URL: \url{https://www.technologyreview.com/2011/03/03/196572/memristor-processor-solves-mazes/}",
+ lastchecked="February 13, 2021",
 }
 
 @unpublished{ChristerEricson2008GPUMaze,
diff --git a/bib/os.bib b/bib/os.bib
index da98c64..38b8464 100644
--- a/bib/os.bib
+++ b/bib/os.bib
@@ -294,6 +294,7 @@
  month="December",
  year="1995",
  pages="314-321",
+ doi = {10.1145/224057.224080},
 }
 
 @conference{Cowan96aOS,
@@ -348,6 +349,9 @@
  month="February",
  year="1990",
  pages="163-176",
+ note="Available:
+\url{https://archive.org/details/1990-proceedings-winter-dc/page/150/mode/2up}",
+ lastchecked="February 13, 2021",
 }
 
 @conference{Dove90,
@@ -735,8 +739,8 @@
  month="June",
  year="2002",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=102495429606637&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=102495429606637&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{McVoy02a,
@@ -791,8 +795,8 @@
  Title="Linux 3.x",
  month="July",
  year="2011",
- note="Available: \url{ftp://kernel.org/pub/linux/kernel/v3.x}
-[Viewed August 8, 2012]",
+ note="Available: \url{https://kernel.org/pub/linux/kernel/v3.x}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.6kernel,
@@ -800,8 +804,8 @@
  Title="Linux 2.6",
  month="August",
  year="2003",
- note="Available: \url{ftp://kernel.org/pub/linux/kernel/v2.6}
-[Viewed June 23, 2004]",
+ note="Available: \url{https://kernel.org/pub/linux/kernel/v2.6}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.43,
@@ -821,8 +825,8 @@
  month="October",
  year="2002",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103500176112851&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=103500176112851&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.45,
@@ -831,8 +835,8 @@
  month="October",
  year="2002",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103602621711679&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=103602621711679&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.46,
@@ -841,8 +845,8 @@
  month="November",
  year="2002",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=103645181102114&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=103645181102114&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.53,
@@ -851,8 +855,8 @@
  month="December",
  year="2002",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=104070902324592&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=104070902324592&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.58,
@@ -861,8 +865,8 @@
  month="January",
  year="2003",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=104252528009597&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=104252528009597&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.62,
@@ -871,8 +875,8 @@
  month="February",
  year="2003",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=104552457430265&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=104552457430265&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.64,
@@ -881,8 +885,8 @@
  month="March",
  year="2003",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=104683690231395&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=104683690231395&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.69,
@@ -891,8 +895,8 @@
  month="May",
  year="2003",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=105209603501299&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=105209603501299&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.70,
@@ -901,8 +905,8 @@
  month="May",
  year="2003",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=105400162802746&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=105400162802746&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.71,
@@ -911,8 +915,8 @@
  month="June",
  year="2003",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=105562576502426&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=105562576502426&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{Torvalds2.5.73,
@@ -921,8 +925,8 @@
  month="June",
  year="2003",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=105630824516148&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=105630824516148&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{McKenney01c,
@@ -931,8 +935,8 @@
  month="October",
  year="2001",
  note="Available:
-\url{http://marc.theaimsgroup.com/?l=linux-kernel&m=100259266316456&w=2}
-[Viewed June 23, 2004]",
+\url{https://marc.info/?l=linux-kernel&m=100259266316456&w=2}
+[Viewed February 16, 2021]",
 }
 
 @unpublished{McKenney01d,
diff --git a/bib/perfmeas.bib b/bib/perfmeas.bib
index 0a089d6..9ba80cf 100644
--- a/bib/perfmeas.bib
+++ b/bib/perfmeas.bib
@@ -83,6 +83,7 @@
  year = {1999},
  pages = {219-234},
  bibsource = {DBLP, http://dblp.uni-trier.de},
+ doi = {10.1002/(SICI)1097-024X(199903)29:3%3C219::AID-SPE230%3E3.0.CO;2-0}
 }
 
 @Book{Menasce94,
diff --git a/bib/realtime.bib b/bib/realtime.bib
index 5abcaa5..fc9c209 100644
--- a/bib/realtime.bib
+++ b/bib/realtime.bib
@@ -245,8 +245,8 @@
  month="January",
  year="2007",
  day="11",
- note="URL: \url{http://www.b-eye-network.com/view/3365}",
- lastchecked="November 4, 2016",
+ note="URL: \nolinkurl{http://www.b-eye-network.com/view/3365}
+[broken, February 2021]",
 }
 
 @unpublished{IBMRealTimeJavaTechnology2007a,
@@ -565,8 +565,8 @@
  month="October",
  year="2014",
  address="Duesseldorf, Germany",
- note="URL: \url{http://www.linuxplumbersconf.org/2014/ocw/sessions/1935}",
- lastchecked="November 4, 2016",
+ note="URL: \url{https://blog.linuxplumbersconf.org/2014/ocw/proposals/1935}",
+ lastchecked="February 13, 2021",
 }
 
 @unpublished{JakeEdge2014Future-rtLinux,
diff --git a/bib/refs.bib b/bib/refs.bib
index bec2f0d..f637394 100644
--- a/bib/refs.bib
+++ b/bib/refs.bib
@@ -8,6 +8,7 @@
  series="2",
  volume="42",
  pages="230-265",
+ doi="10.1112/plms/s2-42.1.230",
 }
 
 @article{McCarthy:1960:RFS:367177.367199,
@@ -522,6 +523,7 @@
  Year="1989",
  pages="1-12",
  journal="SIGCOMM '89",
+ url="https://www.icsi.berkeley.edu/icsi/node/5171"
 }
 
 @techreport{Jain89,
@@ -717,6 +719,7 @@
  school="Massachusetts Institute of Technology",
  year="1989",
  month="July",
+ url="http://hdl.handle.net/1721.1/14184",
 }
 
 @unpublished{Parulkar89a,
diff --git a/bib/search.bib b/bib/search.bib
index 7baccbf..9f796f2 100644
--- a/bib/search.bib
+++ b/bib/search.bib
@@ -19,6 +19,7 @@
  number="CS-TR-2222.1",
  month="June",
  pages="14",
+ url="http://hdl.handle.net/1903/542",
 }
 
 @techreport{PughSkipListCB90,
diff --git a/bib/swtools.bib b/bib/swtools.bib
index fd72163..d03381d 100644
--- a/bib/swtools.bib
+++ b/bib/swtools.bib
@@ -7,8 +7,8 @@
  month="December",
  day="9",
  note="URL:
-\url{http://dougengelbart.org/firsts/dougs-1968-demo.html}",
- lastchecked="November 12, 2016",
+\url{http://thedemo.org/}",
+ lastchecked="February 13, 2021",
 }
 
 @unpublished{StephenJohnson1977lint,
@@ -296,6 +296,7 @@
  SERIES    = { Lecture Notes in Computer Science },
  VOLUME    = { 2988 },
  EDITOR    = { Kurt Jensen and Andreas Podelski },
+ doi={10.1007/978-3-540-24730-2_15},
 }
 
 @inproceedings{YoannPadioleau2005CollateralEvolution,
@@ -560,7 +561,7 @@
  year = {2011},
  pages = {???--???},
  address = {Ottawa, Canada},
- url={http://codemonkey.org.uk/projects/trinity/},
+ note={Project repository: \url{https://github.com/kernelslacker/trinity}},
 }
 
 @unpublished{PaulEMcKenney2012SignedOverflow,
diff --git a/bib/syncrefs.bib b/bib/syncrefs.bib
index c618bf3..1b96a55 100644
--- a/bib/syncrefs.bib
+++ b/bib/syncrefs.bib
@@ -225,7 +225,8 @@
  pages = {6},
  numpages = {1},
  location = {San Jose, CA},
- series = {HotPar'13}
+ series = {HotPar'13},
+ url = {https://www.usenix.org/conference/hotpar13/workshop-program/presentation/rinard},
 }
 
 @InProceedings{AndreasHaas2013CFRelaxedQueues,
@@ -391,8 +392,8 @@
  Year="2006",
  Month="March",
  note="Available:
-\url{http://lxr.linux.no/#linux+v2.6.39/Documentation/robust-futexes.txt}
-[Viewed May 22, 2011]",
+\url{https://www.kernel.org/doc/Documentation/robust-futexes.txt}
+[Viewed February 14, 2021]",
 }
 
 @inproceedings{Eastep:2010:SLA:1809049.1809079,
@@ -786,8 +787,7 @@
  volume="15",
  number="6",
  pages="491-504",
- url={http://www.research.ibm.com/people/m/michael/ieeetpds-2004.pdf},
- lastchecked="March 1, 2005",
+ doi={10.1109/TPDS.2004.8},
 }
 
 @unpublished{KeithBostic2010WiredTigerhazptr,
@@ -1018,6 +1018,15 @@
  Address = "Shelter Island, NY, USA",
 }
 
+@book{NormMatloff2011ParProcBook,
+ Author = "Norm Matloff",
+ Title = "Programming on Parallel Machines",
+ Year = "2011",
+ Publisher = "University of California, Davis",
+ Address = "Davis, CA, USA",
+ url="http://heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook2011.pdf"
+}
+
 @book{NormMatloff2013ParProcBook,
  Author = "Norm Matloff",
  Title = "Programming on Parallel Machines",
@@ -1026,6 +1035,15 @@
  Address = "Davis, CA, USA",
 }
 
+@book{NormMatloff2017ParProcBook,
+ Author = "Norm Matloff",
+ Title = "Programming on Parallel Machines",
+ Year = "2017",
+ Publisher = "University of California, Davis",
+ Address = "Davis, CA, USA",
+ url="http://heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook.pdf"
+}
+
 @book{McKenney20xxParallelProgramming,
  Author = "Paul E. McKenney",
  Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It?",
@@ -1222,8 +1240,8 @@
  Year="2006",
  Month="June",
  note="Available:
-\url{http://lxr.linux.no/#linux+v2.6.39/Documentation/pi-futex.txt}
-[Viewed May 22, 2011]",
+\url{https://www.kernel.org/doc/html/latest/locking/pi-futex.html}
+[Viewed February 14, 2021]",
 }
 
 
@@ -1284,8 +1302,8 @@
  address="Tokyo, Japan",
  year="1993",
  number="93-02",
- url="http://www.is.s.u-tokyo.ac.jp/library/tech-reports/TR93-02.ps.gz",
- lastchecked="November 23, 2016",
+ url="https://library.t.u-tokyo.ac.jp/cslib/tech-reports/TR93-02.ps.gz",
+ lastchecked="February 15, 2021",
 }
 
 @techreport{Craig93,
@@ -1349,9 +1367,6 @@
  Year="1994",
  Month="October",
  doi="10.1145/195473.195490",
- Note="URL:
-\url{http://groups.csail.mit.edu/cag/pub/papers/pdf/reactive.pdf}",
- lastchecked="November 13, 2016",
 }
 
 @conference{Wisniewski94,
@@ -1739,9 +1754,9 @@
  number="TR-09-02",
  month="February",
  pages="5",
- note="Available:
-\url{http://www.cs.pdx.edu/pdfs/tr0902.pdf}
-[Viewed February 19, 2009]",
+ note="URL:
+\url{https://archives.pdx.edu/ds/psu/10386}
+[Viewed February 13, 2021]",
 }
 
 @unpublished{PaulEMcKenney2009Supercomputing,
diff --git a/cpu/cpu.tex b/cpu/cpu.tex
index b9d4cd5..5a5c9d4 100644
--- a/cpu/cpu.tex
+++ b/cpu/cpu.tex
@@ -18,7 +18,7 @@
 parallel hardware design; readers desiring more detail would do well
 to start with a recent edition of \pplsur{John L.}{Hennessy} and
 \pplsur{David A.}{Patterson}'s classic
-text~\cite{Hennessy2011,Hennessy95a}.
+text~\cite{Hennessy2017,Hennessy95a}.
 
 \QuickQuiz{
 	Why should parallel programmers bother learning low-level
diff --git a/cpu/overview.tex b/cpu/overview.tex
index f22884f..d4dbd01 100644
--- a/cpu/overview.tex
+++ b/cpu/overview.tex
@@ -45,7 +45,7 @@
 instructions simultaneously, using \emph{pipelines}; \emph{superscalar}
 techniques; \emph{out-of-order} instruction and data handling;
 \emph{speculative execution}, and
-more~\cite{Hennessy2011}
+more~\cite{Hennessy2017,Hennessy2011}
 in order to optimize the flow of instructions and data through the CPU.
 Some cores have more than one hardware thread, which is variously called
 \emph{simultaneous multithreading} (SMT) or \emph{hyperthreading}
diff --git a/defer/rcurelated.tex b/defer/rcurelated.tex
index 4a0b844..32074e7 100644
--- a/defer/rcurelated.tex
+++ b/defer/rcurelated.tex
@@ -65,7 +65,7 @@
 \ppl{Peter}{Zijlstra}~\cite{PeterZijlstra2014SpeculativePageFault}, and both
 were limited by the fact that, at the time, filesystem data structures
 were not safe for RCU readers.
-\pplsur{Austin}{Clements} et al. avoided this limitation by
+\pplsur{Austin}{Clements} et al.\ avoided this limitation by
 optimizing the page-fault
 path for anonymous pages only.
 More recently, filesystem data structures have been made safe for RCU
@@ -150,7 +150,7 @@
 ``passive reader-writer lock''~\cite{RanLiu2014PassiveRWLock}, similar to
 those created by \ppl{Gautham}{Shenoy}~\cite{GauthamShenoy2006RCUrwlock} and
 \ppl{Srivatsa}{Bhat}~\cite{SrivatsaSBhat2014RCUrwlock}.
-The Liu et al.~paper is interesting from a number of
+The Liu et al.\ paper is interesting from a number of
 perspectives~\cite{PaulEMcKenney2014ReadMostly}.
 
 \ppl{Mike}{Ash} posted~\cite{MikeAsh2015Apple} a description of an RCU-like
diff --git a/defer/rcuusage.tex b/defer/rcuusage.tex
index b0de0e7..ae61394 100644
--- a/defer/rcuusage.tex
+++ b/defer/rcuusage.tex
@@ -886,7 +886,7 @@
 
 However, as with reader-writer locking, the performance advantages of
 RCU are most pronounced for short-duration critical sections and for
-large numbers of CPUs, as shown
+large numbers of CPUs, as shown in
 Figure~\ref{fig:defer:Response Time of RCU vs. Reference Counting}
 for the same system.
 In addition, as with reader-writer locking, many system calls (and thus
diff --git a/defer/whichtochoose.tex b/defer/whichtochoose.tex
index cdde2a5..bfd0798 100644
--- a/defer/whichtochoose.tex
+++ b/defer/whichtochoose.tex
@@ -491,7 +491,7 @@
 and an RCU-protected hash table~\cite{AviKivity2013OSvRCUhash}.
 
 In 2011, Samy Al Bahra added epochs
-(a form of RCU~\cite{KeirAnthonyFraserPhD,KeirFraser2007withoutLocks})
+(a form of RCU~\cite{UCAM-CL-TR-579,KeirFraser2007withoutLocks})
 to the Concurrency Kit
 library~\cite{SamyAlBahra2011ckEpoch}.
 
diff --git a/future/tm.tex b/future/tm.tex
index 2b923d8..5a3f51f 100644
--- a/future/tm.tex
+++ b/future/tm.tex
@@ -918,7 +918,7 @@
 	for coming up with a number of the above alternatives.}
 It is interesting to note that many of the better performing and
 scaling STM implementations make use of RCU-like techniques
-internally~\cite{KeirAnthonyFraserPhD,KeirFraser2007withoutLocks,Gu:2019:PSE:3358807.3358885,Kim:2019:MSR:3297858.3304040}.
+internally~\cite{UCAM-CL-TR-579,KeirFraser2007withoutLocks,Gu:2019:PSE:3358807.3358885,Kim:2019:MSR:3297858.3304040}.
 
 \QuickQuiz{
 	MV-RLU looks pretty good!
diff --git a/howto/howto.tex b/howto/howto.tex
index 07c6c0b..e1c7003 100644
--- a/howto/howto.tex
+++ b/howto/howto.tex
@@ -347,7 +347,7 @@
 \item	If your primary focus is scientific and technical computing,
 	and you are interested in GPUs, CUDA, and MPI, you
 	might check out \ppl{Norm}{Matloff}'s ``Programming on
-	Parallel Machines''~\cite{NormMatloff2013ParProcBook}.
+	Parallel Machines''~\cite{NormMatloff2017ParProcBook}.
 	Of course, the GPU vendors have quite a bit of additional
 	information~\cite{AMD2020ROCm,CyrilZeller2011GPGPUbasics,NVidia2017GPGPU,NVidia2017GPGPU-university}.
 \item	If you are interested in POSIX Threads, you might take
@@ -377,7 +377,7 @@
 	treatment of this subject~\cite{Schimmel:1994:USM:175689}.
 \item	If you are looking for a hardware view, \ppl{John}{Hennessy}'s and
 	\ppl{David}{Patterson}'s classic
-	textbook~\cite{Hennessy2011} is well worth a read.
+	textbook~\cite{Hennessy2017,Hennessy2011} is well worth a read.
 	If you are looking for an academic textbook on memory ordering,
 	that of \ppl{Daniel}{Sorin} et al.~\cite{DanielJSorin2011MemModel}
 	is highly recommended.
diff --git a/locking/locking.tex b/locking/locking.tex
index 01ba4fb..0be9ff8 100644
--- a/locking/locking.tex
+++ b/locking/locking.tex
@@ -1889,7 +1889,7 @@
 contention~\cite{BengHongLim94}, thus getting low overhead at low levels
 of contention and getting fairness and high throughput at high levels
 of contention.
-Browning et al.~took a similar approach, but avoided the use of a separate
+Browning et al.\ took a similar approach, but avoided the use of a separate
 flag, so that the test-and-set fast path uses the same sequence of
 instructions that would be used in a simple test-and-set
 lock~\cite{LukeBrowning2005SimpleLockNUMAAware}.
@@ -1906,7 +1906,7 @@
 high-priority process from running.
 One solution is \emph{priority inheritance}~\cite{Lampson1980Mesa},
 which has been widely used for real-time
-computing~\cite{Sha1990IEEETransComp,JonathanCorbet2006PriorityInheritance},
+computing~\cite{LuiSha1990PriorityInheritance,JonathanCorbet2006PriorityInheritance},
 despite some lingering controversy over this
 practice~\cite{Yodaiken2004FSM,DougLocke2002a}.
 
diff --git a/memorder/memorder.tex b/memorder/memorder.tex
index 362bff1..591e65d 100644
--- a/memorder/memorder.tex
+++ b/memorder/memorder.tex
@@ -1534,7 +1534,7 @@
 and stores to a single region of memory (as might be set up using
 the C-language \co{union} keyword) would provide similar ordering
 guarantees.
-However, Flur et al.~discovered some surprisingly simple
+However, Flur et al.\ discovered some surprisingly simple
 litmus tests that demonstrate that these guarantees can be violated on
 real hardware~\cite{Flur:2017:MCA:3093333.3009839}.
 It is therefore necessary to restrict code to non-overlapping
diff --git a/owned/owned.tex b/owned/owned.tex
index 4eaf7d4..79a007e 100644
--- a/owned/owned.tex
+++ b/owned/owned.tex
@@ -414,7 +414,7 @@
 	well-suited for GPGPUs.\footnote{
 		But note that a great many other classes of applications
 		have also been ported to
-		GPGPUs~\cite{NormMatloff2013ParProcBook,AMD2020ROCm,NVidia2017GPGPU,NVidia2017GPGPU-university}.}
+		GPGPUs~\cite{NormMatloff2017ParProcBook,AMD2020ROCm,NVidia2017GPGPU,NVidia2017GPGPU-university}.}
 \item	Operating-system kernels adapted for networking, where each connection
 	(also called \emph{flow}~\cite{Shenker89,ZhangPhD,McKenney90})
 	is assigned to a specific thread.