Porting Linux device drivers to target more recent and older Linux
kernel versions to compensate for the ever-changing kernel interface
is a continual problem for Linux device driver developers. Acquiring
information about interface changes is a necessary, but tedious and
error prone, part of this task. To address this issue, we propose a
tool, Select Drivers, to help the developer collect the needed
information. Select drivers builds on the tool
Prequel for querying
git commit histories. It translates error messages produced by
compiling a driver with a target kernel into appropriate Prequel
queries and then runs thes queries on a git tree to identify relevant
commits. Select drivers has been used in porting 33 device driver
files from their initial versions in the Linux kernel over up to 3
years of Linux kernel history, amounting to hundreds of thousands of
commits. In these experiments, for 3/4 of the porting issues, our
approach highlighted commits that enabled solving the porting task.
For many porting issues, our approach retrieves relevant commits in 30
seconds or less.
git clone https://scm.gforge.inria.fr/anonscm/git/select-new/select-new.git
Julia Lawall, Derek Palinski, Lukas Gnirke, Gilles Muller:
Fast and Precise Retrieval of Forward and Back Porting Information for Linux Device Drivers.
USENIX Annual Technical Conference 2017: 15-26
Installation and usage instructions are available in the file README.md
Julia . Lawall @ lip6 . fr
The development of Select Drivers is supported in part
by OSADL, as part of the
project. The implementation of Select Drivers was last updated
October 24, 2017.