Time-aware Instrumentation

Time-aware instrumentation aims to give the developer control over the overhead introduced by software-based instrumentation methods.

Tracing a program usually means extracting information from the program while it runs. Depending on the method, this extraction process generally causes perturbation in the application. The perturbation originates from the instrumentation process. Usually, the more tracing code the program executes during the run, the more the slow down and perturbation. The reason is that, in general, the addition of more tracing code increases the number of instructions the processor executes thus leading to a longer execution time.

This line of research investigates how to develop a static instrumentation framework that gives the developer unprecedented control over what to instrument and what extra-functional properties to preserve. It is the first fully implemented framework that can consider properties such as timing, binary size, and debugging channel bandwidth.

Recently, we also investigated extending dynamic instrumentation with Pin to support time-aware instrumentation. We proposed DIME, a time-aware dynamic binary instrumentation technique that adds an adjustable bound on the timing overhead to the program under analysis.

Instrumenting Video Players

The video shows one of the case studies. The goal is extracting VLC’s call context tree while VLC plays a high definition, 29.97 fps, 720x480, 1Mbps bitrate video. The video has 599 blocks that VLC decodes for viewing frames. VLC, running on top of native Pin, decodes only 75 blocks which translates into an unwatchable video and errors messages for dropping frames. Whereas, DIME permits extracting the call context tree while maintaining a continuous video playback.

The following video shows a second case study, in this case using MPlayer.

Instrumenting Automotive Software

This video shows a case study using automotive software.

Last updated: July 16, 2017

Related Publications

Arafa, P., G. M. Tchamgoue, H. Kashif, and S. Fischmeister, "QDIME: QoS-aware Dynamic Binary Instrumentation", IEEE International Symposium on the Modeling, Analysis, and Simulation of Computer and Telecommunication Systems, Banff, Canada, 2017. PDF icon [pdf] (560.77 KB)
Denil, J., H. Kashif, P. Arafa, H. Vangheluwe, and S. Fischmeister, "Instrumentation and Preservation of Extra-functional Properties of Simulink Models", Proceedings of the Symposium on Theory of Modeling and Simulation - DEVS Integrative M&S Symposium, Alexandria, USA, 2015.
Kashif, H., J. Thomas, H. Patel, and S. Fischmeister, "Static Slack-Based Instrumentation of Programs", Proc. of the 20th IEEE International Conference on Emerging Technologies & Factory Automation (ETFA), Luxembourg, September, 2015. PDF icon [pdf] (603.77 KB)
Arafa, P., H. Kashif, and S. Fischmeister, "DIME: Time-aware Dynamic Binary Instrumentation Using Rate-based Resource Allocation", Proc. of the 13th International Conference on Embedded Software (EMSOFT), Montreal, Canada, Sept, 2013. PDF icon [paper] (320.59 KB)
Kashif, H., P. Arafa, and S. Fischmeister, "INSTEP: A Static Instrumentation Framework for Preserving Extra-functional Properties", Proc. of the 19th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA), Taipei, Taiwan, August, 2013. PDF icon [paper] (341.77 KB)
Kashif, H., and S. Fischmeister, "Program Transformation for Time-aware Instrumentation", Proc. of the 17th IEEE International Conference on Emerging Technologies & Factory Automation (ETFA), Krakow, Poland, pp. 1-8, September, 2012. PDF icon [paper] (409.92 KB)
Fischmeister, S., and P. Lam, "On Time-Aware Instrumentation of Programs", Proc. of the IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), San Francisco, USA, pp. 305–314, April, 2009. PDF icon [talk] (878.1 KB)
Fischmeister, S., and P. Lam, "Time-Aware Instrumentation of Embedded Software", IEEE Transactions on Industrial Informatics, vol. 6, pp. 652–663, August, 2010. PDF icon [paper] (1.2 MB)