GILK: A Dynamic Instrumentation Tool for the Linux Kernel

  • David J. Pearce
  • Paul H. J. Kelly
  • Tony Field
  • Uli Harder
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2324)


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.


Interarrival Time Kernel Module Device Driver Kernel Space Instrument Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ariel Tamches and Barton P. Miller. Fine-grained dynamic instrumentation of commodity operating system kernels. In Operating Systems Design and Implementation, pages 117–130, 1999.Google Scholar
  2. 2.
    Ariel Tamches and Barton P. Miller. Using dynamic kernel instrumentation for kernel and application tuning. The International Journal of High Performance Computing Applications, 13(3):263–276, Fall 1999.CrossRefGoogle Scholar
  3. 3.
    Ariel Tamches. Fine-Grained Dynamic Instrumentation of Commodity Operating System Kernels. PhD thesis, University of Wisconsin, 2001.Google Scholar
  4. 4.
    James R. Larus and Thomas Ball. Rewriting executable files to measure program behavior. Software — Practice and Experience, 24(2):197–218, February 1994.Google Scholar
  5. 5.
    James R. Larus and Eric Schnarr. EEL: machine-independent executable editing. ACM SIGPLAN Notices, 30(6):291–300, June 1995.Google Scholar
  6. 6.
    Han Bok Lee and Benjamin G. Zorn. BIT: A tool for instrumenting Java bytecodes. In Proceedings of the USENIX Symposium on Internet Technologies and Systems (ITS-97), pages 73–82, Berkeley, December 8–11 1997. USENIX Association.Google Scholar
  7. 7.
    Amitabh Srivastava and Alan Eustace. Atom: A system for building customized program analysis tools. ACM SIGPLAN Notices, 29(6):196–205, June 1994.Google Scholar
  8. 8.
    Michael Beck et al. Linux kernel internals. Addison-Wesley, Reading, MA, USA, second edition, 1998.Google Scholar
  9. 9.
    P. Harrison T. Field, U. Harder. Analysis of network traffic in switched ethernet systems., 2001.
  10. 10.
    Gilk: A dynamic instrumentation tool for the linux kernel,

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • David J. Pearce
    • 1
  • Paul H. J. Kelly
    • 1
  • Tony Field
    • 1
  • Uli Harder
    • 1
  1. 1.Imperial College of Science, Technology and MedicineUK

Personalised recommendations