Akira Yokosawa (371): bib/perfmeas: Append doi to Anderson97 bib/cyncrefs: Append doi to HagitAttiya2011LawsOfOrder bib/swtools: Append doi to JadeAlglave2013-cav bib/parallelsys: Append doi to GeneAmdahl1967AmdahlsLaw bib/syncrefs: Append doi to Anderson90 bib/TM: Append doi to Blundell2006TMdeadlock bib/TM: Append doi to CalinCascaval2008tmtoy bib/syncrefs: Append doi to Courtois71 bib/RCU: Append doi to AustinClements2012RCULinux:mmapsem bib/TM: Append doi to AleksandarDragovejic2011STMnotToy bib/swtools: Append doi to VijayDSilva2012-sas bib/syncrefs: Append doi to Dijkstra65a bib/TM: Append doi to DavidDice:2010:SCA:HTM:deque bib/os: Append doi to Cheriton96a bib/RCU: Append doi to DinakarGuniguntala2008IBMSysJ bib/syncrefs: Append doi to Graunke90 bib/WFS: Append doi to MauriceHerlihy90a bib/WFS: Append doi to Herlihy91 bib/syncrefs: Append doi to AndreasHaas2013CFRelaxedQueues bib/syncrefs: Append doi to AndreasHaas2012FIFOisnt bib/WFS: Append doi to HerlihyLM02 bib/TM: Append doi to Herlihy93a bib/RCU: Append doi to ThomasEHart2006a bib/syncrefs: Append doi to WilsonCHsieh92a bib/refs: Append doi to VanJacobson88 bib/TM: Append doi to ChristianJacobi2012MainframeTM bib/TM: Append doi to SanjeevKumar2006 bib/RCU: Append doi to Kung80 bib/syncrefs: Append doi to Lamport74a bib/refs: Append doi to McKenney90 bib/perfmeas: Append doi to McKenney95a bib/syncrefs: Append doi to McKenney96a bib/syncrefs: Append doi to MellorCrummey91a bib/os: Append doi to McKenney92b bib/os: Append doi to McKenney92a bib/hw: Append doi to MiloMKMartin2012scale bib/TM: Append doi to PaulEMcKenney2010OSRGrassGreener bib/WFS: Append doi to MichaelScott96 bib/os: Append doi to McKenney01e bib/parallelsys: Append doi to Olukotun96 bib/TM: Append doi to ChistopherJRossbach2007a bib/hw: Append doi to DanielJSorin2011MemModel bib/syncrefs: Append doi to Segall84 bib/parallelsys: Append doi to DuaneSzafron1994PEMPDS bib/TM: Append doi to JMStone93 bib/TM: Append doi to Shavit95 bib/syncrefs: Append doi to Takada:1995:RSN:527074.828566 bib/WFS: Append doi to Valois95a bib/syncrefs: Append doi to Wisniewski94 bib/syncrefs: Append doi to Cai-DongWang1996PrioInherLock Make date of git commit be reflected automatically Define \tco{} command to be used in table rcufundamental: Rewrite table 'RCU Publish and Subscribe Primitives' rcuapi: Rewrite table 'RCU Wait-to-Finish APIs' rcuapi: Rewrite table 'RCU Publish-Subscribe and Version Maintenance APIs' whichtochoose: Rewrite table 'Which Deferred Technique to Choose?' memorybarriers: Remove \co{} in tabular env memorybarriers: Use \verb in table 'Lock-Based Critical Sections' whymemorybarriers: Remove \co{} in tabular env memorybarriers: Replace nbsp with \vspace Add \nf{} command to go back to normal font memorybarriers: Add \nf{} command to table header whymemorybarriers: Add \nf{} command to table header memorybarriers: Add \nf{} command to descriptive words in table Use \tco{} for API names inside of tables Fix typo smb_wmb() -> smp_wmb() Promote target 'mss' to default Makefile: Add target 'help' Revert "after: Tweak font size of Figure A.2" Revert "formal/dyntickrcu: Adjust font size of sample code" toolsoftrade: Enclose short verbatim in minipage Layout tweaks for 1c layout qqz: Add script to reorder lines in qqz.tex Makefile: Use qqzreorder.pl in qqz.tex target qqz.sty: Tweak \vspace{} parameter count: Use \log in math mode SMPdesign: Add shortcut of extdash to compound words Import exceptions for US English hyphenation from 'hyphenex' package Add hyphenation exceptions file for perfbook perfbook.tex: Include ushyphex.tex and pfhyphex.tex Revert "count: Enclose 'REQACK' in \mbox{}" Comment out 'process' in hyphenation exceptions SMPdesign: Add another shortcut of extdash bib/hw: Replace UTF-8 encoded single quote with plain ASCII bib: Replace UTF-8 chars with plain ASCII latex sequences bib/TM: Salvage url or replace with doi autodate.sh: Use printf command instead of echo bib/hw: Update url note of JohnKnickerbocker2008:3DI bib/syncrefs: Update BengHongLim94 bib/RCU: Salvage url of Spraul01 bib/syncrefs: Salvage url of AdrianSutton2013LCA:Disruptor bib/RCU: Append followup mail's url to LinusTorvalds2001a bib/syncrefs: Salvage url of DavidUngar2011unsync bib/swtools: Salvage url of RichardBornat2006SheepGoats Specify line break in title of cover page Narrow textwidth of legal and TOB pages in 2c build Change bibliography to one-column layout in 2c build Enable inlinelinks for 2c build Increase floatpagefraction for 2c layout Update hyphen-to-endash scripts advsync/memorybarriers: Use American spelling (initialize) together: Typo fix (a RCU ... -> an RCU ...) Use math mode minus signs for dashes in tables bib/WFS: Add 'eprint' field to DanAlitarh2013PracticalProgress bib/swtools: Fix url of SaeedDehnadi2009SheepGoats bib/WFS: Add doi to Herlihy93 bib/syncrefs: Add doi to Kontothanassis97a bib/TM: Fix doi of DBLomet1977SIGSOFT bib/TM: Correct url of YujieLiu2011ToxicTransactions bib/hw: Add doi to TrevorMudge2000Power bib/parallelsys: Fix typo in OpenMPI2008's title howto: Specify style of enumerate header bib/TM: Replace url with doi of DaveDice2006DISC bib/swtools: Salvage url of DouglasEngelbart1968 bib/RCU: Salvage broken url of McKenney01a bib/os: Salvage url of Molnar00a bib/hw: Salvage url of CSIRACMuseumVictoria bib/syncrefs: Replace broken url of radovic02efficient with doi bib/syncrefs: Replace broken url of radovic03hierarchical with doi SMPdesign/beyond: Remove redundant 'although' bib/maze: Mark url of ETHZurich:FS2011maze as broken link bib/syncrefs: Mark url of DougLocke2002a as broken bib/syncrefs: Mark url of Victor2002a as broken bib/parallelsys: Properly format UCB in author field alphapf.bst: Make use of 'location' field in 'inproceedings' entry Bibliography updates (append urls -- part 1) Bibliography updates (append urls -- part 2) Bibliography updates (append urls -- part 3) Bibliography updates (append urls -- part 4) bib/WFS.bib: Update info in Valois95a bib/TM: Append location to Volos2008TRANSACT bib/syncrefs: Fix booktitle and append location Bibliography updates appendix: Draw hyperlink border in bibliography for 1c layout appendix: Enable hyperlink border in bibliography for all layouts bib/syncrefs: Add doi to Hoare74 perfbook.tex: Disable 'microtype' for typewriter font treewide: Use \tco{} for api name in caption treewide: Use \tco{} for api name in subsubsection title Use 'enumitem' package instead of 'enumerate' intro: Move ':' to tail of 'description' label debugging: Convert to 'description' formal: Convert to 'description' together: Covert to 'description' runlatex.sh: Refactor by defining functions runlatex.sh: Fix typo in grep pattern runlatex.sh: Add more lines of grep output around warning/error log Add target 'mslm' for 'Latin Modern Typewriter' font runlatex.sh: Refactor further formal/spinhint: Fix typo formal/spinhint: Adjust option of enumerate list formal/spinhint: Reference by Figure labels advsync/memorybarriers: Reference by Figure label advsync/memorybarriers: Distinguish 'CPU family' from 'CPU' whymb: Convert to 'description' (part 1) whymb: Convert to 'description' (part 2) whymb: Convert to 'description' (part 3) whymb: Use 'nextline' style for 'description' whymb: Convert to 'description' (part 4) whymb: Convert to 'description' (part 5) Choose 'cmtt' font for code snippets in targets 'msnt' and 'mstx' FAQ-BUILD.txt: Append reference to manual LaTeX package install FAQ-BUILD.txt: Fix misinformation crept in wordsmithing Add another build error check Promote 'mslm' to default target advsync: Import 'TRANSITIVITY' section from memory-barriers.txt advsync: Permit p (page) placement for consecutive wide figures advsync: Make code snippet in deference to Herman Hollerith float advsync: Add footnote on transitivity advsync: Make code snippets more asm like advsync: Properly use nbsp in initial values advsync: Avoid indent after minipage advsync: LOCK/UNLOCK -> ACQUIRE/RELEASE (part 1) advsync: LOCK/UNLOCK -> ACQUIRE/RELEASE (part 2) advsync: LOCK/UNLOCK -> ACQUIRE/RELEASE (part 3) advsync: More replacement to ACQUIRE advsync: Add footnote mentioning LOCK/UNLOCK wording advsync: Modify usage of definite article advsync: Substitute 'guarantee' with 'implication' advsync: Properly use nbsp advsync: Move footnote on transitivity forward advsync: Fix line number called out advsync: Add extdash shortcut advsync: Avoid indent after minipage bib/QC: Replace UTF-8 encoded chars with escaped codes in ASCII toolsoftrade: Typo fix and context adjustment advsync: Use pseudo asm in sequence in 'Paring' section advsync: Substitute READ_ONCE()/WRITE_ONCE() for ACCESS_ONCE() advsync: Use pseudo asm in sequence in 'Review of Locking Impl' advsync: Backport upstream commits regarding reordering example advsync: Use pseudo asm in reordering example advsync: Use pseudo asm in another reordering example advsync: Avoid indent after minipages advsync: Add footnote to imply necessity of data dependency barrier advsync: Use READ_ONCE()/WRITE_ONCE() in sequence of 'Device Operations' advsync: Use READ_ONCE()/WRITE_ONCE() in sequence in 'Guarantees' advsync: Rename Section 'Guarantees' to 'Minimal Guarantees' advsync: Add another footnote implying data dependency barrier advsync: Use pseudo asm in sequence in 'Data Dependency Barriers' advsync: Use pseudo asm in sequence in 'SMP Barrier Pairing' perfbook.tex: Modify definition of \nbco{} whymb: Prevent line breaks between 'membar' and '#Sync', etc. whymb: Prevent line breaks between "bcr" and "15,0" Add 'GPGPU' to non-hyphenation list count: Fix typo in Answer to Quick Quiz 5.27 toolsoftrade: Update definition of READ_ONCE() count: Remove unnecessary smp_mb() in code snippet CodeSamples: Add rule to generate Makefile.arch and api.h CodeSamples: Remove generated files from repository CodeSamples: Use 'intptr_t' to be compatible with 'void *' CodeSamples/defer: Rework loop in gettimestampmp.c CodeSamples: Fixes for build on ppc64le CodeSamples: Remove cpu specific flag for ppc64 CodeSamples: Remove gprof-helper.c CodeSamples: Use $(MAKE) for recursive make CodeSamples: Makefile: Remove linux/list.h CodeSamples: Makefile: Add subdirectories CodeSamples: Makefile: Distinguish arch-independent targets hyphen2endash: Add patterns for QC section future/QC: Tweak appearance of tables future/QC: Fix typo in unit symbol and usage of math mode future/QC: Add narrow space before unit symbol future/QC: Use consistent axis names future/QC: Add missing 'has' in description list future/QC: Use \ket{} macro for |0> and |1> future/QC: Denote QC operators as such toyrcu: Adjust reference to prerequisite chapters toyrcu: Trivial typo fixes (rcu_idx -> rcu_refcnt) future/QC: Another math mode fix advsync: Substitute 'Figure' for 'Table' treewide: Add narrow spaces before SI unit symbols treewide: Add whitespace before SI unit symbols in figures Substitute 'greek mu' for 'u' in microsecond symbol treewide: Add narrow spaces before non-SI unit symbols cartoons: Add whitespace before 'MB' advsync: Adjust context to herd7 litmus test advsync: Trivial typo fixes advsync: Move footnote to avoid confusion advsync: Use 'row' instead of 'line' to call out a step in table advsync: Fix store-buffering sequence table advsync: Use '#include "api.h"' in litmus tests advsync: Add cross compilation targets advsync: Add dependency to $(CUSTOM_HEADER) CodeSamples: Add arm64 support advsync: Fix typo of litmus name advsync: Fix typos in load-buffering litmus tests advsync: Fix remaining typo in exists condition advsync: Trivial typo fixes advsync: Fix grammatical error advsync: Adjust spacing in Tables 14.1 and 14.2, consistent indirection advsync: Catch up changes in litmus tests advsync: Readjust spacing for one-column layout advsync: Fix control-dependency no-transitivity example advsync: Add litmus tests of control dependency advsync: Fix typo in MP litmus test appendix: Add style guide Specify required revision of 'verbatimbox' Localize floatrow.sty as floatrowpf.sty Apply workaround to floatrowpf.sty Define 'listing' environment for style guide styleguide: Add listing environment examples Disable 'floatrow' layout in manually aligned code snippets styleguide: Add example of grouping code snippets styleguide: Add example of preferred table layout using 'booktabs' styleguide: Tweak layout of 'Limitation' table Revert commits after "Localize floatrow.sty as floatrowpf.sty" advsync: Employ auto-numbering in litmus tests styleguide: Remove references to 'floatrow' and adjust context Define 'listing' environment for style guide styleguide: Add listing environment examples Use 'subfig' package instead of 'subfigure' styleguide: Add examples of grouping floating objects Specify 'labelfont=bf' option in captionsetup advsync: Convert code snippets and litmus tests to 'listing' Promote 'ruled' style as default of 'listing' environment styleguide: Add examples of alternative table layout styleguide: Tweak layout of 'Limitation' table styleguide: Update LaTeX source of code snippet styleguide: Add example of options to \num{} command styleguide: Emphasize source part of epigraph Use 'fixltx2e' package styleguide: Add more table experiments Get rid of 'tabulary' package styleguide: Add table examples with dashed lines styleguide: Add example of partially colored rows advsync: Fix typo advsync: Fix C-WWC+o+o-data-o+o-addr-o litmus tests advsync: Fix C-WWC+o+o-r+o-addr-o litmus tests memorder: Adjust epigraph style memorder: Adjust position of wide tables in 1c layout memorder: Fix conjunction use styleguide: Add 'Ellipsis' section styleguide: Add more experimental tables memorder: Silence compiler warnings in litmus tests memorder: Fix conjugation memorder: Fix typo in '*_acquire' example memorder: Reword footnote on cumulativity memorder: Transpose table 'Summary of Memory Ordering' memorder: Fix trivial typo memorder: Adjust hspace of table 'Summary of Memory Ordering' in 1c memorder: Fix usage of \IfInBook macro memorder: More reword to 'full-strength non-void RMW' memorder: Fix table of 'Summary of Memory Ordering' memorder: Convert remaining code snippets in figures to listings memorder: Use consistent names of WRC litmus tests styleguide: Substitute experimental table memorder: Convert tables to alternate-row coloring scheme memorder: Convert 'Summary of Memory Ordering' table to new scheme styleguide: Remove experimental tables updated in memorder chapter memorder: Add multi-column headers to 'Summary of Memory Ordering' table memorder: Reduce color saturation of MoreThanOneValue figure Use 'small' font in caption of code snippet debugging: Insert narrow space in front of percent symbol debugging: Use upright font for Euler's number future/QC: Insert narrow space in front of percent symbol future/QC: Use non-breakable hyphen for axis names treewide: Insert narrow space in front of percent symbol treewide: Use \Power{} macro for POWER CPU family treewide: Call GNU C compiler as "GCC" treewide: Use "IRQ" instead of "irq" used as abbreviation future/QC: Use upright glyph for math constant and descriptive suffix styleguide: Reflect recent style improvements memorder: Fix 'Non-Other-Multicopy Atomic?' row in summary table Convert code snippets to 'listing' env (howto, toolsoftrade, count) Convert code snippets to 'listing' env (SMPdesign, locking, defer) Convert code snippets to 'listing' env (datastruct, debugging, formal) Convert code snippets to 'listing' env (together, advsync, rt, future) Convert code snippets to 'listing' env (appendix) styleguide: Reflect recent conversion of code snippets to listing debugging: Use \ln for natural logarithm in Eq E.9 Remove trademark and registered symbols in text toolsoftrade: Adjust wording on age of POWER5 advsync/rt: Remove epigraph under section Move caption of table to top Define \twocolumnwidth for 1c layout Use \O{} macro for 'order-of' Update tables using booktabs and alternate-row coloring scheme datastruct: Convert 'NUMA Topology of System Under Test' to figure whymb: Update table layout defer/rcuapi: Update table layout Convert table of code fragments to 'listing' defer/rcuapi: Move sidewaystable caption to top locking: Update table layout memorder: Fix excessive uses of midrule skip memorder: Parenthesize properly defer/rcufundamental: Adjust hspace for 1c layout together/applyrcu: Use upright glyph for descriptive suffix Tweak figure size styleguide: Reflect table format conversion formal/regression: Tweak table format and indent in listing formal/regression: Fix typo memorder: Adjust height of Table 15.5's header locking: Use helper macro in Table 7.1 formal, memorder: Fix typo and adjust spacing hyphen2endash.sh: Add patterns for 'nn-mm days' and 'nn-mm sheets' cpu/overheads: Don't break just after nn-mm Fix layout hiccups in answers to quick quizzes formal/regression: Restore escape to '%' symbol defer/seqlock: Use minipage and verbatim for one-liner in QQA appendix/whymb: Fix layout in answers to quick quizzes Fix typos in answers to quick quizzes CodeSamples/formal: Separate litmus7 compatible litmus tests CodeSamples/formal: Remove 2nd parentheses in tests under herd/ CodeSamples/formal: Get rid of warnings in cross compiling memorder: Use litmus test in section 'control dependency calamity' Update qqzreorder.pl to take care of listing at the end of QQA Partial revert of 'Fix layout hiccups in answers to quick quizzes' memorder: Fix trivial typo CodeSamples/formal/herd: Add Makefile and utility script CodeSamples/formal/litmus: Fix type of 2:r2 in C-WWC+o+o-*.litmus test CodeSamples/formal/herd: Add existence check of memory model Junchang Wang (16): Replace definition of variable sum from int to unsigned long count_stat_eventual: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() count_stat_eventual: Add READ_ONCE() to protect global shared variable stopflag count_stat_eventual: Remove unnecessary smp_mb() routetorture.h: Fix typos in help messages routetorture.h: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() route_refcnt: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() defer: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() route_hazptr: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() route_seqlock: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() hazptr: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() route_rcu: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() route_rcu: Remove redundant assignment statement to rep->re_freed seqlocktorture: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() rcu_rcpls: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() advsync: Rephrase a question sentence Paul E. McKenney (245): Add pdfoutput flag for arxiv.org Remove a bunch of obsolete files Get rid of the old patterns templates Add prototype script for arxiv.org Move after.fig to avoid arxiv.org conflict with after.tex Fix a couple of typos in Makefile help text Bibliography update Merge branch 'bib-append-doi' of https://github.com/akiyks/perfbook into akiyks.2017.01.23a Fix obsolete description of DCO Bibliography update Add citation of GPGPU vendors' reference material Fix typo Feburuary -> February GPGPUs and data ownership Bibliography update Improve grammar in QQ B.13 Bibliography update More grammar fixing on QQ B.13 Clarify DEC Alpha split-cache action Rework QQ B.13 Yet more rewording of QQ B.13 Bibliography update Fill in details of QRCU-like benchmark Bibliography update Updates to functional-programming futures cpu: Introduce hardware read-mostly optimization earlier Bibliography update Add institution to Kokologiannakis bibentry Add Michael J. Kelly device-level assessment Amplify caution about lock avoidance via hacking Make Formal-Verification chapter label match convention Bibliography update Add discussion to the Heisenberg section debugging: Add more discussion to the Heisenberg section Remove empty "Authors" appendix Bibliography update advsync: Add Pugh URL for DEC Alpha dependencies debugging: Add footnote stating that "heisenbug" is a misnomer utilities: Add important usage info to toarxiv.sh toolsoftrade: Soften memory-barrier non-guarantee of speedup count: Don't in-place increment a READ_ONCE() Bibliography update owned: Add network OSes as data-ownership example htm: Note that HTM forward-progress need not be absolute Bibliography update htm: Software weak atomicity and RCU/HTM combination future: Add section on quantum computing defer: Move toyrcu to appendix Bibliography update defer: Add related work from 2014 LWN article defer: Add related work from 2015 LWN article Bibliography update Add reference to Stanford work on Quantum Operating Systems future: Qubit expansion and Grover general searches Bibliography update future: QC measures of effectiveness: Quantum Volume future/QC: Define "qubit" at first use toyrcu: Typo s/that/than/ advsync: Convert memory-misordering table to herd7 litmus test advsync: Longer store-buffering run advsync/herd: Add Makefile for running litmus tests advsync: Record date of store-buffering run advsync: Wordsmith memory-barriers intro advsync: Introduce store buffers earlier advsync: Add SystemArchSB.svg to archive advsync: Explain how store buffers can result in misordering advsync: Add store-buffering litmus tests with full barriers toolsoftrade: Introduce fences and memory-order arguments advsync: Add memory-barriered store-buffering example advsync: Bridge back from 14.2.3 to 14.2.1 advsync: Give local definition for __atomic_thread_fence() advsync: Use gcc's C11-like intrinsics to avoid data races advsync: Swap sections 14.2.2 and 14.2.3 advsync: Rework transitions advsync: Add section headers for ordering properties advsync: Use Linux kernel ordering primitives advsync: Fix READ_ONCE() and WRITE_ONCE() definitions for litmus tests advsync: Add disclaimer to litmus-test results advsync: Add access-reordering litmus tests Bibliography update advsync: More memory-reference reordering Bibliography update advsync: Complete first draft of memory-reference ordering advsync: Add volatile semantics to READ_ONCE() and WRITE_ONCE() advsync: Address dependencies advsync: Explain what an address dependency is Bibliography update Start section warning of address-/data-dependency breakage advsync: Reordering of address dependencies intro: Add quick quiz defining "explicit timing" Bibliography update Fix bibliography error plus bibliography update style: Add an epigraph future/tm: Call out userspace RCU future/htm: Update HTM availability and usage advsync: Update the address-dependency section advsync: Add data-dependency section advsync: Add control-dependency section advsync: Tie ordering examples to exists clause advsync: Label listings not providing ordering as (No Ordering) advsync: Add QQ on READ_ONCE() and WRITE_ONCE() advsync: Beginnings of multicopy-atomic section advsync: Standardize on leaving off .litmus from C line advsync: Add parenthesized filename after litmus-test references advsync: Switch -ad- to more common -addr- form advsync: Explain Table 14.2 more thoroughly advsync: Self-review advsync: More non-multicopy atomicity advsync: Clarify "stops" on "journey" Yet more on non-multicopy atomicity Bibliography update memorder: Create new chapter from memory-barriers section advsync: Fix litmus-test punctuation error memorder: Remove historical items, fix tabs in WWC litmus tests memorder: Rework intro and initial sectioning memorder: Reorganize initial section, provide table of primitives memorder: Replumb transitions for early sections memorder: Explain WWC sequence of events memorder: Add rules of thumb memorder: Add Akira's failure stats memorder: Acquire operations are not cumulative memorder: Fill out cumulativity section Bibliography update memorder: Rename and reorder "*copy atomicity" sections Bibligraphy update memorder: Fill out cache-coherence section memorder: Illustrate cumulativity with diagram memorder: Emphasize conditional nature of memory ordering Bibligraphy update (fix typos) memorder: ARMv8 is other-multicopy atomic memorder: Make C-CCIRIW+o+o+o-o+o-o.litmus usable by litmus7 memorder: Add litmus tests related to multicopy atomicity memorder: Expand on cumulativity and {other,} multicopy atomicity memorder: Change tabs to spaces in C-MP-OMCA+o-o-o+o-rmb-o memorder: Clarify other-multicopy atomicity memorder: Shift more towards "load" and "store" memorder: Rework cumulativity section memorder: First cut at propagation section memorder: Introduce cycles, both allowed and prohibited memorder: Add diagram for happens-before section memorder: More in happens-before section memorder: Add litmus test for dependency from failing RMW operation memorder: Add additional cases to cheat sheet memorder: Fill out release-acquire section memorder: Self-review Bibliography update future: Update quantum-computing section memorder: Rough out remainder of chapter memorder: Fix section reference and update todo comments memorder: More sectioning tweaks memorder: Add vague cost commentary memorder: Move hardware-specifics section in from appendix memorder: Fill out memory-reference-restrictions section memorder: Tie up end of address/data-dependency section memorder: Update table memorder: Rework hardware-specifics section intro memorder: Defer much of MMIO discussion to LWN article memorder: Improve nomenclature s/relationship/link/ memorder: Use "link" in cumulativity diagram as well memorder: Add smp_mb__{before,after}_atomic() memorder: Rework Alpha hardware-specific section memorder: Remove AMD section, x86 will cover both Intel and AMD memorder: Change IA64 to Itanium memorder: Add an ARMv8 section memorder: Substitute WRC for WWC to illustrate non-MCA memorder: Self-review, fix typos memorder: Improve DEC Alpha diagram memorder: Rewording memorder: Fix typo, remove now-self-referential reference memorder: Wordsmith "Where is Memory Ordering Needed?" section memorder: Add QQ on mythical load-to-load links memorder: Full-barrier properties of synchronize_rcu() cpu: List some hardware optimizations cpu: Relate hardware optimizations to speed-of-light delays memorder: Updates to "Summary of Memory Ordering" table cartoons: Add an updated many-doors cartoon SMPdesign: Add dequeue QQ based on question from reader Bibliography update future: Add citations for commercial HTM implementations Bibliography update Bibliography update future/QC: Update with recent advances memorder: Expand on compile-time consternation Rename "Memory Ordering" chapter Reorder memory ordering after advanced synchronization Bibliography update memorder: Update MIPS section memorder: Update PowerPC hardware section memorder: Update z Systems section legal: Update zSeries to z Systems formal: Add recent cbmc/SAT progress memorder: Update x86 section defer/rcu: Improve RCU Applicability diagram memorder: Add section roadmap memorder: Fill in READ_ONCE()/WRITE_ONCE() forward reference rt: Move real-time chapter into the advanced synchronization chapter memorder: Add a couple of forward references memorder: Provide hardware rationales for memref misordering datastruct: Make hashtorture.h safe for reference-release algorithms locking: Fix Conditional Locking to Reduce Contention debugging: Update progress on NO_HZ_FULL memorder: Add more to address/data dependencies section advsync: Fix intro to reflect addition of real-time section locking: Clarify explicit avoidance of signal-handler deadlocks memorder: Add load-to-store/store-to-store combo example formal: Add section on stateless model checkers Bibliography update formal: Add Nidhugg and regression requirements Update todo.txt formal: Fix "Scorcard" typo and add that section to roadmap advsync/formal: Move "herd" directory to "formal" formal: Add paths and clean up table datastruct/hash: Clean up after partial refcnt addition treewide: Remove obsolete "@@@" notes to self appendix/ack: Add Akira and LaTeX Advisor debugging,formal: Update for increased Linux kernel usage formal/regression: Update from self-review memorder: Temper advice about using READ_ONCE() and WRITE_ONCE() formal/regression: Add Mars rover example for Promela memorder: Show how to use READ_ONCE() to prevent load replication memorder: Rework to avoid staccato "Nevertheless" memorder: Remove PA-RISC memorder: Update DEC Alpha memorder: Emphasize that ARMv8 example is on a single CPU memorder: Clarify that ARMv8's was the first -executable- formal model memorder: ARMv8 includes 32-bit capability Bibliography update formal: Update bug-injection rate and clarify reasoning formal: Complete verification-limitations thought in QQ12.33 formal: Fix spelling error s/postives/positives/ memorder: Link Section 15.5 rules of thumb to litmus tests memorder: Spruce up a couple of section titles Bibliography update future/QC: Add recent work on quantum molecular dynamics memorder: Add a quick quiz for the 2+2W litmus tests memorder: Add R litmus test as example of rule of thumb Update todo list Bibliography update future/QC: Add 50-qubit systems and simulators Add todo note to look into the Julia language formal: Plural section name for "stateless model checker" memorder: Use correct chapter name for original publication Credit Fedor Pikus for RCU areas of applicability Bibliography update memorder: Self-review memorder: QQ on litmus-test abbreviations, update C++ working paper Pierre Kuo (2): locking: fix typo SMPdesign: fix typo SeongJae Park (25): toolsoftrade: Close uncompleted parentheses toolsoftrade: Add suffix `()` to function name appendix/questions: Add missing NBSPs glossary: Use proper quotation marks glossary: Fix a typo: hardwire -> hardware appendix/whymb: Fix a typo, smb_wmb into smp_wmb bib/syncrefs: Use consistent date format debugging: Add reference to heisenbug discussion section advsync/memorybarriers: Fix a typo: s/documention/documentation future/QC: Fix typos future/QC: Add space before citation howto: Add unbreakable space for volume number FAQ-BUILD.txt: Update Fedora requirements memorder: Express `value-returning RMW` more explicitly memorder: Add missed closing parenthesis memorder: Fix wrong variable citation future/QC: Remove unnecessary duplicate memorder: Remove unnecessary comma memorder: Remove unnecessary comma memorder: Fix wrong function reference memorder: Present P0()-P3() in consistent manner memorder: Add missed comma memorder: Close unclosed parenthesis memorder: Add missed unbreakable space before line number memorder: Fix typo on instruction name (LDAR -> LDLAR) Yubin Ruan (2): locking: Fix syntactic ambiguity defer: Correct grammar .gitignore | 1 + CodeSamples/.gitignore | 3 +- CodeSamples/Makefile | 127 +- CodeSamples/Makefile.arch | 6 - CodeSamples/SMPdesign/Makefile | 16 +- CodeSamples/SMPdesign/matmul.c | 4 +- CodeSamples/SMPdesign/smpalloc.c | 4 +- CodeSamples/advsync/Makefile | 10 + CodeSamples/api-pthreads/api-pthreads.h | 2 +- CodeSamples/api.h | 808 -- CodeSamples/arch-arm64/Makefile.arch | 2 + CodeSamples/arch-arm64/arch-arm64.h | 61 + CodeSamples/arch-ppc64/Makefile.arch | 7 +- CodeSamples/count/Makefile | 10 + CodeSamples/count/count_stat_eventual.c | 21 +- CodeSamples/datastruct/Issaquah/Makefile | 10 + CodeSamples/datastruct/Issaquah/existence_test | Bin 26359 -> 0 bytes CodeSamples/datastruct/hash/Makefile | 13 + CodeSamples/datastruct/hash/hash_bkt.c | 7 + CodeSamples/datastruct/hash/hash_bkt_hazptr.c | 7 + CodeSamples/datastruct/hash/hash_bkt_rcu.c | 7 + CodeSamples/datastruct/hash/hash_global.c | 7 + CodeSamples/datastruct/hash/hash_resize.c | 7 + CodeSamples/datastruct/hash/hashtorture.h | 61 +- CodeSamples/datastruct/log/Makefile | 10 + CodeSamples/datastruct/skiplist/Makefile | 10 + CodeSamples/defer/Makefile | 19 +- CodeSamples/defer/gettimestampmp.c | 15 +- CodeSamples/defer/hazptr.h | 8 +- CodeSamples/defer/hazptrtorture.h | 6 +- CodeSamples/defer/rcu_rcpls.c | 6 +- CodeSamples/defer/rcu_rcpls.h | 2 +- CodeSamples/defer/rcutorture.h | 2 +- CodeSamples/defer/route_hazptr.c | 10 +- CodeSamples/defer/route_rcu.c | 5 +- CodeSamples/defer/route_refcnt.c | 8 +- CodeSamples/defer/route_seqlock.c | 6 +- CodeSamples/defer/routetorture.h | 20 +- CodeSamples/defer/seqlock.h | 4 +- CodeSamples/defer/seqlocktorture.c | 8 +- CodeSamples/depends.mk | 38 + CodeSamples/formal/herd/.gitignore | 5 + ...-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-C.litmus | 62 + ...o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-CE.litmus | 61 + ...-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-X.litmus | 62 + ...o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-XE.litmus | 61 + ...+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u.litmus | 56 + .../C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-C.litmus | 51 + .../C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-CE.litmus | 50 + .../C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-X.litmus | 51 + .../C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-XE.litmus | 50 + .../C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u.litmus | 46 + .../herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-C.litmus | 40 + .../herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-CE.litmus | 39 + .../herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-X.litmus | 40 + .../herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-XE.litmus | 39 + .../herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u.litmus | 36 + .../formal/herd/C-SB+l-o-o-u+l-o-o-u-C.litmus | 29 + .../formal/herd/C-SB+l-o-o-u+l-o-o-u-CE.litmus | 28 + .../formal/herd/C-SB+l-o-o-u+l-o-o-u-X.litmus | 29 + .../formal/herd/C-SB+l-o-o-u+l-o-o-u-XE.litmus | 28 + .../formal/herd/C-SB+l-o-o-u+l-o-o-u.litmus | 26 + CodeSamples/formal/herd/Makefile | 82 + CodeSamples/formal/herd/litmus2herd.sh | 20 + CodeSamples/formal/litmus/.gitignore | 6 + CodeSamples/formal/litmus/C-2+2W+o-o+o-o.litmus | 22 + .../formal/litmus/C-2+2W+o-wmb-o+o-wmb-o.litmus | 24 + .../formal/litmus/C-CCIRIW+o+o+o-o+o-o.litmus | 39 + .../formal/litmus/C-ISA2+o-r+a-r+a-r+a-o.litmus | 41 + .../litmus/C-LB+a-o+o-data-o+o-data-o.litmus | 34 + .../formal/litmus/C-LB+a-r+a-r+a-r+a-r.litmus | 42 + .../litmus/C-LB+cmpxchg-ctrl-o+o-ctrl-o.litmus | 27 + .../formal/litmus/C-LB+o-cge-o+o-cge-o+dstb.litmus | 41 + .../formal/litmus/C-LB+o-cge-o+o-cge-o.litmus | 27 + .../formal/litmus/C-LB+o-cgt-o+o-cgt-o.litmus | 27 + .../litmus/C-LB+o-data-o+o-data-o+o-data-o.litmus | 37 + CodeSamples/formal/litmus/C-LB+o-o+o-o.litmus | 26 + CodeSamples/formal/litmus/C-LB+o-r+a-o.litmus | 26 + CodeSamples/formal/litmus/C-LB+o-r+o-ctrl-o.litmus | 27 + CodeSamples/formal/litmus/C-LB+o-r+o-data-o.litmus | 26 + CodeSamples/formal/litmus/C-MP+o-o+o-rmb-o.litmus | 28 + CodeSamples/formal/litmus/C-MP+o-r+o-ctrl-o.litmus | 27 + .../formal/litmus/C-MP+o-wmb-o+ld-addr-o.litmus | 30 + .../formal/litmus/C-MP+o-wmb-o+o-addr-o.litmus | 30 + CodeSamples/formal/litmus/C-MP+o-wmb-o+o-o.litmus | 28 + .../formal/litmus/C-MP+o-wmb-o+o-rmb-o.litmus | 29 + .../formal/litmus/C-MP-OMCA+o-o-o+o-rmb-o.litmus | 29 + .../formal/litmus/C-R+o-wmb-o+o-mb-o.litmus | 26 + .../formal/litmus/C-S+o-wmb-o+o-addr-o.litmus | 29 + .../formal/litmus/C-SB+o-mb-o+o-mb-o.litmus | 28 + CodeSamples/formal/litmus/C-SB+o-o+o-o.litmus | 26 + .../litmus/C-SB-OMCA+o-o-rmb-o+o-o-rmb-o.litmus | 33 + .../formal/litmus/C-W+RWC+o-mb-o+a-o+o-mb-o.litmus | 38 + .../formal/litmus/C-W+RWC+o-r+a-o+o-mb-o.litmus | 37 + .../formal/litmus/C-WRC+o+o-data-o+o-rmb-o.litmus | 33 + CodeSamples/formal/litmus/C-WRC+o+o-r+a-o.litmus | 32 + .../formal/litmus/C-WWC+o+o-data-o+o-addr-o.litmus | 35 + .../formal/litmus/C-WWC+o+o-r+o-addr-o.litmus | 35 + .../litmus/C-WWC+o-cge-o+o-cge-o+o+dstb.litmus | 46 + .../formal/litmus/C-WWC+o-cge-o+o-cge-o+o.litmus | 32 + .../litmus/C-WWC+o-cgt-o+o-cgt-o+o+dstb.litmus | 46 + .../formal/litmus/C-WWC+o-cgt-o+o-cgt-o+o.litmus | 32 + .../formal/litmus/C-Z6.2+o-r+a-o+o-mb-o.litmus | 36 + .../formal/litmus/C-Z6.2+o-r+a-r+a-r+a-o.litmus | 40 + CodeSamples/formal/litmus/Makefile | 34 + CodeSamples/formal/litmus/api.h | 23 + CodeSamples/gprof-helper.c | 118 - CodeSamples/intro/Makefile | 14 +- CodeSamples/intro/threadcreate.c | 4 +- CodeSamples/linux/list.h | 700 -- CodeSamples/locking/Makefile | 14 +- CodeSamples/recipes.mk | 10 + CodeSamples/toolsoftrade/Makefile | 4 + FAQ-BUILD.txt | 43 +- Makefile | 71 +- SMPdesign/SMPdesign.tex | 108 +- SMPdesign/beyond.tex | 74 +- SMPdesign/criteria.tex | 2 +- SMPdesign/partexercises.tex | 64 +- advsync/.gitignore | 17 - advsync/.unused/MoreThanOneValue-15CPU-noresp.fig | 489 - advsync/AbstractMemoryAccessModel.fig | 53 - advsync/DataDependencyNeeded.fig | 132 - advsync/DataDependencySupplied.fig | 120 - {rt => advsync}/Linux-on-RTOS.svg | 0 advsync/MemoryArchitecture.fig | 90 - advsync/MemoryBarrierPairing.fig | 71 - advsync/ReadBarrierNeeded.fig | 95 - advsync/ReadBarrierSupplied.fig | 100 - advsync/ReadBarrierSupplied1.fig | 112 - advsync/ReadBarrierSupplied2.fig | 105 - advsync/SpeculativeLoad.fig | 64 - advsync/SpeculativeLoadBarrier.fig | 64 - advsync/SpeculativeLoadBarrierCancel.fig | 79 - advsync/SplitCache.fig | 65 - advsync/WriteBarrierOrdering.fig | 79 - advsync/advsync.tex | 46 +- {rt => advsync}/irq.svg | 0 advsync/memorybarriers.tex | 2920 ------ {rt => advsync}/nohzfull.svg | 0 {rt => advsync}/preemption.svg | 0 advsync/rcu.tex | 3 +- {rt => advsync}/rt-reflexes.svg | 0 {rt => advsync}/rt-regimes.svg | 66 +- {rt => advsync}/rt.tex | 287 +- {rt => advsync}/threaded-irq.svg | 0 {rt => advsync}/timerwheel.svg | 0 alphapf.bst | 47 +- appendix/ack/ack.tex | 37 +- appendix/appendix.tex | 16 +- appendix/questions/.gitignore | 2 +- .../questions/{after.fig => after-snapshot.fig} | 0 appendix/questions/after.tex | 69 +- appendix/questions/time.tex | 2 +- appendix/rcuhist/.unused/linux-RCU.eps | 1529 ---- appendix/rcuhist/.unused/linux-RCUlock.eps | 1609 ---- appendix/rcuhist/.unused/rcuAPI.eps | 1552 ---- appendix/rcuhist/RCUinLinux.tex | 613 -- appendix/rcuimpl/.unused/AdvanceRCUCallbacks.fig | 87 - appendix/rcuimpl/.unused/BigTreeClassicRCU.fig | 69 - appendix/rcuimpl/.unused/BigTreeClassicRCUBH.fig | 83 - .../rcuimpl/.unused/BigTreeClassicRCUBHdyntick.fig | 123 - appendix/rcuimpl/.unused/FlatClassicRCU.fig | 48 - .../rcuimpl/.unused/GenericRCUStateMachine.fig | 147 - appendix/rcuimpl/.unused/GracePeriodBad.fig | 48 - appendix/rcuimpl/.unused/RCUTreeInit.fig | 197 - appendix/rcuimpl/.unused/RCUTreeLeafScan.fig | 200 - appendix/rcuimpl/.unused/RCUTreeQSScan.fig | 200 - appendix/rcuimpl/.unused/RCUbweBlock.fig | 235 - appendix/rcuimpl/.unused/RCUpreemptCounterFlip.fig | 83 - appendix/rcuimpl/.unused/RCUpreemptCounters.fig | 108 - appendix/rcuimpl/.unused/RCUpreemptLists.fig | 58 - .../rcuimpl/.unused/RCUpreemptListsCompare.fig | 84 - appendix/rcuimpl/.unused/RCUpreemptStates.fig | 48 - appendix/rcuimpl/.unused/RCUpreemptTimeline.fig | 111 - appendix/rcuimpl/.unused/RCUpreemptValidation.fig | 280 - appendix/rcuimpl/.unused/RCUrt-MBnowaste.fig | 96 - appendix/rcuimpl/.unused/RCUrt-MBwaste.fig | 134 - appendix/rcuimpl/.unused/TinyRCUCallbacks.fig | 49 - appendix/rcuimpl/.unused/TreeClassicRCU.fig | 73 - appendix/rcuimpl/.unused/TreeClassicRCUGP.fig | 297 - appendix/rcuimpl/.unused/TreeMapping.fig | 51 - appendix/rcuimpl/.unused/TreeRCUStateMachine.fig | 72 - appendix/rcuimpl/.unused/srcuds.fig | 64 - appendix/rcuimpl/GracePeriodGood.eps | 210 - appendix/rcuimpl/rcu.tex | 43 - appendix/rcuimpl/rcupreempt.tex | 1462 --- appendix/rcuimpl/rcutree.tex | 1403 --- appendix/rcuimpl/rcutreewt.tex | 4021 --------- appendix/rcuimpl/srcu.tex | 788 -- appendix/styleguide/samplecodesnippetfig.tex | 19 + appendix/styleguide/samplecodesnippetlst.tex | 19 + appendix/styleguide/styleguide.tex | 1415 +++ {defer => appendix/toyrcu}/toyrcu.tex | 386 +- appendix/whymb/whymemorybarriers.tex | 1042 +-- bib/NP.bib | 205 + bib/QC.bib | 983 ++ bib/RCU.bib | 329 +- bib/TM.bib | 89 +- bib/WFS.bib | 23 +- bib/hw.bib | 142 +- bib/maze.bib | 4 +- bib/os.bib | 62 +- bib/parallelsys.bib | 16 +- bib/perfmeas.bib | 2 + bib/realtime.bib | 30 +- bib/refs.bib | 33 + bib/swtools.bib | 293 +- bib/syncrefs.bib | 104 +- cartoons/.unused/patterns.fig | 17 - cartoons/.unused/patterns.svg | 232 - cartoons/r-2014-LDLAR.svg | 941 ++ cartoons/r-2014-Old-man-and-Brat.svg | 2 +- cartoons/r-2017-Memory-fences-pem.svg | 1303 +++ count/count.tex | 479 +- cpu/SystemArch.fig | 2 +- cpu/hwfreelunch.tex | 15 +- cpu/overheads.tex | 168 +- cpu/overview.tex | 8 +- cpu/swdesign.tex | 2 +- datastruct/datastruct.tex | 189 +- debugging/debugging.tex | 256 +- defer/RCUApplicability.svg | 383 +- defer/defer.tex | 10 +- defer/hazptr.tex | 54 +- defer/rcu.tex | 6 +- defer/rcuapi.tex | 178 +- defer/rcuexercises.tex | 2 +- defer/rcufundamental.tex | 87 +- defer/rcurelated.tex | 249 + defer/rcuusage.tex | 114 +- defer/refcnt.tex | 40 +- defer/seqlock.tex | 72 +- defer/whichtochoose.tex | 41 +- easy/easy.tex | 7 +- formal/axiomatic.tex | 18 +- formal/dyntickrcu.tex | 154 +- formal/formal.tex | 49 +- formal/ppcmem.tex | 38 +- formal/regression.tex | 589 ++ formal/sat.tex | 31 +- formal/spinhint.tex | 284 +- formal/stateless.tex | 30 + future/Bloch_Sphere.svg | 92 + future/HTMtable.tex | 2 +- future/HTMtableRCU.tex | 4 +- future/QC-FormConstant.eps | 175 + future/QC.tex | 1398 +++ future/T2h1lc19xmqrdlsor.eps | 9478 ++++++++++++++++++++ future/cpu.tex | 4 +- future/future.tex | 28 +- future/htm.tex | 53 +- future/tm.tex | 45 +- glossary.tex | 10 +- howto/howto.tex | 62 +- intro/intro.tex | 46 +- legal.tex | 8 +- locking/locking-existence.tex | 24 +- locking/locking.tex | 226 +- memorder/.gitignore | 3 + memorder/Alpha.svg | 573 ++ {advsync => memorder}/MoreThanOneValue-15CPU.fig | 2 + {advsync => memorder}/MoreThanOneValue-15CPU.input | 0 {advsync => memorder}/MoreThanOneValue.fig | 26 +- memorder/NonMCAplatform.svg | 564 ++ memorder/SystemArchBus.svg | 468 + memorder/SystemArchSB.svg | 286 + memorder/co.svg | 252 + memorder/fr.svg | 239 + memorder/memorder.tex | 5154 +++++++++++ memorder/memorybarrier.svg | 436 + memorder/memorybarriercum.svg | 515 ++ memorder/rf.svg | 237 + {advsync => memorder}/store15tred.dot | 0 owned/owned.tex | 41 +- perfbook.tex | 119 +- pfhyphex.tex | 6 + qqz.sty | 6 +- todo.txt | 55 +- together/applyrcu.tex | 84 +- together/refcnt.tex | 107 +- toolsoftrade/toolsoftrade.tex | 249 +- ushyphex.tex | 1454 +++ utilities/MoreThanOneValue-15CPU.c | 3 + utilities/autodate.sh | 48 + utilities/bibhyphen2endash.sh | 27 + utilities/dohyphen2endash.sh | 12 + utilities/hyphen2endash.sh | 18 +- utilities/qqzreorder.pl | 88 + utilities/runfirstlatex.sh | 9 +- utilities/runlatex.sh | 114 +- utilities/toarxiv.sh | 65 + 292 files changed, 34275 insertions(+), 26300 deletions(-) delete mode 100644 CodeSamples/Makefile.arch delete mode 100644 CodeSamples/api.h create mode 100644 CodeSamples/arch-arm64/Makefile.arch create mode 100644 CodeSamples/arch-arm64/arch-arm64.h delete mode 100755 CodeSamples/datastruct/Issaquah/existence_test create mode 100644 CodeSamples/depends.mk create mode 100644 CodeSamples/formal/herd/.gitignore create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-C.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-CE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-X.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-XE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-C.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-CE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-X.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u-XE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u+l-o-o-u.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-C.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-CE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-X.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u-XE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u+l-o-o-u.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u-C.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u-CE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u-X.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u-XE.litmus create mode 100644 CodeSamples/formal/herd/C-SB+l-o-o-u+l-o-o-u.litmus create mode 100644 CodeSamples/formal/herd/Makefile create mode 100644 CodeSamples/formal/herd/litmus2herd.sh create mode 100644 CodeSamples/formal/litmus/.gitignore create mode 100644 CodeSamples/formal/litmus/C-2+2W+o-o+o-o.litmus create mode 100644 CodeSamples/formal/litmus/C-2+2W+o-wmb-o+o-wmb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-CCIRIW+o+o+o-o+o-o.litmus create mode 100644 CodeSamples/formal/litmus/C-ISA2+o-r+a-r+a-r+a-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+a-o+o-data-o+o-data-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+a-r+a-r+a-r+a-r.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+cmpxchg-ctrl-o+o-ctrl-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-cge-o+o-cge-o+dstb.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-cge-o+o-cge-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-cgt-o+o-cgt-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-data-o+o-data-o+o-data-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-o+o-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-r+a-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-r+o-ctrl-o.litmus create mode 100644 CodeSamples/formal/litmus/C-LB+o-r+o-data-o.litmus create mode 100644 CodeSamples/formal/litmus/C-MP+o-o+o-rmb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-MP+o-r+o-ctrl-o.litmus create mode 100644 CodeSamples/formal/litmus/C-MP+o-wmb-o+ld-addr-o.litmus create mode 100644 CodeSamples/formal/litmus/C-MP+o-wmb-o+o-addr-o.litmus create mode 100644 CodeSamples/formal/litmus/C-MP+o-wmb-o+o-o.litmus create mode 100644 CodeSamples/formal/litmus/C-MP+o-wmb-o+o-rmb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-MP-OMCA+o-o-o+o-rmb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-R+o-wmb-o+o-mb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-S+o-wmb-o+o-addr-o.litmus create mode 100644 CodeSamples/formal/litmus/C-SB+o-mb-o+o-mb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-SB+o-o+o-o.litmus create mode 100644 CodeSamples/formal/litmus/C-SB-OMCA+o-o-rmb-o+o-o-rmb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-W+RWC+o-mb-o+a-o+o-mb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-W+RWC+o-r+a-o+o-mb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-WRC+o+o-data-o+o-rmb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-WRC+o+o-r+a-o.litmus create mode 100644 CodeSamples/formal/litmus/C-WWC+o+o-data-o+o-addr-o.litmus create mode 100644 CodeSamples/formal/litmus/C-WWC+o+o-r+o-addr-o.litmus create mode 100644 CodeSamples/formal/litmus/C-WWC+o-cge-o+o-cge-o+o+dstb.litmus create mode 100644 CodeSamples/formal/litmus/C-WWC+o-cge-o+o-cge-o+o.litmus create mode 100644 CodeSamples/formal/litmus/C-WWC+o-cgt-o+o-cgt-o+o+dstb.litmus create mode 100644 CodeSamples/formal/litmus/C-WWC+o-cgt-o+o-cgt-o+o.litmus create mode 100644 CodeSamples/formal/litmus/C-Z6.2+o-r+a-o+o-mb-o.litmus create mode 100644 CodeSamples/formal/litmus/C-Z6.2+o-r+a-r+a-r+a-o.litmus create mode 100644 CodeSamples/formal/litmus/Makefile create mode 100644 CodeSamples/formal/litmus/api.h delete mode 100644 CodeSamples/gprof-helper.c delete mode 100644 CodeSamples/linux/list.h create mode 100644 CodeSamples/recipes.mk delete mode 100644 advsync/.unused/MoreThanOneValue-15CPU-noresp.fig delete mode 100644 advsync/AbstractMemoryAccessModel.fig delete mode 100644 advsync/DataDependencyNeeded.fig delete mode 100644 advsync/DataDependencySupplied.fig rename {rt => advsync}/Linux-on-RTOS.svg (100%) delete mode 100644 advsync/MemoryArchitecture.fig delete mode 100644 advsync/MemoryBarrierPairing.fig delete mode 100644 advsync/ReadBarrierNeeded.fig delete mode 100644 advsync/ReadBarrierSupplied.fig delete mode 100644 advsync/ReadBarrierSupplied1.fig delete mode 100644 advsync/ReadBarrierSupplied2.fig delete mode 100644 advsync/SpeculativeLoad.fig delete mode 100644 advsync/SpeculativeLoadBarrier.fig delete mode 100644 advsync/SpeculativeLoadBarrierCancel.fig delete mode 100644 advsync/SplitCache.fig delete mode 100644 advsync/WriteBarrierOrdering.fig rename {rt => advsync}/irq.svg (100%) delete mode 100644 advsync/memorybarriers.tex rename {rt => advsync}/nohzfull.svg (100%) rename {rt => advsync}/preemption.svg (100%) rename {rt => advsync}/rt-reflexes.svg (100%) rename {rt => advsync}/rt-regimes.svg (95%) rename {rt => advsync}/rt.tex (91%) rename {rt => advsync}/threaded-irq.svg (100%) rename {rt => advsync}/timerwheel.svg (100%) rename appendix/questions/{after.fig => after-snapshot.fig} (100%) delete mode 100644 appendix/rcuhist/.unused/linux-RCU.eps delete mode 100644 appendix/rcuhist/.unused/linux-RCUlock.eps delete mode 100644 appendix/rcuhist/.unused/rcuAPI.eps delete mode 100644 appendix/rcuhist/RCUinLinux.tex delete mode 100644 appendix/rcuimpl/.unused/AdvanceRCUCallbacks.fig delete mode 100644 appendix/rcuimpl/.unused/BigTreeClassicRCU.fig delete mode 100644 appendix/rcuimpl/.unused/BigTreeClassicRCUBH.fig delete mode 100644 appendix/rcuimpl/.unused/BigTreeClassicRCUBHdyntick.fig delete mode 100644 appendix/rcuimpl/.unused/FlatClassicRCU.fig delete mode 100644 appendix/rcuimpl/.unused/GenericRCUStateMachine.fig delete mode 100644 appendix/rcuimpl/.unused/GracePeriodBad.fig delete mode 100644 appendix/rcuimpl/.unused/RCUTreeInit.fig delete mode 100644 appendix/rcuimpl/.unused/RCUTreeLeafScan.fig delete mode 100644 appendix/rcuimpl/.unused/RCUTreeQSScan.fig delete mode 100644 appendix/rcuimpl/.unused/RCUbweBlock.fig delete mode 100644 appendix/rcuimpl/.unused/RCUpreemptCounterFlip.fig delete mode 100644 appendix/rcuimpl/.unused/RCUpreemptCounters.fig delete mode 100644 appendix/rcuimpl/.unused/RCUpreemptLists.fig delete mode 100644 appendix/rcuimpl/.unused/RCUpreemptListsCompare.fig delete mode 100644 appendix/rcuimpl/.unused/RCUpreemptStates.fig delete mode 100644 appendix/rcuimpl/.unused/RCUpreemptTimeline.fig delete mode 100644 appendix/rcuimpl/.unused/RCUpreemptValidation.fig delete mode 100644 appendix/rcuimpl/.unused/RCUrt-MBnowaste.fig delete mode 100644 appendix/rcuimpl/.unused/RCUrt-MBwaste.fig delete mode 100644 appendix/rcuimpl/.unused/TinyRCUCallbacks.fig delete mode 100644 appendix/rcuimpl/.unused/TreeClassicRCU.fig delete mode 100644 appendix/rcuimpl/.unused/TreeClassicRCUGP.fig delete mode 100644 appendix/rcuimpl/.unused/TreeMapping.fig delete mode 100644 appendix/rcuimpl/.unused/TreeRCUStateMachine.fig delete mode 100644 appendix/rcuimpl/.unused/srcuds.fig delete mode 100644 appendix/rcuimpl/GracePeriodGood.eps delete mode 100644 appendix/rcuimpl/rcu.tex delete mode 100644 appendix/rcuimpl/rcupreempt.tex delete mode 100644 appendix/rcuimpl/rcutree.tex delete mode 100644 appendix/rcuimpl/rcutreewt.tex delete mode 100644 appendix/rcuimpl/srcu.tex create mode 100644 appendix/styleguide/samplecodesnippetfig.tex create mode 100644 appendix/styleguide/samplecodesnippetlst.tex create mode 100644 appendix/styleguide/styleguide.tex rename {defer => appendix/toyrcu}/toyrcu.tex (86%) create mode 100644 bib/NP.bib create mode 100644 bib/QC.bib delete mode 100644 cartoons/.unused/patterns.fig delete mode 100644 cartoons/.unused/patterns.svg create mode 100644 cartoons/r-2014-LDLAR.svg create mode 100644 cartoons/r-2017-Memory-fences-pem.svg create mode 100644 defer/rcurelated.tex create mode 100644 formal/regression.tex create mode 100644 formal/stateless.tex create mode 100644 future/Bloch_Sphere.svg create mode 100644 future/QC-FormConstant.eps create mode 100644 future/QC.tex create mode 100644 future/T2h1lc19xmqrdlsor.eps create mode 100644 memorder/.gitignore create mode 100644 memorder/Alpha.svg rename {advsync => memorder}/MoreThanOneValue-15CPU.fig (99%) rename {advsync => memorder}/MoreThanOneValue-15CPU.input (100%) rename {advsync => memorder}/MoreThanOneValue.fig (71%) create mode 100644 memorder/NonMCAplatform.svg create mode 100644 memorder/SystemArchBus.svg create mode 100644 memorder/SystemArchSB.svg create mode 100644 memorder/co.svg create mode 100644 memorder/fr.svg create mode 100644 memorder/memorder.tex create mode 100644 memorder/memorybarrier.svg create mode 100644 memorder/memorybarriercum.svg create mode 100644 memorder/rf.svg rename {advsync => memorder}/store15tred.dot (100%) create mode 100644 pfhyphex.tex create mode 100644 ushyphex.tex create mode 100644 utilities/autodate.sh create mode 100644 utilities/bibhyphen2endash.sh create mode 100644 utilities/qqzreorder.pl create mode 100644 utilities/toarxiv.sh