Feature consistency in compile-time-configurable system software: facing the linux 10,000 feature problem

  • Authors:
  • Reinhard Tartler;Daniel Lohmann;Julio Sincero;Wolfgang Schröder-Preikschat

  • Affiliations:
  • Friedrich-Alexander University Erlangen-Nuremberg , Erlangen, Germany;Friedrich-Alexander University Erlangen-Nuremberg , Erlangen, Germany;Friedrich-Alexander University Erlangen-Nuremberg , Erlangen, Germany;Friedrich-Alexander University Erlangen-Nuremberg , Erlangen, Germany

  • Venue:
  • Proceedings of the sixth conference on Computer systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Much system software can be configured at compile time to tailor it with respect to a broad range of supported hardware architectures and application domains. A good example is the Linux kernel, which provides more than 10,000 configurable features, growing rapidly. From the maintenance point of view, compile-time configurability imposes big challenges. The configuration model (the selectable features and their constraints as presented to the user) and the configurability that is actually implemented in the code have to be kept in sync, which, if performed manually, is a tedious and error-prone task. In the case of Linux, this has led to numerous defects in the source code, many of which are actual bugs. We suggest an approach to automatically check for configurability-related implementation defects in large-scale configurable system software. The configurability is extracted from its various implementation sources and examined for inconsistencies, which manifest in seemingly conditional code that is in fact unconditional. We evaluate our approach with the latest version of Linux, for which our tool detects 1,776 configurability defects, which manifest as dead/superfluous source code and bugs. Our findings have led to numerous source-code improvements and bug fixes in Linux: 123 patches (49 merged) fix 364 defects, 147 of which have been confirmed by the corresponding Linux developers and 20 as fixing a new bug.