Check out the new USENIX Web site. next up previous
Next: Introduction


Using Performance Reflection in Systems Software

Robert Fowler, Alan Cox, Sameh Elnikety, and Willy Zwaenepoel
Department of Computer Science, Rice University, Houston, Texas, USA.
School of Computer and Communication Sciences, EPFL, Lausanne, Switzerland


We argue that systems software can exploit hardware instrumentation mechanisms, such as performance monitoring counters in modern processors, along with general system statistics to reactively modify its behavior to achieve better performance. In this paper we outline our approach of using these instrumentation mechanisms to estimate productivity and overhead metrics while running user applications. At the kernel level, we speculate that the scheduler can exploit these metrics to improve system performance. At the application level, we show that applications can use these metrics as well as application-specific productivity metrics to reactively tune their performance. We give several examples of using reflection at the kernel level (e.g., scheduling to improve memory hierarchy performance) and at the application level (e.g., server throttling).

Sameh Mohamed Elnikety 2003-06-15