Select Drivers

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


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


Julia . Lawall @ lip6 . fr


The development of Select Drivers is supported in part by OSADL, as part of the SIL2LinuxMP project. Select Drivers is a key part of the joint ANR-NRF ITrans project that supports its continued development. The implementation of Select Drivers was last updated October 24, 2017.