ATOM: a system for building customized program analysis tools
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
EEL: machine-independent executable editing
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Kitrace: precise interactive measurement of operating systems kernels
Software—Practice & Experience
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Dealing with disaster: surviving misbehaved kernel extensions
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Continuous profiling: where have all the cycles gone?
Proceedings of the sixteenth ACM symposium on Operating systems principles
Sun performance and tuning (2nd ed.): Java and the Internet
Sun performance and tuning (2nd ed.): Java and the Internet
The grid: blueprint for a new computing infrastructure
The grid: blueprint for a new computing infrastructure
Fine-grained dynamic instrumentation of commodity operating system kernels
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
MDL: A Language And Compiler For Dynamic Program Instrumentation
PACT '97 Proceedings of the 1997 International Conference on Parallel Architectures and Compilation Techniques
GILK: A Dynamic Instrumentation Tool for the Linux Kernel
TOOLS '02 Proceedings of the 12th International Conference on Computer Performance Evaluation, Modelling Techniques and Tools
Retargetable and reconfigurable software dynamic translation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Using Phase Behavior in Scientific Application to Guide Linux Operating System Customization
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 10 - Volume 11
Efficient and Safe Execution of User-Level Code in the Kernel
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 10 - Volume 11
Evaluating fragment construction policies for SDT systems
Proceedings of the 2nd international conference on Virtual execution environments
PARSE: A Tool for Parallel Application Run Time Sensitivity Evaluation
ICPADS '06 Proceedings of the 12th International Conference on Parallel and Distributed Systems - Volume 1
DARC: dynamic analysis of root causes of latency distributions
SIGMETRICS '08 Proceedings of the 2008 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Analysis of Linux Scheduling with VAMPIR
ICCS '07 Proceedings of the 7th international conference on Computational Science, Part II
Journal of Systems and Software
An efficient multi-level trace toolkit for multi-threaded applications
Euro-Par'05 Proceedings of the 11th international Euro-Par conference on Parallel Processing
Hi-index | 0.00 |
The authors have designed a new technology--fine-grained dynamic instrumentation of commodity operating system kernels--that can insert runtime-generated code at almost any machine code instruction of an unmodified operating system kernel. This technology is ideally suited for kernel performance profiling, debugging, code coverage, runtime optimization, and extensibility. They have written a tool called KernInst that implements dynamic instrumentation on a stock production Solaris 2.5.1 kernel running on an UltraSparc CPU. They have written a kernel performance profiler on top of KernInst. Measuring kernel performance has a two-way benefit: it can suggest optimizations to both the kernel and applications that spend much of their time in kernel code. In this paper, the authors present their experiences using KernInst to identify kernel bottlenecks when running a Web proxy server. By profiling kernel routines, they were able to understand performance bottlenecks inherent in the proxy's disk cache organization. The authors used this understanding to make two changes--one to the kernel and one to the application--that cumulatively reduce the percentage of elapsed time that the proxy spends opening disk cache files for writing from 40% to 7%.