ReSeer: Efficient search-based replay for multiprocessor virtual machines

•We proposed a replay approach which searches non-deterministic execution paths.•ReSeer can search paths in a suspicious period between adjacent checkpoints.•ReSeer limits the search space in writing shared memory with the page protection.•ReSeer uses an efficient and parallel genetic algorithm to s...

Full description

Saved in:
Bibliographic Details
Published in:The Journal of systems and software Vol. 126; pp. 101 - 112
Main Authors: Wang, Tao, Xu, Jiwei, Zhang, Wenbo, Zhang, Jianhua, Wei, Jun, Zhong, Hua
Format: Journal Article
Language:English
Published: Elsevier Inc 01.04.2017
Subjects:
ISSN:0164-1212, 1873-1228
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:•We proposed a replay approach which searches non-deterministic execution paths.•ReSeer can search paths in a suspicious period between adjacent checkpoints.•ReSeer limits the search space in writing shared memory with the page protection.•ReSeer uses an efficient and parallel genetic algorithm to search execution paths.•We evaluate ReSeer with a seriesof benchmarks deployed on Xen. Efficient replay of virtual machines is important for software debugging, fault tolerance, and performance analysis. The current approaches of replaying virtual machines record the details of system execution at runtime. However, these approaches incur much overhead, which affects the system performance. Especially, in a multiprocessor system, recording the shared memory operations of multiple processors leads to a large amount of computing overhead and log files. To address the above issue, this paper proposes ReSeer—a search-based replay approach for multiprocessor virtual machines. ReSeer consists of three phases including record, search, and replay. In the record phase, we record only necessary non-deterministic events at runtime, and incrementally take memory checkpoints at a defined interval. In the search phase, we encode all the possible execution paths as binary strings, and use a genetic algorithm to search expected execution paths achieving the expected checkpoint. In the replay phase, we replay the system execution according to the searched execution paths and the logged non-deterministic events. Compared with current approaches, ReSeer significantly reduces performance overhead at runtime by searching expected execution paths instead of recording all the operations of accessing shared memory. We have implemented ReSeer, and then evaluated it with a seriesof typical benchmarks deployed on an open source virtual machine—Xen. The experimental results show that ReSeer can reduce the record overhead at runtime efficiently.
ISSN:0164-1212
1873-1228
DOI:10.1016/j.jss.2016.07.032