Akira Yokosawa (55): CodeSamples: Put $(GCC_ARGS) in cc argument list CodeSamples/datastruct: Move struct declaration from .c to .h CodeSamples/advsync: Add explicit type cast in xchg() CodeSamples/count: Add static to __inline__ function declarations CodeSamples: Add #ifndef SUBOBJ to api-pthreads.h CodeSamples/datastruct/Issaquah: Remove unused variables Revert "CodeSamples: Add -fcommon to GCC_ARGS" CodeSamples/formal: Update rcu-test.dat for v6.13 bib/hw.bib: Update URL info of Alpha related entries CodeSamples/formal: Update rcu-test.dat for v6.14 formal: Mention code move of kvfree_rcu() happened in Linux v6.14 memorder: Add index marker for "LKMM" as acronym cpu, SMPdesign, debugging: Add index markers for "thermal throttling" memorder: Add index markers for "multicopy atomicity" Refactor indexing of "multi-copy atomic(ity)" glossary: "full(y) multi-copy atomic" is synonymous with "multi-copy atomic" indexsee: Lowercase "Heisenbug" Fix \IXhmr and \IXalthmr for single-level index mode Split "Index of People" from general "Index" Refactor index markers of "memory consistency"-related terms index: List LKMM under "Memory model" indexsee: Add a couple of redirections to "Cache coherence" together/seqlock: Remove wrong index marker for "sequential consistency" indexsee: Add redirections for arch specific memory models CodeSamples/formal: Update rcu-test.dat for v6.15 formal/dyntickrcu: Add non-breakable spaces around \co{i} and \co{j} docker/Dockerfile.fedora: Add gawk in package list Makefile: Fall back to rsvg-convert if inkscape crashes toolsoftrade, count: Adjust shrink ratio of tall code snippets for -eb builds Convert *.log files into UTF-8 encoding gitlab-ci: Append /usr/bin/*_perl to PATH CodeSamples/formal: Update rcu-test.dat for v6.16 Apply "pdfcrop" to CodeSamples/formal/data/RCU-test-ratio.pdf advsync: Fix minor typo (atain -> again) advsync: Add narrow space in front of percent sign treewide: Define \pct for percent sign and use it instead of "\,\%" Subject: [PATCH -perfbook 2/2] utilities/punctcheck.sh: Check use of "\%" CodeSamples/formal: Update rcu-test.dat for v6.17 together/applyrcu: Use \clnref{} and its friends in Section 13.5.9 together/applyrcu: Use nbsp around one-letter variables in Section 13.5.9 together/applyrcu: Use \clnref{} and its friends in Section 13.5.10 together/applyrcu: Use nbsp around one-letter variables in Section 13.5.10 CodeSamples/formal/herd: Fix comment format in initialization intro: Use "VerbatimU" env for non-float code snippet docker: Remove "-A" option from localedef Provide \qty{} and \unit{} for siunitx < v3.0 cpu/overhead: Add "samepage=true" option to short VerbatimN env intro: Say \co{-1} for constant -1 runlatex.sh: Detect fvextra versions with known minor regression Revert "runlatex.sh: Detect fvextra versions with known minor regression" Detect buggy fvextra and apply patch on the fly defer/hazptr: Fix markers of final qqz in a series for "nq" builds CodeSamples/.../herd: Declare non-int reg variables in init block CodeSamples/.../herd/Makefile: Add klitmus7-ready tests CodeSamples/formal/herd/Makefile: Exclude time-consuming test from run-herd7 Hanmiru Kim (1): getrusage: minor typo (runivcsw -> ru_nivcsw) Leonardo BrĂ¡s (1): CodeSamples: Fix liburcu-signal support deprecation Paul E. McKenney (67): cpu: Sharpen QQ3.1 by bringing in the laws of physics cpu: Aluminum heat sinks and thermal cooldown intervals howto: Add text about hardcopies, or lack thereof bib: Bibliography update glossary: Add definitions of the flavors of multi-copy atomic debugging: QQ 11.20: Conditional locks might spuriously fail debugging: QQ11.21: Wordsmith question debugging: QQ11.22: Clarify answer and provide counterpoint debugging: Add caution about creating statistical methods debugging: Add statistical confidence to Section 11.6.3 debugging: Add more "time doesn't help" examples ot QQ 11.12 debugging: May 1, 2025 wordsmithing memorder: Add "tightly constrained" proviso to release-acquire chains formal/axiomatic: Sharpen introductory paragraph memorder: Add paragraph noting ordering as a system-wide property intro: Add QQ on SQL vs. AI/ML memorder: Correct QQ 15.31 store-to-load diagram cpu/temporal: Report actual winning CPU for coe runs cpu/coe: Add sample output to header comment cpu/temporal: Update output format in header comment cpu/fre: Add description of output format the the header comment. cpu/temporal: Avoid tight-loop accesses to possibly shared cachelines cpu/coe2first: Fix header comment to specify correct script cpu/tscalibrate: Add sample output to header comment cpu/README: Add a README file describing all the other files memorder: Self-review of QQ 15.31 toolsoftrade: Reword close to call out need for humility memorder: Add QQ on why LB is not usually observed in real systems Bibliography update memorder: Fix sentence ending in "(TLB)" defer/rcuapi: Update citations to 2024 edition of the RCU API defer/rcuapi: Add QQ about single-instruction RCU readers defer/rcuapi: Expand on QQ about single-instruction RCU readers todo.txt: Add hazard-pointers citation and optimization advsync: Record discussion on NBS consequences defer/rcu: Emphasize RCU's core concept of waiting for readers defer/rcu: Add RCU-siomplicity quick quiz together/applyrcu: Add refctr and hazptr to long-duration accesses together/applyrcu: Add lockless configuration data section together/applyrcu: Add lockless double-check locking defer/rcuintro: Emphasize waiting for readers defer/rcufundamental: Emphasize waiting for readers together/applyrcu: Fix Two-Process Double-Check RCU listing for eb together/applyrcu: Add a section on double-checked CAS together/applyrcu: Add timings for herd7 and double-check RCU together/applyrcu: Add xchg() QQ to lockless configuration update intro/intro: Update based on 2025 Kernel Recipes feedback howto/howto: Add URL of 2025 Kernel Recipes presentation together/applyrcu: Credit Denis for Lockless Double-Checked Initialation intro/intro: Add "Existing Sequential Designs" section datastruct/datastruct: Document concurrency-friendly hash-table API Bibliography update defer/rcuapi: Update based on 2024 LWN RCU API article defer/rcuapi: Update list APIs based on 2024 LWN RCU API article defer/rcuapi: Fix: srcu_read_lock() *not* usable from NMI appendix/whymb: Add Quick Quiz on invalidate acknowledgments defer/hazptr: Add steps to move from refctr to hazptr defer/whichtochoose: Qualify RCU reader forward progress Bibliography update defer/rcu: Add Herlihy's QSBR praise memorder: Fix s/CPU 1/CPU 0/ typo in description of Fig 15.3 advsync/rt.tex: Add Zhouyi Zhou's polling RT approach advsync/rt: Add Valentin Schneider's IPI-deferral work advsync/rt: Give nohz_full advice for less aggressive users CodeSamples/defer: Add rcu_rcl appendix/toyrcu: Describe new per-thread single-counter RCU appendix/toyrcu: Rework intro and summary CodeSamples/advsync/q.c | 2 +- CodeSamples/advsync/wfenqueue.c | 2 +- CodeSamples/api-pthreads/api-pthreads.h | 14 + CodeSamples/count/count_end.c | 4 +- CodeSamples/count/count_end_rcu.c | 4 +- CodeSamples/count/count_stack.c | 6 +- CodeSamples/count/count_stat_atomic.c | 6 +- CodeSamples/cpu/README | 75 ++ CodeSamples/cpu/coe.sh | 11 +- CodeSamples/cpu/coe2first.sh | 2 +- CodeSamples/cpu/fre.sh | 24 + CodeSamples/cpu/temporal.c | 31 +- CodeSamples/cpu/tscalibrate.c | 4 +- CodeSamples/datastruct/Issaquah/Makefile | 16 +- CodeSamples/datastruct/Issaquah/existence.c | 6 - CodeSamples/datastruct/Issaquah/existence.h | 7 +- CodeSamples/datastruct/Issaquah/existence_test.c | 3 - CodeSamples/datastruct/Issaquah/tree.c | 6 - CodeSamples/datastruct/existence/Makefile | 34 +- CodeSamples/datastruct/hash/Makefile | 15 +- CodeSamples/datastruct/skiplist/Makefile | 5 +- CodeSamples/defer/.gitignore | 1 + CodeSamples/defer/Makefile | 19 +- CodeSamples/defer/hazptr.h | 6 +- CodeSamples/defer/rcu_rcl.c | 49 + CodeSamples/defer/rcu_rcl.h | 55 + CodeSamples/formal/data/rcu-test.dat | 5 + ...P+o-o-rcusync-o+o-o-rcusync-o+rl-o-o-rul.litmus | 56 + ...hg-rcusync-o+o-xchg-rcusync-o+rl-o-o-rul.litmus | 50 + .../formal/herd/C-double-check-cas-2.litmus | 53 + .../formal/herd/C-double-check-rcu-2.litmus | 61 + .../formal/herd/C-double-check-rcu-3.litmus | 85 ++ .../formal/herd/C-double-check-rcu-4.litmus | 111 ++ CodeSamples/formal/herd/Makefile | 21 +- CodeSamples/intro/Makefile | 12 +- CodeSamples/locking/Makefile | 6 +- Makefile | 39 +- SMPdesign/SMPdesign.tex | 2 +- SMPdesign/beyond.tex | 10 +- SMPdesign/criteria.tex | 2 +- advsync/advsync.tex | 60 +- advsync/rt.tex | 58 +- appendix/styleguide/styleguide.tex | 2 +- appendix/toyrcu/toyrcu.tex | 239 ++-- appendix/whymb/whymemorybarriers.tex | 55 +- bib/RCU.bib | 55 +- bib/hw.bib | 6 +- bib/memorymodel.bib | 197 ++++ bib/os.bib | 34 + bib/realtime.bib | 48 + bib/refs.bib | 33 +- bib/standards.bib | 9 + bib/swtools.bib | 22 +- bib/syncrefs.bib | 95 +- count/count.tex | 6 +- cpu/cpu.tex | 22 +- cpu/hwfreelunch.tex | 4 +- cpu/overview.tex | 31 +- datastruct/datastruct.tex | 10 + debugging/debugging.tex | 209 ++-- defer/hazptr.tex | 28 +- defer/rcu.tex | 27 +- defer/rcuapi.tex | 364 +++++- defer/rcufundamental.tex | 16 +- defer/rcuintro.tex | 5 +- defer/rcuusage.tex | 2 +- defer/whichtochoose.tex | 48 +- docker/Dockerfile | 2 +- docker/Dockerfile.fedora | 2 +- fixfvextra.ltx | 11 + formal/axiomatic.tex | 11 +- formal/dyntickrcu.tex | 14 +- formal/formal.tex | 6 +- formal/ppcmem.tex | 4 +- formal/spinhint.tex | 8 +- future/formalregress.tex | 15 +- future/htm.tex | 2 +- future/tm.tex | 4 +- glossary.tex | 30 +- howto/howto.tex | 16 + indexsee.tex | 31 +- intro/coarsen.svg | 1204 ++++++++++++++++++++ intro/intro.tex | 104 +- memorder/memorder.tex | 220 +++- memorder/rf-hopes.svg | 43 +- perfbook-lt.tex | 43 +- summary.tex | 2 +- todo.txt | 6 + together/applyrcu.tex | 251 +++- together/seqlock.tex | 2 +- toolsoftrade/toolsoftrade.tex | 21 +- utilities/autodate.sh | 17 + utilities/gitlab-ci.yml | 1 + utilities/percentcheck.pl | 39 + utilities/punctcheck.sh | 1 + utilities/runfirstlatex.sh | 10 + utilities/runlatex.sh | 13 +- 97 files changed, 4200 insertions(+), 538 deletions(-) create mode 100644 CodeSamples/cpu/README create mode 100644 CodeSamples/defer/rcu_rcl.c create mode 100644 CodeSamples/defer/rcu_rcl.h create mode 100644 CodeSamples/formal/herd/C-MP+o-o-rcusync-o+o-o-rcusync-o+rl-o-o-rul.litmus create mode 100644 CodeSamples/formal/herd/C-MP+o-xchg-rcusync-o+o-xchg-rcusync-o+rl-o-o-rul.litmus create mode 100644 CodeSamples/formal/herd/C-double-check-cas-2.litmus create mode 100644 CodeSamples/formal/herd/C-double-check-rcu-2.litmus create mode 100644 CodeSamples/formal/herd/C-double-check-rcu-3.litmus create mode 100644 CodeSamples/formal/herd/C-double-check-rcu-4.litmus create mode 100644 fixfvextra.ltx create mode 100644 intro/coarsen.svg create mode 100755 utilities/percentcheck.pl