ABSTRACT
Software instrumentation has been a convenient and portable approach for dynamic analysis, debugging, or profiling of program execution. Unfortunately, instrumentation may change the temporal behavior of multi-threaded program execution and result in different ordering of thread operations, which is called probe effect. While the approaches to reduce instrumentation overhead, to enable reproducible execution, and to enforce deterministic threading have been studied, no research has yet answered if an instrumented execution has the same behavior as the program execution without any instrumentation and how the execution gets changed if there were any. In this paper, we propose a simulation-based analysis to detect the changes of execution event ordering that are induced by instrumentation operations. The execution model of a program is constructed from the trace of instrumented program execution and is used in a simulation analysis where instrumentation overhead is removed. As a consequence, we can infer the ordering of events in the original program execution and verify the existence of probe effect resulted from instrumentation.
- J. Gait, "A probe effect in concurrent programs," Software Practice and Experience, 16(3), pp: 225--233, 1986. Google ScholarDigital Library
- D. Kranzlmüller, R. Reussner, and C. Schaubschläger, "Monitor Overhead Measurement of MPI Applications with SKaMPI," Proceedings of the 6th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface, pp: 43--50, 1999. Google ScholarDigital Library
- L. Lamport, "Time, clocks, and the ordering of events in a distributed system," Communications of the ACM, 21(7), pp: 558--565, 1978. Google ScholarDigital Library
- A. D. Malony, D. A. Reed, and H. A. G. Wijshoff, "Performance Measurement Intrusion and Perturbation Analysis," IEEE Transactions on Parallel and Distributed Systems, 3(4), pp: 433--450, 1992. Google ScholarDigital Library
- F. Wolf, A. D. Malony, S. Shende, and A. Morris, "Trace-Based Parallel Performance Overhead Compensation," Proceedings of the International Conference on High Performance Computing and Communications, pp: 617--628, 2005. Google ScholarDigital Library
- T. J. LeBlanc and J. M. Mellor-Crummey, "Debugging parallel programs with instant replay," IEEE Transactions on Computers, 36(4), pp: 471--482, 1987. Google ScholarDigital Library
- K. D. Bosschere, M. Ronsse, and M. Christiaens, "Debugging shared memory parallel programs using record/replay," ACM Future Generation Computer Systems, 19(5), pp: 679--687, 2003. Google ScholarDigital Library
- M. Ronsse, M. Christiaens, and K. D. Bosschere, "Cyclic debugging using execution replay," Proceedings of the International Conference on Computational Science, pp: 851--860, 2001. Google ScholarDigital Library
- S. V. Adve, "Data races are evil with no exceptions: technical perspective," Communication of the ACM, 53(11), pp: 84, 2010. Google ScholarDigital Library
- S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. E. Anderson, "Eraser: A dynamic data race detector for multi-threaded programs," ACM Transactions on Computer Systems, 15(4), pp: 391--411, 1997. Google ScholarDigital Library
- C. Flanagan and S. N. Freund, "FastTrack: efficient and precise dynamic race detection," Proceedings of the ACM SIGPLAN conference on Programming language design and implementation, pp: 121--133, 2009. Google ScholarDigital Library
- DRD, Valgrind-3.8.1. http://valgrind.org/.Google Scholar
- Intel Inspector XE 2013. http://software.intel.com/en-us/intel-inspector-xe.Google Scholar
- T. Bergan, J. Devietti, N. Hunt, and L. Ceze, "The deterministic execution hammer: How well does it actually pound nails?," The Second Workshop on Determinism and Correctness in Parallel Programming, 2011.Google Scholar
- M. Olszewski, J. Ansel, and S. Amarasinghe, "Kendo: Efficient Deterministic Multithreading in Software," Proceedings of the 14th international conference on Architectural support for programming languages and operating systems, pp: 97--108, 2009. Google ScholarDigital Library
- T. Liu, C. Curtsinger, and E. D. Berger, "DTHREADS: Efficient Deterministic Multithreading," The 22nd ACM Symposium on Operating Systems Principles, pp: 327--336, 2011. Google ScholarDigital Library
- Kai Lu, Xu Zhou, Tom Bergan, and Xiaoping Wang, "Efficient Deterministic Multithreading Without Global Barriers," The 19th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp: 287--300, 2014. Google ScholarDigital Library
- Y. Lee, Y. Song, R. Girme, S. Zaveri, and Y. Chen, "Replay Debugging for Multi-threaded Embedded Software," Proceedings of IEEE/IFIP 8th International Conference on Embedded and Ubiquitous Computing, pp: 15--22, 2010. Google ScholarDigital Library
- D. Lee, B. Wester, K. Veeraraghavan, S. Narayanasamy, Satish, P. Chen, et al., "Respec: efficient online multiprocessor replay via speculation and external determinism," Proceedings of the international conference on Architectural support for programming languages and operating systems, pp: 77--90, 2010. Google ScholarDigital Library
- N. Froyd, J. Mellor-Crummey, and R. Fowler, "Low-overhead call path profiling of unmodified, optimized code," Proceedings of the 19th annual international conference on Supercomputing, pp: 81--90, 2005. Google ScholarDigital Library
- X. Zhuang, M. Serrano, H. Cain, and J. Choi, "Accurate, efficient, and adaptive calling context profiling," Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pp: 263--271, 2006. Google ScholarDigital Library
- T. Moseley, A. Shye, V. Reddi, D. Grunwald, and R. Peri, "Shadow Profiling: Hiding Instrumentation Costs with Parallelism," Proceedings of the International Symposium on Code Generation and Optimization, pp: 198--208, 2007. Google ScholarDigital Library
- Q. Zhao, I Cutcutache, and W. Wong, "PiPA: Pipelined profiling and analysis on multicore systems," ACM Transactions on Architecture and Code Optimization, 7(3), pp: 13:1--13:29, 2010. Google ScholarDigital Library
- M. Kim, H. Kim, and C. Luk, "SD3: A Scalable Approach to Dynamic Data-Dependence Profiling," Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, pp: 535--546, 2010. Google ScholarDigital Library
- VxWorks Kernel Programmer's Guide 6.8.Google Scholar
- Linux Test Project, http://ltp.sourceforge.net/.Google Scholar
- P. Arafa, H. Kashif, and S. Fischmeister, "DIME: time-aware dynamic binary instrumentation using rate-based resource allocation," Proceedings of the Eleventh ACM International Conference on Embedded Software, Article No. 25, 2013. Google ScholarDigital Library
- S. Fischmeister and P. Lam, "Time-Aware Instrumentation of Embedded Software," IEEE Transactions on Industrial Informatics, 6(4), 2010.Google ScholarCross Ref
Index Terms
- On the existence of probe effect in multi-threaded embedded programs
Recommendations
Partial replay of long-running applications
ESEC/FSE '11: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineeringBugs in deployed software can be extremely difficult to track down. Invasive logging techniques, such as logging all non-deterministic inputs, can incur substantial runtime overheads. This paper shows how symbolic analysis can be used to re-create path ...
Low overhead program monitoring and profiling
Program instrumentation, inserted either before or during execution, is rapidly becoming a necessary component of many systems. Instrumentation is commonly used to collect information for many diverse analysis applications, such as detecting program ...
Comments