A Memory Access Detection Methodology for Accurate Workload Characterization

Tools for memory access detection are widely used, playing an important role especially in real-time systems. For example, on multi-core platforms, the problem of co-scheduling CPU and memory resources with hard real-time constraints requires a deep understanding of the memory access patterns of the deployed task set. While code execution flow can be analyzed by considering the control-flow graph and reasoning in terms of basic blocks, a similar approach cannot apply to data accesses. In this paper, we propose MadT, a tool that uses a novel mechanism to perform memory access detection of general purpose applications. MadT does not perform binary instrumentation and always executes application code natively on the platform. Hence it can operate entirely in user-space without sand-boxing the task under analysis. Furthermore, MadT provides detailed symbolic information about the accessed memory structures, so it is able to translate the virtual addresses to their original symbolic variable names. Finally, it requires no modifications to application source code. The proposed methodology relies on existing OS-level capabilities. In this paper, we describe how MadT has been implemented on commercial hardware and compare its performance with state-of-the-art software techniques for memory access detection.

[1]  Marco Caccamo,et al.  A Predictable Execution Model for COTS-Based Embedded Systems , 2011, 2011 17th IEEE Real-Time and Embedded Technology and Applications Symposium.

[2]  Marco Caccamo,et al.  Real-time cache management framework for multi-core architectures , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[3]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.

[4]  Patrick Cousot,et al.  Abstract Interpretation Based Formal Methods and Future Challenges , 2001, Informatics.

[5]  Serge J. Belongie,et al.  SD-VBS: The San Diego Vision Benchmark Suite , 2009, 2009 IEEE International Symposium on Workload Characterization (IISWC).

[6]  Markus von Detten,et al.  Towards systematic, comprehensive trace generation for behavioral pattern detection through symbolic execution , 2011, PASTE '11.

[7]  Xiaofeng Gao,et al.  Reducing overheads for acquiring dynamic memory traces , 2005, IEEE International. 2005 Proceedings of the IEEE Workload Characterization Symposium, 2005..

[8]  Andrew W. Appel,et al.  Virtual memory primitives for user programs , 1991, ASPLOS IV.

[9]  Dan Quinlan,et al.  The ROSE Source-to-Source Compiler Infrastructure , 2011 .

[10]  Harish Patil,et al.  Pin: building customized program analysis tools with dynamic instrumentation , 2005, PLDI '05.

[11]  James R. Larus,et al.  Efficient program tracing , 1993, Computer.

[12]  Rui Wang,et al.  Real Time Cache Performance Analyzing for Multi-core Parallel Programs , 2013, 2013 International Conference on Cloud and Service Computing.

[13]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[14]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[15]  Christoph Cullmann Cache persistence analysis: Theory and practice , 2013, TECS.

[16]  Quan Sun,et al.  A flexible automatic source-level instrumentation framework for dynamic program analysis , 2011, 2011 IEEE 2nd International Conference on Software Engineering and Service Science.

[17]  Nicholas Nethercote,et al.  Valgrind: a framework for heavyweight dynamic binary instrumentation , 2007, PLDI '07.

[18]  Marco Caccamo,et al.  Memory-centric scheduling for multicore hard real-time systems , 2012, Real-Time Systems.

[19]  Daniel R. Edelson Fault Interpretation: Fine-Grain Monitoring of Page Accesses , 1992, USENIX Winter.

[20]  Marco Caccamo,et al.  MadT: A Memory Access Detection Tool for Symbolic Memory Profiling , 2015 .

[21]  Lui Sha,et al.  Real-Time I/O Management System with COTS Peripherals , 2013, IEEE Transactions on Computers.