Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/MICRO.2010.32acmconferencesArticle/Chapter ViewAbstractPublication PagesmicroConference Proceedingsconference-collections
Article

AtomTracker: A Comprehensive Approach to Atomic Region Inference and Violation Detection

Published: 04 December 2010 Publication History

Abstract

A particularly insidious type of concurrency bug is atomicity violations. While there has been substantial work on automatic detection of atomicity violations, each existing technique has focused on a certain type of atomic region. To address this limitation, this paper presents Atom Tracker, a comprehensive approach to atomic region inference and violation detection. Atom Tracker is the first scheme to (1) automatically infer generic atomic regions (not limited by issues such as the number of variables accessed, the number of instructions included, or the type of code construct the region is embedded in) and (2) automatically detect violations of them at runtime with negligible execution overhead. Atom Tracker provides novel algorithms to infer generic atomic regions and to detect atomicity violations of them. Moreover, we present a hardware implementation of the violation detection algorithm that leverages cache coherence state transitions in a multiprocessor. In our evaluation, we take eight atomicity violation bugs from real-world codes like Apache, MySql, and Mozilla, and show that Atom Tracker detects them all. In addition, Atom Tracker automatically infers all of the atomic regions in a set of micro benchmarks accurately. Finally, we also show that the hardware implementation induces a negligible execution time overhead of 0.2–4.0% and, therefore, enables Atom Tracker to find atomicity violations on-the-fly in production runs.

References

[1]
B. H. Bloom. Space/time trade-offs in hash coding with allowable errors. Commun. ACM, 13(7):422-426, 1970.
[2]
L. Ceze, J. Tuck, J. Torrellas, and C. Cascaval. Bulk disambiguation of speculative threads in multiprocessors. In International Symposium on Computer Architecture, June 2006.
[3]
C. Flanagan and S. N. Freund. Atomizer: A dynamic atomicity checker for multithreaded programs. In Symposium on Principles of Programming Languages, January 2004.
[4]
C. Flanagan and S. Qadeer. A type and effect system for atomicity. In Programming Language Design and Implementation, June 2003.
[5]
C. Hammer, J. Dolby, M. Vaziri, and F. Tip. Dynamic detection of atomic-set-serializability violations. In International Conference on Software Engineering, May 2008.
[6]
S. Lu, S. Park, C. Hu, X. Ma, W. Jiang, Z. Li, R. A. Popa, and Y. Zhou. MUVI: Automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs. In Symposium on Operating Systems Principles, October 2007.
[7]
S. Lu, S. Park, E. Seo, and Y. Zhou. Learning from mistakes: A comprehensive study on real world concurrency bug characteristics. In International Conference on Architectural Support for Programming Languages and Operating Systems, March 2008.
[8]
S. Lu, J. Tucek, F. Qin, and Y. Zhou. AVIO: Detecting atomicity violations via access interleaving invariants. In International Conference on Architectural Support for Programming Languages and Operating Systems, October 2006.
[9]
B. Lucia, L. Ceze, and K. Strauss. Finding concurrency bugs with context-aware communication graphs. In International Symposium on Computer Architecture, December 2009.
[10]
B. Lucia, L. Ceze, and K. Strauss. ColorSafe: Architectural support for debugging and dynamically avoiding multi-variable atomicity violations. In International Symposium on Computer Architecture, June 2010.
[11]
B. Lucia, J. Devietti, K. Strauss, and L. Ceze. Atom-Aid: Detecting and surviving atomicity violations. In International Symposium on Computer Architecture, June 2008.
[12]
C.-K. Luk et al. Pin: Building customized program analysis tools with dynamic instrumentation. In Conference on Programming Language Design and Implementation, June 2005.
[13]
T. Moseley, D. Grunwald, D. A. Connors, R. Ramanujam, V. Tovinkere, and R. Peri. LoopProf: Dynamic techniques for loop detection and profiling. In Workshop on Binary Instrumentation and Applications, October 2006.
[14]
A. Muzahid, D. Suárez, S. Qi, and J. Torrellas. SigRace: Signature-based data race detection. In International Symposium on Computer Architecture, June 2009.
[15]
C.-S. Park and K. Sen. Randomized active atomicity violation detection in concurrent programs. In International Symposium on Foundations of Software Engineering, November 2008.
[16]
Virtutech. Simics. http://www.simics.net/.
[17]
L. Wang and S. D. Stoller. Runtime analysis of atomicity for multithreaded programs. IEEE Trans. Softw. Eng., 2006.
[18]
M. Xu, R. Bodík, and M. D. Hill. A serializability violation detector for shared-memory server programs. In Conference on Programming Language Design and Implementation, June 2005.
[19]
J. Yu and S. Narayanasamy. A case for an interleaving constrained shared-memory multi-processor. In International Symposium on Computer Architecture, June 2009.

Cited By

View all
  • (2022)MetaSys: A Practical Open-source Metadata Management System to Implement and Evaluate Cross-layer OptimizationsACM Transactions on Architecture and Code Optimization10.1145/350525019:2(1-29)Online publication date: 24-Mar-2022
  • (2022)BiRD: Race Detection in Software Binaries under Relaxed Memory ModelsACM Transactions on Software Engineering and Methodology10.1145/349853831:4(1-29)Online publication date: 12-Jul-2022
  • (2019)Detecting concurrency memory corruption vulnerabilitiesProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338927(706-717)Online publication date: 12-Aug-2019
  • Show More Cited By

Index Terms

  1. AtomTracker: A Comprehensive Approach to Atomic Region Inference and Violation Detection

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      MICRO '43: Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture
      December 2010
      542 pages
      ISBN:9780769542997

      Sponsors

      Publisher

      IEEE Computer Society

      United States

      Publication History

      Published: 04 December 2010

      Check for updates

      Author Tags

      1. Atomic Region
      2. Atomicity Violation
      3. Concurrency Bug
      4. Hardware
      5. Signature

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate 484 of 2,242 submissions, 22%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 05 Mar 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2022)MetaSys: A Practical Open-source Metadata Management System to Implement and Evaluate Cross-layer OptimizationsACM Transactions on Architecture and Code Optimization10.1145/350525019:2(1-29)Online publication date: 24-Mar-2022
      • (2022)BiRD: Race Detection in Software Binaries under Relaxed Memory ModelsACM Transactions on Software Engineering and Methodology10.1145/349853831:4(1-29)Online publication date: 12-Jul-2022
      • (2019)Detecting concurrency memory corruption vulnerabilitiesProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338927(706-717)Online publication date: 12-Aug-2019
      • (2017)PARSNIPProceedings of the 50th Annual IEEE/ACM International Symposium on Microarchitecture10.1145/3123939.3123946(490-502)Online publication date: 14-Oct-2017
      • (2016)A Lightweight System for Detecting and Tolerating Concurrency BugsIEEE Transactions on Software Engineering10.1109/TSE.2016.253166642:10(899-917)Online publication date: 1-Oct-2016
      • (2015)A survey of race bug detection techniques for multithreaded programmesSoftware Testing, Verification & Reliability10.1002/stvr.156425:3(191-217)Online publication date: 1-May-2015
      • (2015)UNICORNSoftware Testing, Verification & Reliability10.1002/stvr.152325:3(167-190)Online publication date: 1-May-2015
      • (2014)Concurrency bug localization using shared memory access pairsACM SIGPLAN Notices10.1145/2692916.255527649:8(375-376)Online publication date: 6-Feb-2014
      • (2014)Localization of concurrency bugs using shared memory access pairsProceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering10.1145/2642937.2642972(611-622)Online publication date: 15-Sep-2014
      • (2014)AI: a lightweight system for tolerating concurrency bugsProceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2635868.2635885(330-340)Online publication date: 11-Nov-2014
      • 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