Efficient Search-Based Automatic Execution Replay for Virtual Machines

  • Tao WangEmail author
  • Jianhua Zhang
  • Wenbo Zhang
  • Jiwei Xu
  • Jun Wei
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9464)


Execution replay of virtual machines is a useful method for debugging applications in the cloud computing environment. The traditional methods to reproduce a bug is recording every details during the system runtime. However, these methods will incur much overhead and affect the system performance, especially in a multicore processor system. In this paper, we present a virtualization-based execution replay method consisting of three steps. First, we only record some necessary events in the runtime and take a memory checkpoint in a regular interval. Second, we search for execution paths between every two adjacent checkpoints. Third, we reproduce the bugs according to these paths. We can decrease the logging overhead in the runtime by searching instead of logging. We have implemented the method and evaluate it on Xen. The experimental results demonstrate that our method can reduce the runtime overhead by 30 % effectively.


Replay Virtual machine Xen Cloud computing 



This work was supported in part by the National Natural Science Foundation of China under Project 61402450, and the Beijing Natural Science Foundation under Project 4154088.


  1. 1.
    Bressoud, T.C., Schneider, F.B.: Hypervisor-based fault tolerance. ACM Trans. Comput. Syst. 14, 80–107 (1996)CrossRefGoogle Scholar
  2. 2.
    Dunlap, G.W., King, S.T., Cinar, S., Basrai, M.A., Chen, P.M.: Revirt: enabling intrusion analysis through virtual-machine logging and replay. In: Proceedings of the 5th Symposium on Operating Systems Design and Implementation, ser. OSDI 2002, pp. 211–224. ACM, New York (2002)Google Scholar
  3. 3.
    Dunlap, G.W., Lucchetti, D.G., Fetterman, M.A., Chen, P.M.: Execution replay of multiprocessor virtual machines. In: Proceedings of the Fourth ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, ser. VEE 2008, pp. 121–130. ACM, New York (2008)Google Scholar
  4. 4.
    Park, S., Zhou, Y., Xiong, W., Yin, Z., Kaushik, R., Lee, K.H., Lu, S.: Pres: probabilistic replay with execution sketching on multiprocessors. In: Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, ser. SOSP 2009, pp. 177–192. ACM, New York (2009)Google Scholar
  5. 5.
    Leblanc, T., Mellor-Crummey, J.: Debugging parallel programs with instant replay. IEEE Trans. Comput. 36(4), 471–482 (1987)CrossRefGoogle Scholar
  6. 6.
    Laadan, O., Viennot, N., Nieh, J.: Transparent, lightweight application execution replay on commodity multiprocessor operating systems. In: Proceedings of the ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, ser. SIGMETRICS 2010, pp. 155–166. ACM, New York (2010)Google Scholar
  7. 7.
    Bhansali, S., Chen, W., De Jong, S., Edwards, A., Murray, R., Drinic, M., Mihocka, D., Chau, J.: Framework for instruction-level tracing and analysis of program executions. In: Proceedings of the 2nd International Conference on Virtual Execution Environments, pp. 154–163. ACM (2006)Google Scholar
  8. 8.
    Ronsse, M., De Bosschere, K.: Recplay: a fully integrated practical record/replay system. ACM Trans. Comput. Syst. 17(2), 133–152 (1999)CrossRefGoogle Scholar
  9. 9.
    Lee, D., Wester, B., Veeraraghavan, K., Narayanasamy, S., Chen, P.M., Flinn, J.: Respec: efficient online multiprocessor replay via speculation and external determinism. In: Proceedings of the Fifteenth Edition of ASPLOS on Architectural Support for Programming Languages and Operating Systems, ser. ASPLOS 2010, pp. 77–90. ACM, New York (2010)Google Scholar
  10. 10.
    Olszewski, M., Ansel, J., Amarasinghe, S.: Kendo: Efficient deterministic multithreading in software. SIGPLAN Not. 44(3), 97–108 (2009)CrossRefGoogle Scholar
  11. 11.
    Bocchino, R.L., Jr., Adve, V.S., Dig, D., Adve, S.V., Heumann, S., Komuravelli, R., Overbey, J., Simmons, P., Sung, H., Vakilian, M.: A type and effect system for deterministic parallel java. In: Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, ser. OOPSLA 2009, pp. 97–116. ACM, New York (2009)Google Scholar
  12. 12.
    Berger, E.D., Yang, T., Liu, T., Novark, G.: Grace: safe multithreaded programming for C/C++. In: Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, ser. OOPSLA 2009, pp. 81–96. ACM, New York (2009)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Tao Wang
    • 1
    Email author
  • Jianhua Zhang
    • 1
  • Wenbo Zhang
    • 1
  • Jiwei Xu
    • 1
  • Jun Wei
    • 1
  1. 1.Institute of SoftwareChinese Academy of SciencesBeijingChina

Personalised recommendations