Akira Yokosawa (127): advsync: Another fix to use latex reference feature consistently advsync: Fix a trivial typo advsync: Add necessary blank lines around minipages advsync: Tweak vertical spacing around code snippets qqz: Improve accuracy of cross-links Improve behavior of build scripts Remove *.bbl from repository Fix regression in improvement of build scripts Another regression fix of build script improvement count: Fix missed context adjustment whymb: Remove redundant words advsync: Tweak table appearance advsync: Replace table with diagrams in "Variables Can advsync: Use colors nicer to your eyes Makefile: Denote phony targets explicitly .gitignore: Add planned empty targets Add font installation check Add short name targets in Makefile sig-theft: Fix .dot source for dot - graphviz version 2.36.0 Make default target of "make" overridable Makefile: Reorder rules Makefile: Use wildcards Further improvement of build scripts Fix regression in Makefile Place trouble-shooting questions to FAQ-BUILD.txt Further tweaks of Makefile rm qqz.tex and add store15tred.esp to repository Remove rules related to perfbook_html Makefile: Add comment on why 'extraction' is an empty target Improve messages regarding font installation Fix false positives in font check Improve messages regarding font installation Add citation of HP11 cpu: Add citation of HP11 Remove .eps files whose sources are .dot FAQ-BUILD.txt: Add graphviz package as required Makefile: Promote eps2pdf.sh to implicit rules build scripts: Suppress warning messages Hide sources of unused figures Makefile: Use wildcard for .dot files Makefile: Possible fix for warning of duplicated target Align numbers in Performance of Mechanisms table in qqz cpu: Fix numbers in Performance of Mechanisms tables toolsoftrade: Centering figures of verbatim code examples toolsoftrade: Adjust position of Figure 4.5 toolsoftrade: Use \path command for C source file name count: Use \path command for C source file name count: Centering figures of verbatim code examples count: Tweak position of Figure 5.1 SMPdesign: Use \path command for path names SMPdesign: Centering figures of verbatim code examples count: Typo fix ("a Intel" -> "an Intel") Revert "Further tweak position of "Just Count!" figure" Revert "count: Tweak position of Figure 5.1" Add 'footmisc' package for better placement of footnote Add comments on the purpose of additional packages Add 'footnotebackref' package Fix typo in the definition of \co macro qqz: Add macro's for referencing quick quizzes qqz: Improve accuracy of hyperref to QQA locking: Centering figures of verbatim code examples locking: Use \path command for path names defer: Centering figures of verbatim code examples defer: Tweak font size of Figure 9.5 defer: Align left margins of Figurs 9.28, 9.29 and 9.30 defer: Use \path command for path names Use \co{} properly to give room for line-breaks datastruct: Centering figures of verbatim code examples datastruct: Fix indent of Figure 'Alignment for 64-Byte Cache Lines' datastruct: Use \path command for path names debugging: Centering figures of verbatim code examples debugging: Use \path command for path names debugging: Enclose shell command example in \co{} macro formal: Centering figures of verbatim code examples formal: Use \path command for path names together: Centering figures of verbatim code examples advsync: Centering figures of verbatim code examples advsync: Add \centering in some tables advsync: Use \path command for path names rt: Centering figures of verbatim code examples rt: Use \path{} for path names rt: Consistently use 'real-time' as adjective qqz: Add cross-link reference at the end of each QQ and QQA qqz: Improve accuracy of qqz back link qqz: Add macro for referencing quick quiz answer rt & advsync: Typo fixes howto: Miscellaneous fixes qqz: Use \vspace{} for vertical spacing in Appendix D. qqz: Give room for \parskip to suppress orphans future: Use \QuickQuizARef{} for reference to QQA future: Miscellaneous possible fixes after: Typo fixes time: Typo fix Typo fixes in Quick Quizzes rt: Typo fix in QQA Add 'hypcap' package to make hyperref go to top of figure and table after: Centering figures of verbatim code examples after: Tweak font size of Figure A.2 after: Use \path command for path names primitives: Use \path for path name primitives: Centering figures of verbatim code examples qqz: Replace redundant blank lines with comment lines qqz: Use \minipage{} environment for code snippet qqz: Add blank lines for proper paragraph breaks qqz: More replacement of redundant blank lines with comment lines appendix: Centering tables and figures Use \centering instead of center environment (part 1) Use \centering instead of center environment (part 2) Use \centering instead of center environment (part 3) Use \centering instead of center environment (part 4) Use \centering instead of center environment (part 5) toolsoftrade: qqa: Add paragraph break around minipage SMPdesign: Tweak table 'Schematic of Real-World Parallel Allocator' defer: Use 'tabulary' for some tables Tweak sizes and positions of Tables and Figures SMPdesign: Restore effect of \cleardoublepage defer/refcnt: Typo fix defer/refcnt: Another typo fix qqz: Add another hyperlink to black box in QQA qqz: Modify back link target at end of QQA to the end of QQ howto: Update explanation of cross-link between QQs and QQAs formal: Trivial typo fixes defer/rcuapi: Merge Tables 9.3 and 9.4 defer: Trivial typo fixes Use UK style punctuation order Use unspaced em dashes consistently Tweak width of epigraph Andreea-Cristina Bernat (3): api: Add multiple header files hazptr: Modify name of global variable that creates confusion Deallocate memory in hash-table perftest Andrew Donnellan (2): Fix capitalisation of "Figure" in credits for real-time chapter FAQ: Add note on installing Steel City Comic font Balbir Singh (1): Fix build error on Fedora 23 with texlive Dave (1): Typos and grammatical fixes Dominik Dingel (2): CodeSamples: Fix compiler warnings CodeSamples: Add read/write solution to the deq example Emilio G. Cota (3): advsync/mb: Fix wrong value of B in data dep example advsync/mb: s/targetted/targeted/ advsync: s/an write/a write/ Namhyung Kim (1): Remove a duplicate 'not' Paolo Bonzini (4): Typo in battery-powered systems Quick Quiz qqz: Avoid duplicate references qqz: Cross-link questions and answers Fix typo in quick quiz 4.17 Paul E. McKenney (179): Fix rcu_read_unlock() toyrcu confusion Move hash-table code into a subdirectory Fix typo Add a bit more cynicism to the formal-verification chapter. Bare beginning on memory-barriers rewrite Add -Wall by default Add smp_load_acquire() and smp_store_release() Add code for the Issaquah Challenge defer: Clean up -Wall warnings Add "homework problem" based on old DYNIX/ptx TCP/IP routing RCUification count: Clean up -Wall warnings. advsync: Clean up -Wall warnings rcuimpl: Fix -Wall warnings future: Fix -Wall bugs intro: Fix -Wall warnings locking: Add Makefile, clean up -Wall warnings toolsoftrade: Fix -Wall warnings Fix bug due to missing rcu_read_lock(). Transactional self-review Add Michael Wong's point about portability and generality Remove additional clause from perfbook DCO Add note on experience with HTM-based lock elision Add quick quiz on HTM-based lock elision ATOMIC_INIT() and atomic_read() are the exceptions that prove the rule Complete the answer to a Quick Quiz Add quick quiz about kfree as kref release function Permitted not required to be non-atomic Add HW cache-consistency citations to QQ3.4 Pull cache-coherency protocol citations out of QQ. Get the existence files into the git archive Add Quick Quiz for Dominik Dingel's solution Update .gitignore for lockrwdeq Add missing comma in lead-in to locking chapter Add Michael Wong's "iron triangle" and wordsmith Update bibliography Update FSF address to point to their website Fix explanation of the speed of electricity More updates to electricity-vs-light discussion Initialize variable Add footnote on ARMv8's half memory barriers Update bibliography, show 1980s parallel programming guides Add Korean translation to FAQ.txt Update bibliography files First attempt to add MIPS memory-ordering properties Add batching and weakening to the discussion of counting algorithms Aside on batching and weakening for partitioning Partitioning, batching, and weakening for data ownership Deferred processing as a weakness Partiioning, batching, and weakening to advsync Add bounded wait-free synchronization to the NBS discussion Relate techinques and optimizations Add a nod to special-purpose hardware at the end of counting Move real-time RCU example to real-time chapter Updates to real-time role of RCU Add Deadlock Empire citation Catch up qqz.tex, fix punctuation-quote order Add wrap-up to quiz-quizzes section Call out caching benefits of read-mostly designs First installment of deferred-processing running example Add larger multiple-value-write scenario Promote hazard pointers to a top-level section Fix up deferred-processing roadmap Fill out more of deferred-processing example application Add caveats to the Software Logic Analyzer Drop the derivation of the Poisson distribution Drop self-referential citation in favor of chapter reference Update todo list Merge commit 'b51edb7b5c7932486b72caf28afa5479b68f77f0' Add a few epigraphs Add yet more epigraphs and update credits Update copyright date Even more epigraphs Another epigraph Turn bare URL into citation Fix now-obsolete back reference to Compaq Wizard web page Explain why cells in table 14.2 can be blank Add forward references to section 3.4 Credit Akira for the fancy multiple-values-of-variable figure Relate data-structures into back to epigraph Add a spin_is_locked() function Make spinlock primitives abort on error for easier debugging Add the beginnings of a routing example Limping version Merge branch 'makefile-tweaks-v4' of /tmp/makefile-tweaks-v4 into akira.2016.05.14a Add a sequential set of routing functions Add hazard-pointer-based routing table implementation Fix typo "baloon" -> "balloon" Fix some stray "hash" instances in comments etc. No quiescent states needed for hazard pointers Add a buggy reference-count-protected route list Merge branch 'fix-false-positive-v4' of https://github.com/akiyks/perfbook into akira.2016.05.21a Fix reference-count increment/decrement balance for route_refcnt Update bibliography Move high-performance random() to new lib directory Define comparison function at initialization Improve errno checking Add TEST_HASH symbol to allow tests to be excluded Fix typo in epigram attribution Align numbers in Performance of Mechanisms table Further tweak position of "Just Count!" figure hlist_for_each_entry_rcu() now has only three arguments Fix answer to real-time queueing-theory quick quiz Merge branch 'qqz-additional-ref-mark' of https://github.com/akiyks/perfbook Qualify quick-quiz identifiers by chapter Apply SPDX license identifiers to unambiguous files Add diagnostics to route_refcnt to reliably detect use-after-free Add diagnostics to route_rcu to reliably detect use-after-free Add a DEFINE_SEQ_LOCK() Simplify read_seqretry() Use "static inline" for functions in seqlock.h Add a seqlock-"protected" route cache Make code samples match example in text for pre-BSD routing Make routetorture use parallel random() Add read-only performance tests to route torturing Performance-measurement script Fix bug resulting in only ever one CPU for route_perf Additional routing performance measurement fixes Route performance data reduction Add data and plot script for routing benchmark Run 5 and 7 CPUs for route performance tests Match pre-BSD diagram to code Create running example section, rename figure Make route code match text: s/proc/iface/ Add single-threaded routing algorithm and brief description Add use-after-free checks to route_hazptr Add RT chapter to the Section 1.1 roadmap Add Pre-BSD routing code using (buggy) reference counting Merge branch 'non-cosmetic-fixes' of https://github.com/akiyks/perfbook Use "tab:" label prefix for tables Add performance graph for Pre-BSD reference counting Merge branch 'cosmetic-fixes-round-3' of https://github.com/akiyks/perfbook Shrink shiny new Pre-BSD reference-count performance figure Move figure to new format and add path Update bibliography database Add instructions on using quick-quiz hyperlinks Add Pre-BSD route-table example to reference counting Update transition from reference counts to hazard pointers Add code and performance figures for hazard pointers Keep attribution of contributions in git logs and announcements Call out hazard pointers's memory-footprint advantages Fix synchornization typo Text for Pre-BSD routing hazard-pointer implementation Truth in advertising for refcnt Pre-BSD routing table Update sequence-lock algorithm, prep for Pre-BSD Remove unused variable from route_seqlock Add use-after-free diagnostics Add needed memory barrier for use-after-free diagnostics Loosen Pre-BSD code figure placement constraints Allow route_rcu to be built for QSBR Add QSBR variant for Pre-BSD routing data Clarify x-axis labels for Pre-BSD data Generate new QSBR data Update defer/.gitignore for new _qsbr binary Add Pre-BSD plot for RCU QSBR Switch source of Pre-BSD plots, add QQ on 8-CPU plot limit Improve answer for QQ about non-ideal hazard-pointer performance Add Pre-BSD routing example to RCU section Introduce call_rcu() a bit earlier to support pre-BSD example Light rework of RCU API section Update which-to-choose section Add QQ on why not always use QSBR Another addition to todo.txt Move plot labels from "CPUs/Threads" to "CPUs (Threads)" Add glossary.tex to make dependencies Clarify definition of Linearizability. Self review of "Which to Choose" section Update formal-verification conclusion Wordsmith switching between quick-quiz questions and answers Akira review, part 1 Akira feedback, part 2 Change stray en-dash to hypen Update bibliography Convert author credits to \OriginallyPublished{} Move question about SRCU to follow the introduction of SRCU Fix outdated LWN article reference Fix Toy RCU section references Fix "can can" typo Remove extraneous dagger markings. Add plural to section range SeongJae Park (30): FAQ: Fix wrong question reference Remove wraiths of 2up from FAQ and .gitignore FAQ: Remove duplicated prerequisite packages intro: Remove an unnecessary dot toolsoftrade: Fix a typo cpu: Rearrange summary of chapter toolsoftrade: Add missed closing parenthesis count: Fix typos count: Fix a word to fit in context whymb: s/write buffer/store buffer whymb: Fix trivial typos whymb: Remove ARM's short multi processor history description advsync: Fix trivial typos advsync: Fix critical section bleed-in description advsync: Fix wrong reference to section ``MMIO write barrier'' advsync: Fix wrong code example advsync: Fix latex syntax related typos advsync: Use latex reference feature consistently advsync: Fix trivial typos SMPdesign: add missing tildes SMPdesign: keep consistent expression locking: Use consistent expressions locking: Fix typos FAQ: Replace deprecated manual font install path defer: Fix typos defer: Insert missing tildes defer/seqlock: Fix wrong line reference defer/refcnt: Add missing dot defer: Fix typos defer/seqlock: Fix wrong code line reference .gitignore | 12 +- CodeSamples/Makefile.arch | 2 +- CodeSamples/SMPdesign/.gitignore | 1 + CodeSamples/SMPdesign/Makefile | 9 +- CodeSamples/SMPdesign/deqtorture.h | 6 +- CodeSamples/SMPdesign/lockdeq.c | 4 +- CodeSamples/SMPdesign/lockhdeq.c | 4 +- CodeSamples/SMPdesign/lockrwdeq.c | 154 + CodeSamples/SMPdesign/locktdeq.c | 8 +- CodeSamples/SMPdesign/matmul.c | 7 +- CodeSamples/SMPdesign/matmul.reduce.sh | 4 +- CodeSamples/SMPdesign/matmul.sh | 4 +- CodeSamples/SMPdesign/matmul_block.c | 7 +- CodeSamples/SMPdesign/maze/Makefile | 4 +- CodeSamples/SMPdesign/maze/maze.c | 4 +- CodeSamples/SMPdesign/maze/maze.h | 4 +- CodeSamples/SMPdesign/maze/maze_2seq.c | 4 +- CodeSamples/SMPdesign/maze/maze_fg.c | 4 +- CodeSamples/SMPdesign/maze/maze_parallel.h | 4 +- CodeSamples/SMPdesign/maze/maze_part.c | 4 +- CodeSamples/SMPdesign/maze/maze_seq.c | 4 +- CodeSamples/SMPdesign/smpalloc.c | 5 +- CodeSamples/SMPdesign/smpalloc.sh | 4 +- CodeSamples/advsync/Makefile | 4 +- CodeSamples/advsync/q.c | 4 +- CodeSamples/advsync/q.h | 4 +- CodeSamples/advsync/queuetorture.h | 12 +- CodeSamples/advsync/singleq.c | 4 +- CodeSamples/advsync/singleq.h | 4 +- CodeSamples/advsync/special/mbtest/arch.h | 4 +- CodeSamples/advsync/special/mbtest/arch_ia64.h | 4 +- CodeSamples/advsync/special/mbtest/arch_ppc.h | 4 +- CodeSamples/advsync/special/mbtest/arch_x86.h | 4 +- CodeSamples/advsync/special/mbtest/iriw.c | 4 +- CodeSamples/advsync/special/mbtest/mb_lhs_ws.c | 4 +- CodeSamples/advsync/special/mbtest/mb_s_lis_shl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_s_wbs_wbl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_s_whs_whl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_s_ws_whl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_sbl_sbl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_sbs_lbl.c | 4 +- .../advsync/special/mbtest/mb_sbs_wbs_lbl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_sbs_ws_wbl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_sbs_ws_wl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_ses_lil.c | 4 +- CodeSamples/advsync/special/mbtest/mb_ses_wi_wbl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_ses_wi_whl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_ses_ws_wbl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_ses_ws_whl.c | 4 +- CodeSamples/advsync/special/mbtest/mb_shs_lhl.c | 4 +- .../advsync/special/mbtest/mb_shs_shs_lil_lil.c | 4 +- CodeSamples/advsync/special/mbtest/mb_ss_ll.c | 4 +- CodeSamples/advsync/special/mbtest/mbtest.h | 4 +- CodeSamples/advsync/special/mbtest/run_mbtest.sh | 4 +- CodeSamples/advsync/special/mbtest/sc_loadload.c | 4 +- CodeSamples/advsync/special/mbtest/sc_storestore.c | 4 +- CodeSamples/advsync/special/mbtest/sctest3.c | 4 +- CodeSamples/advsync/special/timewritecache.c | 4 +- CodeSamples/advsync/special/writecacheflow.c | 4 +- CodeSamples/advsync/special/writeflowgroup.sh | 4 +- CodeSamples/advsync/special/writeflowtab.sh | 4 +- CodeSamples/advsync/wfenqueue.c | 4 +- .../promela/dyntick/dyntickRCU-base-s.spin | 4 +- .../promela/dyntick/dyntickRCU-base-sl-busted.spin | 4 +- .../promela/dyntick/dyntickRCU-base-sl.spin | 4 +- .../analysis/promela/dyntick/dyntickRCU-base.spin | 4 +- .../promela/dyntick/dyntickRCU-irq-nmi-ssl.spin | 4 +- .../promela/dyntick/dyntickRCU-irq-ssl.spin | 4 +- .../promela/dyntick/dyntickRCU-irqnn-ssl.spin | 4 +- CodeSamples/analysis/promela/dyntick/runspin.sh | 4 +- CodeSamples/api-pthreads/QAfter/time.c | 4 +- CodeSamples/api-pthreads/QAfter/timelocked.c | 4 +- CodeSamples/api-pthreads/api-pthreads.h | 38 +- CodeSamples/api-pthreads/include/dgettimeofday.c | 4 +- CodeSamples/api.h | 62 +- CodeSamples/appendix/formal/dyntickRCU-base-s.spin | 4 +- .../appendix/formal/dyntickRCU-base-sl-busted.spin | 4 +- .../appendix/formal/dyntickRCU-base-sl.spin | 4 +- CodeSamples/appendix/formal/dyntickRCU-base.spin | 4 +- .../appendix/formal/dyntickRCU-irq-nmi-ssl.spin | 4 +- .../appendix/formal/dyntickRCU-irq-ssl.spin | 4 +- .../appendix/formal/dyntickRCU-irqnn-ssl.spin | 4 +- CodeSamples/appendix/formal/runspin.sh | 4 +- CodeSamples/appendix/rcuimpl/Makefile | 12 +- CodeSamples/appendix/rcuimpl/README | 4 +- CodeSamples/appendix/rcuimpl/extractconfig.sh | 4 +- CodeSamples/appendix/rcuimpl/onoffrandtorture.sh | 4 +- CodeSamples/arch-arm/arch-arm.h | 4 +- CodeSamples/arch-ppc64/Makefile.arch | 2 +- CodeSamples/arch-ppc64/arch-ppc64.h | 19 +- CodeSamples/arch-x86/Makefile.arch | 2 +- CodeSamples/arch-x86/arch-x86.h | 17 +- CodeSamples/count/Makefile | 4 +- CodeSamples/count/atomic.eps | 2 +- CodeSamples/count/atomic125.eps | 2 +- CodeSamples/count/count_atomic.c | 4 +- CodeSamples/count/count_end.c | 4 +- CodeSamples/count/count_end_rcu.c | 4 +- CodeSamples/count/count_lim.c | 4 +- CodeSamples/count/count_lim_app.c | 4 +- CodeSamples/count/count_lim_atomic.c | 4 +- CodeSamples/count/count_lim_sig.c | 4 +- CodeSamples/count/count_limd.c | 4 +- CodeSamples/count/count_nonatomic.c | 4 +- CodeSamples/count/count_stack.c | 4 +- CodeSamples/count/count_stat.c | 4 +- CodeSamples/count/count_stat_atomic.c | 4 +- CodeSamples/count/count_stat_eventual.c | 4 +- CodeSamples/count/count_tstat.c | 4 +- CodeSamples/count/counttorture.h | 11 +- CodeSamples/count/limtorture.h | 8 +- CodeSamples/count/perf.sh | 4 +- CodeSamples/count/plots.sh | 10 +- CodeSamples/count/reduce.sh | 4 +- CodeSamples/datastruct/Issaquah/.gitignore | 3 + CodeSamples/datastruct/Issaquah/Makefile | 41 + CodeSamples/datastruct/Issaquah/existence.c | 332 + CodeSamples/datastruct/Issaquah/existence.h | 69 + CodeSamples/datastruct/Issaquah/existence_test | Bin 0 -> 26359 bytes CodeSamples/datastruct/Issaquah/existence_test.c | 113 + CodeSamples/datastruct/Issaquah/perf.sh | 39 + CodeSamples/datastruct/Issaquah/plots.sh | 106 + CodeSamples/datastruct/Issaquah/reduce.sh | 63 + CodeSamples/datastruct/Issaquah/spinlockmult.c | 67 + CodeSamples/datastruct/Issaquah/spinlockmult.h | 27 + CodeSamples/datastruct/Issaquah/tree.c | 927 +++ CodeSamples/datastruct/Issaquah/tree.h | 66 + CodeSamples/datastruct/Issaquah/treetorture.h | 1374 ++++ CodeSamples/datastruct/Issaquah/treetorturetrace.h | 80 + CodeSamples/datastruct/Makefile | 40 - CodeSamples/datastruct/hash/Makefile | 40 + .../perf-resize.sh.2014.01.11b.out | 0 .../perftestL.131072.2014.01.11b.dat | 0 .../perftestL.16384.2014.01.11b.dat | 0 .../perftestL.2048.2014.01.11b.dat | 0 .../perftestR..2014.01.11b.dat | 0 .../perftestR.131072.2014.01.11b.dat | 0 .../perftestR.16384.2014.01.11b.dat | 0 .../perftestR.2048.2014.01.11b.dat | 0 .../perftestS.131072.2014.01.11b.dat | 0 .../perftestS.16384.2014.01.11b.dat | 0 .../perftestS.2048.2014.01.11b.dat | 0 .../hash-resize.2014.01.11b/perftestresize.eps | 2 +- .../data/hash.2013.12.02a/perf.sh.2013.12.02a.out | 0 .../{ => hash}/data/hash.2013.12.02a/perftest.eps | 2 +- .../perftest.hash_bkt.2013.12.02a.dat | 0 .../perftest.hash_bkt_hazptr.2013.12.02a.dat | 0 .../perftest.hash_bkt_rcu.2013.12.02a.dat | 0 .../perftest.hash_global.2013.12.02a.dat | 0 .../data/hash.2013.12.02a/perftestlin.eps | 2 +- .../zoo.cat.hash_bkt.2013.12.02a.dat | 0 .../zoo.cat.hash_bkt_hazptr.2013.12.02a.dat | 0 .../zoo.cat.hash_bkt_rcu.2013.12.02a.dat | 0 .../zoo.cat.hash_global.2013.12.02a.dat | 0 .../zoo.catall.hash_bkt.2013.12.02a.dat | 0 .../zoo.catall.hash_bkt_hazptr.2013.12.02a.dat | 0 .../zoo.catall.hash_bkt_rcu.2013.12.02a.dat | 0 .../zoo.catall.hash_global.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt-16384.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt-2048.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt-4096.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt-8192.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_hazptr-16384.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_hazptr-2048.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_hazptr-4096.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_hazptr-8192.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_hazptr.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_rcu-16384.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_rcu-2048.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_rcu-4096.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_rcu-8192.2013.12.02a.dat | 0 .../zoo.cpus.hash_bkt_rcu.2013.12.02a.dat | 0 .../zoo.cpus.hash_global-16384.2013.12.02a.dat | 0 .../zoo.cpus.hash_global-2048.2013.12.02a.dat | 0 .../zoo.cpus.hash_global-4096.2013.12.02a.dat | 0 .../zoo.cpus.hash_global-8192.2013.12.02a.dat | 0 .../zoo.cpus.hash_global.2013.12.02a.dat | 0 .../zoo.mix.hash_bkt.2013.12.02a.out | 0 .../zoo.mix.hash_bkt_hazptr.2013.12.02a.out | 0 .../zoo.mix.hash_bkt_rcu.2013.12.02a.out | 0 .../zoo.mix.hash_global.2013.12.02a.out | 0 .../zoo.reads.hash_bkt.2013.12.02a.dat | 0 .../zoo.reads.hash_bkt_hazptr.2013.12.02a.dat | 0 .../zoo.reads.hash_bkt_rcu.2013.12.02a.dat | 0 .../zoo.reads.hash_global.2013.12.02a.dat | 0 .../zoo.upd.hash_bkt.2013.12.02a.dat | 0 .../zoo.upd.hash_bkt_hazptr.2013.12.02a.dat | 0 .../zoo.upd.hash_bkt_rcu.2013.12.02a.dat | 0 .../zoo.upd.hash_global.2013.12.02a.dat | 0 .../zoo.updates.hash_bkt.2013.12.02a.dat | 0 .../zoo.updates.hash_bkt_hazptr.2013.12.02a.dat | 0 .../zoo.updates.hash_bkt_rcu.2013.12.02a.dat | 0 .../zoo.updates.hash_global.2013.12.02a.dat | 0 .../zoo.updrd.hash_bkt.2013.12.02a.dat | 0 .../zoo.updrd.hash_bkt_hazptr.2013.12.02a.dat | 0 .../zoo.updrd.hash_bkt_rcu.2013.12.02a.dat | 0 .../zoo.updrd.hash_global.2013.12.02a.dat | 0 .../{ => hash}/data/hash.2013.12.02a/zoocatall.eps | 2 +- .../data/hash.2013.12.02a/zoocatalllin.eps | 2 +- .../data/hash.2013.12.02a/zoocatonly.eps | 2 +- .../data/hash.2013.12.02a/zoocatonlylin.eps | 2 +- .../{ => hash}/data/hash.2013.12.02a/zoocpu.eps | 2 +- .../data/hash.2013.12.02a/zoocpubktlin.eps | 2 +- .../data/hash.2013.12.02a/zoocpubktlin8.eps | 2 +- .../data/hash.2013.12.02a/zoocpubktsizelin.eps | 2 +- .../{ => hash}/data/hash.2013.12.02a/zoocpulin.eps | 2 +- .../{ => hash}/data/hash.2013.12.02a/zooupdate.eps | 0 .../data/hash.2013.12.02a/zooupdatelu.eps | 0 .../data/hash.2013.12.02a/zooupdatelulin.eps | 0 CodeSamples/datastruct/{ => hash}/hash_bkt.c | 18 +- .../datastruct/{ => hash}/hash_bkt_hazptr.c | 18 +- CodeSamples/datastruct/{ => hash}/hash_bkt_rcu.c | 18 +- CodeSamples/datastruct/{ => hash}/hash_global.c | 18 +- CodeSamples/datastruct/{ => hash}/hash_resize.c | 12 +- CodeSamples/datastruct/{ => hash}/hashtorture.h | 48 +- CodeSamples/datastruct/{ => hash}/perf-resize.sh | 0 CodeSamples/datastruct/{ => hash}/perf.sh | 4 +- CodeSamples/datastruct/{ => hash}/plots-resize.sh | 6 +- CodeSamples/datastruct/{ => hash}/plots.sh | 26 +- CodeSamples/datastruct/{ => hash}/primes.mac | 4 +- CodeSamples/datastruct/{ => hash}/reduce-resize.sh | 4 +- CodeSamples/datastruct/{ => hash}/reduce.sh | 4 +- CodeSamples/debugging/plots.sh | 4 +- CodeSamples/defer/.gitignore | 7 + CodeSamples/defer/Makefile | 32 +- CodeSamples/defer/bug_rcu_dp.c | 6 +- CodeSamples/defer/bug_srcu_a.c | 4 +- CodeSamples/defer/data/paulmck.2016/cpuinfo | 208 + .../defer/data/paulmck.2016/perf-hazptr.eps | 2327 ++++++ .../defer/data/paulmck.2016/perf-rcu-qsbr.eps | 2558 +++++++ CodeSamples/defer/data/paulmck.2016/perf-rcu.eps | 2483 +++++++ .../defer/data/paulmck.2016/perf-refcnt.eps | 2249 ++++++ .../defer/data/paulmck.2016/perf-seqlock.eps | 2405 ++++++ CodeSamples/defer/data/paulmck.2016/plots.sh | 128 + .../route_hazptr.paulmck.2016.07.07a.dat | 8 + .../route_hazptr.paulmck.2016.07.07a.raw | 8 + .../route_hazptr.paulmck.2016.07.12a.dat | 8 + .../route_hazptr.paulmck.2016.07.12a.raw | 8 + .../paulmck.2016/route_rcu.paulmck.2016.07.07a.dat | 8 + .../paulmck.2016/route_rcu.paulmck.2016.07.07a.raw | 8 + .../paulmck.2016/route_rcu.paulmck.2016.07.12a.dat | 8 + .../paulmck.2016/route_rcu.paulmck.2016.07.12a.raw | 8 + .../route_rcu_qsbr.paulmck.2016.07.12a.dat | 8 + .../route_rcu_qsbr.paulmck.2016.07.12a.raw | 8 + .../route_refcnt.paulmck.2016.07.07a.dat | 8 + .../route_refcnt.paulmck.2016.07.07a.raw | 8 + .../route_refcnt.paulmck.2016.07.12a.dat | 8 + .../route_refcnt.paulmck.2016.07.12a.raw | 8 + .../paulmck.2016/route_seq.paulmck.2016.07.07a.dat | 8 + .../paulmck.2016/route_seq.paulmck.2016.07.07a.raw | 8 + .../paulmck.2016/route_seq.paulmck.2016.07.12a.dat | 8 + .../paulmck.2016/route_seq.paulmck.2016.07.12a.raw | 8 + .../route_seqlock.paulmck.2016.07.07a.dat | 8 + .../route_seqlock.paulmck.2016.07.07a.raw | 8 + .../route_seqlock.paulmck.2016.07.12a.dat | 8 + .../route_seqlock.paulmck.2016.07.12a.raw | 8 + CodeSamples/defer/fakekernrcu.c | 4 +- CodeSamples/defer/fakekernrcu.h | 4 +- CodeSamples/defer/gettimestamp.c | 4 +- CodeSamples/defer/gettimestampmp.c | 4 +- CodeSamples/defer/hazptr.c | 8 +- CodeSamples/defer/hazptr.h | 4 +- CodeSamples/defer/hazptrtorture.h | 9 +- CodeSamples/defer/perf-hazptr.eps | 2327 ++++++ CodeSamples/defer/perf-rcu-qsbr.eps | 2558 +++++++ CodeSamples/defer/perf-rcu.eps | 2483 +++++++ CodeSamples/defer/perf-refcnt.eps | 2249 ++++++ CodeSamples/defer/perf-seqlock.eps | 2405 ++++++ CodeSamples/defer/perf.sh | 4 +- CodeSamples/defer/perf_route.sh | 34 + CodeSamples/defer/ptxroute.c | 149 + CodeSamples/defer/rcu.c | 4 +- CodeSamples/defer/rcu.h | 10 +- CodeSamples/defer/rcu64.c | 4 +- CodeSamples/defer/rcu64.h | 6 +- CodeSamples/defer/rcu64_atomicgp.c | 4 +- CodeSamples/defer/rcu64_atomicgp.h | 6 +- CodeSamples/defer/rcu_lock.c | 4 +- CodeSamples/defer/rcu_lock.h | 4 +- CodeSamples/defer/rcu_lock_percpu.c | 4 +- CodeSamples/defer/rcu_lock_percpu.h | 4 +- CodeSamples/defer/rcu_nest.c | 4 +- CodeSamples/defer/rcu_nest.h | 8 +- CodeSamples/defer/rcu_nest32.c | 4 +- CodeSamples/defer/rcu_nest32.h | 14 +- CodeSamples/defer/rcu_nest_qs.c | 4 +- CodeSamples/defer/rcu_nest_qs.h | 6 +- CodeSamples/defer/rcu_pointer.h | 4 +- CodeSamples/defer/rcu_qs.c | 4 +- CodeSamples/defer/rcu_qs.h | 8 +- CodeSamples/defer/rcu_rcg.c | 4 +- CodeSamples/defer/rcu_rcg.h | 4 +- CodeSamples/defer/rcu_rcpg.c | 4 +- CodeSamples/defer/rcu_rcpg.h | 4 +- CodeSamples/defer/rcu_rcpl.c | 4 +- CodeSamples/defer/rcu_rcpl.h | 4 +- CodeSamples/defer/rcu_rcpls.c | 4 +- CodeSamples/defer/rcu_rcpls.h | 4 +- CodeSamples/defer/rcu_sig.c | 4 +- CodeSamples/defer/rcu_sig.h | 6 +- CodeSamples/defer/rcu_ts.c | 4 +- CodeSamples/defer/rcu_ts.h | 6 +- CodeSamples/defer/rcutorture.h | 7 +- CodeSamples/defer/reduce_route.sh | 96 + CodeSamples/defer/route_hazptr.c | 164 + CodeSamples/defer/route_rcu.c | 147 + CodeSamples/defer/route_refcnt.c | 157 + CodeSamples/defer/route_seq.c | 106 + CodeSamples/defer/route_seqlock.c | 142 + CodeSamples/defer/routetorture.h | 422 ++ CodeSamples/defer/seqlock.h | 24 +- CodeSamples/defer/seqlocktorture.c | 5 +- CodeSamples/defer/seqperf.sh | 4 +- CodeSamples/defer/srcu.c | 4 +- CodeSamples/defer/srcu.h | 4 +- CodeSamples/future/HTMovf.c | 5 +- CodeSamples/future/HTMovfMC.c | 4 +- CodeSamples/future/HTMovfMCNK.bash | 4 +- CodeSamples/future/HTMovfNK.bash | 4 +- CodeSamples/future/Makefile | 8 +- CodeSamples/future/plots.sh | 4 +- CodeSamples/intro/Makefile | 19 +- CodeSamples/intro/initrace.c | 4 +- CodeSamples/intro/initraceperf.c | 4 +- CodeSamples/intro/lockinc.c | 4 +- CodeSamples/intro/nakedinc.c | 4 +- CodeSamples/intro/perthreadinc.c | 4 +- CodeSamples/intro/threadcreate.c | 6 +- CodeSamples/lib/random.c | 80 + CodeSamples/lib/random.h | 30 + CodeSamples/linux/common.h | 7 +- CodeSamples/locking/Makefile | 12 + CodeSamples/locking/bakery.c | 4 +- CodeSamples/locking/locked_list.c | 33 +- CodeSamples/locking/xchglock.c | 6 +- CodeSamples/toolsoftrade/Makefile | 4 +- CodeSamples/toolsoftrade/forkexec.sh | 4 +- CodeSamples/toolsoftrade/forkjoin.c | 4 +- CodeSamples/toolsoftrade/forkjoinperf.c | 11 +- CodeSamples/toolsoftrade/forkjoinvar.c | 4 +- CodeSamples/toolsoftrade/lock.c | 5 +- CodeSamples/toolsoftrade/mytrue.c | 4 +- CodeSamples/toolsoftrade/parallel.sh | 4 +- CodeSamples/toolsoftrade/pcreate.c | 5 +- CodeSamples/toolsoftrade/plots.sh | 4 +- CodeSamples/toolsoftrade/rwlockscale.c | 5 +- CodeSamples/toolsoftrade/rwlockscale.sh | 4 +- CodeSamples/toolsoftrade/rwlockscalereduce.sh | 4 +- FAQ-BUILD.txt | 80 + FAQ.txt | 88 +- Makefile | 317 +- SMPdesign/SMPdesign.tex | 172 +- SMPdesign/beyond.tex | 80 +- SMPdesign/criteria.tex | 1 + SMPdesign/lockdeq.fig | 219 - SMPdesign/matmuleff.eps | 2 +- SMPdesign/partexercises.tex | 79 +- SMPdesign/plots.sh | 8 +- SMPdesign/synceff.eps | 2 +- advsync/.gitignore | 1 + advsync/.unused/MoreThanOneValue-15CPU-noresp.eps | 1306 ++++ advsync/.unused/MoreThanOneValue-15CPU-noresp.fig | 489 ++ advsync/MoreThanOneValue-15CPU.eps | 1306 ++++ advsync/MoreThanOneValue-15CPU.fig | 489 ++ advsync/MoreThanOneValue-15CPU.input | 27 + advsync/advsync.tex | 59 +- advsync/memorybarriers.tex | 324 +- advsync/rcu.tex | 60 +- advsync/store15tred.dot | 18 + appendix/ack/ack.tex | 9 +- appendix/appendix.tex | 1 + appendix/primitives/primitives.tex | 56 +- appendix/questions/after.tex | 45 +- appendix/questions/concurrentparallel.tex | 7 +- appendix/questions/questions.tex | 6 +- appendix/questions/time.tex | 6 +- appendix/rcuhist/RCUinLinux.tex | 10 +- .../rcuimpl/{ => .unused}/RCUpreemptCounters.fig | 0 appendix/rcuimpl/rcu.tex | 1 + appendix/rcuimpl/rcupreempt.tex | 32 +- appendix/rcuimpl/rcutree.tex | 27 +- appendix/rcuimpl/rcutreewt.tex | 12 +- appendix/rcuimpl/srcu.tex | 51 +- appendix/whymb/whymemorybarriers.tex | 323 +- bib/RCU.bib | 326 +- bib/TM.bib | 40 + bib/WFS.bib | 16 + bib/hw.bib | 38 +- bib/os.bib | 38 +- bib/swtools.bib | 62 + bib/syncrefs.bib | 26 + cartoons/{ => .unused}/patterns.fig | 0 cartoons/{ => .unused}/patterns.svg | 0 contrib.tex | 17 +- count/.gitignore | 1 + count/FourTaskOrderOpt.svg | 427 ++ count/count.tex | 376 +- count/sig-theft.dot | 17 +- count/sig-theft.eps | 457 -- cpu/cpu.tex | 19 +- cpu/hwfreelunch.tex | 70 +- cpu/overheads.tex | 65 +- cpu/overview.tex | 28 +- cpu/swdesign.tex | 36 +- datastruct/datastruct.tex | 239 +- datastruct/perftest.eps | 2 +- datastruct/perftestlin.eps | 2 +- datastruct/perftestresize.eps | 2 +- datastruct/zoocatall.eps | 2 +- datastruct/zoocatalllin.eps | 2 +- datastruct/zoocatonly.eps | 2 +- datastruct/zoocatonlylin.eps | 2 +- datastruct/zoocpu.eps | 2 +- datastruct/zoocpubktlin.eps | 2 +- datastruct/zoocpubktlin8.eps | 2 +- datastruct/zoocpubktsizelin.eps | 2 +- datastruct/zoocpulin.eps | 2 +- debugging/debugging.tex | 269 +- defer/RCUListInsertClassic.eps | 287 - defer/RCUListInsertClassic.fig | 93 - defer/RCUListInsertClassic.svg | 416 ++ defer/RouteList.svg | 258 + defer/defer.tex | 143 +- defer/hazptr.tex | 365 + defer/rcu.tex | 1 + defer/rcuapi.tex | 248 +- defer/rcuexercises.tex | 3 +- defer/rcufundamental.tex | 116 +- defer/rcuintro.tex | 64 +- defer/rcuusage.tex | 305 +- defer/refcnt.tex | 1054 +-- defer/seqlock.tex | 414 +- defer/toyrcu.tex | 227 +- defer/updates.tex | 5 +- defer/whichtochoose.tex | 276 +- easy/easy.tex | 21 +- formal/axiomatic.tex | 20 +- formal/dyntickrcu.tex | 105 +- formal/formal.tex | 39 +- formal/ppcmem.tex | 35 +- formal/sat.tex | 3 +- formal/spinhint.tex | 164 +- future/HTMtable.tex | 7 +- future/HTMtableRCU.tex | 8 +- future/cpu.tex | 29 +- future/future.tex | 10 +- future/htm.tex | 56 +- future/tm.tex | 54 +- glossary.tex | 14 +- howto/howto.tex | 42 +- intro/intro.tex | 99 +- legal.tex | 3 +- locking/locking-existence.tex | 16 +- locking/locking.tex | 155 +- memalloc/memalloc.tex | 1 + origpub.tex | 1 + owned/owned.tex | 16 +- perfbook-1c.bbl | 2103 ------ perfbook-hb.bbl | 1949 ----- perfbook.bbl | 2103 ------ perfbook.tex | 30 +- qqz.sty | 72 +- qqz.tex | 7627 -------------------- rt/rt.tex | 331 +- todo.txt | 138 +- together/applyrcu.tex | 56 +- together/count.tex | 5 +- together/hash.tex | 9 +- together/refcnt.tex | 675 ++ together/together.tex | 9 + toolsoftrade/toolsoftrade.tex | 125 +- utilities/MoreThanOneValue-15CPU.c | 280 + utilities/c2qqz.sh | 4 +- utilities/cleanpdf.sh | 4 +- utilities/datablows.sh | 4 +- utilities/eps2pdf.sh | 16 +- utilities/extractcontrib.sh | 4 +- utilities/extractorigpub.sh | 4 +- utilities/extractqqz.c | 4 +- utilities/extractqqz.sh | 6 +- utilities/fixanepsfonts.sh | 4 +- utilities/fixdotfonts.sh | 4 +- utilities/fixfigfonts.sh | 4 +- utilities/fixfonts.sh | 4 +- utilities/gitextractcontrib.sh | 4 +- utilities/prep4html.sh | 4 +- utilities/qqz2c.sh | 4 +- utilities/runfirstlatex.sh | 46 + utilities/runlatex.sh | 100 +- utilities/sortdata.sh | 4 +- 491 files changed, 41076 insertions(+), 19081 deletions(-) create mode 100644 CodeSamples/SMPdesign/lockrwdeq.c create mode 100644 CodeSamples/datastruct/Issaquah/.gitignore create mode 100644 CodeSamples/datastruct/Issaquah/Makefile create mode 100644 CodeSamples/datastruct/Issaquah/existence.c create mode 100644 CodeSamples/datastruct/Issaquah/existence.h create mode 100755 CodeSamples/datastruct/Issaquah/existence_test create mode 100644 CodeSamples/datastruct/Issaquah/existence_test.c create mode 100644 CodeSamples/datastruct/Issaquah/perf.sh create mode 100644 CodeSamples/datastruct/Issaquah/plots.sh create mode 100644 CodeSamples/datastruct/Issaquah/reduce.sh create mode 100644 CodeSamples/datastruct/Issaquah/spinlockmult.c create mode 100644 CodeSamples/datastruct/Issaquah/spinlockmult.h create mode 100644 CodeSamples/datastruct/Issaquah/tree.c create mode 100644 CodeSamples/datastruct/Issaquah/tree.h create mode 100644 CodeSamples/datastruct/Issaquah/treetorture.h create mode 100644 CodeSamples/datastruct/Issaquah/treetorturetrace.h delete mode 100644 CodeSamples/datastruct/Makefile create mode 100644 CodeSamples/datastruct/hash/Makefile rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perf-resize.sh.2014.01.11b.out (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestL.131072.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestL.16384.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestL.2048.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestR..2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestR.131072.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestR.16384.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestR.2048.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestS.131072.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestS.16384.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestS.2048.2014.01.11b.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash-resize.2014.01.11b/perftestresize.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/perf.sh.2013.12.02a.out (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/perftest.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/perftest.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/perftest.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/perftest.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/perftest.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/perftestlin.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cat.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cat.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cat.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cat.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.catall.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.catall.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.catall.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.catall.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt-16384.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt-2048.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt-4096.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt-8192.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_hazptr-16384.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_hazptr-2048.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_hazptr-4096.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_hazptr-8192.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_rcu-16384.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_rcu-2048.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_rcu-4096.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_rcu-8192.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_global-16384.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_global-2048.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_global-4096.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_global-8192.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.cpus.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.mix.hash_bkt.2013.12.02a.out (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.mix.hash_bkt_hazptr.2013.12.02a.out (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.mix.hash_bkt_rcu.2013.12.02a.out (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.mix.hash_global.2013.12.02a.out (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.reads.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.reads.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.reads.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.reads.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.upd.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.upd.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.upd.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.upd.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updates.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updates.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updates.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updates.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updrd.hash_bkt.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updrd.hash_bkt_hazptr.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updrd.hash_bkt_rcu.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoo.updrd.hash_global.2013.12.02a.dat (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocatall.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocatalllin.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocatonly.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocatonlylin.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocpu.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocpubktlin.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocpubktlin8.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocpubktsizelin.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zoocpulin.eps (99%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zooupdate.eps (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zooupdatelu.eps (100%) rename CodeSamples/datastruct/{ => hash}/data/hash.2013.12.02a/zooupdatelulin.eps (100%) rename CodeSamples/datastruct/{ => hash}/hash_bkt.c (90%) rename CodeSamples/datastruct/{ => hash}/hash_bkt_hazptr.c (93%) rename CodeSamples/datastruct/{ => hash}/hash_bkt_rcu.c (91%) rename CodeSamples/datastruct/{ => hash}/hash_global.c (90%) rename CodeSamples/datastruct/{ => hash}/hash_resize.c (96%) rename CodeSamples/datastruct/{ => hash}/hashtorture.h (97%) rename CodeSamples/datastruct/{ => hash}/perf-resize.sh (100%) rename CodeSamples/datastruct/{ => hash}/perf.sh (95%) rename CodeSamples/datastruct/{ => hash}/plots-resize.sh (91%) rename CodeSamples/datastruct/{ => hash}/plots.sh (94%) rename CodeSamples/datastruct/{ => hash}/primes.mac (86%) rename CodeSamples/datastruct/{ => hash}/reduce-resize.sh (93%) rename CodeSamples/datastruct/{ => hash}/reduce.sh (95%) create mode 100644 CodeSamples/defer/data/paulmck.2016/cpuinfo create mode 100644 CodeSamples/defer/data/paulmck.2016/perf-hazptr.eps create mode 100644 CodeSamples/defer/data/paulmck.2016/perf-rcu-qsbr.eps create mode 100644 CodeSamples/defer/data/paulmck.2016/perf-rcu.eps create mode 100644 CodeSamples/defer/data/paulmck.2016/perf-refcnt.eps create mode 100644 CodeSamples/defer/data/paulmck.2016/perf-seqlock.eps create mode 100644 CodeSamples/defer/data/paulmck.2016/plots.sh create mode 100644 CodeSamples/defer/data/paulmck.2016/route_hazptr.paulmck.2016.07.07a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_hazptr.paulmck.2016.07.07a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_hazptr.paulmck.2016.07.12a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_hazptr.paulmck.2016.07.12a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_rcu.paulmck.2016.07.07a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_rcu.paulmck.2016.07.07a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_rcu.paulmck.2016.07.12a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_rcu.paulmck.2016.07.12a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_rcu_qsbr.paulmck.2016.07.12a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_rcu_qsbr.paulmck.2016.07.12a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_refcnt.paulmck.2016.07.07a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_refcnt.paulmck.2016.07.07a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_refcnt.paulmck.2016.07.12a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_refcnt.paulmck.2016.07.12a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seq.paulmck.2016.07.07a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seq.paulmck.2016.07.07a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seq.paulmck.2016.07.12a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seq.paulmck.2016.07.12a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seqlock.paulmck.2016.07.07a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seqlock.paulmck.2016.07.07a.raw create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seqlock.paulmck.2016.07.12a.dat create mode 100644 CodeSamples/defer/data/paulmck.2016/route_seqlock.paulmck.2016.07.12a.raw create mode 100644 CodeSamples/defer/perf-hazptr.eps create mode 100644 CodeSamples/defer/perf-rcu-qsbr.eps create mode 100644 CodeSamples/defer/perf-rcu.eps create mode 100644 CodeSamples/defer/perf-refcnt.eps create mode 100644 CodeSamples/defer/perf-seqlock.eps create mode 100644 CodeSamples/defer/perf_route.sh create mode 100644 CodeSamples/defer/ptxroute.c create mode 100644 CodeSamples/defer/reduce_route.sh create mode 100644 CodeSamples/defer/route_hazptr.c create mode 100644 CodeSamples/defer/route_rcu.c create mode 100644 CodeSamples/defer/route_refcnt.c create mode 100644 CodeSamples/defer/route_seq.c create mode 100644 CodeSamples/defer/route_seqlock.c create mode 100644 CodeSamples/defer/routetorture.h create mode 100644 CodeSamples/lib/random.c create mode 100644 CodeSamples/lib/random.h create mode 100644 CodeSamples/locking/Makefile create mode 100644 FAQ-BUILD.txt delete mode 100644 SMPdesign/lockdeq.fig create mode 100644 advsync/.gitignore create mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.eps create mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.fig create mode 100644 advsync/MoreThanOneValue-15CPU.eps create mode 100644 advsync/MoreThanOneValue-15CPU.fig create mode 100644 advsync/MoreThanOneValue-15CPU.input create mode 100644 advsync/store15tred.dot rename appendix/rcuimpl/{ => .unused}/RCUpreemptCounters.fig (100%) rename cartoons/{ => .unused}/patterns.fig (100%) rename cartoons/{ => .unused}/patterns.svg (100%) create mode 100644 count/.gitignore create mode 100644 count/FourTaskOrderOpt.svg delete mode 100644 count/sig-theft.eps delete mode 100644 defer/RCUListInsertClassic.eps delete mode 100644 defer/RCUListInsertClassic.fig create mode 100644 defer/RCUListInsertClassic.svg create mode 100644 defer/RouteList.svg create mode 100644 defer/hazptr.tex delete mode 100644 perfbook-1c.bbl delete mode 100644 perfbook-hb.bbl delete mode 100644 perfbook.bbl delete mode 100644 qqz.tex create mode 100644 together/refcnt.tex create mode 100644 utilities/MoreThanOneValue-15CPU.c create mode 100644 utilities/runfirstlatex.sh