Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2337223.2337328acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Stride: search-based deterministic replay in polynomial time via bounded linkage

Published: 02 June 2012 Publication History

Abstract

Abstract Deterministic replay remains as one of the most effective ways to comprehend concurrent bugs. Existing approaches either maintain the exact shared read-write linkages with a large runtime overhead or use exponential off-line algorithms to search for a feasible interleaved execution. In this paper, we propose Stride, a hybrid solution that records the bounded shared memory access linkages at runtime and infers an equivalent interleaving in polynomial time, under the sequential consistency assumption. The recording scheme eliminates the need for synchronizing the shared read operations, which results in a significant overhead reduction. Comparing to the previous state-of-the-art approach of deterministic replay, Stride reduces, on average, 2.5 times of runtime overhead and produces, on average, 3.88 times smaller logs.

References

[1]
S. T. King, G. W. Dunlap, and P. M. Chen, "Debugging operating systems with time-traveling virtual machines," ser. ATEC '05, 2005.
[2]
S. M. Srinivasan, S. Kandula, C. R. Andrews, and Y. Zhou, "Flashback: a lightweight extension for rollback and deterministic replay for software debugging," ser. ATEC '04, 2004.
[3]
J. Tucek, S. Lu, C. Huang, S. Xanthos, and Y. Zhou, "Triage: diagnosing production run failures at the user's site," ser. SOSP '07, 2007.
[4]
T. C. Bressoud and F. B. Schneider, "Hypervisor-based fault tolerance," ACM Trans. Comput. Syst., vol. 14, February 1996.
[5]
S. Medini, P. Galinier, M. D. Penta, Y.-G. Gueheneuc, and G. Antoniol, "A fast algorithm to locate concepts in execution traces," in Search Based Software Engineering, ser. Lecture Notes in Computer Science, 2011, vol. 6956, pp. 252-266.
[6]
S. Narayanasamy, G. Pokam, and B. Calder, "Bugnet: Continuously recording program execution for deterministic replay debugging," ser. ISCA '05, 2005.
[7]
D. Lee, M. Said, S. Narayanasamy, Z. Yang, and C. Pereira, "Offline symbolic analysis for multi-processor execution replay," ser. MICRO 42, 2009.
[8]
P. B. Gibbons and E. Korach, "Testing shared memories," SIAM J. Comput., vol. 26, August 1997.
[9]
J. Huang, P. Liu, and C. Zhang, "Leap: lightweight deterministic multi-processor replay of concurrent java programs," ser. FSE '10, 2010.
[10]
D. R. Hower and M. D. Hill, "Rerun: Exploiting episodes for lightweight memory race recording," ser. ISCA '08, 2008.
[11]
P. Montesinos, L. Ceze, and J. Torrellas, "Delorean: Recording and deterministically replaying shared-memory multiprocessor execution efficiently," ser. ISCA '08, 2008.
[12]
S. Narayanasamy, C. Pereira, and B. Calder, "Recording shared memory dependencies using strata," ser. ASPLOS-XII, 2006.
[13]
M. Xu, R. Bodik, and M. D. Hill, "A "flight data recorder" for enabling full-system multiprocessor deterministic replay," in Proceedings of the 30th annual international symposium on Computer architecture, ser. ISCA '03, 2003.
[14]
D. Lee, B. Wester, K. Veeraraghavan, S. Narayanasamy, P. M. Chen, and J. Flinn, "Respec: efficient online multiprocessor replayvia speculation and external determinism," ser. ASPLOS '10, 2010.
[15]
Z. Yang, M. Yang, L. Xu, H. Chen, and B. Zang, "Order: object centric deterministic replay for java," ser. USENIXATC'11, 2011.
[16]
L. Lamport, "How to make a multiprocessor computer that correctly executes multiprocess programs," IEEE Trans. Comput., vol. 28, September 1979.
[17]
S. Narayanasamy, Z. Wang, J. Tigani, A. Edwards, and B. Calder, "Automatically classifying benign and harmful data races using replay analysis," ser. PLDI '07, 2007.
[18]
M. Aldinucci, M. Meneghin, and M. Torquati, "Efficient smith-waterman on multi-core with fastflow," Parallel, Distributed, and Network-Based Processing, Euromicro Conference on, vol. 0, 2010.
[19]
D. Weeratunge, X. Zhang, and S. Jagannathan, "Analyzing multicore dumps to facilitate concurrency bug reproduction," ser. ASPLOS '10, 2010.
[20]
C. Zamfir and G. Candea, "Execution synthesis: a technique for automated software debugging," ser. EuroSys '10, 2010.
[21]
G. Altekar and I. Stoica, "Odr: output-deterministic replay for multicore debugging," ser. SOSP '09, 2009.
[22]
N. Sinha and C. Wang, "On interference abstractions," ser. POPL '11, 2011.
[23]
S. Park, Y. Zhou, W. Xiong, Z. Yin, R. Kaushik, K. H. Lee, and S. Lu, "Pres: probabilistic replay with execution sketching on multiprocessors," ser. SOSP '09, 2009.
[24]
J. F. Cantin, M. H. Lipasti, and J. E. Smith, "The complexity of verifying memory coherence and consistency," IEEE Trans. Parallel Distrib. Syst., vol. 16, July 2005.
[25]
C. Flanagan and S. N. Freund, "Adversarial memory for detecting destructive races," ser. PLDI '10, 2010.
[26]
S. V. Adve and H.-J. Boehm, "Memory models: a case for rethinking parallel languages and hardware," Commun. ACM, vol. 53, August 2010.
[27]
R. L. Halpert, "Static lock allocation," Master's thesis, McGill University, April 2008.
[28]
M. Burtscher and B. G. Zorn, "Exploring last n value prediction," in IEEE PACT.
[29]
S. Bhansali, W.-K. Chen, S. de Jong, A. Edwards, R. Murray, M. Drinic, D. Miho¿ka, and J. Chau, "Framework for instruction-level tracing and analysis of program executions," ser. VEE '06, 2006.
[30]
O. Lhoták and L. Hendren, "Scaling java points-to analysis using spark," ser. CC'03, 2003.
[31]
M. Ronsse and K. De Bosschere, "Recplay: a fully integrated practical record/replay system," ACM Trans. Comput. Syst., vol. 17, May 1999.
[32]
R. H. B. Netzer, "Optimal tracing and replay for debugging shared-memory parallel programs," ser. PADD '93, 1993.
[33]
K. Veeraraghavan, D. Lee, B. Wester, J. Ouyang, P. M. Chen, J. Flinn, and S. Narayanasamy, "Doubleplay: parallelizing sequential logging and replay," ser. ASPLOS '11, 2011.
[34]
M. Olszewski, J. Ansel, and S. Amarasinghe, "Kendo: efficient deterministic multithreading in software," ser. ASPLOS '09, 2009.

Cited By

View all
  • (2018)Scalable concurrency debugging with distributed graph processingProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168817(188-199)Online publication date: 24-Feb-2018
  • (2016)Production-guided concurrency debuggingACM SIGPLAN Notices10.1145/3016078.285114951:8(1-12)Online publication date: 27-Feb-2016
  • (2016)Online shared memory dependence reduction via bisectional coordinationProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950326(822-832)Online publication date: 1-Nov-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '12: Proceedings of the 34th International Conference on Software Engineering
June 2012
1657 pages
ISBN:9781467310673

Sponsors

Publisher

IEEE Press

Publication History

Published: 02 June 2012

Check for updates

Qualifiers

  • Article

Conference

ICSE '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2018)Scalable concurrency debugging with distributed graph processingProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168817(188-199)Online publication date: 24-Feb-2018
  • (2016)Production-guided concurrency debuggingACM SIGPLAN Notices10.1145/3016078.285114951:8(1-12)Online publication date: 27-Feb-2016
  • (2016)Online shared memory dependence reduction via bisectional coordinationProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950326(822-832)Online publication date: 1-Nov-2016
  • (2016)Concurrency Debugging with Differential Schedule ProjectionsACM Transactions on Software Engineering and Methodology10.1145/288549525:2(1-37)Online publication date: 6-Apr-2016
  • (2016)Production-guided concurrency debuggingProceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/2851141.2851149(1-12)Online publication date: 27-Feb-2016
  • (2016)Connecting and Serving the Software Engineering CommunityIEEE Transactions on Software Engineering10.1109/TSE.2016.253237942:3(203-280)Online publication date: 1-Mar-2016
  • (2016)Verifying Synchronization for Atomicity Violation FixingIEEE Transactions on Software Engineering10.1109/TSE.2015.247782042:3(280-296)Online publication date: 1-Mar-2016
  • (2015)Light: replay via tightly bounded recordingACM SIGPLAN Notices10.1145/2813885.273800150:6(55-64)Online publication date: 3-Jun-2015
  • (2015)Concurrency debugging with differential schedule projectionsACM SIGPLAN Notices10.1145/2813885.273797350:6(586-595)Online publication date: 3-Jun-2015
  • (2015)Light: replay via tightly bounded recordingProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2737924.2738001(55-64)Online publication date: 3-Jun-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