+ All Categories
Home > Documents > Language-Based Replay via Data Flow Cut

Language-Based Replay via Data Flow Cut

Date post: 23-Feb-2016
Category:
Upload: patch
View: 37 times
Download: 0 times
Share this document with a friend
Description:
Language-Based Replay via Data Flow Cut. Microsoft Research Asia Ming Wu , Haoxiang Lin, Xuezheng Liu, Zhenyu Guo, Huayang Guo, Lidong Zhou, Zheng Zhang MIT Fan Long, Xi Wang, Zhilei Xu. Outline. Motivation Observation Challenges Modeling Replay Interface Generating Replay Interface - PowerPoint PPT Presentation
Popular Tags:
26
Language-Based Replay via Data Flow Cut Microsoft Research Asia Ming Wu, Haoxiang Lin, Xuezheng Liu, Zhenyu Guo, Huayang Guo, Lidong Zhou, Zheng Zhang MIT Fan Long, Xi Wang, Zhilei Xu
Transcript

Language-Based Replay via Data Flow Cut

Language-Based Replay via Data Flow CutMicrosoft Research AsiaMing Wu, Haoxiang Lin, Xuezheng Liu, Zhenyu Guo, Huayang Guo, Lidong Zhou, Zheng Zhang

MITFan Long, Xi Wang, Zhilei XuOutlineMotivationObservationChallengesModeling Replay InterfaceGenerating Replay InterfaceRecord and ReplayEvaluationConclusionMotivationReplay is important due to non-determinismCaused by time, user input, network I/O, thread interleavingMakes postmortem debug hardExisting replay toolsIncurs significant overhead: interposition & loggingHard to be adopted, especially for deployed systemHow to mitigate recording overhead?Using efficient way to find the necessary information to log

ObservationReplay interface between program and environmentOnly part of the program needs to be replayedneonsroutinestatus->codereq->respbufrecv*respbuf(1MB)atoireturn valuestruct ne_request { ne_status status; char respbuf[];};

int read_status_line( ne_request *req, ne_status *status, ...) { ne_sock_readline(, req->respbuf, ); if (...) status->code = atoi(buffer + 4); else if (ne_parse_statusline(buffer, status)) {...}}4B1MBChallengesFinding a complete replay interfaceFinding a replay interface incurring low recording overhead

OutlineMotivationObservationChallengesModeling Replay InterfaceGenerating Replay InterfaceRecord and ReplayEvaluationConclusionExecution Flow Graph(EFG)f() { cnt = 0; g(&cnt); printf("%d\n", cnt); g(&cnt); printf("%d\n", cnt);}g(int *p) { a = random(); *p += a;}// execution1 cnt1


Recommended