Generation of Debugging Interfaces for Linux Kernel Services

Abstract : The Linux kernel does not export a stable, well-defined kernel interface, complicating the development of kernel-level services, such as device drivers and file systems. While there does exist a set of functions that are exported to external modules, these are continually changing, and have implicit, ill-documented reconditions, which, if not satisfied, can cause the entire system to crash or hang. However, no specific debugging support is provided. In this paper, we present Diagnosys, an approach to automatically constructing a debugging interface for the Linux kernel. In our approach, a designated kernel maintainer uses Diagnosys to identify pre and post conditions on the use of the exported functions. The maintainer then publishes this information for download by service developers, who can use Diagnosys to generate a debugging interface specialized to their code. This interface is then included within a service implementation, such that when the service is tested it records information about potential problems. The recorded information is then made available to the service developer on reboot after a kernel crash or hang. We have tested our approach on several recent releases of the Linux kernel. We first show that the debugging interfaces generated by our approach provide useful log information in the case of faults. We then show that safety holes are prevalent in the Linux kernel, and that many of the functions exported by the Linux kernel to kernel-level services have non-trivial implicit pre and post conditions that must be respected to ensure their safe execution. Finally, we show that our approach incurs only a slight performance penalty.
Document type :
Reports
Complete list of metadatas

Cited literature [1 references]  Display  Hide  Download

https://hal.inria.fr/hal-00641262
Contributor : Gilles Muller <>
Submitted on : Tuesday, November 15, 2011 - 11:54:32 AM
Last modification on : Saturday, July 13, 2019 - 1:14:59 AM
Long-term archiving on : Friday, November 16, 2012 - 10:55:23 AM

File

RR-7800.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-00641262, version 1

Citation

Tegawendé Bissyandé, Laurent Réveillère, Julia L. Lawall, Gilles Muller. Generation of Debugging Interfaces for Linux Kernel Services. [Research Report] RR-7800, INRIA. 2011, pp.28. ⟨hal-00641262⟩

Share

Metrics

Record views

413

Files downloads

193