Practical experiences of applying source-level WCET flow analysis to industrial code

Code-level timing analysis, such as worst-case execution time (WCET) analysis, usually takes place at the binary level. However, many program properties that are important for the analysis, such as constraints on possible program flows, are easier to derive at the source code level since this code contains much more information. Therefore, various source-level analyses can provide valuable support for timing analysis. However, source-level analysis is not always smoothly applicable in industrial settings. In this paper, we report on the experiences of applying source-level analysis to industrial code in the ALL-TIMES project: the promises, the pitfalls, and the workarounds that were developed. We also discuss various approaches to how the difficulties that were encountered can be tackled.

[1]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[2]  Niklas Holsti,et al.  Worst-case execution time analysis for digital signal processors , 2000, 2000 10th European Signal Processing Conference.

[3]  Jan Gustafsson,et al.  Static WCET Analysis of Real-Time Task-Oriented Code in Vehicle Control Systems , 2006, Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (isola 2006).

[4]  Björn Lisper The ALL-TIMES project: introduction and overview , 2012, International Journal on Software Tools for Technology Transfer.

[5]  John R. White,et al.  Linkers and Loaders , 1972, CSUR.

[6]  Reinhard Wilhelm,et al.  An abstract interpretation-based timing validation of hard real-time avionics software , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

[7]  EmanuelssonPär,et al.  A Comparative Study of Industrial Static Analysis Tools , 2008 .

[8]  Raimund Kirner,et al.  WCET Analysis: The Annotation Language Challenge , 2007, WCET.

[9]  Jens Knoop,et al.  TuBound - A Conceptually New Tool for Worst-Case Execution Time Analysis , 2008, WCET.

[10]  Jan Gustafsson,et al.  Static Timing Analysis of Real-Time Operating System Code , 2004, ISoLA.

[11]  Ulf Nilsson,et al.  A Comparative Study of Industrial Static Analysis Tools , 2008, SSV.

[12]  Niklas Holsti,et al.  USING A WORST-CASE EXECUTION TIME TOOL FOR REAL-TIME VERIFICATION OF THE DEBIE SOFTWARE , 2000 .

[13]  Patrick Cousot,et al.  The ASTREÉ Analyzer , 2005, ESOP.

[14]  Jan Gustafsson,et al.  Automatic Derivation of Loop Bounds and Infeasible Paths for WCET Analysis Using Abstract Execution , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[15]  Jakob Engblom,et al.  Worst-Case Execution Time Analysis of Disable Interrupt Regions in a Commercial Real-Time Operating System , 2002 .

[16]  Nuno Silva,et al.  Challenges in Calculating the WCET of a Complex On-board Satellite Application , 2003, WCET.

[17]  Jan Gustafsson,et al.  Applying static WCET analysis to automotive communication software , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[18]  Henrik Theiling,et al.  Reliable and Precise WCET Determination for a Real-Life Processor , 2001, EMSOFT.

[19]  Dawson R. Engler,et al.  A few billion lines of code later , 2010, Commun. ACM.

[20]  David B. Whalley,et al.  Supporting Timing Analysis by Automatic Bounding of Loop Iterations , 2000, Real-Time Systems.

[21]  Nicholas Merriam,et al.  Estimation of productivity increase for timing analysis tool chains , 2012, International Journal on Software Tools for Technology Transfer.

[22]  Jan Gustafsson,et al.  Evaluation of Automatic Flow Analysis for WCET Calculation on Industrial Real-Time System Code , 2008, 2008 Euromicro Conference on Real-Time Systems.

[23]  Daniel Kästner,et al.  Architecture exploration and timing estimation during early design phases , 2012, International Journal on Software Tools for Technology Transfer.

[24]  Paul Levi,et al.  Challenges of Timing Verification Tools in the Automotive Domain , 2006, Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (isola 2006).

[25]  Jens Knoop,et al.  Comparison of type-based and alias-based component recognition for embedded systems software , 2012, International Journal on Software Tools for Technology Transfer.

[26]  Jan Gustafsson,et al.  ALF - A Language for WCET Flow Analysis , 2009, WCET.