Paul E. McKenney (37): Add citation to userspace-rcu at beginning of toyrcu section. Remove unused variable in counttorture.h Add a simple seqlock test program. Improve sequence-counter performance/torture test. Make sequence-lock torture count read-side retries Add vestigal sequence-lock section Update FAQ. Fix undefined label errors in locking chapter Switch to postscript type 1 fonts Finish sequence-locking section. Performance-testing script for sequence locking. Update todo list. Bakery algorithm. Add quick quiz on seqlock counter size. Note Intel restriction on different-sized atomic ops to same location Add cautionary tale to future visions section. Add some text on locking unfairness. Force fonts in new diagrams to be embedded. Note test version on lulu.com. Add more verbiage to the locking chapter. Complete first pass over locking chapter. Add locking-hierarchy diagrams, tie local and layered hierarchies Add cover art, update todo.txt, and document workaround for 64-bit x86 usage More deadlock-avoidance strategies. More adjustments to the locking chapter. Update grace-period definition Clarify role of Michael Scott's textbook. Add sample atomic-instruction-based locking primitive Locking: high contention, NUMA, priority inversion Clarify required citation. Update RCU introduction. Add citations for futexes. More tweaks to the locking chapter. Add appendix on the history of RCU in the Linux kernel Include only recent RCU history, drop generalities. Fixups in RCU history. Fix fonts in new figures. Tom Gundersen (5): layout: use microtype hyperref: remove colored border around links label: Fixed multiple definitions of the same label Typos font: changed to a nicer font CodeSamples/arch-x86/Makefile.arch | 3 + CodeSamples/count/counttorture.h | 1 - CodeSamples/defer/.gitignore | 1 + CodeSamples/defer/Makefile | 6 +- CodeSamples/defer/seqlock.h | 65 + CodeSamples/defer/seqlocktorture.c | 239 + CodeSamples/defer/seqperf.sh | 40 + CodeSamples/locking/.gitignore | 2 + CodeSamples/locking/bakery.c | 74 + CodeSamples/locking/locked_list.c | 97 + CodeSamples/locking/xchglock.c | 94 + FAQ.txt | 61 +- Makefile | 16 +- SMPdesign/SMPdesign.tex | 4 +- advsync/memorybarriers.tex | 101 +- appendix/appendix.tex | 1 + appendix/formal/spinhint.tex | 26 +- appendix/rcuhist/RCUinLinux.tex | 336 + appendix/rcuhist/linux-RCU.eps | 735 + appendix/rcuhist/linux-RCUlock.eps | 832 + appendix/rcuhist/rcuAPI.eps | 492 + appendix/rcuimpl/rcu.tex | 4 +- appendix/rcuimpl/rcutree.tex | 33 +- appendix/rcuimpl/rcutreewt.tex | 5 +- appendix/rcuimpl/srcu.tex | 10 +- appendix/whymb/whymemorybarriers.tex | 21 +- cartoons/CoverBack.jpg | Bin 0 -> 2276020 bytes cartoons/CoverFront.jpg | Bin 0 -> 3359299 bytes cartoons/CrashDummiesSmall.eps |29839 ++++ cartoons/LockingTheHero.eps |277722 +++++++++++++++++++++++++++++++ cartoons/LockingTheSlob.eps |266851 +++++++++++++++++++++++++++++ cartoons/MoreOfSameSmall.eps |30101 ++++ cartoons/MultithreadedManiaSmall.eps |24807 +++ cartoons/UniprocessorUberAllesSmall.eps |63179 +++++++ contrib.tex | 6 + count/count.tex | 8 +- cpu/overview.tex | 2 +- defer/QSBRGracePeriod.eps | 255 + defer/QSBRGracePeriod.fig | 60 + defer/RCUListDeleteClassic.eps | 328 + defer/RCUListDeleteClassic.fig | 135 + defer/RCUListInsertClassic.eps | 287 + defer/RCUListInsertClassic.fig | 93 + defer/defer.tex | 8 +- defer/rcu.tex | 14 + defer/rcufundamental.tex | 76 +- defer/rcuintro.tex | 191 + defer/rcuusage.tex | 2 +- defer/refcnt.tex | 36 +- defer/seqlock.tex | 306 + defer/toyrcu.tex | 8 +- future/be-lb-n4-rf-all.eps | 463 + future/be-lw-n4-rf-all.eps | 595 + future/cpu.tex | 216 + future/future.tex | 7 +- future/latencytrend.eps | 453 + glossary.tex | 4 +- intro/intro.tex | 4 +- locking/LayeredLockHierarchy.eps | 222 + locking/LayeredLockHierarchy.fig | 65 + locking/LocalLockHierarchy.eps | 221 + locking/LocalLockHierarchy.fig | 64 + locking/NonLocalLockHierarchy.eps | 221 + locking/NonLocalLockHierarchy.fig | 64 + locking/locking-existence.tex | 73 +- locking/locking.tex | 1027 +- owned/owned.tex | 1 + perfbook.bbl | 259 +- perfbook.tex | 10 +- qqz.tex | 405 +- todo.txt | 113 +- toolsoftrade/toolsoftrade.tex | 6 +- 72 files changed, 701787 insertions(+), 319 deletions(-) create mode 100644 CodeSamples/defer/seqlock.h create mode 100644 CodeSamples/defer/seqlocktorture.c create mode 100644 CodeSamples/defer/seqperf.sh create mode 100644 CodeSamples/locking/.gitignore create mode 100644 CodeSamples/locking/bakery.c create mode 100644 CodeSamples/locking/locked_list.c create mode 100644 CodeSamples/locking/xchglock.c create mode 100644 appendix/rcuhist/RCUinLinux.tex create mode 100644 appendix/rcuhist/linux-RCU.eps create mode 100644 appendix/rcuhist/linux-RCUlock.eps create mode 100644 appendix/rcuhist/rcuAPI.eps create mode 100644 cartoons/CoverBack.jpg create mode 100644 cartoons/CoverFront.jpg create mode 100644 cartoons/CrashDummiesSmall.eps create mode 100644 cartoons/LockingTheHero.eps create mode 100644 cartoons/LockingTheSlob.eps create mode 100644 cartoons/MoreOfSameSmall.eps create mode 100644 cartoons/MultithreadedManiaSmall.eps create mode 100644 cartoons/UniprocessorUberAllesSmall.eps create mode 100644 defer/QSBRGracePeriod.eps create mode 100644 defer/QSBRGracePeriod.fig create mode 100644 defer/RCUListDeleteClassic.eps create mode 100644 defer/RCUListDeleteClassic.fig create mode 100644 defer/RCUListInsertClassic.eps create mode 100644 defer/RCUListInsertClassic.fig create mode 100644 defer/rcuintro.tex create mode 100644 defer/seqlock.tex create mode 100644 future/be-lb-n4-rf-all.eps create mode 100644 future/be-lw-n4-rf-all.eps create mode 100644 future/cpu.tex create mode 100644 future/latencytrend.eps create mode 100644 locking/LayeredLockHierarchy.eps create mode 100644 locking/LayeredLockHierarchy.fig create mode 100644 locking/LocalLockHierarchy.eps create mode 100644 locking/LocalLockHierarchy.fig create mode 100644 locking/NonLocalLockHierarchy.eps create mode 100644 locking/NonLocalLockHierarchy.fig