[ Contact Info | Site Index ]

KernInst Overview

Kerninst is a framework for dynamically splicing code into a running kernel, almost anywhere, anytime. Code can be removed and changed at will. Kerninst works on standard (unmodified) Solaris and Linux kernels, *no* kernel re-compilation is necessary. The framework includes an instrumentation daemon (kerninstd) and a kernel module (/dev/kerninst) both running on the host whose kernel is to be instrumented.

KerninstAPI is a C++ application programming interface that allows users to easily construct their own tools for dynamic kernel instrumentation. By linking with the KerninstAPI library, client tools can communicate with kerninstd over the network. The library hides all communication details from the tool writer, keeping the focus on the instrumentation.

The first major client application of KerninstAPI is Kperfmon, a tool that allows the user to collect precise performance data about almost any kernel function or basic block. It supports a wide range of performance metrics, including the hardware counted number of cache misses and branch mis-predictions. These metrics can be applied to the kernel at run time. When you are done with your measurement session, all instrumentation code is removed and the kernel is left as before.



Screen Shots

[ Contact Info | Site Index ]