Engineering Record And Replay For Deployability: Extended Technical Report
The ability to record and replay program executions with low overhead enables many applications, such as reverse-execution debugging, debugging of hard-to-reproduce test failures, and "black box" forensic analysis of failures in deployed systems. Existing record-and-replay approaches limit...
Gespeichert in:
Veröffentlicht in: | arXiv.org 2017-05 |
---|---|
Hauptverfasser: | , , , , , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | |
---|---|
container_issue | |
container_start_page | |
container_title | arXiv.org |
container_volume | |
creator | O'Callahan, Robert Jones, Chris Froyd, Nathan Huey, Kyle Noll, Albert Partush, Nimrod |
description | The ability to record and replay program executions with low overhead enables many applications, such as reverse-execution debugging, debugging of hard-to-reproduce test failures, and "black box" forensic analysis of failures in deployed systems. Existing record-and-replay approaches limit deployability by recording an entire virtual machine (heavyweight), modifying the OS kernel (adding deployment and maintenance costs), requiring pervasive code instrumentation (imposing significant performance and complexity overhead), or modifying compilers and runtime systems (limiting generality). We investigated whether it is possible to build a practical record-and-replay system avoiding all these issues. The answer turns out to be yes - if the CPU and operating system meet certain non-obvious constraints. Fortunately modern Intel CPUs, Linux kernels and user-space frameworks do meet these constraints, although this has only become true recently. With some novel optimizations, our system 'rr' records and replays real-world low-parallelism workloads with low overhead, with an entirely user-space implementation, using stock hardware, compilers, runtimes and operating systems. "rr" forms the basis of an open-source reverse-execution debugger seeing significant use in practice. We present the design and implementation of 'rr', describe its performance on a variety of workloads, and identify constraints on hardware and operating system design required to support our approach. |
format | Article |
fullrecord | <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_2074410026</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2074410026</sourcerecordid><originalsourceid>FETCH-proquest_journals_20744100263</originalsourceid><addsrcrecordid>eNqNjtEKgjAYRkcQJOU7DLoW5qYZ3UUp0WV4H8v92WT8s21Cvn0KPUBX34HvXJwFibgQabLPOF-R2PuOMcZ3Bc9zEZFria1GAKexpTdorFP0iGrC3siRVtbR84R2lA9tdBgPtPwEQAWK1tC8UDfSzLJ1YUOWT2k8xL9dk21V1qdL0jv7HsCHe2cHh9N156zIsnTOEP9ZX45qPEE</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2074410026</pqid></control><display><type>article</type><title>Engineering Record And Replay For Deployability: Extended Technical Report</title><source>Free E- Journals</source><creator>O'Callahan, Robert ; Jones, Chris ; Froyd, Nathan ; Huey, Kyle ; Noll, Albert ; Partush, Nimrod</creator><creatorcontrib>O'Callahan, Robert ; Jones, Chris ; Froyd, Nathan ; Huey, Kyle ; Noll, Albert ; Partush, Nimrod</creatorcontrib><description>The ability to record and replay program executions with low overhead enables many applications, such as reverse-execution debugging, debugging of hard-to-reproduce test failures, and "black box" forensic analysis of failures in deployed systems. Existing record-and-replay approaches limit deployability by recording an entire virtual machine (heavyweight), modifying the OS kernel (adding deployment and maintenance costs), requiring pervasive code instrumentation (imposing significant performance and complexity overhead), or modifying compilers and runtime systems (limiting generality). We investigated whether it is possible to build a practical record-and-replay system avoiding all these issues. The answer turns out to be yes - if the CPU and operating system meet certain non-obvious constraints. Fortunately modern Intel CPUs, Linux kernels and user-space frameworks do meet these constraints, although this has only become true recently. With some novel optimizations, our system 'rr' records and replays real-world low-parallelism workloads with low overhead, with an entirely user-space implementation, using stock hardware, compilers, runtimes and operating systems. "rr" forms the basis of an open-source reverse-execution debugger seeing significant use in practice. We present the design and implementation of 'rr', describe its performance on a variety of workloads, and identify constraints on hardware and operating system design required to support our approach.</description><identifier>EISSN: 2331-8422</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Black boxes ; Compilers ; Debugging ; Failure analysis ; Hardware ; Kernels ; Maintenance costs ; Operating systems ; Recording ; Replay systems ; Systems design ; Virtual environments ; Workloads</subject><ispartof>arXiv.org, 2017-05</ispartof><rights>2017. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>780,784</link.rule.ids></links><search><creatorcontrib>O'Callahan, Robert</creatorcontrib><creatorcontrib>Jones, Chris</creatorcontrib><creatorcontrib>Froyd, Nathan</creatorcontrib><creatorcontrib>Huey, Kyle</creatorcontrib><creatorcontrib>Noll, Albert</creatorcontrib><creatorcontrib>Partush, Nimrod</creatorcontrib><title>Engineering Record And Replay For Deployability: Extended Technical Report</title><title>arXiv.org</title><description>The ability to record and replay program executions with low overhead enables many applications, such as reverse-execution debugging, debugging of hard-to-reproduce test failures, and "black box" forensic analysis of failures in deployed systems. Existing record-and-replay approaches limit deployability by recording an entire virtual machine (heavyweight), modifying the OS kernel (adding deployment and maintenance costs), requiring pervasive code instrumentation (imposing significant performance and complexity overhead), or modifying compilers and runtime systems (limiting generality). We investigated whether it is possible to build a practical record-and-replay system avoiding all these issues. The answer turns out to be yes - if the CPU and operating system meet certain non-obvious constraints. Fortunately modern Intel CPUs, Linux kernels and user-space frameworks do meet these constraints, although this has only become true recently. With some novel optimizations, our system 'rr' records and replays real-world low-parallelism workloads with low overhead, with an entirely user-space implementation, using stock hardware, compilers, runtimes and operating systems. "rr" forms the basis of an open-source reverse-execution debugger seeing significant use in practice. We present the design and implementation of 'rr', describe its performance on a variety of workloads, and identify constraints on hardware and operating system design required to support our approach.</description><subject>Black boxes</subject><subject>Compilers</subject><subject>Debugging</subject><subject>Failure analysis</subject><subject>Hardware</subject><subject>Kernels</subject><subject>Maintenance costs</subject><subject>Operating systems</subject><subject>Recording</subject><subject>Replay systems</subject><subject>Systems design</subject><subject>Virtual environments</subject><subject>Workloads</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2017</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><recordid>eNqNjtEKgjAYRkcQJOU7DLoW5qYZ3UUp0WV4H8v92WT8s21Cvn0KPUBX34HvXJwFibgQabLPOF-R2PuOMcZ3Bc9zEZFria1GAKexpTdorFP0iGrC3siRVtbR84R2lA9tdBgPtPwEQAWK1tC8UDfSzLJ1YUOWT2k8xL9dk21V1qdL0jv7HsCHe2cHh9N156zIsnTOEP9ZX45qPEE</recordid><startdate>20170516</startdate><enddate>20170516</enddate><creator>O'Callahan, Robert</creator><creator>Jones, Chris</creator><creator>Froyd, Nathan</creator><creator>Huey, Kyle</creator><creator>Noll, Albert</creator><creator>Partush, Nimrod</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20170516</creationdate><title>Engineering Record And Replay For Deployability: Extended Technical Report</title><author>O'Callahan, Robert ; Jones, Chris ; Froyd, Nathan ; Huey, Kyle ; Noll, Albert ; Partush, Nimrod</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-proquest_journals_20744100263</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2017</creationdate><topic>Black boxes</topic><topic>Compilers</topic><topic>Debugging</topic><topic>Failure analysis</topic><topic>Hardware</topic><topic>Kernels</topic><topic>Maintenance costs</topic><topic>Operating systems</topic><topic>Recording</topic><topic>Replay systems</topic><topic>Systems design</topic><topic>Virtual environments</topic><topic>Workloads</topic><toplevel>online_resources</toplevel><creatorcontrib>O'Callahan, Robert</creatorcontrib><creatorcontrib>Jones, Chris</creatorcontrib><creatorcontrib>Froyd, Nathan</creatorcontrib><creatorcontrib>Huey, Kyle</creatorcontrib><creatorcontrib>Noll, Albert</creatorcontrib><creatorcontrib>Partush, Nimrod</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content Database</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>O'Callahan, Robert</au><au>Jones, Chris</au><au>Froyd, Nathan</au><au>Huey, Kyle</au><au>Noll, Albert</au><au>Partush, Nimrod</au><format>book</format><genre>document</genre><ristype>GEN</ristype><atitle>Engineering Record And Replay For Deployability: Extended Technical Report</atitle><jtitle>arXiv.org</jtitle><date>2017-05-16</date><risdate>2017</risdate><eissn>2331-8422</eissn><abstract>The ability to record and replay program executions with low overhead enables many applications, such as reverse-execution debugging, debugging of hard-to-reproduce test failures, and "black box" forensic analysis of failures in deployed systems. Existing record-and-replay approaches limit deployability by recording an entire virtual machine (heavyweight), modifying the OS kernel (adding deployment and maintenance costs), requiring pervasive code instrumentation (imposing significant performance and complexity overhead), or modifying compilers and runtime systems (limiting generality). We investigated whether it is possible to build a practical record-and-replay system avoiding all these issues. The answer turns out to be yes - if the CPU and operating system meet certain non-obvious constraints. Fortunately modern Intel CPUs, Linux kernels and user-space frameworks do meet these constraints, although this has only become true recently. With some novel optimizations, our system 'rr' records and replays real-world low-parallelism workloads with low overhead, with an entirely user-space implementation, using stock hardware, compilers, runtimes and operating systems. "rr" forms the basis of an open-source reverse-execution debugger seeing significant use in practice. We present the design and implementation of 'rr', describe its performance on a variety of workloads, and identify constraints on hardware and operating system design required to support our approach.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | EISSN: 2331-8422 |
ispartof | arXiv.org, 2017-05 |
issn | 2331-8422 |
language | eng |
recordid | cdi_proquest_journals_2074410026 |
source | Free E- Journals |
subjects | Black boxes Compilers Debugging Failure analysis Hardware Kernels Maintenance costs Operating systems Recording Replay systems Systems design Virtual environments Workloads |
title | Engineering Record And Replay For Deployability: Extended Technical Report |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-07T06%3A08%3A43IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=document&rft.atitle=Engineering%20Record%20And%20Replay%20For%20Deployability:%20Extended%20Technical%20Report&rft.jtitle=arXiv.org&rft.au=O'Callahan,%20Robert&rft.date=2017-05-16&rft.eissn=2331-8422&rft_id=info:doi/&rft_dat=%3Cproquest%3E2074410026%3C/proquest%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2074410026&rft_id=info:pmid/&rfr_iscdi=true |