Boost the Reliability of the Linux Kernel: Debugging Kernel Oopses

Résumé : Lorsqu’une erreur survient dans le noyau Linux, celui-ci émet un rapport d’erreur appelé "kernel oops" contenant le contexte d'éxécution de cette erreur. Les kernel oops décrivent des erreurs réelles de Linux, permettent de classer les efforts de débogage par ordre de priorité et de motiver la conception d’outils permettant d’améliorer la fiabilité du code de Linux. Néanmoins, les informations contenues dans un kernel oops n’ont de sens que si elles sont représentatives et qu’elles peuvent être interprétées correctement.Dans cette thèse, nous étudions une collection de kernel oops provenant d’un dépôt maintenu par Red Hat sur une période de huit mois. Nous considérons l’ensemble des caractéristiques de ces données, dans quelle mesure ces données reflètent d’autres informations à propos de Linux et l’interprétation des caractéristiques pouvant être pertinentes pour la fiabilité de Linux. Nous constatons que ces données sont bien corrélées à d’autres informations à propos de Linux, cependant, elles souffrent parfois de problèmes de duplication et de manque d’informations. Nous identifions également quelques pièges potentiels lors de l’étude des fonctionnalités, telles que les causes d’erreurs fréquentes et les causes d’applications défaillant fréquemment.En outre, un kernel oops fournit des informations précieuses et de première main pour un mainteneur du noyau Linux lui permettant d’effectuer le débogage post-mortem car il enregistre l’état du noyau Linux au moment du crash. Cependant, le débogage sur la seule base des informations contenues dans un kernel oops est difficile. Pour aider les développeurs avec le débogage, nous avons conçu une solution afin d’obtenir la ligne fautive à partir d’un kernel oops, i.e., la ligne du code source qui provoque l’erreur. Pour cela, nous proposons un nouvelalgorithme basé sur la correspondance de séquences approximative utilisé dans le domaine de bioinformatique. Cet algorithme permet de localiser automatiquement la ligne fautive en se basant sur le code machine à proximité de celle-ci et inclus dans un kernel oops. Notre algorithme atteint 92% de précision comparé à 26% pour l’approche traditionnelle utilisant le débogueur gdb. Nous avons intégré notre solution dans un outil nommé OOPSA qui peut ainsi alléger le fardeau pour les développeurs lors du débogage de kernel oops.
Type de document :
Thèse
Computer Science [cs]. UPMC, Paris Sorbonne, 2014. English
Liste complète des métadonnées

Littérature citée [119 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/tel-01096662
Contributeur : Julia Lawall <>
Soumis le : mercredi 17 décembre 2014 - 20:54:30
Dernière modification le : jeudi 22 novembre 2018 - 14:23:40
Document(s) archivé(s) le : lundi 23 mars 2015 - 16:08:32

Licence


Distributed under a Creative Commons Paternité - Pas d'utilisation commerciale - Pas de modification 4.0 International License

Identifiants

  • HAL Id : tel-01096662, version 1

Citation

Lisong Guo. Boost the Reliability of the Linux Kernel: Debugging Kernel Oopses. Computer Science [cs]. UPMC, Paris Sorbonne, 2014. English. 〈tel-01096662〉

Partager

Métriques

Consultations de la notice

383

Téléchargements de fichiers

536