Using Dynamic Kernel Instrumentation for Kernel and Application Tuning

  • Authors:
  • Ariel Tamches;Barton P. Miller

  • Affiliations:
  • Computer Sciences Department, University of Wisconsin, Madison, Wisconsin, U.S.A.;Computer Sciences Department, University of Wisconsin, Madison, Wisconsin, U.S.A.

  • Venue:
  • International Journal of High Performance Computing Applications
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

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%.