Log-based architectures: using multicore to help software behave correctly

  • Authors:
  • Shimin Chen;Phillip B. Gibbons;Michael Kozuch;Todd C. Mowry

  • Affiliations:
  • Intel Labs Pittsburgh;Intel Labs Pittsburgh;Intel Labs Pittsburgh;Intel Labs Pittsburgh and Carnegie Mellon University

  • Venue:
  • ACM SIGOPS Operating Systems Review
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

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.