Preview

Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS)

Advanced search

Deterministic replay specifics in case of minimal device set

https://doi.org/10.15514/ISPRAS-2015-27(2)-5

Abstract

The deterministic replay technique can be used for debugging, improving reliability and robustness, software development and incident investigation (including reverse engineering of malware). The paper describes the implementation of deterministic replay of IA-32 based boards in QEMU. Another implementation of this technique in QEMU had been previously published, but it uses a significantly different approach. Deterministic replay implementation details and features substantially depend on deterministic area - the part of virtual machine which execution is being replayed. For replay to be deterministic the implementation must ensure that (1) all information flows across deterministic area borders should be logged and then replayed, and (2) there is no non-determinism inside deterministic area. The proposed approach is called «Min VM» because it’s based on the minimal deterministic area while the former one should be called «Max VM» as it attempts to stretch deterministic area to cover whole virtual machine. The proposed approach shows the advantages of lower time overhead for logging phase and easier support (because it is much easier to ensure determinism of small deterministic area). On the other side the shortcoming is larger log size mostly because deterministic area doesn’t include hard disks so all data flows from disks are being logged. It makes the self-sufficient replay log: image of the original HDD is not needed to replay the execution. The implementation has been tested on popular operating systems: Windows XP, Windows 7 and GNU/Linux 3.12. The current implementation shows 6 - 42% slowdown depending on application code that exceeds previous approach slowdown (17 - 79%).

About the Authors

V. Y. Efimov
ISP RAS
Russian Federation


K. A. Batuzov
ISP RAS
Russian Federation


V. A. Padaryan
ISP RAS
Russian Federation


References

1. QEMU open source processor emulator — http://wiki.qemu.org/Main_Page

2. G.Altekar, I.Stoica. ODR: Output-Deterministic Replay for Multicore Debugging, UC Berkley, October 2009.

3. A.Ju.Tihonov, A.I. Avetisjan. Razvitie taint-analiza dlja reshenija zadachi poiska programmnyx zakladok [Development of taint analysis to search for software backdoors]. Trudy ISP RАN [The Proceedings of ISP RAS], volume 20, 2011. p. 9-24. (In Russian)

4. P. Colp, S. Dadizadeh, M. Nanavati. Deterministic Replay for Xen. Department of Computer Science. University of British Columbia. Vancouver, BC, Canada

5. Min Xu, Vyacheslav Malyugin, Jeffrey Sheldon, Ganesh Venkitachalam, Boris Weissman. ReTrace: Collecting Execution Trace with Virtual Machine Deterministic Replay. Workshop on Modeling, Benchmarking and Simulation (MoBS), June 2007.

6. K. Batuzov, P. Dovgaljuk, V. Koshelev, V. Padarjan. Dva sposoba organizacii mexanizma polnosistemnogo determinirovannogo vosproizvedenija v simuljatore QEMU [Two approaches of deterministic replay development for QEMU system emulator]. Trudy ISP RАN [The Proceedings of ISP RAS], volume 22, 2012 г. p. 77-94. (In Russian)

7. Dovgaljuk P. Determinirovannoe vosproizvedenie processa vypolnenija programm v virtualqnoj mashine [A deterministic replay of software execution in virtual machine]. Trudy ISP RАN [The Proceedings of ISP RAS]. volume 21, 2011, p. 123-132. (In Russian)

8. NBench benchmark port to Linux/Unix — http://www.tux.org/~mayer/linux/bmark.html

9. Iperf — The TCP/UDP Bandwidth Measurement Tool — https://iperf.fr


Review

For citations:


Efimov V.Y., Batuzov K.A., Padaryan V.A. Deterministic replay specifics in case of minimal device set. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2015;27(2):65-92. (In Russ.) https://doi.org/10.15514/ISPRAS-2015-27(2)-5



Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)