Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
tutorial

Flexible Page-level Memory Access Monitoring Based on Virtualization Hardware

Published: 08 April 2017 Publication History
  • Get Citation Alerts
  • 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.
    [2]
    AMD. Secure virtual machine architecture reference manual. Technical report, Advanced Micro Devices, May 2005.
    [3]
    A. W. Appel and K. Li. Virtual memory primitives for user programs. Acm Sigplan Notices, 26(4):96--107, 1991.
    [4]
    M. Arnold and B. G. Ryder. A framework for reducing the cost of instrumented code. Acm Sigplan Notices, 36(5):168--179, 2001.
    [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.
    [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.
    [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.
    [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.
    [9]
    H.-J. Boehm, A. J. Demers, and S. Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157--164, 1991.
    [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.
    [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.
    [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.
    [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.
    [14]
    B. Fitzpatrick. Distributed caching with memcached. Linux journal, 2004(124):5, 2004.
    [15]
    S. Ghemawat and P. Menage. Tcmalloc: Thread-caching malloc. goog-perftools. sourceforge. net/doc/tcmalloc. html, 2009.
    [16]
    M. Hirabayashi. Tokyo cabinet: a modern implementation of dbm, 2010.
    [17]
    Intel. Intel r 64 and ia-32 architectures software developers manual. Volume 3b: System Programming Guide (Part 2), pages 14--19, 2013.
    [18]
    Intel. Page modification logging for virtual machine monitor white paper. http://www.intel.com/, Jan. 2015.
    [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.
    [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.
    [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.
    [22]
    K. I. Li. Virtual Memory Primitives for User Programs. ACM, 2003.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [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.
    [30]
    M. Payer, E. Kravina, and T. R. Gross. Lightweight memory tracing. In USENIX Annual Technical Conference, pages 115--126, 2013.
    [31]
    M. Probst. Dynamic binary translation. In UKUUG Linux Developers Conference, volume 2002. sn, 2002.
    [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.
    [33]
    J. Shen, M. Hamal, and S. Ganzenmüller. Dynamic memory allocation on real-time linux. Architecture, 86:32.
    [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.

    Recommendations

    Comments

    Information & Contributors

    Information

    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
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 08 April 2017
    Published in SIGPLAN Volume 52, Issue 7

    Check for updates

    Author Tags

    1. Dynamic
    2. Fine-grained
    3. Memory access monitoring
    4. Virtualization hardware

    Qualifiers

    • Tutorial
    • Research
    • Refereed limited

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)25
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 27 Jul 2024

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media