Fast and Precise Retrieval of Forward and Back Porting Information for Linux Device Drivers

Authors: 

Julia Lawall, Derek Palinski, Lukas Gnirke, and Gilles Muller, Sorbonne Universités/UPMC/Inria/LIP6

Abstract: 

Porting Linux device drivers to target more recent and older Linux kernel versions to compensate for the everchanging 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. In this paper, we propose two tools, Prequel and gcc-reduce, to help the developer collect the needed information. Prequel provides language support for querying git commit histories, while gcc-reduce translates error messages produced by compiling a driver with a target kernel into appropriate Prequel queries. We have used our approach in porting 33 device driver files 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.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

BibTeX
@inproceedings {203203,
author = {Julia Lawall and Derek Palinski and Lukas Gnirke and Gilles Muller},
title = {Fast and Precise Retrieval of Forward and Back Porting Information for Linux Device Drivers},
booktitle = {2017 USENIX Annual Technical Conference (USENIX ATC 17)},
year = {2017},
isbn = {978-1-931971-38-6},
address = {Santa Clara, CA},
pages = {15--26},
url = {https://www.usenix.org/conference/atc17/technical-sessions/presentation/lawall},
publisher = {USENIX Association},
month = jul
}

Presentation Audio