skip to main content
10.1145/1806651.1806667acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article

Efficient memory shadowing for 64-bit architectures

Published:05 June 2010Publication History

ABSTRACT

Shadow memory is used by dynamic program analysis tools to store metadata for tracking properties of application memory. The efficiency of mapping between application memory and shadow memory has substantial impact on the overall performance of such analysis tools. However, traditional memory mapping schemes that work well on 32-bit architectures cannot easily port to 64-bit architectures due to the much larger 64-bit address space.

This paper presents EMS64, an efficient memory shadowing scheme for 64-bit architectures. By taking advantage of application reference locality and unused regions in the 64-bit address space, EMS64 provides a fast and flexible memory mapping scheme without relying on any underlying platform features or requiring any specific shadow memory size. Our experiments show that EMS64 is able to reduce the runtime shadow memory translation overhead to 81% on average, which almost halves the overhead of the fastest 64-bit shadow memory system we are aware of.

References

  1. DynamoRIO dynamic instrumentation tool platform, February 2009. http://dynamorio.org/.Google ScholarGoogle Scholar
  2. Derek Bruening. Efficient, Transparent, and Comprehensive Runtime Code Manipulation. PhD thesis, M.I.T., September 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Michael Burrows, Stephen N. Freund, and Janet L. Wiener. Run-time type checking for binary programs. In Proc. of 12th International Conference on Compiler Construction (CC '03), pages 90--105, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Shimin Chen, Michael Kozuch, Theodoros Strigkos, Babak Falsafi, Phillip B. Gibbons, Todd C. Mowry, Vijaya Ramachandran, Olatunji Ruwase, Michael Ryan, and Evangelos Vlachos. Flexible hardware acceleration for instruction-grain program monitoring. In Proc. of 35th International Symposium on Computer Architecture (ISCA '08), pages 377--388, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Winnie Cheng, Qin Zhao, Bei Yu, and Scott Hiroshige. Taint-trace: Efficient flow tracing with dynamic binary rewriting. In Proc. of Proceedings of the 11th IEEE Symposium on Computers and Communications (ISCC '06), pages 749--754, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Marc L. Corliss, E. Christopher Lewis, and Amir Roth. Dise: a programmable macro engine for customizing applications. In Proc. of 30th International Symposium on Computer Architecture (ISCA '03), pages 362--373, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Jedidiah R. Crandall and Frederic T. Chong. Minos: Control data attack prevention orthogonal to memory model. In Proc. of 37th International Symposium on Microarchitecture (MICRO 37), pages 221--232, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Michael Dalton, Hari Kannan, and Christos Kozyrakis. Raksha: a flexible information flow architecture for software security. In Proc. of 34th International Symposium on Computer architecture (ISCA '07), pages 482--493, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Jerry J. Harrow. Runtime checking of multithreaded applications with visual threads. In Proc. of 7th International SPIN Workshop on SPIN Model Checking and Software Verification, pages 331--342, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Hewlett-Packard. Third Degree. http://h30097.www3.hp.com/developerstoolkit/tools.html.Google ScholarGoogle Scholar
  11. Intel. Intel Parallel Inspector. http://software.intel.com/en-us/intel-parallel-inspector/.Google ScholarGoogle Scholar
  12. OpenWorks LLP. Helgrind: A data race detector, 2007. http://valgrind.org/docs/manual/hg-manual.html/.Google ScholarGoogle Scholar
  13. Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood. Pin: Building customized program analysis tools with dynamic instrumentation. In Proc. of ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '05), pages 190--200, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Satish Narayanasamy, Cristiano Pereira, Harish Patil, Robert Cohn, and Brad Calder. Automatic logging of operating system effects to guide application-level architecture simulation. In Proc. of Joint International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS '06/Performance '06), pages 216--227, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Nicholas Nethercote and Alan Mycroft. Redux: A dynamic dataflow tracer. In Electronic Notes in Theoretical Computer Science, volume 89, 2003.Google ScholarGoogle Scholar
  16. Nicholas Nethercote and Julian Seward. How to shadow every byte of memory used by a program. In Proc. of 3rd International Conference on Virtual Execution Environments (VEE '07), pages 65--74, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Nicholas Nethercote and Julian Seward. Valgrind: A framework for heavyweight dynamic binary instrumentation. In Proc. of ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '07), pages 89--100, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. James Newsome. dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Proc. of Network and Distributed System Security Symposium (NDSS 2005), 2005.Google ScholarGoogle Scholar
  19. Parasoft. Insure++. http://www.parasoft.com/jsp/products/insure.jsp?itemId=63.Google ScholarGoogle Scholar
  20. Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan Zhou, and Youfeng Wu. Lift: A low-overhead practical information flow tracking system for detecting security attacks. In Proc. of 39th International Symposium on Microarchitecture (MICRO 39), pages 135--148, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. PurifyRational Software. Purify: Fast detection of memory leaks and access errors, 2000. http://www.rationalsoftware.com/products/whitepapers/319.jsp.Google ScholarGoogle Scholar
  22. Michiel Ronsse, Bastiaan Stougie, Jonas Maebe, Frank Cornelis, and Koen De Bosschere. An efficient data race detector backend for diota. In Parallel Computing: Software Technology, Algorithms, Architectures & Applications, volume 13, pages 39--46. Elsevier, 2 2004.Google ScholarGoogle Scholar
  23. Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst., 15 (4): 391--411, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Julian Seward and Nicholas Nethercote. Using Valgrind to detect undefined value errors with bit-precision. In Proc. of USENIX Annual Technical Conference, pages 2--2, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Standard Performance Evaluation Corporation. SPEC CPU2006 benchmark suite, 2006. http://www.spec.org/osg/cpu2006/.Google ScholarGoogle Scholar
  26. G. Edward Suh, Jae W. Lee, David Zhang, and Srinivas Devadas. Secure program execution via dynamic information flow tracking. In Proc. of 11th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '04), pages 85--96, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Guru Venkataramani, Brandyn Roemer, Yan Solihin, and Milos Prvulovic. Memtracker: Efficient and programmable support for memory access monitoring and debugging. In Proc. of 2007 IEEE 13th International Symposium on High Performance Computer Architecture (HPCA '07), pages 273--284, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Qin Zhao, Rodric M. Rabbah, Saman P. Amarasinghe, Larry Rudolph, and Weng-Fai Wong. How to do a million watchpoints: Efficient debugging using dynamic instrumentation. In Proc. of 17th International Conference on Compiler Construction (CC '08), pages 147--162, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Qin Zhao, Derek Bruening, and Saman Amarasinghe. Umbra: Efficient and scalable memory shadowing. In Proc. of International Symposium on Code Generation and Optimization (CGO '10), April 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Pin Zhou, Radu Teodorescu, and Yuanyuan Zhou. Hard: Hardware-assisted lockset-based race detection. In Proc. of 2007 IEEE 13th International Symposium on High Performance Computer Architecture (HPCA '07), pages 121--132, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Yuanyuan Zhou, Pin Zhou, Feng Qin, Wei Liu, and Josep Torrellas. Efficient and flexible architectural support for dynamic monitoring. ACM Transactions on Architecture and Code Optimization (TACO), 2 (1): 3--33, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Efficient memory shadowing for 64-bit architectures

    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
    • Published in

      cover image ACM Conferences
      ISMM '10: Proceedings of the 2010 international symposium on Memory management
      June 2010
      140 pages
      ISBN:9781450300544
      DOI:10.1145/1806651
      • General Chair:
      • Jan Vitek,
      • Program Chair:
      • Doug Lea
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 45, Issue 8
        ISMM '10
        August 2010
        129 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1837855
        Issue’s Table of Contents

      Copyright © 2010 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 5 June 2010

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate72of156submissions,46%

    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!