2/24 Advanced drivers: synthesis, GPUs, enclaves

Reading

These papers address different problems with different techniques. They also serve as examples of genres of systems research. The first addresses the messiness of real-world system design with techniques from programming languages and formal specification. Papers like this are fun to write and to read. The second smashes two apparently-unrelated system components together and attempts to combine their advantages; here, the components are GPUs and trusted execution environments (secure enclaves).

  1. “Automatic Device Driver Synthesis with Termite”, Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Etienne Le Sueur, Gernot Heiser (SOSP 2009)

  2. “Graviton: Trusted Execution Environments on GPUs”, Stavros Volos, Kapil Vaswani, Rodrigo Bruno (OSDI 2018; presentation available)

Reading questions

One reading question and one broader question.

  1. “Understanding device drivers”, which you read on 2/12, cited Termite, and said “synthesizing driver code may be difficult, as [behavior outside the class definition] may not be possible to synthesize”. How would you change Termite, if at all, to address this critique?

  2. Suggest one or more computer systems experiments (e.g., graphs in papers we’ve read already) you’d like to try to replicate or reproduce, in whole or in part, for our reproduction experiment.1

Further reading

“Enabling OS Research by Inferring Interactions in the Black-Box GPU Stack”, Konstantinos Menychtas, Kai Shen, Michael L. Scott (USENIX ATC 2013)


  1. Reproduction generally means repeating an experiment with the same code and/or artifacts, but a different team. Replication is more valuable, but more difficult; it involves reproducing results with independently-developed artifacts. ↩︎