Check out the new USENIX Web site. next up previous
Next: Our Approach Up: Using Performance Reflection in Previous: Using Performance Reflection in

Introduction

Traditional processors have real-time clocks and interval timers. Today cycle counters and event counters are universally available in modern processors and chipsets. For example, the AMD Athlon processor has four performance monitoring counters (PMC) that can be programmed to count specific performance-related events such as TLB and cache misses. Moreover going beyond simple counters, the Alpha EV67 processor and its successors includes a ProfileMe [5] facility that can record the execution history of a single instruction as it passes through the pipeline. We expect that future processors and chipsets will have even more hardware instrumentation mechanisms. The most common use of these mechanisms is by programmers to do performance debugging for application code. Also, these mechanisms have been successfully applied to the analysis and tuning of application code through compiler [8] and link-time optimizations, and applied to architecture evaluation. Despite the long history of using hardware instrumentation mechanisms, few studies focused on using them to reactively change kernel and application behavior. We advocate using currently-existing hardware instrumentation mechanisms as the foundation of a kernel performance reflection facility designed to collect real time performance information to reactively modify operating system and application behavior. The rest of the paper is structured as follows: Section 2 describes our approach of using performance reflection. We discuss examples of using performance reflection in OS kernels and in applications in sections 3 and 4, respectively. Section 5 presents related work. Finally, we present our conclusions in section 6.
next up previous
Next: Our Approach Up: Using Performance Reflection in Previous: Using Performance Reflection in
Sameh Mohamed Elnikety 2003-06-15