Skip to main content

Hardware Supported Flexible Monitoring: Early Results

  • Conference paper
Runtime Verification (RV 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5779))

Included in the following conference series:

Abstract

Monitoring of software’s execution is crucial in numerous software development tasks. Current monitoring efforts generally require extensive instrumentation of the software or dedicated hardware test rig designed to provide visibility into the software. To fully understand software’s behavior, the production software must be studied in its production environment. To address this fundamental software engineering challenges, we propose a compiler and hardware supported framework for monitoring and observation of software-intensive systems.

We place three fundamental requirements on our monitoring framework. The monitoring must be non-intrusive, low-overhead, and predictable so that the software is not unduly disturbed. The framework must also allow low-level monitoring and be highly flexible so we can accommodate a broad range of crucial monitoring activities.

The general idea behind our work is that to make dramatic progress in non-intrusive, predictable, and fine-grained monitoring, we must change how software is compiled and how hardware is designed; a software-monitoring framework covering the development of monitors, through compilation, and down to the hardware is essential. To achieve our goals, we have pursued an approach leveraging the rapid emergence of multi-core processor architectures to achieve a non-intrusive, predictable, fine-grained, and highly flexible general purpose monitoring framework.

In this report we describe our initial steps in this direction and provide some preliminary performance results achieved with this new multi-core architecture. We use separate cores for the execution of the application to be monitored and the monitors. We augment each core with identical programmable extraction logic that can observe an application executing on the core as its program state changes.

This work has been partially supported by NASA Ames Research Center Cooperative Agreement NNA06CB21A, NASA IV&V Facility Contract NNG-05CB16C, and the L-3 Titan Group.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. AMD Corporation. Leading the industry: Multi-core technology & dual-core processors from amd (2005), http://multicore.amd.com/en/Technology/

  2. Austin, T.M., Breach, S.E., Sohi, G.S.: Efficient detection of all pointer and array access errors. In: ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, PLDI 1994 (1994)

    Google Scholar 

  3. Chen, S., Falsafi, B., Gibbons, P.B., Kozuch, M., Mowry, T.C., Teodorescu, R., Ailamaki, A., Fix, L., Ganger, G.R., Lin, B., Schlosser, S.W.: Log-based architectures for general-purpose monitoring of deployed code. In: ASID 2006: Proceedings of the 1st workshop on Architectural and system support for improving software dependability, pp. 63–65. ACM, New York (2006)

    Chapter  Google Scholar 

  4. Chen, S., Kozuch, M., Strigkos, T., Falsafi, B., Gibbons, P.B., Mowry, T.C., Ramachandran, V., Ruwase, O., Ryan, M., Vlachos, E.: Flexible hardware acceleration for instruction-grain program monitoring. In: 35th Annual International Symposium on Computer Architecture (ISCA 2008) (June 2008)

    Google Scholar 

  5. Chilenski, J.J., Miller, S.P.: Applicability of modified condition/decision coverage to software testing. Software Engineering Journal 9, 193–200 (1994)

    Article  Google Scholar 

  6. Crandall, J.R., Chong, F.T.: Minos: Control data attack prevention orthogonal to memory model. In: MICRO 37: Proceedings of the 37th annual IEEE/ACM International Symposium on Microarchitecture, Washington, DC, USA, 2004, pp. 221–232. IEEE Computer Society Press, Los Alamitos (2004)

    Google Scholar 

  7. Dalton, M., Kannan, H., Kozyrakis, C.: Raksha: A flexible information flow architecture for software security. In: 34th Annual International Symposium on Computer Architecture, ISCA 2007 (2007)

    Google Scholar 

  8. Esterel-Technologies. SCADE Suite product description. (2004), http://www.esterel-technologies.com/v2/scadeSuiteForSafetyCriticalSoftwareDevelopment/index.html

  9. Magnusson, P.S., et al.: Simics: A full system simulation platform. IEEE Computer 35(2), 50–58 (2002)

    Article  Google Scholar 

  10. Friedrich, J., McCredie, B., James, N., Huott, B., Curran, B., Fluhr, E., Mittal, G., Chan, E., Chan, Y., Plass, D., Chu, S., Le, H., Clark, L., Ripley, J., Taylor, S., Dilullo, J., Lanzerotti, M.: Design of the POWER6(TM) Microprocessor. In: 2007 IEEE International Solid-State Circuits Conference (February 2007)

    Google Scholar 

  11. Harel, D., Lachover, H., Naamad, A., Pnueli, A., Politi, M., Sherman, R., Shtull-Trauring, A., Trakhtenbrot, M.: Statemate: A working environment for the development of complex reactive systems. IEEE Transactions on Software Engineering 16(4), 403–414 (1990)

    Article  Google Scholar 

  12. Hastings, R., Joyce, B.: Purify: Fast detection of memory leaks and access errors. In: The Winter 1992 USENIX Conference, San Francisco, California, pp. 125–138 (1991)

    Google Scholar 

  13. He, G., Zhai, A., Yew, P.-C.: Ex-mon: An architectural framework for dynamic program monitoring on multicore processors. In: The Twelfth Workshop on Interaction between Compilers and Computer Architectures, Interact-12 (2008)

    Google Scholar 

  14. Intel Corporation. Intel’s dual-core processor for desktop PCs (2005), http://www.intel.com/personal/desktopcomputer/dual_core/index.htm

  15. Intel Corporation. Intel itanium architecture software developer’s manual, revision 2.2 (2006), http://www.intel.com/design/itanium/manuals/iiasdmanual.htm

  16. Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In: ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation (PLDI 2005) (June 2005)

    Google Scholar 

  17. Martin, M.M.K., Sorin, D.J., Beckmann, B.M., Marty, M.R., Xu, M., Alameldeen, A.R., Moore, K.E., Hill, M.D., Wood, D.A.: Multifacet’s general execution-driven multiprocessor simulator (gems) toolset. Computer Architecture News (2005)

    Google Scholar 

  18. Mathworks Inc. Simulink product web site. Via the world-wide-web: http://www.mathworks.com/products/simulink

  19. Mathworks Inc. Stateflow product web site. Via the world-wide-web: http://www.mathworks.com

  20. Miller, S.P., Tribble, A.C., Whalen, M.W., Heimdahl, M.P.E.: Proving the shalls: Early validation of requirements through formal methods. Int. J. Softw. Tools Technol. Transf. 8(4), 303–319 (2006)

    Article  Google Scholar 

  21. Mitchell, N., Sevitsky, G.: LeakBot: An automated and lightweight tool for diagnosing memory leaks in large Java applications. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)

    Google Scholar 

  22. Nethercote, N., Seward, J.: How to shadow every byte of memory used by a program. In: The Third International ACM SIGPLAN/SIGOPS Conference on Virtual Execution Environments (VEE 2007), San Diego, California, USA (June 2007)

    Google Scholar 

  23. Nethercote, N., Seward, J.: Valgrind: A framework for heavyweight dynamic binary instrumentation. In: ACM SIGPLAN 2007 Conference on Programming Language Design and Implementation (PLDI 2007), San Diego, California, USA (June 2007)

    Google Scholar 

  24. The NuSMV Toolset (2005), http://nusmv.irst.itc.it/

  25. Pezze, M., Young, M.: Software Test and Analysis: Process, Principles, and Techniques. John Wiley and Sons, Chichester (2006)

    MATH  Google Scholar 

  26. Qin, F., Lu, S., Zhou, Y.: Safemem: Exploiting ECC-memory for detecting memory leaks and memory corruption during production runs. In: 11th International Symposium on High-Performance Computer Architecture (HPCA-11) (February 2005)

    Google Scholar 

  27. Qin, F., Wang, C., Li, Z., Kim, H.-s., Zhou, Y., Wu, Y.: Lift: A low-overhead practical information flow tracking system for detecting security attacks. In: 39th Annual IEEE/ACM International Symposium on Microarchitecture, 2006. MICRO-39, December 2006, pp. 135–148 (2006)

    Google Scholar 

  28. RTCA. DO-178B: Software Consideration. In: Airborne Systems and Equipment Certification. RTCA (1992)

    Google Scholar 

  29. Seward, J., Nethercote, N.: Using valgrind to detect undefined value errors with bit-precision. In: The USENIX 2005 Annual Technical Conference, Anaheim, California, USA (April 2005)

    Google Scholar 

  30. Shetty, R., Kharbutli, M., Solihin, Y., Prvulovic, M.: Heapmon: a helper-thread approach to programmable, automatic, and low-overhead memory bug detection. IBM J. Res. Dev. 50(2/3), 261–275 (2006)

    Article  Google Scholar 

  31. Standard Performance Evaluation Corporation. The SPEC Benchmark Suite, http://www.specbench.org

  32. Suh, G.E., Lee, J.W., Zhang, D., Devadas, S.: Secure program execution via dynamic information flow tracking. In: ASPLOS-XI: Proceedings of the 11th international conference on Architectural support for programming languages and operating systems, pp. 85–96. ACM, New York (2004)

    Chapter  Google Scholar 

  33. Sun Corporation. Throughput computing—niagara (2005), http://www.sun.com/processors/throughput/

  34. Venkataramani, G., Doudalis, I., Solihin, Y., Prvulovic, M.: Flexitaint: A programmable accelerator for dynamic taint propagation. In: 14th International Symposium on High-Performance Computer Architecture (HPCA-14) (February 2008)

    Google Scholar 

  35. Venkataramani, G., Roemer, B., Solihin, Y., Prvulovic, M.: Memtracker: Efficient and programmable support for memory access monitoring and debugging. In: 13th International Symposium on High-Performance Computer Architecture (HPCA-13) (February 2007)

    Google Scholar 

  36. Zhou, P., Qin, F., Liu, W., Zhou, Y., Torrellas, J.: iwatcher: Simple, general architectural support for software debugging. In: 31st Annual International Symposium on Computer Architecture, ISCA 2004 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zhai, A., He, G., Heimdahl, M.P.E. (2009). Hardware Supported Flexible Monitoring: Early Results. In: Bensalem, S., Peled, D.A. (eds) Runtime Verification. RV 2009. Lecture Notes in Computer Science, vol 5779. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04694-0_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04694-0_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04693-3

  • Online ISBN: 978-3-642-04694-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics