Towards Correct-by-Construction Interrupt Routing on Real Hardware

Authors

Lukas Humbel, Reto Achermann, David Cock and Timothy Roscoe

Venue

Proceedings of the 9th Workshop on Programming Languages and Operating Systems (PLOS'17)

Links

[ .doi ] [ .pdf ] [ .bib ]

Abstract

In this paper we address the problem of correctly configuring interrupts. The interrupt subsystem of a computer is increasingly complex: a zoo of different controllers with varying constraints and capabilities form a network with limited connectivity. An OS which aspires to provable correctness must manage a limited set of interrupt vectors, delegate interrupts to device drivers and configure the controllers correctly. No well-specified approach exists.

As a foundation for applying language-level techniques like program sketching and synthesis to this problem, we present a formal model for interrupt routing which can capture all the system topologies and interrupt controllers we have encountered in the wild, show applications of such a model not possible with informal, ad-hoc approaches like DeviceTrees, and finally discuss an implementation based on the model which forms the new interrupt subsystem of the Barrelfish OS.

Bibtex

@inproceedings{Humbel:2017:TCI,
 author = {Humbel, Lukas and Achermann, Reto and Cock, David and Roscoe, Timothy},
 booktitle = {Proceedings of the 9th Workshop on Programming Languages and Operating Systems},
 doi = {10.1145/3144555.3144557},
 id = {Humbel:2017:TCI},
 isbn = {978-1-4503-5153-9},
 location = {Shanghai, China},
 pages = {8--14},
 publisher = {Association for Computing Machinery},
 series = {PLOS'17},
 title = {Towards Correct-by-Construction Interrupt Routing on Real Hardware},
 url = {https://doi.org/10.1145/3144555.3144557},
 year = {2017}
}

Contact

The University of British Columbia
Department of Computer Science
2366 Main Mall
ICICS Building, Office 341
Vancouver, BC V6T 1Z4
Canada

achreto [at] cs.ubc.ca
+1 604 827 2446