Next: Our Approach
Up: Using Performance Reflection in
Previous: Using Performance Reflection in
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: Our Approach
Up: Using Performance Reflection in
Previous: Using Performance Reflection in
Sameh Mohamed Elnikety
2003-06-15