Finding and burying Configuration Defects in Linux with the undertaker

Session information has not yet been published for this event.


One Line Summary

Finding and burying Configuration Defects in Linux with the undertaker


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 con-
figurability 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 man-
ually, 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/super-
fluous source code and bugs. Our findings have led to numer-
ous 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.

Presentation Materials