Affiliation:
1. Intel Labs Pittsburgh
2. Intel Labs Pittsburgh and Carnegie Mellon University
Abstract
While application performance and power-efficiency are both important, application correctness is even more important. In other words, if the application is misbehaving, it is little consolation that it is doing so quickly or power-efficiently. In the Log-Based Architectures (LBA) project, we are focusing on a challenging source of application misbehavior: software bugs, including obscure bugs that only cause problems during security attacks. To help detect and fix software bugs, we have been exploring techniques for accelerating dynamic program monitoring tools, which we call "lifeguards". Lifeguards are typically written today using dynamic binary instrumentation frameworks such as Valgrind or Pin. Due to the overheads of binary instrumentation, lifeguards that require instructiongrain information typically experience 30X-100X slowdowns, and hence it is only practical to use them during explicit debug cycles. The goal in the LBA project is to reduce these overheads to the point where lifeguards can run continuously on deployed code. To accomplish this, we propose hardware mechanisms to create a dynamic log of instruction-level events in the monitored application and stream this information to one or more software lifeguards running on separate cores on the same multicore processor. In this paper, we highlight techniques and features of LBA that reduce the slowdown to just 2%--51% for sequential programs and 28%--51% for parallel programs.
Publisher
Association for Computing Machinery (ACM)
Reference41 articles.
1. D. Bruening. Efficient Transparent and Comprehensive Runtime Code Manipulation. PhD thesis MIT 2004. D. Bruening. Efficient Transparent and Comprehensive Runtime Code Manipulation. PhD thesis MIT 2004.
2. VPC3
3. W. R. Bush J. D. Pincus and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Software -- Practice and Experience 30(7) 2000. 10.1002/(SICI)1097-024X(200006)30:7%3C775::AID-SPE309%3E3.0.CO;2-H W. R. Bush J. D. Pincus and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Software -- Practice and Experience 30(7) 2000. 10.1002/(SICI)1097-024X(200006)30:7%3C775::AID-SPE309%3E3.0.CO;2-H
4. Log-based architectures for general-purpose monitoring of deployed code
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Jintide: Utilizing Low-Cost Reconfigurable External Monitors to Substantially Enhance Hardware Security of Large-Scale CPU Clusters;IEEE Journal of Solid-State Circuits;2021-08
2. Context-Sensitive Fencing;Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems;2019-04-04
3. Architectural Support for Containment-based Security;Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems;2019-04-04
4. A Comparison of the Influence of Different Multi-core Processors on the Runtime Overhead for Application-Level Monitoring;Multicore Software Engineering, Performance, and Tools;2012