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 2010 Publication 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/.
[2]
Derek Bruening. Efficient, Transparent, and Comprehensive Runtime Code Manipulation. PhD thesis, M.I.T., September 2004.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[10]
Hewlett-Packard. Third Degree. http://h30097.www3.hp.com/developerstoolkit/tools.html.
[11]
Intel. Intel Parallel Inspector. http://software.intel.com/en-us/intel-parallel-inspector/.
[12]
OpenWorks LLP. Helgrind: A data race detector, 2007. http://valgrind.org/docs/manual/hg-manual.html/.
[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.
[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.
[15]
Nicholas Nethercote and Alan Mycroft. Redux: A dynamic dataflow tracer. In Electronic Notes in Theoretical Computer Science, volume 89, 2003.
[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.
[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.
[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.
[19]
Parasoft. Insure++. http://www.parasoft.com/jsp/products/insure.jsp?itemId=63.
[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.
[21]
PurifyRational Software. Purify: Fast detection of memory leaks and access errors, 2000. http://www.rationalsoftware.com/products/whitepapers/319.jsp.
[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.
[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.
[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.
[25]
Standard Performance Evaluation Corporation. SPEC CPU2006 benchmark suite, 2006. http://www.spec.org/osg/cpu2006/.
[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.
[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.
[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.
[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.
[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.
[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.

Cited By

View all
  • (2020)Comprehensive Java Metadata Tracking for Attack Detection and Repair2020 50th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN48063.2020.00024(39-51)Online publication date: Jun-2020
  • (2019)Project PBerryProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3317550.3321424(127-135)Online publication date: 13-May-2019
  • (2015)Page overlaysACM SIGARCH Computer Architecture News10.1145/2872887.275037943:3S(79-91)Online publication date: 13-Jun-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 June 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic optimization
  2. shadow memory

Qualifiers

  • Research-article

Conference

ISMM '10
Sponsor:
ISMM '10: International Symposium on Memory Management
June 5 - 6, 2010
Ontario, Toronto, Canada

Acceptance Rates

Overall Acceptance Rate 72 of 156 submissions, 46%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Comprehensive Java Metadata Tracking for Attack Detection and Repair2020 50th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN48063.2020.00024(39-51)Online publication date: Jun-2020
  • (2019)Project PBerryProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3317550.3321424(127-135)Online publication date: 13-May-2019
  • (2015)Page overlaysACM SIGARCH Computer Architecture News10.1145/2872887.275037943:3S(79-91)Online publication date: 13-Jun-2015
  • (2015)Efficient Rebuilding of Large Java Heaps from Event TracesProceedings of the Principles and Practices of Programming on The Java Platform10.1145/2807426.2807433(76-89)Online publication date: 8-Sep-2015
  • (2015)Page overlaysProceedings of the 42nd Annual International Symposium on Computer Architecture10.1145/2749469.2750379(79-91)Online publication date: 13-Jun-2015
  • (2015)Lightweight Memory CheckpointingProceedings of the 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks10.1109/DSN.2015.45(474-484)Online publication date: 22-Jun-2015
  • (2013)SkaduProceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO.2013.6494985(1-12)Online publication date: 23-Feb-2013
  • (2013)CloudFenceProceedings of the 16th International Symposium on Research in Attacks, Intrusions, and Defenses - Volume 814510.1007/978-3-642-41284-4_21(411-431)Online publication date: 23-Oct-2013
  • (2012)AikidoACM SIGPLAN Notices10.1145/2248487.215099547:4(173-184)Online publication date: 3-Mar-2012
  • (2012)AikidoACM SIGARCH Computer Architecture News10.1145/2189750.215099540:1(173-184)Online publication date: 3-Mar-2012
  • Show More Cited By

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