skip to main content
tutorial

Flexible Page-level Memory Access Monitoring Based on Virtualization Hardware

Authors Info & Claims
Published:08 April 2017Publication History
Skip Abstract Section

Abstract

Page protection is often used to achieve memory access monitoring in many applications, dealing with program-analysis, checkpoint-based failure recovery, and garbage collection in managed runtime systems. Typically, low overhead access monitoring is limited by the relatively large page-level granularity of memory management unit hardware support for virtual memory protection. In this paper, we improve upon traditional page-level mechanisms by additionally using hardware support for virtualization in order to achieve fine and flexible granularities that can be smaller than a page. We first introduce a memory allocator based on page protection that can achieve fine-grained monitoring. Second, we explain how virtualization hardware support can be used to achieve dynamic adjustment of the monitoring granularity. In all, we propose a process-level virtual machine to achieve dynamic and fine-grained monitoring. Any application can run on our process-level virtual machine without modification. Experimental results for an incremental checkpoint tool provide a use-case to demonstrate our work. Comparing with traditional page-based checkpoint, our work can effectively reduce the amount of checkpoint data and improve performance.

References

  1. M. Abadi, T. Harris, and M. Mehrara. Transactional memory with strong atomicity using off-the-shelf memory protection hardware. In ACM Sigplan Notices, volume 44, pages 185--196. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. AMD. Secure virtual machine architecture reference manual. Technical report, Advanced Micro Devices, May 2005.Google ScholarGoogle Scholar
  3. A. W. Appel and K. Li. Virtual memory primitives for user programs. Acm Sigplan Notices, 26(4):96--107, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Arnold and B. G. Ryder. A framework for reducing the cost of instrumented code. Acm Sigplan Notices, 36(5):168--179, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Belay, A. Bittau, A. J. Mashtizadeh, D. Terei, D. Mazières, and C. Kozyrakis. Dune: Safe user-level access to privileged cpu features. In OSDI, pages 335--348, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. T. Bergan, O. Anderson, J. Devietti, L. Ceze, and D. Grossman. Coredet: a compiler and runtime system for deterministic multithreaded execution. In ACM SIGARCH Computer Architecture News, volume 38, pages 53--64. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. D. Berger and B. G. Zorn. Diehard: probabilistic memory safety for unsafe languages. In ACM SIGPLAN Notices, volume 41, pages 158--168. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. D. Berger, K. S. McKinley, R. D. Blumofe, and P. R. Wilson. Hoard: A scalable memory allocator for multithreaded applications. ACM Sigplan Notices, 35(11):117--128, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. H.-J. Boehm, A. J. Demers, and S. Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157--164, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. S. Chase, H. M. Levy, M. J. Feeley, and E. D. Lazowska. Sharing and protection in a single-address-space operating system. ACM Transactions on Computer Systems (TOCS), 12(4):271--307, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Devietti, B. Lucia, L. Ceze, and M. Oskin. Dmp: deterministic shared memory multiprocessing. In ACM SIGARCH Computer Architecture News, volume 37, pages 85--96. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Dhurjati and V. Adve. Efficiently detecting all dangling pointer uses in production servers. In Dependable Systems and Networks, 2006. DSN 2006. International Conference on, pages 269--280. IEEE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. X. Dong, Y. Xie, N. Muralimanohar, and N. P. Jouppi. Hybrid checkpointing using emerging nonvolatile memories for future exascale systems. ACM Transactions on Architecture and Code Optimization (TACO), 8(2):6, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. B. Fitzpatrick. Distributed caching with memcached. Linux journal, 2004(124):5, 2004.Google ScholarGoogle Scholar
  15. S. Ghemawat and P. Menage. Tcmalloc: Thread-caching malloc. goog-perftools. sourceforge. net/doc/tcmalloc. html, 2009.Google ScholarGoogle Scholar
  16. M. Hirabayashi. Tokyo cabinet: a modern implementation of dbm, 2010.Google ScholarGoogle Scholar
  17. Intel. Intel r 64 and ia-32 architectures software developers manual. Volume 3b: System Programming Guide (Part 2), pages 14--19, 2013.Google ScholarGoogle Scholar
  18. Intel. Page modification logging for virtual machine monitor white paper. http://www.intel.com/, Jan. 2015.Google ScholarGoogle Scholar
  19. S. Kannan, A. Gavrilovska, K. Schwan, and D. Milojicic. Optimizing checkpoints using nvm as virtual memory. In Parallel & Distributed Processing (IPDPS), 2013 IEEE 27th International Symposium on, pages 29--40. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Kivity, Y. Kamay, D. Laor, U. Lublin, and A. Liguori. kvm: the linux virtual machine monitor. In Proceedings of the Linux Symposium, volume 1, pages 225--230, 2007.Google ScholarGoogle Scholar
  21. C. Lattner and V. Adve. Llvm: A compilation framework for lifelong program analysis & transformation. In Code Generation and Optimization, 2004. CGO 2004. International Symposium on, pages 75--86. IEEE, 2004. Google ScholarGoogle ScholarCross RefCross Ref
  22. K. I. Li. Virtual Memory Primitives for User Programs. ACM, 2003.Google ScholarGoogle Scholar
  23. T. Liu, C. Curtsinger, and E. D. Berger. Dthreads: efficient deterministic multithreading. In Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles, pages 327--336. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. K. Lu, X. Zhou, T. Bergan, and X. Wang. Efficient deterministic multithreading without global barriers. In ACM SIGPLAN Notices, volume 49, pages 287--300. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: building customized program analysis tools with dynamic instrumentation. In ACM Sigplan Notices, volume 40, pages 190--200. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. V. B. Lvin, G. Novark, E. D. Berger, and B. G. Zorn. Archipelago: trading address space for reliability and security. In ACM SIGOPS Operating Systems Review, volume 42, pages 115--124. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp: Stanford transactional applications for multi-processing. In Workload Characterization, 2008. IISWC 2008. IEEE International Symposium on, pages 35--46. IEEE, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  28. N. Nethercote and J. Seward. Valgrind: a framework for heavyweight dynamic binary instrumentation. In ACM Sigplan notices, volume 42, pages 89--100. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. G. Novark and E. D. Berger. Dieharder: securing the heap. In Proceedings of the 17th ACM conference on Computer and communications security, pages 573--584. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Payer, E. Kravina, and T. R. Gross. Lightweight memory tracing. In USENIX Annual Technical Conference, pages 115--126, 2013.Google ScholarGoogle Scholar
  31. M. Probst. Dynamic binary translation. In UKUUG Linux Developers Conference, volume 2002. sn, 2002.Google ScholarGoogle Scholar
  32. S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems (TOCS), 15(4):391--411, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. J. Shen, M. Hamal, and S. Ganzenmüller. Dynamic memory allocation on real-time linux. Architecture, 86:32.Google ScholarGoogle Scholar
  34. R. Uhlig, G. Neiger, D. Rodgers, A. L. Santoni, F. Martins, A. V. Anderson, S. M. Bennett, A. Kägi, F. H. Leung, and L. Smith. Intel virtualization technology. Computer, 38(5):48--56, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 52, Issue 7
    VEE '17
    July 2017
    256 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/3140607
    Issue’s Table of Contents
    • cover image ACM Conferences
      VEE '17: Proceedings of the 13th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
      April 2017
      261 pages
      ISBN:9781450349482
      DOI:10.1145/3050748

    Copyright © 2017 ACM

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 8 April 2017

    Check for updates

    Qualifiers

    • tutorial
    • Research
    • Refereed limited

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!