This paper describes a dynamic instrumentation tool for the Linux Kernel which allows a stock Linux kernel to be modified while in execution, with instruments implemented as kernel modules. The Intel x86 architecture poses a particular problem, due to variable length instructions, which this paper addresses for the first time. Finally we present a short case study illustrating its use in understanding i/o behaviour in the kernel. The source code is freely available for download.
Information from pubs.doc.ic.ac.uk/gilk.