Efficient deterministic multithreading through schedule relaxation

作者: Heming Cui , Jingyue Wu , John Gallagher , Huayang Guo , Junfeng Yang

DOI: 10.1145/2043556.2043588

关键词:

摘要: Deterministic multithreading (DMT) eliminates many pernicious software problems caused by nondeterminism. It works constraining a program to repeat the same thread interleavings, or schedules, when given input. Despite much recent research, it remains an open challenge build both deterministic and efficient DMT systems for general programs on commodity hardware. To deterministically resolve data race, system must enforce schedule of shared memory accesses, mem-schedule, which can incur prohibitive overhead. By using schedules consisting only synchronization operations, sync-schedule, this overhead be avoided. However, sync-schedule is race-free programs, but most have races. Our key insight that races tend occur within minor portions execution, dominant majority execution still race-free. Thus, we resort mem-schedule "racy" otherwise, combining efficiency sync-schedules determinism mem-schedules. We call these combined hybrid schedules. Based insight, built Peregrine, system. When first runs input, Peregrine records trace. then relaxes trace into reuses future compatible inputs efficiently deterministically. further improves with two new techniques: determinism-preserving slicing generalize more while preserving determinism, schedule-guided simplification precisely analyze according specific schedule. evaluation diverse set shows efficient, frequently reuse half evaluated programs.

参考文章(51)
Srikanth Kandula, Yuanyuan Zhou, Sudarshan M. Srinivasan, Christopher R. Andrews, Flashback: a lightweight extension for rollback and deterministic replay for software debugging usenix annual technical conference. pp. 3- 3 ,(2004)
Soyeon Park, Weiwei Xiong, Zhiqiang Ma, Yuanyuan Zhou, Jiaqi Zhang, Ad hoc synchronization considered harmful operating systems design and implementation. pp. 163- 176 ,(2010) , 10.5555/1924943.1924955
Frank Tip, A survey of program slicing techniques. Journal of Programming Languages. ,vol. 3, ,(1995)
Peter Boonstoppel, Cristian Cadar, Dawson Engler, RWset: attacking path explosion in constraint-based test generation tools and algorithms for construction and analysis of systems. pp. 351- 366 ,(2008) , 10.1007/978-3-540-78800-3_27
Cristian Cadar, Daniel Dunbar, Dawson Engler, KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs operating systems design and implementation. pp. 209- 224 ,(2008) , 10.5555/1855741.1855756
Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools (2nd Edition) Addison-Wesley Longman Publishing Co., Inc.. ,(2006)
Zhenyu Guo, Zhilei Xu, Xuezheng Liu, Xi Wang, Ming Wu, Zheng Zhang, Jian Tang, M. Frans Kaashoek, R2: an application-level kernel for record and replay operating systems design and implementation. pp. 193- 208 ,(2008) , 10.5555/1855741.1855755
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, Eraser: a dynamic data race detector for multithreaded programs ACM Transactions on Computer Systems. ,vol. 15, pp. 391- 411 ,(1997) , 10.1145/265924.265927
Pedro Fonseca, Cheng Li, Rodrigo Rodrigues, Finding complex concurrency bugs in large multi-threaded applications Proceedings of the sixth conference on Computer systems - EuroSys '11. pp. 215- 228 ,(2011) , 10.1145/1966445.1966465