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...
Uloženo v:
| Vydáno v: | The Journal of systems and software Ročník 126; s. 101 - 112 |
|---|---|
| Hlavní autoři: | , , , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Elsevier Inc
01.04.2017
|
| Témata: | |
| ISSN: | 0164-1212, 1873-1228 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Shrnutí: | •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 |