skip to main content
10.1145/1378533.1378585acmconferencesArticle/Chapter ViewAbstractPublication PagesspaaConference Proceedingsconference-collections
research-article

Dreadlocks: efficient deadlock detection

Published: 14 June 2008 Publication History

Abstract

We present Dreadlocks, an efficient new shared-memory spin lock that actively detects deadlocks. Instead of spinning on a Boolean value, each thread spins on the lock owner's per-thread digest, a compact representation of a portion of the lock's waits-for graph. Digests can be implemented either as bit vectors (for small numbers of threads) or as Bloom filters (for larger numbers of threads). Updates to digests are propagated dynamically as locks are acquired and released. Dreadlocks can be applied to any spin lock algorithm that allows threads to time out. Experimental results show that Dreadlocks outperform timeouts under many circumstances, and almost never do worse.

References

[1]
Bloom, B. H. Space/time trade-offs in hash coding with allowable errors. Communications of the ACM 13, 7 (1970), 422--426.
[2]
Broder, A., and Mitzenmacher, M. Network Applications of Bloom Filters: A Survey. Internet Mathematics 1, 4 (2004), 485--509.
[3]
Corbett, J. C. Evaluating deadlock detection methods for concurrent software. IEEE Trans. Softw. Eng. 22, 3 (1996), 161--180.
[4]
DeMartini, C., Iosif, R., and Sisto, R. A deadlock detection tool for concurrent java programs. Softw. Pract. Exper. 29, 7 (1999), 577--603.
[5]
Dice, D., Shalev, O., and Shavit, N. Transactional locking II. In Proceedings of the 20th International Symposium on Distributed Computing (DISC'06)(September 2006).
[6]
Dice, D., and Shavit, N. What really makes transactions fast. ACM SIGPLAN Workshop on Transactional Computing, Ottawa, ON, Canada, June(2006).
[7]
Ennals, R. Software transactional memory should not be obstruction-free. Unpublished manuscript, Intel Research Cambridge(2005).
[8]
Herlihy, M., and Koskinen, E. Transactional boosting: A methodology for highly concurrent transactional objects. In Proceedings of the 13th ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP'08)(2008).
[9]
Herlihy, M. P., and Wing, J. M. Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems (TOPLAS) 12, 3 (1990), 463--492.
[10]
Holzmann, G. The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, 2004.
[11]
Kaveh, N., and Emmerich, W. Deadlock detection in distribution object systems. SIGSOFT Softw. Eng. Notes 26, 5 (2001), 44--51.
[12]
Knapp, E. Deadlock detection in distributed databases. ACM Comput. Surv. 19, 4 (1987), 303--328.
[13]
Li, T., Ellis, C. S., Lebeck, A. R., and Sorin, D. J. Pulse: a dynamic deadlock detection mechanism using speculative execution. In ATEC'05: Proceedings of the USENIX Annual Technical Conference 2005 on USENIX Annual Technical Conference (Berkeley, CA, USA, 2005), USENIX Association, pp. 3--3.
[14]
Luecke, G., Zou, Y., Coyle, J., Hoekstra, J., and Kraeva, M. Deadlock detection in MPI programs. Concurrency and Computation: Practice and Experience 14, 11 (2002), 911--932.
[15]
Mikk, E., Lakhnech, Y., Siegel, M., and Holzmann, G. Implementing statecharts in PROMELA/SPIN. Industrial Strength Formal Specification Techniques, 1998. Proceedings. 2nd IEEE Workshop on (1998), 90--101.
[16]
Murata, T., Shenker, B., and Shatz, S. Detection of ada static deadlocks using petri net invariants. Transactions on Software Engineering 15, 3 (Mar 1989), 314--326.
[17]
Saha, B., Adl-Tabatabai, A., Hudson, R., Minh, C., and Hertzberg, B. McRT-STM: a high performance software transactional memory system for a multi-core runtime. Proceedings of the eleventh ACM SIGPLAN symposium on Principles and Practice of Parallel Programming (PPOPP'06)(2006), 187--197.
[18]
Scott, M. L. Non-blocking timeout in scalable queue-based spin locks. In PODC'02: Proceedings of the twenty-first annual symposium on Principles of distributed computing(New York, NY, USA, 2002), ACM Press, pp. 31--40.
[19]
Singhal, M. Deadlock detection in distributed systems. Computer 22, 11 (1989), 37--48.
[20]
Vetter, J. S., and de Supinski, B. R. Dynamic software testing of mpi applications with umpire. sc 00 (2000), 51.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPAA '08: Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
June 2008
380 pages
ISBN:9781595939739
DOI:10.1145/1378533
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bloom filters
  2. concurrency
  3. deadlock
  4. deadlock detection
  5. parallel programming
  6. transactional memory

Qualifiers

  • Research-article

Conference

SPAA08

Acceptance Rates

Overall Acceptance Rate 447 of 1,461 submissions, 31%

Upcoming Conference

SPAA '25
37th ACM Symposium on Parallelism in Algorithms and Architectures
July 28 - August 1, 2025
Portland , OR , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)4
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Encapsulated open nesting for STMProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295723(315-326)Online publication date: 16-Feb-2019
  • (2018)Pinpointing and repairing performance bottlenecks in concurrent programsEmpirical Software Engineering10.1007/s10664-017-9578-123:5(3034-3071)Online publication date: 1-Oct-2018
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsACM SIGPLAN Notices10.1145/3155284.301874752:8(299-312)Online publication date: 26-Jan-2017
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsProceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3018743.3018747(299-312)Online publication date: 26-Jan-2017
  • (2016)Mostly-optimistic concurrency control for highly contended dynamic workloads on a thousand coresProceedings of the VLDB Endowment10.14778/3015274.301527610:2(49-60)Online publication date: 1-Oct-2016
  • (2016)Locking Made EasyProceedings of the 17th International Middleware Conference10.1145/2988336.2988357(1-14)Online publication date: 28-Nov-2016
  • (2016)SyncProf: detecting, localizing, and optimizing synchronization bottlenecksProceedings of the 25th International Symposium on Software Testing and Analysis10.1145/2931037.2931070(389-400)Online publication date: 18-Jul-2016
  • (2016)Design Principles for Scaling Multi-core OLTP Under High ContentionProceedings of the 2016 International Conference on Management of Data10.1145/2882903.2882958(1583-1598)Online publication date: 26-Jun-2016
  • (2016)MagicDetector: A Precise and Scalable Static Deadlock Detector for C/C++ ProgramsArabian Journal for Science and Engineering10.1007/s13369-016-2205-441:12(5149-5167)Online publication date: 3-Jun-2016
  • (2015)Deadlock detection runtime service for Embedded Linux2015 IEEE 20th Conference on Emerging Technologies & Factory Automation (ETFA)10.1109/ETFA.2015.7301437(1-7)Online publication date: Sep-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media