Skip to main navigation Skip to search Skip to main content

Respec: Efficient online multiprocessor replayvia speculation and external determinism

  • Dongyoon Lee
  • , Benjamin Wester
  • , Kaushik Veeraraghavan
  • , Satish Narayanasamy
  • , Peter M. Chen
  • , Jason Flinn
  • University of Michigan, Ann Arbor

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

107 Scopus citations

Abstract

Deterministic replay systems record and reproduce the execution of a hardware or software system. While it is well known how to replay uniprocessor systems, replaying shared memory multiprocessor systems at low overhead on commodity hardware is still an open problem. This paper presents Respec, a new way to support deterministic replay of shared memory multithreaded programs on commodity multiprocessor hardware. Respec targets online replay in which the recorded and replayed processes execute concurrently. Respec uses two strategies to reduce overhead while still ensuring correctness: speculative logging and externally deterministic replay. Speculative logging optimistically logs less information about shared memory dependencies than is needed to guarantee deterministic replay, then recovers and retries if the replayed process diverges from the recorded process. Externally deterministic replay relaxes the degree to which the two executions must match by requiring only their system output and final program states match. We show that the combination of these two techniques results in low recording and replay overhead for the common case of data-race-free execution intervals and still ensures correct replay for execution intervals that have data races. We modified the Linux kernel to implement our techniques. Our software system adds on average about 18% overhead to the execution time for recording and replaying programs with two threads and 55% overhead for programs with four threads.

Original languageEnglish
Title of host publicationASPLOS XV - 15th International Conference on Architectural Support for Programming Languages and Operating Systems
Pages77-89
Number of pages13
DOIs
StatePublished - 2010
Event15th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XV - Pittsburgh, PA, United States
Duration: Mar 13 2010Mar 17 2010

Publication series

NameInternational Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS

Conference

Conference15th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XV
Country/TerritoryUnited States
CityPittsburgh, PA
Period03/13/1003/17/10

Keywords

  • External determinism
  • Replay
  • Speculative execution

Fingerprint

Dive into the research topics of 'Respec: Efficient online multiprocessor replayvia speculation and external determinism'. Together they form a unique fingerprint.

Cite this