GUO Lisong
Supervision : Julia LAWALL
Co-supervision : MULLER Gilles
Boost the Reliability of the Linux Kernel — Debugging Kernel Oopses
When a failure occurs in the Linux kernel, the kernel emits an error report called "kernel oops”, summarizing the execution context of the failure. Kernel oopses describe real Linux errors, and thus can help prioritize debugging efforts and motivate the design of tools to improve the reliability of Linux code. Nevertheless, the information is only meaningful if it is representative and can be interpreted correctly.
In this thesis, we study a collection of kernel oopses over a period of 8 months from a repository that is maintained by Red Hat. We consider the overall features of the data, the degree to which the data reflects other information about Linux, and the interpretation of features that may be relevant to reliability. We find that the data correlates well with other information about Linux, but that it suffers from duplicate and missing information. We furthermore identify some potential pitfalls in studying features such as the sources of common faults and common failing applications.
Furthermore, a kernel oops provides valuable first-hand information for a Linux kernel maintainer to conduct postmortem debugging, since it logs the status of the Linux kernel at the time of a crash. However, debugging based on only the information in a kernel oops is difficult. To help developers with debugging, we devised a solution to derive the offending line from a kernel oops, i.e., the line of source code that incurs the crash. For this, we propose a novel algorithm based on approximate sequence matching, as used in bioinformatics, to automatically pinpoint the offending line based on information about nearby machine-code instructions, as found in a kernel oops. Our algorithm achieves 92% accuracy compared to 26% for the traditional approach of using only the oops instruction pointer. We integrated the solution into a tool named OOPSA, which would relieve some burden for the developers with the kernel oops debugging.
Defence : 12/18/2014
Jury members :
Laurent Réveillère, LaBRI, Bordeaux [rapporteur]
Nicolas Anquetil, Inria, Lille [rapporteur]
Pierre Sens, LIP6, Paris
Nicolas Palix, IMAG, Grenoble
David Lo, SMU, Singapore
Julia Lawall, LIP6, Paris
Gilles Muller, LIP6, Paris
2013-2014 Publications
-
2014
- L. Guo : “Boost the Reliability of the Linux Kernel — Debugging Kernel Oopses”, thesis, phd defence 12/18/2014, supervision Lawall, Julia, co-supervision : Muller, Gilles (2014)
- L. Guo, J. Lawall, G. Muller : “Oops! Where Did That Code Snippet Come From?”, MSR 2014 Proceedings of the 11th Working Conference on Mining Software Repositories, Hyderabad, India, pp. 52-61, (ACM) (2014)
-
2013
- L. Guo, P. Senna Tschudin, K. Kono, G. Muller, J. Lawall : “Oops! What about a Million Kernel Oopses?”, 27 pages (2013)
- L. Guo : “Pinpoint the Offending Code in a Kernel Oops”, ComPAS, Grenoble, France (2013)