blob: 7b601770f4c59d6916934371d9131ab918656190 [file]
@inproceedings{Lu:2008:LMC:1346281.1346323,
author = {Lu, Shan and Park, Soyeon and Seo, Eunsoo and Zhou, Yuanyuan},
title = {Learning from Mistakes: A Comprehensive Study on Real World Concurrency Bug Characteristics},
booktitle = {Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems},
series = {ASPLOS XIII},
year = {2008},
isbn = {978-1-59593-958-6},
location = {Seattle, WA, USA},
pages = {329--339},
numpages = {11},
url = {http://doi.acm.org/10.1145/1346281.1346323},
doi = {10.1145/1346281.1346323},
acmid = {1346323},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {bug characteristics, concurrency bug, concurrent program},
}
@inproceedings{Zhou:2015:PCB:2745802.2745807,
author = {Zhou, Bo and Neamtiu, Iulian and Gupta, Rajiv},
title = {Predicting Concurrency Bugs: How Many, What Kind and Where Are They?},
booktitle = {Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering},
series = {EASE '15},
year = {2015},
isbn = {978-1-4503-3350-4},
location = {Nanjing, China},
pages = {6:1--6:10},
articleno = {6},
numpages = {10},
url = {http://doi.acm.org/10.1145/2745802.2745807},
doi = {10.1145/2745802.2745807},
acmid = {2745807},
publisher = {ACM},
address = {New York, NY, USA},
}
@article{Ellis80,
author="Carla Schlatter Ellis",
title="Concurrent Search and Insertion in {AVL} Trees",
Year="1980",
Month="September",
journal="IEEE Transactions on Computers",
volume="C-29",
number="9",
pages="811-817",
url="https://www.computer.org/csdl/trans/tc/1980/09/01675680.pdf",
lastchecked="November 12, 2016",
doi="10.1109/TC.1980.1675680",
}
@article{Pugh90b,
author="William Pugh",
title="A Probabalistic Alternative to Balanced Trees",
Year="1990",
Month="June",
journal="Communications of the {ACM}",
volume="33",
number="6",
pages="668--676",
}
@techreport{ScottCombiningTree92,
author="Michael L. Scott and John M. Mellor-Crummey",
title="Fast, Contention-Free Combining Tree Barriers",
institution="Computer Science Department, University of Rochester",
address="Rochester, NY",
year="1992",
number="CS.92.TR429",
month="June",
}
@unpublished{Gamsa96b,
author="Ben Gamsa and Orran Krieger and Jonathan Appavoo and
Michael Stumm",
title="The Need for Performance-Oriented Data Organization in
multiprocessor Software",
Year="1996",
note="Private communication from Orran Krieger",
}
@techreport{PaulMcKenney2004a,
author="Paul E. McKenney and Phillip E. Krueger and Stuart A. Friedberg and
Brent A Kingsbury",
title="Memory Allocation for a Multiprocessor Computer System",
institution="Assigned to International Business Machines Corporation",
address="Washington, DC",
year="2004",
number="US Patent 6,785,888",
month="August",
}
@article{Boehm:2004:SEC:989393.989442,
author = {Boehm, Hans J.},
title = {Space Efficient Conservative Garbage Collection},
journal = {SIGPLAN Not.},
issue_date = {April 2004},
volume = {39},
number = {4},
month = apr,
year = {2004},
issn = {0362-1340},
pages = {490--501},
numpages = {12},
url = {http://doi.acm.org/10.1145/989393.989442},
doi = {10.1145/989393.989442},
acmid = {989442},
publisher = {ACM},
address = {New York, NY, USA},
}
@inproceedings{AlainDarte2005,
author = {Alain Darte and Robert Schreiber},
title = {A linear-time algorithm for optimal barrier placement},
booktitle = {PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming},
year = {2005},
isbn = {1-59593-080-9},
pages = {26--35},
location = {Chicago, IL, USA},
doi = {10.1145/1065944.1065949},
publisher = {ACM Press},
address = {New York, NY, USA},
}
@inproceedings{FaithEllen:2007:SNZI,
author = {Ellen, Faith and Lev, Yossi and Luchangco, Victor and Moir, Mark},
title = {{SNZI}: scalable {NonZero} indicators},
booktitle = {Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing},
series = {PODC '07},
year = {2007},
isbn = {978-1-59593-616-5},
location = {Portland, Oregon, USA},
pages = {13--22},
numpages = {10},
url = {http://doi.acm.org/10.1145/1281100.1281106},
doi = {10.1145/1281100.1281106},
acmid = {1281106},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {counters, scalability, transactional memory},
}
@article{DeCandia:2007:DAH:1323293.1294281,
author = {DeCandia, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner},
title = {Dynamo: Amazon's Highly Available Key-value Store},
journal = {SIGOPS Oper. Syst. Rev.},
issue_date = {December 2007},
volume = {41},
number = {6},
month = oct,
year = {2007},
issn = {0163-5980},
pages = {205--220},
numpages = {16},
url = {http://doi.acm.org/10.1145/1323293.1294281},
doi = {10.1145/1323293.1294281},
acmid = {1294281},
publisher = {ACM},
address = {New York, NY, USA},
}
@unpublished{JakeEdge2009kfifo,
Author="Jake Edge",
Title="A new {API} for kfifo?",
month="August",
day="19",
year="2009",
note="Available:
\url{https://lwn.net/Articles/347619/}
[Viewed September 20, 2010]",
}
@article{Shavit:2011:DSM:1897852.1897873,
author = {Shavit, Nir},
title = {Data structures in the multicore age},
journal = {Commun. ACM},
issue_date = {March 2011},
volume = {54},
number = {3},
month = mar,
year = {2011},
issn = {0001-0782},
pages = {76--84},
numpages = {9},
url = {http://doi.acm.org/10.1145/1897852.1897873},
doi = {10.1145/1897852.1897873},
acmid = {1897873},
publisher = {ACM},
address = {New York, NY, USA},
}
@conference{AndreasHaas2012FIFOisnt,
author="Andreas Haas and Christoph M. Kirsch and Michael Lippautz and Hannes Payer",
title="How {FIFO} is Your Concurrent {FIFO} Queue?",
booktitle="Proceedings of the Workshop on Relaxing Synchronization for Multicore and Manycore Scalability",
Year="2012",
Month="October",
address="Tucson, AZ USA",
doi="10.1145/2414729.2414731",
}
@techreport{ChristophMKirsch2012FIFOisntTR,
author="Christoph M. Kirsch and Michael Lippautz and Hannes Payer",
title="Fast and Scalable {k-FIFO} Queues",
institution="University of Salzburg",
address="Salzburg, Austria",
year="2012",
number="2012-04",
month="June",
pages="19",
url="https://www.cosy.sbg.ac.at/research/tr/2012-04_Kirsch_Lippautz_Payer.pdf",
lastchecked="February 28, 2021",
}
@inproceedings{10.5555/3241639.3241645,
author = {Rinard, Martin},
title = {Parallel Synchronization-Free Approximate Data Structure Construction},
year = {2013},
publisher = {USENIX Association},
address = {USA},
booktitle = {Proceedings of the 5th USENIX Conference on Hot Topics in Parallelism},
pages = {6},
numpages = {1},
location = {San Jose, CA},
series = {HotPar'13},
url = {https://www.usenix.org/conference/hotpar13/workshop-program/presentation/rinard},
}
@InProceedings{AndreasHaas2013CFRelaxedQueues,
author = {A. Haas and T.A. Henzinger and C.M. Kirsch and M. Lippautz and H. Payer and A. Sezgin and A. Sokolova},
title = {Distributed Queues in Shared Memory---Multicore Performance and Scalability through Quantitative Relaxation},
booktitle = {Proc. International Conference on Computing Frontiers},
location = {Ischia, Italy},
publisher = {ACM},
year = {2013},
doi = {10.1145/2482767.2482789},
}
@article{TerenceKelly2020HandOverHand,
author="Terence Kelly",
title="Hand-Over-Hand Locking for Highly Concurrent Collections",
Year="2020",
Month="Sept",
journal=";login:",
volume="45",
number="3",
pages="61--66",
url="https://www.usenix.org/system/files/login/articles/login_fall20_14_kelly.pdf",
}
@article{Dijkstra65a,
author="E. W. Dijkstra",
title="Solution of a Problem in Concurrent Programming Control",
Year="1965",
Month="Sept",
journal="Communications of the {ACM}",
volume="8",
number="9",
pages="569",
doi="10.1145/365559.365617",
}
@inbook{Dijkstra68a,
Author = "E. W. Dijkstra",
Title = "Programming Languages",
Chapter = "Cooperating Sequential Processes",
Year = "1968",
Publisher = "Academic Press",
}
@article{Dijkstra1971HOoSP,
author="Edsger W. Dijkstra",
title="Hierarchical Ordering of Sequential Processes",
Year="1971",
journal="Acta Informatica",
volume="1",
number="2",
pages="115-138",
doi="10.1007/BF00289519",
note="Available:
\url{https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD310.PDF}
[Viewed January 13, 2008]",
}
@article{Hoare74,
author="C. A. R. Hoare",
title="Monitors: An Operating System Structuring Concept",
Year="1974",
Month="October",
journal="Communications of the {ACM}",
volume="17",
number="10",
pages="549-557",
doi="10.1145/355620.361161",
}
@article{Lamport74a,
author="Leslie Lamport",
title="A New Solution of {Dijkstra's} Concurrent Programming Problem",
Year="1974",
Month="August",
journal="Communications of the {ACM}",
volume="17",
number="8",
pages="453-455",
doi="10.1145/361082.361093",
}
@conference{Segall84,
author="Z. Segall and L. Rudolf",
title="Dynamic Decentralized Cache Schemes for {MIMD} Parallel Processors",
year="1984",
month="June",
booktitle="11\textsuperscript{th} Annual International
Symposium on Computer Architecture",
pages="340-347",
doi="10.1145/800015.808203",
}
@article{Barghouti91,
author="N. S. Barghouti and G. E. Kaiser",
title="Concurrency Control in Advanced Database Applications",
Month="September",
Year="1991",
journal="ACM Computing Surveys:",
}
@article{McKenney96a,
author="Paul E. McKenney",
title="Selecting Locking Primitives for Parallel Programs",
Year="1996",
Month="October",
journal="Communications of the {ACM}",
volume="39",
number="10",
pages="75--82",
doi="10.1145/236156.236174",
}
@article{Kontothanassis97a,
author="Leonidas Kontothanassis and Robert W. Wisniewski and Michael L. Scott",
title="Scheduler-Conscious Synchronization",
Year="1997",
Month="February",
journal="{ACM} Transactions on Computer Systems",
volume="15",
number="1",
pages="3--40",
doi="10.1145/244764.244765",
}
@Conference{HubertusFrancke2002Futex,
Author="Hubertus Francke and Rusty Russell and Matthew Kirkwood",
Title="Fuss, futexes and furwocks: Fast Userlevel Locking in Linux",
Booktitle="{Ottawa Linux Symposium}",
Month="June",
Year="2002",
pages="479-495",
note="Available:
\url{https://www.kernel.org/doc/ols/2002/ols2002-pages-479-495.pdf}
[Viewed May 22, 2011]",
}
@inproceedings{Uhlig04scalablevms,
author={Volkmar Uhlig and Joshua LeVasseur and Espen Skoglund and
Uwe Dannowski},
title={Towards Scalable Multiprocessor Virtual Machines},
booktitle={Proceedings of the 3rd Virtual Machine Research and
Technology Symposium},
year={2004},
pages={43--56},
address={San Jose, CA},
month="May~6-7",
url="https://www.usenix.org/legacy/events/vm04/tech/full_papers/uhlig/uhlig.pdf",
}
@phdthesis{BilgeEbruSaglamAkgul,
author="Bilge Ebru Saglam Akgul",
title="The System-on-a-Chip Lock Cache",
school="School of Electrical and Computer Engineering at
Georgia Institute of Technology",
year="2004",
note="Available:
\url{http://smartech.gatech.edu/bitstream/handle/1853/5253/akgul_bilge_e_200405_phd.pdf}
[Viewed June 27, 2012]",
}
@techreport{PhuongHoaiHa2005Reactivelock,
author="Phuong Hoai Ha and Marina Papatriantafilou and Philippas Tsigas",
title="Reactive Spin-locks: A Self-tuning Approach",
institution={Department of Computing Science and Engineering, Chalmers University of Technology and G\"oteborg University},
year="2005",
address={SE-412 96 G\"oteborg, Sweden},
number="2005:16",
}
@unpublished{IngoMolnar2006RobustFutexes,
author="Ingo Molnar",
title="Lightweight Robust Futexes",
Year="2006",
Month="March",
note="Available:
\url{https://www.kernel.org/doc/Documentation/robust-futexes.txt}
[Viewed February 14, 2021]",
}
@inproceedings{Eastep:2010:SLA:1809049.1809079,
author = {Eastep, Jonathan and Wingate, David and Santambrogio, Marco D. and Agarwal, Anant},
title = {Smartlocks: lock acquisition scheduling for self-aware synchronization},
booktitle = {Proceedings of the 7th international conference on Autonomic computing},
series = {ICAC '10},
year = {2010},
isbn = {978-1-4503-0074-2},
location = {Washington, DC, USA},
pages = {215--224},
numpages = {10},
url = {http://doi.acm.org/10.1145/1809049.1809079},
doi = {10.1145/1809049.1809079},
acmid = {1809079},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {asymmetric multicore, heterogeneous multicore, performance optimization, self-aware, self-tuning, synchronization},
}
@techreport{UlrichDrepper2011Futexes,
author="Ulrich Drepper",
title="Futexes Are Tricky",
institution="Red Hat, Inc.",
address="Raleigh, NC, USA",
year="2011",
number="FAT2011",
month="November",
url={https://www.akkadia.org/drepper/futex.pdf},
lastchecked="February 27, 2021",
}
@unpublished{Atman2011Multi-WayTicketLock,
Author="cbloom",
title = "Atman's Multi-way Ticket Lock",
month="July",
day="17",
year="2011",
note="\url{http://cbloomrants.blogspot.com/2011/07/07-17-11-atman-multi-way-ticket-lock_17.html}",
}
@unpublished{RickVanRiel2013ProportionalLock,
Author="Rick van Riel",
title = "make ticket spinlock proportional ",
month="January",
day="3",
year="2013",
note="\url{https://lore.kernel.org/lkml/20130103001536.7fd1e952@annuminas.surriel.com/}",
}
@unpublished{JeremyFitzhardinge2012PVticketlocks,
Author="Jeremy Fitzhardinge",
title = "Paravirtualized ticketlocks",
month="April",
day="20",
year="2012",
note="\url{https://lwn.net/Articles/493402/}",
}
@article{Bueso:2014:STP:2693193.2698990,
author = {Bueso, Davidlohr},
title = {Scalability Techniques for Practical Synchronization Primitives},
journal = {Queue},
issue_date = {November 2014},
volume = {12},
number = {11},
month = nov,
year = {2014},
issn = {1542-7730},
pages = {40:40--40:53},
articleno = {40},
numpages = {14},
url = {http://doi.acm.org/10.1145/2693193.2698990},
doi = {10.1145/2693193.2698990},
acmid = {2698990},
publisher = {ACM},
address = {New York, NY, USA},
}
@phdthesis{HugoGuirouxPhD,
author="Hugo Guiroux",
title="Understanding the performance of mutual exclusion algorithms on modern multicore machines",
school="Universit\'e Grenoble Alpes",
year="2018",
note="\url{https://hugoguiroux.github.io/assets/these.pdf}",
}
@article{Guerraoui:2019:LPA:3319851.3301501,
author = {Guerraoui, Rachid and Guiroux, Hugo and Lachaize, Renaud and Qu{\'e}ma, Vivien and Trigonakis, Vasileios},
title = {Lock--Unlock: Is That All? A Pragmatic Analysis of Locking in Software Systems},
journal = {ACM Trans. Comput. Syst.},
issue_date = {March 2019},
volume = {36},
number = {1},
month = mar,
year = {2019},
issn = {0734-2071},
pages = {1:1--1:149},
articleno = {1},
numpages = {149},
url = {http://doi.acm.org/10.1145/3301501},
doi = {10.1145/3301501},
acmid = {3301501},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Multicore, lock interface, locks, performance bottleneck, synchronization},
}
@article{Weihl85a,
author="William E. Weihl and Barbara Liskov",
title="Implementation of Resilient, Atomic Data Types",
Year="1985",
Month="July",
journal="{ACM} Transactions on Programming Languages and Systems",
volume="7",
number="2",
pages="244-269",
}
@article{LeslieLamport1986OICp1,
author="Leslie Lamport",
title="On Interprocess Communication. Part I: Basic Formalism",
Year="1986",
journal="Distributed Computing",
volume="1",
number="2",
pages="77-85",
note="Available:
\url{research.microsoft.com/en-us/um/people/lamport/pubs/interprocess.pdf}
[Viewed April 9, 2009]",
}
@article{LeslieLamport1986OICp2,
author="Leslie Lamport",
title="On Interprocess Communication. Part II: Algorithms",
Year="1986",
journal="Distributed Computing",
volume="1",
number="2",
pages="86-101",
note="Available:
\url{research.microsoft.com/en-us/um/people/lamport/pubs/interprocess.pdf}
[Viewed April 9, 2009]",
}
@book{PhilipABernstein1987,
Author = "Philip A. Bernstein and Vassos Hadzilacos and Nathan Goodman",
Title = "Concurrency Control and Recovery in Database Systems",
Year = "1987",
Publisher = "Addison Wesley Publishing Company",
isbn = "ISBN 0-201-10715-5",
}
@article{Herlihy:1990:LCC:78969.78972,
author = {Herlihy, Maurice P. and Wing, Jeannette M.},
title = {Linearizability: a correctness condition for concurrent objects},
journal = {ACM Trans. Program. Lang. Syst.},
issue_date = {July 1990},
volume = {12},
number = {3},
month = jul,
year = {1990},
issn = {0164-0925},
pages = {463--492},
numpages = {30},
url = {http://doi.acm.org/10.1145/78969.78972},
doi = {10.1145/78969.78972},
acmid = {78972},
publisher = {ACM},
address = {New York, NY, USA},
}
@article{Herlihy:1996:LCN:1063369.1063372,
author = {Herlihy, Maurice and Shavit, Nir and Waarts, Orli},
title = {Linearizable counting networks},
journal = {Distrib. Comput.},
volume = {9},
issue = {4},
month = {February},
year = {1996},
issn = {0178-2770},
pages = {193--203},
numpages = {11},
url = {http://portal.acm.org/citation.cfm?id=1063369.1063372},
doi = {10.1007/s004460050019},
acmid = {1063372},
publisher = {Springer-Verlag},
address = {London, UK},
keywords = {concurrency, contention, counting networks, data structures, linearizability},
}
@inproceedings{PeterWOHearn2001SeparationLogic,
author = {O'Hearn, Peter W. and Reynolds, John C. and Yang, Hongseok},
title = {Local Reasoning about Programs That Alter Data Structures},
year = {2001},
isbn = {3540425543},
publisher = {Springer-Verlag},
address = {Berlin, Heidelberg},
booktitle = {Proceedings of the 15th International Workshop on Computer Science Logic},
pages = {1–19},
numpages = {19},
series = {CSL '01}
}
@article{Sezgin:2005:DSC:1125395.1711001,
author = {Sezgin, Ali and Gopalakrishnan, Ganesh},
title = {On the Definition of Sequential Consistency},
journal = {Inf. Process. Lett.},
issue_date = {31 December 2005},
volume = {96},
number = {6},
month = dec,
year = {2005},
issn = {0020-0190},
pages = {193--196},
numpages = {4},
url = {http://dx.doi.org/10.1016/j.ipl.2005.09.002},
doi = {10.1016/j.ipl.2005.09.002},
acmid = {1711001},
publisher = {Elsevier North-Holland, Inc.},
address = {Amsterdam, The Netherlands, The Netherlands},
keywords = {Concurrency, Distributed systems, Formalization, Sequential consistency, Shared memory},
}
@article{WernerVogels:2009:EventuallyConsistent,
author = {Vogels, Werner},
title = {Eventually consistent},
journal = {Commun. ACM},
volume = {52},
issue = {1},
month = {January},
year = {2009},
issn = {0001-0782},
pages = {40--44},
numpages = {5},
url = {http://doi.acm.org/10.1145/1435417.1435432},
doi = {10.1145/1435417.1435432},
acmid = {1435432},
publisher = {ACM},
address = {New York, NY, USA},
}
@article{C.A.Furia2010Time,
author="C.A. Furia and D. Mandrioli and A. Morzenti and M. Rossi",
title="Modeling time in computing: a taxonomy and a comparative study",
Year="2010",
Month="February",
journal="{ACM} Computing Surveys",
volume="42",
number="2",
pages="6:1-6:59",
}
@unpublished{PaulEMcKenney2011Dagstuhl,
author="Paul E. McKenney",
title="Multi-Core Memory Models and Concurrency Theory: A View from the Linux Community",
Year="2011",
Month="January",
Day="6",
Note="http://www.rdrop.com/users/paulmck/scalability/paper/mckenney.2011.01.06e.pdf",
}
@unpublished{PaulEMcKenney2011Verico,
author="Paul E. McKenney",
title="Verifying Parallel Software: Can Theory Meet Practice?",
Year="2011",
Month="January",
Day="29",
note="\url{http://www.rdrop.com/users/paulmck/scalability/paper/VericoTheoryPractice.2011.01.28a.pdf}",
}
@inproceedings{HagitAttiya2011LawsOfOrder,
author = {Hagit Attiya and Rachid Guerraoui and Danny Hendler and Petr Kuznetsov and Maged M. Michael and Martin Vechev},
title = {Laws of Order: Expensive Synchronization in Concurrent Algorithms Cannot be Eliminated},
booktitle = {38\textsuperscript{th} ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages},
year = {2011},
pages={487--498},
location = {Austin, TX, USA},
publisher = {ACM},
address = {New York, NY, USA},
doi = {10.1145/1926385.1926442},
}
@article{Attiya:2011:LOE:1925844.1926442,
author = {Attiya, Hagit and Guerraoui, Rachid and Hendler, Danny and Kuznetsov, Petr and Michael, Maged M. and Vechev, Martin},
title = {Laws of Order: Expensive Synchronization in Concurrent Algorithms Cannot Be Eliminated},
journal = {SIGPLAN Not.},
issue_date = {January 2011},
volume = {46},
number = {1},
month = jan,
year = {2011},
issn = {0362-1340},
pages = {487--498},
numpages = {12},
url = {http://doi.acm.org/10.1145/1925844.1926442},
doi = {10.1145/1925844.1926442},
acmid = {1926442},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {algorithms, concurrency, lower bounds, memory barriers, memory fences},
}
@unpublished{PaulEMcKenney2011SNC,
Author="Paul E. McKenney",
title = "Concurrent code and expensive instructions",
month="January",
day="26",
year="2011",
note="Available:
\url{https://lwn.net/Articles/423994}
[Viewed January 28, 2011]",
}
@unpublished{AdrianSutton2013LCA:Disruptor,
Author="Adrian Sutton",
title = "Concurrent Programming with the {Disruptor}",
month="January",
day="30",
year="2013",
note="Presentation at Linux.conf.au 2013, URL:
\url{https://www.youtube.com/watch?v=ItpT_vmRHyI}",
lastchecked="November 17, 2016",
}
@article{Desnoyers:2013:MSM:2506164.2506174,
author = {Desnoyers, Mathieu and McKenney, Paul E. and Dagenais, Michel R.},
title = {Multi-core systems modeling for formal verification of parallel algorithms},
journal = {SIGOPS Oper. Syst. Rev.},
issue_date = {July 2013},
volume = {47},
number = {2},
month = jul,
year = {2013},
issn = {0163-5980},
pages = {51--65},
numpages = {15},
url = {http://doi.acm.org/10.1145/2506164.2506174},
doi = {10.1145/2506164.2506174},
acmid = {2506174},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {Promela, instruction reordering, model checking, multiprocessor, read copy update, shared memory, weak memory model},
}
@inproceedings{Clements:2013:SCR:2517349.2522712,
author = {Clements, Austin T. and Kaashoek, M. Frans and Zeldovich, Nickolai and Morris, Robert T. and Kohler, Eddie},
title = {The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors},
booktitle = {Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles},
series = {SOSP '13},
year = {2013},
isbn = {978-1-4503-2388-8},
location = {Farminton, Pennsylvania},
pages = {1--17},
numpages = {17},
url = {http://doi.acm.org/10.1145/2517349.2522712},
doi = {10.1145/2517349.2522712},
acmid = {2522712},
publisher = {ACM},
address = {New York, NY, USA},
}
@phdthesis{SilasBoydWickizerPhD,
author="Silas Boyd-Wickizer",
title="Optimizing Communications Bottlenecks in Multiprocessor Operating Systems Kernels",
school="Massachusetts Institute of Technology",
year="2014",
note="\url{https://pdos.csail.mit.edu/papers/sbw-phd-thesis.pdf}",
}
@conference{Michael02a,
author="Maged M. Michael",
title="Safe Memory Reclamation for Dynamic Lock-Free Objects Using Atomic
Reads and Writes",
Year="2002",
Month="August",
booktitle="{Proceedings of the 21\textsuperscript{st} Annual ACM
Symposium on Principles of Distributed Computing}",
pages="21-30",
}
@InProceedings{HerlihyLM02,
author={Maurice Herlihy and Victor Luchangco and Mark Moir},
title="The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized,
Lock-Free Data Structures",
booktitle={Proceedings of 16\textsuperscript{th} International
Symposium on Distributed Computing},
location="Toulouse, France",
year=2002,
month="October",
pages="339-353",
doi="10.1007/3-540-36108-1_23",
}
@article{MagedMichael04a,
author="Maged M. Michael",
title="Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects",
Year="2004",
Month="June",
journal="IEEE Transactions on Parallel and Distributed Systems",
volume="15",
number="6",
pages="491-504",
doi={10.1109/TPDS.2004.8},
}
@unpublished{KeithBostic2010WiredTigerhazptr,
author="Keith Bostic",
title="Switch lockless programming style from epoch to hazard references",
Year="2010",
Month="January",
Day="24",
Note="\url{https://github.com/wiredtiger/wiredtiger/commit/dddc21014fc494a956778360a14d96c762495e09}",
}
@unpublished{SamyAlBahra2011ckhp,
author="Samy Al Bahra",
title="ck\_hp.c",
Year="2011",
Month="February",
Day="20",
Note="Hazard pointers: \url{https://github.com/concurrencykit/ck/blob/master/src/ck_hp.c}",
}
@unpublished{MaximKhizhinsky2014libcdsHazptr,
author="Maxim Khizhinsky",
title="Memory Management Schemes",
Year="2014",
Month="June",
Day="1",
Note="\url{https://kukuruku.co/post/lock-free-data-structures-the-inside-memory-management-schemes/}",
}
@unpublished{DavidGwynne2015srp,
author="David Gwynne",
title="introduce srp, which according to the manpage i wrote is short for ``shared reference pointers''.",
Year="2015",
Month="July",
Day="1",
Note="\url{https://github.com/openbsd/src/blob/HEAD/sys/kern/kern_srp.c}",
}
@unpublished{crates.io.user.ticki2017concHazptr,
author="crates.io user ticki",
title="conc v0.5.0: Hazard-pointer-based concurrent memory reclamation",
Year="2017",
Month="August",
Day="12",
Note="\url{https://crates.io/crates/conc}",
}
@unpublished{MichalVaner2018arc-swapHazptr,
author="Michal Vaner",
title="{ArcSwap}",
Year="2018",
Month="April",
Day="16",
Note="\url{https://crates.io/crates/arc-swap}",
}
@unpublished{MagedMichael2018FollyHazptr,
author="Maged Michael",
title="Rewrite from experimental, use of deterministic schedule, improvements",
Year="2018",
Month="June",
Day="17",
Note="Hazard pointers: \url{https://github.com/facebook/folly/commit/d42832d2a529156275543c7fa7183e1321df605d}",
}
@inproceedings{JeehoonKang2020MarryHazptrRCU,
author = {Kang, Jeehoon and Jung, Jaehwang},
title = {A marriage of pointer- and epoch-based reclamation},
year = {2020},
isbn = {9781450376136},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3385412.3385978},
doi = {10.1145/3385412.3385978},
booktitle = {Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation},
pages = {314–328},
numpages = {15},
keywords = {epoch-based reclamation, garbage collection, hazard pointer, pointer-based reclamation, safe memory reclamation},
location = {London, UK},
series = {PLDI 2020}
}
@unpublished{MagedMichael2023C++26Hazptr3,
Author="Maged M. Michael and Michael Wong and Paul E. McKenney and Andrew Hunter and Daisy S. Hollman and JF Bastien and Hans Boehm and David Goldblatt and Frank Birbacher and Mathias Stearn",
Title="{P2545R3}: {Hazard} {Pointers} for {C++26}",
month="March",
day="2",
year="2023",
note="\url{https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2530r3.pdf}",
}
@unpublished{DanielAnderson2023HazptrSharedPtr,
Author="Daniel Anderson",
Title="Lock-free Atomic Shared Pointers Without a Split Reference Count? {It} Can Be Done!",
month="October",
year="2023",
note="CPPCON \url{https://www.youtube.com/watch?v=lNPZV9Iqo3U}",
}
@unpublished{BoqunFeng2024Hazptr,
Author="Boqun Feng and Neeraj Upadhyay and Paul E. McKenney",
Title="Hazard pointers in the {Linux} kernel",
month="September",
day="18",
year="2024",
note="\url{https://lpc.events/event/18/contributions/1731/}",
}
@unpublished{BoqunFeng2025SimpleHazptr,
Author="Boqun Feng",
Title="[{PATCH} 0/8] {Introduce} simple hazard pointers for lockdep",
month="June",
year="2025",
note="\url{https://lore.kernel.org/all/20250625031101.12555-1-boqun.feng@gmail.com/}",
}
@unpublished{MagedMichael2025C++29hazptrSyncRec,
Author="Maged Michael and Michael Wong and Paul McKenney",
Title="{P3427R2}: {Hazard} {Pointers} Synchronous Reclamation",
month="August",
day="11",
year="2025",
note="\url{https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3427r2.pdf}",
}
@unpublished{MagedMichael2025C++29hazptrBatches,
Author="Maged Michael and Michael Wong and Paul McKenney",
Title="{P3428R2}: {Hazard} {Pointers} Batches",
month="August",
day="11",
year="2025",
note="\url{https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3428r2.pdf}",
}
@book{Tay87,
Author = "Y. C. Tay",
Title = "Locking Performance in Centralized Databases",
Year = "1987",
Publisher = "Academic Press",
}
@manual{SQNTParallel,
title="Guide to Parallel Programming",
organization="Sequent Computer Systems, Inc.",
year="1988",
number="1003-48579-00",
}
@manual{AndrewDBirrell1989Threads,
author="Andrew D. Birrell",
title="An Introduction to Programming with Threads",
organization="Digital Systems Research Center",
year="1989",
month="January",
day="6",
number="35",
url="https://www.hpl.hp.com/techreports/Compaq-DEC/SRC-RR-35.pdf",
lastchecked="November 12, 2016",
}
@book{HerlihyShavit2008Textbook,
Author = "Maurice Herlihy and Nir Shavit",
Title = "The Art of Multiprocessor Programming",
Year = "2008",
isbn = "978-0-12-370591-4",
Publisher = "Morgan Kaufmann",
Address = "Burlington, MA, USA",
}
@book{HerlihyShavit2020Textbook,
Author = "Maurice Herlihy and Nir Shavit and Victor Luchangco and Michael Spear",
Title = "The Art of Multiprocessor Programming, 2nd Edition",
Year = "2020",
isbn = "978-0-12-415950-1",
Publisher = "Morgan Kaufmann",
Address = "Burlington, MA, USA",
}
@book{MichaelScott2006Textbook,
Author = "Michael Scott",
Title = "Programming Language Pragmatics",
Year = "2006",
isbn = "978-0-12-633951-2",
Publisher = "Morgan Kaufmann",
Address = "Burlington, MA, USA",
}
@book{MichaelScott2015Textbook,
Author = "Michael Scott",
Title = "Programming Language Pragmatics, 4th Edition",
Year = "2015",
isbn = "978-0-12-410409-9",
Publisher = "Morgan Kaufmann",
Address = "Burlington, MA, USA",
}
@book{MichaelScott2013Textbook,
Author = "Michael L. Scott",
Title = "Shared-Memory Synchronization",
Year = "2013",
isbn = "9781608459575",
Publisher = "Morgan \& Claypool",
Address = "San Rafael, CA, USA",
}
@book{SchmidtStalRohnertBuschmann2000v2Textbook,
Author = "Douglas C. Schmidt and Michael Stal and Hans Rohnert and Frank Buschmann",
Title = "Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects",
Year = "2000",
isbn = "978-0-471-60695-6",
Publisher = "Wiley",
Address = "Chichester, West Sussex, England",
}
@unpublished{RustyRussell2003UnreliableLocking,
author="Rusty Russell",
title="Unreliable Guide To Locking",
Year="2003",
note="Available:
\url{https://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/index.html}
[Viewed September 10, 2012]",
}
@book{BuschmannHenneySchmidt2007v4Textbook,
Author = "Frank Buschmann and Kevlin Henney and Douglas C. Schmidt",
Title = "Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing",
Year = "2007",
isbn = "978-0-470-05902-9",
Publisher = "Wiley",
Address = "Chichester, West Sussex, England",
}
@book{DougLea1997Textbook,
Author = "Doug Lea",
Title = "Concurrent Programming in Java: Design Principles and Patterns",
Year = "1997",
isbn = "0-201-69581-2",
Publisher = "Addison Wesley Longman",
Address = "Reading, MA, USA",
}
@book{Goetz2007Textbook,
Author = "Brian Goetz and Tim Peierls and Joshua Bloch and Joseph Bowbeer and David Holmes and Doug Lea",
Title = "Java: Concurrency in Practice",
Year = "2007",
isbn = "0-321-34960-1",
Publisher = "Addison Wesley",
Address = "Upper Saddle River, NJ, USA",
}
@book{Mattson2005Textbook,
Author = "Timothy G. Mattson and Beverly A. Sanders and Berna L. Massingill",
Title = "Patterns for Parallel Programming",
Year = "2005",
isbn = "978-0-321-22811-6",
Publisher = "Addison Wesley",
Address = "Boston, MA, USA",
}
@book{Reinders2007Textbook,
Author = "James Reinders",
Title = "{Intel} {Threading} {Building} {Blocks}",
Year = "2007",
isbn = "978-0-596-51480-8",
Publisher = "O'Reilly",
Address = "Sebastopol, CA, USA",
}
@book{Butenhof1997pthreads,
Author = "David Butenhof",
Title = "Programming with {POSIX} Threads",
Year = "1997",
isbn = "0201633922",
Publisher = "Addison-Wesley",
Address = "Boston, MA, USA",
}
@article{HerbSutter2008EC1Pillars,
author="Herb Sutter",
title="The Pillars of Concurrency",
Year="2007",
Month="July",
Day="2",
Journal="Dr. Dobbs Journal",
note="Available:
\url{http://www.ddj.com/hpc-high-performance-computing/200001985}
[Viewed February 15, 2009]",
}
@article{HerbSutter2008EC2HowMuchScalability,
author="Herb Sutter",
title="How Much Scalability Do You Have or Need?",
Year="2007",
Month="August",
Day="3",
Journal="Dr. Dobbs Journal",
note="Available:
\url{http://www.ddj.com/hpc-high-performance-computing/201202924}
[Viewed February 22, 2009]",
}
@unpublished{HerbSutter2008EffectiveConcurrency,
author="Herb Sutter",
title="Effective Concurrency",
Year="2008",
note="Series in Dr. Dobbs Journal",
}
@book{AnthonyWilliams2012,
Author = "Anthony Williams",
Title = "C++ Concurrency in Action: Practical Multithreading",
Year = "2012",
Publisher = "Manning",
Address = "Shelter Island, NY, USA",
}
@book{AnthonyWilliams2019,
Author = "Anthony Williams",
Title = "C++ Concurrency in Action, 2nd Edition",
Year = "2019",
Publisher = "Manning",
Address = "Shelter Island, NY, USA",
isbn = "978-1933988771",
}
@book{NormMatloff2011ParProcBook,
Author = "Norm Matloff",
Title = "Programming on Parallel Machines",
Year = "2011",
Publisher = "University of California, Davis",
Address = "Davis, CA, USA",
url="http://heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook2011.pdf"
}
@book{NormMatloff2013ParProcBook,
Author = "Norm Matloff",
Title = "Programming on Parallel Machines",
Year = "2013",
Publisher = "University of California, Davis",
Address = "Davis, CA, USA",
}
@book{NormMatloff2017ParProcBook,
Author = "Norm Matloff",
Title = "Programming on Parallel Machines",
Year = "2017",
Publisher = "University of California, Davis",
Address = "Davis, CA, USA",
url="http://heather.cs.ucdavis.edu/~matloff/158/PLN/ParProcBook.pdf"
}
@book{McKenney20xxParallelProgramming,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It?",
Year = "2021",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
note="\url{https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html}",
}
@book{McKenney2025-12-18aParallelProgramming,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (Release v2025.12.18a)",
Year = "2024",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
note="\url{https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2025.12.18a.pdf}",
}
@unpublished{PaulEMcKenney2023KRperfbook-cpu,
Author="Paul E. McKenney",
Title="Hardware and its Concurrency Habits",
year="2023",
note="Slides: \url{https://speakerdeck.com/ennael/hardware-and-its-concurrency-habits}
Video: \url{https://www.youtube.com/watch?v=RjJG3LitNJQ&list=PLQ8PmP_dnN7Ida3J3tzO-yqrxuF-yEQtI&index=12}",
}
@unpublished{PaulEMcKenney2024KRperfbook-count,
Author="Paul E. McKenney",
Title="Case Study: Concurrent Counting",
year="2024",
note="\url{https://kernel-recipes.org/en/2024/schedule/case-study-concurrent-counting/}",
}
@unpublished{PaulEMcKenney2025KRperfbook-intro-smpdesign,
Author="Paul E. McKenney",
Title="Breaking Up is Hard to Do",
year="2025",
note="\url{https://kernel-recipes.org/en/2025/schedule/breaking-up-is-hard-to-do/}",
}
@book{McKenney2021ParallelProgramming-e2,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (Second Edition)",
Year = "2021",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
note="\url{https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook-e2.html}
Current version: \url{https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html}",
}
@book{McKenney2014ParallelProgramming-e1,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (First Edition)",
Year = "2014",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
note="\url{https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook-e1.html}
Current version: \url{https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html}",
}
@book{McKenney2021ParallelProgramming-2021-12-22a,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (2021.12.22a Release)",
Year = "2021",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
note="\url{http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2021.12.22a.pdf}
Current version: \url{https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html}",
}
@book{McKenney2019ParallelProgramming-2019-12-22a,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (2019.12.22a Release)",
Year = "2019",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
url="https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2019.12.22a.pdf",
}
@book{McKenney2018ParallelProgramming-2018-12-08a,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It? (2018.12.08a Release)",
Year = "2018",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
url="https://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2018.12.08a.pdf",
}
@book{McKenney2008ParallelProgramming,
Author = "Paul E. McKenney",
Title = "Is Parallel Programming Hard, And, If So, What Can You Do About It?",
Year = "2012",
Publisher = "kernel.org",
Address = "Corvallis, OR, USA",
}
@unpublished{StewartWeiss2013UNIX,
Author="Stewart Weiss",
Title="UNIX Lecture Notes",
month="May",
year="2013",
day="9",
note="Available:
\url{http://www.compsci.hunter.cuny.edu/~sweiss/course_materials/unix_lecture_notes/}
[Viewed April 8, 2014]",
}
@book{Hanson:2013:NCM:2568149,
author = {Hanson, Richard J. and Hopkins, Tim},
title = {Numerical Computing With Modern Fortran},
year = {2013},
isbn = {1611973112, 9781611973112},
publisher = {SIAM},
}
@unpublished{DevAndroidCom2014SMP,
Author="developer.android.com",
Title="SMP Primer for Android",
month="February",
year="2014",
day="24",
note="Available:
\url{http://developer.android.com/training/articles/smp.html}
[Viewed February 24, 2014]",
}
@book{RainerGrimm2017C++Concurrency,
Author = "Rainer Grimm",
Title = "Concurrency with Modern {C++}",
Year = "2017",
Publisher = "Leanpub",
isbn = "ISBN 9-798873-420933",
}
@unpublished{PaoloBonzini2021lockless1,
Author="Paolo Bonzini",
title = "An introduction to lockless algorithms",
month="February",
day="19",
year="2021",
note="Available:
\url{https://lwn.net/Articles/844224/}
[Viewed February 19, 2021]",
}
@unpublished{PaoloBonzini2021lockless2,
Author="Paolo Bonzini",
title = "Lockless patterns: relaxed access and partial memory barriers",
month="February",
day="26",
year="2021",
note="Available:
\url{https://lwn.net/Articles/846700/}
[Viewed February 27, 2021]",
}
@unpublished{PaoloBonzini2021lockless3,
Author="Paolo Bonzini",
title = "Lockless patterns: full memory barriers",
month="March",
day="5",
year="2021",
note="Available:
\url{https://lwn.net/Articles/847481/}
[Viewed March 8, 2021]",
}
@unpublished{PaoloBonzini2021lockless4,
Author="Paolo Bonzini",
title = "Lockless patterns: an introduction to compare-and-swap",
month="March",
day="12",
year="2021",
note="Available:
\url{https://lwn.net/Articles/847973/}
[Viewed March 13, 2021]",
}
@unpublished{PaoloBonzini2021lockless5,
Author="Paolo Bonzini",
title = "Lockless patterns: more read-modify-write operations",
month="March",
day="19",
year="2021",
note="Available:
\url{https://lwn.net/Articles/849237/}
[Viewed March 19, 2021]",
}
@unpublished{PaoloBonzini2021lockless6,
Author="Paolo Bonzini",
title = "Lockless patterns: some final topics",
month="March",
day="29",
year="2021",
note="Available:
\url{https://lwn.net/Articles/850202/}
[Viewed March 19, 2021]",
}
@book{PekkaEnberg2026Latency,
Author = "Pekka Enberg",
Title = "Latency: Reduce delay in software systems",
Year = "2026",
Publisher = "Manning",
isbn = "ISBN-13 978-1-63343-808-8",
}
@article{Lampson1980Mesa,
author = {Butler W. Lampson and David D. Redell},
title = {Experience with Processes and Monitors in {Mesa}},
journal = {Communications of the ACM},
volume = {23},
number = {2},
year = {1980},
issn = {0001-0782},
pages = {105-117},
doi = {10.1145/358818.358824},
publisher = {ACM Press},
address = {New York, NY, USA},
}
@article{Sha1990IEEETransComp,
author = {L. Sha and R. Rajkumar and J. P. Lehoczky},
title = {Priority Inheritance Protocols: An Approach to Real-Time Synchronization},
journal = {IEEE Trans. Comput.},
volume = {39},
number = {9},
year = {1990},
issn = {0018-9340},
pages = {1175--1185},
doi = {10.1109/12.57058},
publisher = {IEEE Computer Society},
address = {Washington, DC, USA},
}
@inproceedings{Takada:1995:RSN:527074.828566,
author = {Takada, H. and Sakamura, K.},
title = {Real-time Scalability of Nested Spin Locks},
booktitle = {Proceedings of the 2nd International Workshop on Real-Time Computing Systems and Applications},
series = {RTCSA '95},
year = {1995},
location = {Tokyo, Japan},
isbn = {0-8186-7106-8},
pages = {160--167},
url = {http://dl.acm.org/citation.cfm?id=527074.828566},
acmid = {828566},
publisher = {IEEE Computer Society},
address = {Washington, DC, USA},
keywords = {interprocessor synchronizations, maximum execution times, maximum nesting level, nested spin locks, performance evaluation, performance measurements, real-time scalability, real-time system, real-time systems, shared memory systems, shared-memory multiprocessor, synchronisation, worst-case performance},
doi="10.1109/RTCSA.1995.528766",
}
@inproceedings{Cai-DongWang1996PrioInherLock,
author = {Cai-Dong Wang and Hiroaki Takada and Ken Sakamura},
title = {Priority Inheritance Spin Locks for Multiprocessor Real-Time Systems},
booktitle = {Proceedings of the 2nd International Symposium on Parallel Architectures, Algorithms, and Networks},
location = {Beijing, China},
series = {ISPAN '96},
year = {1996},
pages = {70--76},
publisher = {IEEE Computer Society},
address = {Washington, DC, USA},
doi = {10.1109/ISPAN.1996.508963},
}
@unpublished{Victor2002a,
Author="Victor Yodaiken",
Title="Against Priority Inheritance",
month="July",
year="2002",
day="10",
note="URL:
\nolinkurl{http://www.linuxdevices.com/articles/AT7168794919.html}
[broken, February 2017]",
}
@unpublished{DougLocke2002a,
Author="Doug Locke",
Title="Priority Inheritance: The Real Story",
month="July",
year="2002",
day="16",
note="URL:
\nolinkurl{http://www.linuxdevices.com/articles/AT5698775833.html}
[broken, November 2016],
page capture available at \url{https://www.math.unipd.it/%7Etullio/SCD/2007/Materiale/Locke.pdf}",
lastchecked="February 7, 2016",
}
@unpublished{Yodaiken2004FSM,
Author="Victor Yodaiken",
Title="Against priority inheritance",
Month="September",
Year="2004",
note="Available:
\url{https://www.yodaiken.com/papers/inherit.pdf}
[Viewed May 26, 2007]",
}
@unpublished{JonathanCorbet2006PriorityInheritance,
Author="Jonathan Corbet",
Title="Priority inheritance in the kernel",
month="April",
year="2006",
day="3",
note="Available:
\url{https://lwn.net/Articles/178253/}
[Viewed June 29, 2009]",
}
@unpublished{StevenRostedt2006piFutexes,
author="Steven Rostedt",
title="Lightweight {PI-futexes}",
Year="2006",
Month="June",
note="Available:
\url{https://www.kernel.org/doc/html/latest/locking/pi-futex.html}
[Viewed February 14, 2021]",
}
@article{Anderson90,
author="T. E. Anderson",
title="The Performance of Spin Lock Alternatives for Shared-Memory
Multiprocessors",
Year="1990",
Month="January",
journal="IEEE Transactions on Parallel and Distributed Systems",
volume="1",
number="1",
pages="6-16",
doi="10.1109/71.80120",
}
@article{Graunke90,
author="Gary Graunke and Shreekant Thakkar",
title="Synchronization Algorithms for Shared-Memory Multiprocessors",
Year="1990",
Month="June",
journal="IEEE Computer",
volume="23",
number="6",
pages="60-69",
doi="10.1109/2.55501",
}
@article{MellorCrummey91a,
author="John M. Mellor-Crummey and Michael L. Scott",
title="Algorithms for Scalable Synchronization on Shared-Memory
Multiprocessors",
Year="1991",
Month="February",
journal="Transactions of Computer Systems",
volume="9",
number="1",
pages="21--65",
doi="10.1145/103727.103729",
}
@conference{MellorCrummey91,
author="John M. Mellor-Crummey and Michael L. Scott",
title="Scalable Reader-Writer Synchronization for Shared-Memory
Multiprocessors",
booktitle="Proceedings of the Third PPOPP",
Year="1991",
Month="April",
pages="106-113",
address="Williamsburg, VA",
}
@techreport{Takada93,
author="Hiroaki Takada and Ken Sakamura",
title="A Bounded Spin Lock Algorithm with Preemption",
institution="University of Tokyo",
address="Tokyo, Japan",
year="1993",
number="93-02",
url="https://library.t.u-tokyo.ac.jp/cslib/tech-reports/TR93-02.ps.gz",
lastchecked="February 15, 2021",
}
@techreport{Craig93,
author="Travis Craig",
title="Building {FIFO} and Priority-Queuing Spin Locks from Atomic Swap",
institution="University of Washington",
address="Seattle, Washington",
year="1993",
number="93-02-02",
month="February",
pages="29",
url="ftp://ftp.cs.washington.edu/tr/1993/02/UW-CSE-93-02-02.pdf",
lastchecked="November 12, 2016",
}
@article{BengHongLim93,
author="Beng-Hong Lim and Anant Agarwal",
title="Waiting Algorithms for Synchronization in Large-Scale Multiprocessors",
Year="1993",
Month="August",
journal="Transactions on Computer Systems",
volume="11",
number="3",
pages="253-294",
}
@techreport{Magnusson94,
author="Peter Magnusson and Anders Landin and Erik Hagersten",
title="Efficient Software Synchronization on Large Cache Coherent
Multiprocessors",
institution="Swedish Institute of Computer Science",
address="Kista, Sweden",
year="1994",
number="T94:07",
month="February",
pages="32",
url="http://dl.acm.org/citation.cfm?id=869729",
lastchecked="November 13, 2016",
}
@article{Zhang94,
author="Xiaodong Zhang and Robert Casteneda and Elisa W. Chan",
title="Spin-Lock Synchronization on the {Butterfly} and {KSR1}",
Year="1994",
Month="Spring",
journal="{IEEE} Parallel and Distributed Technology Systems and Applications",
volume="2",
number="1",
pages="51-63",
}
@inproceedings{BengHongLim94,
author="Beng-Hong Lim and Anant Agarwal",
title="Reactive Synchronization Algorithms for Multiprocessors",
booktitle="Proceedings of the sixth international conference on Architectural support for programming languages and operating systems",
series="ASPLOS VI",
location="San Jose, California, USA",
pages="25--35",
publisher="{ACM}",
address="New York, NY, USA",
Year="1994",
Month="October",
doi="10.1145/195473.195490",
}
@conference{Wisniewski94,
author="Robert W. Wisniewski and Leonidas Kontothanassis and Michael L. Scott",
title="Scalable Spin Locks for Multiprogrammed Systems",
year="1994",
month="April",
booktitle="8\textsuperscript{th} IEEE Int'l. Parallel Processing Symposium",
address="Cancun, Mexico",
publisher="The Institute of Electrical and Electronics Engineers, Inc.",
doi="10.1109/IPPS.1994.288245",
}
@Conference{MichaelLScott2001QlockTimeout,
Author="Michael L. Scott and William N. Scherer III",
Title="Scalable Queue-Based Spin Locks with Timeout",
Booktitle="{Proceedings of the eighth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming}",
series={PPoPP '01},
Month="June",
Year="2001",
pages="44--52",
url={http://doi.acm.org/10.1145/379539.379566},
publisher="ACM",
address="New York, NY, USA",
}
@techreport{BenJackson02,
author="Benedict Joseph Jackson and Paul E. McKenney and
Ramakrishnan Rajamony and Ronald Lynn Rockhold",
title="Scalable Interruptible Queue Locks for Shared-Memory Multiprocessor",
institution="Assigned to International Business Machines Corporation",
address="Washington, DC",
year="2002",
type="US Patent",
number="6,473,819",
month="October",
url="https://www.google.com/patents/US6473819",
lastchecked="December 7, 2016",
}
@techreport{McKenney02d,
author="Paul E. McKenney and Kevin A. Closson and Raghupathi Malige",
title="Lingering Locks with Fairness Control for Multi-Node Computer Systems",
institution="Assigned to International Business Machines Corporation",
address="Washington, DC",
year="2002",
type="US Patent",
number="6,480,918",
month="November",
url="https://www.google.com/patents/US6480918",
lastchecked="December 7, 2016",
}
@inproceedings{McKenney02e,
author={S. Swaminathan and John Stultz and Jack Vogel and Paul E. McKenney},
title="Fairlocks -- A High Performance Fair Locking Scheme",
booktitle="Proceedings of the 14\textsuperscript{th} {IASTED} International
Conference on Parallel and Distributed Computing and Systems",
pages={246--251},
year=2002,
address="Cambridge, MA, USA",
month="November",
url="https://www.researchgate.net/publication/221569047_Fairlocks_A_High_Performance_Fair_Locking_Scheme",
lastchecked="November 16, 2016",
}
@inproceedings{radovic02efficient,
author="Zoran Radovi{\'c} and Erik Hagersten",
title="Efficient Synchronization for Nonuniform Communication Architectures",
booktitle="Proceedings of the 2002 ACM/IEEE Conference on Supercomputing",
publisher="The Institute of Electrical and Electronics Engineers, Inc.",
year=2002,
pages="1-13",
address="Baltimore, Maryland, USA",
month="November",
doi="10.1109/SC.2002.10038",
}
@inproceedings{radovic03hierarchical,
author={Zoran Radovi{\'c} and Erik Hagersten},
title="Hierarchical Backoff Locks for Nonuniform Communication Architectures",
booktitle="Proceedings of the Ninth International Symposium on
High Performance Computer Architecture ({HPCA-9})",
year=2003,
address="Anaheim, California, USA",
month="February",
pages="241-252",
doi="10.1109/HPCA.2003.1183542",
}
@techreport{LukeBrowning2005SimpleLockNUMAAware,
author="Luke Browning and Thomas Mathews and Paul E. McKenney and James Moody",
title="Apparatus, Method, and Computer Program Product for Converting
Simple Locks in a Multiprocessor System",
institution="Assigned to International Business Machines Corporation",
address="Washington, DC",
year="2005",
type="US Patent",
number="6,842,809",
month="January",
url="https://www.google.com/patents/US6842809",
lastchecked="December 7, 2016",
}
@inproceedings{YossiLev2009SNZIrwlock,
author = {Yossi Lev and Victor Luchangco and Marek Olszewski},
title = {Scalable reader-writer locks},
booktitle = {SPAA '09: Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures},
year = {2009},
isbn = {978-1-60558-606-9},
pages = {101--110},
location = {Calgary, AB, Canada},
doi = {10.1145/1583991.1584020},
publisher = {ACM},
address = {New York, NY, USA},
}
@inproceedings{SilasBoyd-Wickizer2012scalablelocks,
author="Silas Boyd-Wickizer and M. Frans Kaashoek and Robert Morris and Nickolai Zeldovich",
title="Non-scalable locks are dangerous",
booktitle="Proceedings of the Linux Symposium (OLS 2012)",
pages={???-???},
year=2012,
address="Ottawa, Canada",
month="July",
url={http://pdos.csail.mit.edu/papers/linux:lock.pdf},
}
@article{DavidDice2012NUMAlock2,
author = {Dice, David and Marathe, Virendra J. and Shavit, Nir},
title = {Lock cohorting: a general technique for designing NUMA locks},
year = {2012},
issue_date = {August 2012},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {47},
number = {8},
issn = {0362-1340},
url = {https://doi.org/10.1145/2370036.2145848},
doi = {10.1145/2370036.2145848},
journal = {SIGPLAN Not.},
month = {feb},
pages = {247–256},
numpages = {10},
keywords = {NUMA, hierarchical locks, spin locks}
}
@inproceedings{DavidDice2012NUMAlock1,
author = {Dice, David and Marathe, Virendra J. and Shavit, Nir},
title = {Lock cohorting: a general technique for designing NUMA locks},
year = {2012},
isbn = {9781450311601},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/2145816.2145848},
doi = {10.1145/2145816.2145848},
booktitle = {Proceedings of the 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming},
pages = {247–256},
numpages = {10},
keywords = {NUMA, hierarchical locks, spin locks},
location = {New Orleans, Louisiana, USA},
series = {PPoPP '12}
}
@article{Courtois71,
author="P. J. Courtois and F. Heymans and D. L. Parnas",
title="Concurrent Control with ``Readers'' and ``Writers''",
Year="1971",
Month="October",
journal="Communications of the {ACM}",
volume="14",
number="10",
pages="667--668",
doi="10.1145/362759.362813",
}
@article{Snaman87,
author="William E. Snaman and David W. Thiel",
title="The {VAX/VMS} Distributed Lock Manager",
Year="1987",
Month="September",
journal="Digital Technical Journal",
volume="5",
pages="29-44",
}
@article{Reiman91,
author="Martin I. Reiman and Paul E. Wright",
title="Performance Analysis of Concurrent-Read Exclusive-Write",
Year="1991",
Month="February",
journal="{ACM}",
pages="168-177",
}
@techreport{Hsieh91,
author="Wilson C. Hsieh and William E. Weihl",
title="Scalable Reader-Writer Locks for Parallel Systems",
institution="MIT Laboratory for Computer Science",
address="Cambridge, MA",
year="1991",
number="MIT/LCS/TR-521",
note="Available:
\url{http://www.lcs.mit.edu/publications/pubs/pdf/MIT-LCS-TR-521.pdf}
[Viewed January 26, 2009]",
}
@article{Andrews91,
author="Gregory R. Andrews",
title="Paradigms for Process Interaction in Distributed Programs",
Year="1991",
journal="ACM Computing Surveys:",
volume="23",
number="1",
issn="0360-0300",
pages="49-90",
publisher="{ACM Press}",
}
@inproceedings{WilsonCHsieh92a,
author={Wilson C. Hsieh and William E. Weihl},
title="Scalable Reader-Writer Locks for Parallel Systems",
booktitle="Proceedings of the 6\textsuperscript{th} International Parallel
Processing Symposium",
pages={216--230},
year=1992,
address="Beverly Hills, CA, USA",
month="March",
doi="10.1109/IPPS.1992.222989",
}
@article{Slingwine93,
author="Jack Slingwine and Mark Sweiger and Dave Wolfe and Catharine Kristian",
title="Sequent Distributed Lock Manager Adds High Availability for ORACLE7
Parallel Server on UNIX",
Year="1987",
Month="September",
journal="??????????",
}
@inproceedings{10.1145/800212.806505,
author = {Easton, William B.},
title = {Process Synchronization without Long-Term Interlock},
year = {1971},
isbn = {9781450378604},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/800212.806505},
doi = {10.1145/800212.806505},
booktitle = {Proceedings of the Third ACM Symposium on Operating Systems Principles},
pages = {95--100},
numpages = {6},
location = {Palo Alto, California, USA},
series = {SOSP '71},
}
@article{10.1145/359863.359878,
author = {Lamport, Leslie},
title = {Concurrent Reading and Writing},
year = {1977},
issue_date = {Nov. 1977},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {20},
number = {11},
issn = {0001-0782},
url = {https://doi.org/10.1145/359863.359878},
doi = {10.1145/359863.359878},
journal = {Commun. ACM},
month = nov,
pages = {806--811},
numpages = {6},
keywords = {readers/writers problem, shared data, multiprocess synchronization, asynchronous multiprocessing},
}
@unpublished{JonathanCorbet2003seqlock,
Author="Jonathan Corbet",
Title="Driver porting: mutual exclusion with seqlocks",
month="February",
day="14",
year="2003",
note="\url{https://lwn.net/Articles/22818/}",
}
@unpublished{SamyAlBahra2011ckseqlock,
author="Samy Al Bahra",
title="ck\_sequence.h",
Year="2011",
Month="February",
Day="20",
Note="Sequence locking: \url{https://github.com/concurrencykit/ck/blob/master/include/ck_sequence.h}",
}
@unpublished{HansBoehm2012seqlockC11,
author="Hans-J. Boehm",
title="Can Seqlocks Get Along With Programming Language Memory Models?",
Year="2012",
Month="June",
Day="6",
Note="HPL-2012-68",
url={http://www.hpl.hp.com/techreports/2012/HPL-2012-68.pdf},
}
@unpublished{PaoloBonzini2013QEMUseqlock,
author="Paolo Bonzini",
title="seqlock: introduce read-write seqlock",
Year="2013",
Month="September",
Day="24",
Note="\url{https://git.qemu.org/?p=qemu.git;a=commit;h=ea753d81e8b085d679f13e4a6023e003e9854d51}",
}
@unpublished{AlexisMenard2016ChromiumSeqLock,
author="Alexis Menard",
title="Move {OneWriterSeqLock} and {SharedMemorySeqLockBuffer} from content/ to device/base/synchronization",
Year="2016",
Month="September",
Day="30",
Note="\url{https://source.chromium.org/chromium/chromium/src/+/b39a3082846d5877a15e8b7e18d66cb142abe8af}",
}
@unpublished{DavidGoldblatt2018seqlock,
author="David Goldblatt",
title="Add the {Seq} module, a simple seqlock implementation",
Year="2018",
Month="April",
Day="18",
Note="\url{https://github.com/jemalloc/jemalloc/tree/06a8c40b36403e902748d3f2a14e6dd43488ae89}",
}
@unpublished{DmitryVyukov2019,
author="Dmitry Vyukov",
title="Improved Lockfree {SeqLock}",
Year="2019",
Month="March",
Day="12",
Note="\url{http://www.1024cores.net/home/lock-free-algorithms/reader-writer-problem/improved-lock-free-seqlock}",
}
@manual{Windows2008FlushProcessWriteBuffers,
title="{FlushProcessWriteBuffers} function",
organization="Microsoft",
year="2008",
number="nf-processthreadsapi-flushprocesswritebuffers",
note="\url{https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-flushprocesswritebuffers}",
}
@unpublished{JonathanCorbet2010sys-membarrier,
Author="Jonathan Corbet",
Title="sys\_membarrier()",
month="January",
day="13",
year="2010",
note="\url{https://lwn.net/Articles/369567/}",
}
@unpublished{Linuxmanpage2018sys-membarrier,
Author="Jonathan Corbet",
Title="membarrier(2)",
month="October",
day="22",
year="2018",
note="\url{https://man7.org/linux/man-pages/man2/membarrier.2.html}",
}
@unpublished{DavidGoldblatt2018asymmetricFences,
Author="David Goldblatt",
Title="P1202: Asymmetric fences",
month="October",
day="10",
year="2018",
note="\url{http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1202r0.pdf}",
}
@unpublished{DavidGoldblatt2022asymmetricFences,
Author="David Goldblatt",
Title="P1202R5: Asymmetric fences",
month="November",
day="12",
year="2022",
note="\url{https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1202r5.pdf}",
nnotation={
Initial proposal for C++.
},
}
@article{HerbSutter2005FreeLunchOver,
author="Herb Sutter",
title="The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software",
Year="2005",
Month="March",
journal="Dr. Dobb's Journal",
volume="30",
number="3",
note="Available:
\url{http://www.gotw.ca/publications/concurrency-ddj.htm}
[Viewed January 1, 2009]",
}
@article{Cantrill:2008:RC:1454456.1454462,
author = {Cantrill, Bryan and Bonwick, Jeff},
title = {Real-World Concurrency},
journal = {Queue},
issue_date = {September 2008},
volume = {6},
number = {5},
month = sep,
year = {2008},
issn = {1542-7730},
pages = {16--25},
numpages = {10},
url = {http://doi.acm.org/10.1145/1454456.1454462},
doi = {10.1145/1454456.1454462},
acmid = {1454462},
publisher = {ACM},
address = {New York, NY, USA},
}
@techreport{PaulEMcKenney2009ProgrammingHard,
author="Paul E. McKenney and Manish Gupta and Maged M. Michael and Phil Howard and Joshua Triplett and Jonathan Walpole",
title="Is Parallel Programming Hard, And If So, Why?",
institution="Portland State University",
address="Portland, OR, USA",
year="2009",
number="TR-09-02",
month="February",
pages="5",
note="URL:
\url{https://archives.pdx.edu/ds/psu/10386}
[Viewed February 13, 2021]",
}
@unpublished{PaulEMcKenney2009Supercomputing,
author="Paul E. McKenney",
title="Teach Parallel",
Year="2009",
Month="December",
Day="15",
Note="http://blip.tv/intel-software-network-tv/paul-mckenney-teach-parallel-at-sc09-2997461",
}
@article{DavidAPatterson2010TroubleMulticore,
author = {David Patterson},
title = {The Trouble With Multicore},
journal = {IEEE Spectrum},
volume = {2010},
issue = {7},
month = {July},
year = {2010},
pages = {28--32, 52--53},
numpages = {?},
url = {https://spectrum.ieee.org/computing/software/the-trouble-with-multicore},
publisher = {IEEE},
address = {Los Alamitos, CA, USA},
}
@unpublished{PaulEMcKenney2011ASDF:IPPHAISWCYDAI,
author="Paul E. McKenney",
title="Is Parallel Programming Hard, And If So, What Can You Do About It?",
Year="2011",
Month="April",
Day="29",
Note="http://www.rdrop.com/users/paulmck/scalability/paper/IsParallelProgrammingHard.ASDF.2011.04.27a.pdf",
}
@unpublished{PaulEMcKenney2011SeidnerInterview,
author="Rich Seidner",
title="Why Is Parallel Programming So Hard",
Year="2011",
Month="August",
Note="Available:
\url{https://intelligenceinsoftware.com/WhyIsParallelProgrammingSoHard/}",
lastchecked="August 3, 2023",
ArchiveURL="https://web.archive.org/web/20120428171918/http://www.intelligenceinsoftware.com/feature/expert_insight/why_is_parallel_programming_so_hard/#.T5wmq7J_r2c",
}
@inproceedings{DavidUngar2011unsync,
author={David Ungar},
title="Everything You Know (about Parallel Programming) Is Wrong!: A Wild Screed about the Future",
booktitle="Dynamic Languages Symposium 2011",
year=2011,
address="Portland, OR, USA",
month="October",
url="http://dynamic-languages-symposium.org/dls-11/program/media/Ungar_2011_EverythingYouKnowAboutParallelProgrammingIsWrongAWildScreedAboutTheFuture_Dls.pdf",
lastchecked="November 23, 2016",
note="Invited talk presentation",
}
@unpublished{PaulEMcKenney2012EmptyLocks,
Author="Paul E. McKenney",
Title="Transactional Memory Everywhere: Hardware Transactional Lock Elision",
month="May",
year="2012",
day="19",
note="Available:
\url{https://paulmck.livejournal.com/32267.html}
[Viewed January 28, 2021]",
}
@inproceedings{PaulEMcKenney2012HOTPARsuboptimal,
author={Paul E. McKenney},
title="Retrofitted Parallelism Considered Grossly Sub-Optimal",
booktitle="4\textsuperscript{th} USENIX Workshop on Hot Topics on Parallelism",
pages={7},
year=2012,
address="Berkeley, CA, USA",
month="June",
url={https://www.usenix.org/conference/hotpar12/retro%EF%AC%81tted-parallelism-considered-grossly-sub-optimal},
}
@inproceedings{McKenney:2012:BEP:2414729.2414734,
author = {McKenney, Paul E.},
title = {Beyond expert-only parallel programming?},
booktitle = {Proceedings of the 2012 ACM workshop on Relaxing synchronization for multicore and manycore scalability},
series = {RACES '12},
year = {2012},
isbn = {978-1-4503-1632-3},
location = {Tucson, Arizona, USA},
pages = {25--32},
numpages = {8},
url = {http://doi.acm.org/10.1145/2414729.2414734},
doi = {10.1145/2414729.2414734},
acmid = {2414734},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {acculturation, economics, linux kernel, tooling},
}
@unpublished{LucMaranget2012Tutorial,
author="Luc Maranget and Susmit Sarkar and Peter Sewell",
title="A Tutorial Introduction to the {ARM} and {POWER} Relaxed Memory Models",
Year="2012",
Month="October",
Note="\url{https://www.cl.cam.ac.uk/~pes20/ppc-supplemental/test7.pdf}",
}
@unpublished{MatthewWilcox2022MapleTree,
author="Matthew Wilcox",
title="The Linux Maple Tree",
Year="2019",
Month="August",
Note="Open Source Summit North America \url{https://events19.linuxfoundation.org/events/open-source-summit-north-america-2019/program/schedule/}",
}
@unpublished{LiamHowlett2022mmap-lock,
author="Liam Howlett and Suren Baghdasaryan and Michel Lespinasse",
title="Scalability solutions for the mmap\_lock - {Maple} {Tree} and {per-VMA} locks",
Year="2023",
Month="September",
Note="Linux Plumbers Conference \url{https://lpc.events/event/16/contributions/1271/}",
}
@unpublished{LiamHowlett2022MapleTree,
author="Liam Howlett",
title="The Maple Tree",
Year="2023",
Month="September",
Note="Linux Plumbers Conference \url{https://lpc.events/event/16/contributions/1226/}",
}