A technique to continuously record complete computer behavior with low overhead

Thomas Eugene Willis, Purdue University

Abstract

Computer architects frequently rely on measurements of a workload running on an existing system to drive performance studies. These measurements are gathered by behavior monitoring techniques. To best model system performance, architectural studies based on workload measurements must use accurate measurements of actual system behavior. Existing monitoring techniques are unable to make high-resolution, low-overhead measurements of complete system behavior for long durations. Thus, study of interactive, multiprogram, and multiprocessor environments is not possible. To extend knowledge and understanding of computer performance, behavior monitoring techniques that accommodate complex workloads are needed. This dissertation presents Firehose, a behavior monitoring system that can gather complete instruction and data reference traces of multiprogrammed workloads for arbitrary duration on production computer systems. Firehose combines lightweight, side-effect free, atomic software instrumentation with simple, memory-mapped hardware to measure chosen behaviors. Overhead is sufficiently low that the interactive user experience is not compromised when monitoring interactive codes, independent of the desired monitoring duration. Firehose software instrumentation and hardware characteristics combine to make instruction-level monitoring of multiprocess behavior as simple as uniprocess monitoring is for other techniques. When monitoring systems with aggressive memory hierarchies, Firehose can use novel instrumentation to avoid serializing memory accesses directed at its hardware. By attaching to the monitored system via the main memory bus, the hardware is portable among machines having the same memory interface. To demonstrate the capabilities of the Firehose technique we constructed Firebucket, the first Firehose implementation. Using Firebucket, we gathered high-resolution measurements of multiprogram behavior in an interactive environment. The experience gained by designing and implementing Firebucket identifies many ways in which a computer system can support behavior monitoring. Providing such capabilities not only reduces the effort necessary to implement a monitoring technique, but also can further reduce its dynamic overhead.

Degree

Ph.D.

Advisors

Adams, Purdue University.

Subject Area

Electrical engineering|Computer science

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS