Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Recording shared memory dependencies using strata

Published: 20 October 2006 Publication History

Abstract

Significant time is spent by companies trying to reproduce and fix bugs. BugNet and FDR are recent architecture proposals that provide architecture support for deterministic replay debugging. They focus on continuously recording information about the program's execution, which can be communicated back to the developer. Using that information, the developer can deterministically replay the program's execution to reproduce and fix the bugs.In this paper, we propose using Strata to efficiently capture the shared memory dependencies. A stratum creates a time layer across all the logs for the running threads, which separates all the memory operations executed before and after the stratum. A strata log allows us to determine all the shared memory dependencies during replay and thereby supports deterministic replay debugging for multi-threaded programs.

References

[1]
D.F. Bacon and S.C. Goldstein. Hardware assisted replay of multiprocessor programs. In Proceedings of the 1991 ACM/ONR Workshop on Parallel and Distributed Debugging, pages 194--206. ACM Press, 1991.]]
[2]
J. Choi and H. Srinivasan. Deterministic replay of java multithreaded applications. In Proceedings of the SIGMETRICS Symposium on Parallel and Distributed Tools, pp. 48--59, Welches, Oregon, 1998.]]
[3]
T.J. LeBlanc and J.M. Mellor-Crummey. Debugging parallel programs with instant replay. IEEE Transaction on Computers, 36(4):471--482, 1987.]]
[4]
C.K Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V.J. Reddi, and K. Hazelwood. Pin: Building customized program analysis tools with dynamic instrumentation. In Programming Language Design and Implementation, Chicago, IL, June 2005.]]
[5]
S. Magnusson, M. Christensson, J. Eskilson, D. Forsgren, G. Hå, J. Hö F. Larsson, A. Moestedt, and B. Werner. Simics: A full system simulation platform. IEEE Computer, 35(2):50--58, 2002.]]
[6]
S. Narayanasamy, G. Pokam, and B. Calder. Bugnet: Continuously recording program execution for deterministic replay debugging. In 32nd Annual International Symposium on Computer Architecture, June 2005.]]
[7]
R.H.B. Netzer. Optimal tracing and replay for debugging sharedmemory parallel programs. In Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging, pages 1--11, 1993.]]
[8]
M. Prvulovic. Cord: Cost-effective (and nearly overhead-free) orderrecording and data race detection. In International Symposium on High-Performance Computer Architecture, Feb 2005.]]
[9]
M. Prvulovic and J. Torrelas. Reenact: Using thread-level speculation mechanisms to debug data races in multithreaded codes. In 30th Annual International Symposium on Computer Architecture, San Diego, CA, June 2003.]]
[10]
S. Sethumadhavan, R. Desikan, D. Burger, C.R. Moore, and S.W. Kecler. Scalable hardware memory disambiguation for high ilp processors. In International Symposium on Microarchitecture, 2004.]]
[11]
D.J. Sorin, M.M.K. Martin, M.D. Hill, and D.A. Wood. Safetynet: Improving the availability of shared-memory multiprocessors with global checkpoint/recovery. In Proceedings of the 29th Annual International Symposium on Computer Architecture, pages 123--134, 2002.]]
[12]
S.C. Woo, M. Ohara, E. Torrie, J.P. Singh, and A. Gupta. The splash-2 programs: Characterization and methodological considerations. In 22nd Annual International Symposium on Computer Architecture, pages 24--36, 1995.]]
[13]
M. Xu, R. Bodik, and M. Hill. A flight data recorder for enabling full-system multiprocessor deterministic replay. In 30th Annual International Symposium on Computer Architecture, San Diego, CA, 2003.]]

Cited By

View all

Index Terms

  1. Recording shared memory dependencies using strata

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 41, Issue 11
    Proceedings of the 2006 ASPLOS Conference
    November 2006
    425 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1168918
    Issue’s Table of Contents
    • cover image ACM Conferences
      ASPLOS XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
      October 2006
      440 pages
      ISBN:1595934510
      DOI:10.1145/1168857
    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 20 October 2006
    Published in SIGPLAN Volume 41, Issue 11

    Check for updates

    Author Tags

    1. debugging
    2. dependencies
    3. logging
    4. replay
    5. shared memory
    6. strata

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)7
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 25 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2016)LDXACM SIGARCH Computer Architecture News10.1145/2980024.287239544:2(503-515)Online publication date: 25-Mar-2016
    • (2016)LDXACM SIGOPS Operating Systems Review10.1145/2954680.287239550:2(503-515)Online publication date: 25-Mar-2016
    • (2016)LDXACM SIGPLAN Notices10.1145/2954679.287239551:4(503-515)Online publication date: 25-Mar-2016
    • (2016)LDXProceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/2872362.2872395(503-515)Online publication date: 25-Mar-2016
    • (2015)Dual Execution for On the Fly Fine Grained Execution ComparisonACM SIGARCH Computer Architecture News10.1145/2786763.269439443:1(325-338)Online publication date: 14-Mar-2015
    • (2015)Dual Execution for On the Fly Fine Grained Execution ComparisonACM SIGPLAN Notices10.1145/2775054.269439450:4(325-338)Online publication date: 14-Mar-2015
    • (2015)Dual Execution for On the Fly Fine Grained Execution ComparisonProceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/2694344.2694394(325-338)Online publication date: 14-Mar-2015
    • (2015)LightPlay: Efficient Replay with GPUsLanguages and Compilers for Parallel Computing10.1007/978-3-319-17473-0_22(332-347)Online publication date: 1-May-2015
    • (2010)Runtime checking of serializability in software transactional memory2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS)10.1109/IPDPS.2010.5470389(1-12)Online publication date: Apr-2010
    • (2024)Aceso: Achieving Efficient Fault Tolerance in Memory-Disaggregated Key-Value StoresProceedings of the ACM SIGOPS 30th Symposium on Operating Systems Principles10.1145/3694715.3695951(127-143)Online publication date: 4-Nov-2024
    • 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

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media