Applying formal verification to microkernel IPC at meta

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

We use Iris, an implementation of concurrent separation logic in the Coq proof assistant, to verify two queue data structures used for inter-process communication in an operating system under development. Our motivations are twofold. First, we wish to leverage formal verification to boost confidence in a delicate piece of industrial code that was subject to numerous revisions. Second, we aim to gain information on the cost-benefit tradeoff of applying a state-of-the-art formal verification tool in our industrial setting. On both fronts, our endeavor has been a success. The verification effort proved that the queue algorithms are correct and uncovered four algorithmic simplifications as well as bugs in client code. The simplifications involve the removal of two memory barriers, one atomic load, and one boolean check, all in a performance-sensitive part of the OS. Removing the redundant boolean check revealed unintended uses of uninitialized memory in multiple device drivers, which were fixed. The proof work was completed in person months, not years, by engineers with no prior familiarity with Iris. These findings are spurring further use of verification at Meta.

Original languageEnglish
Title of host publicationCPP 2022 - Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs, co-located with POPL 2022
EditorsAndrei Popescu, Steve Zdancewic
PublisherAssociation for Computing Machinery, Inc
Pages116-129
Number of pages14
ISBN (Electronic)9781450391825
DOIs
Publication statusPublished - 11 Jan 2022
Externally publishedYes
Event11th ACM SIGPLAN International Conference on Certified Programs and Proofs, CPP 2022 - co-located with POPL 2022 - Philadelphia, United States
Duration: 17 Jan 202218 Jan 2022

Publication series

NameCPP 2022 - Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs, co-located with POPL 2022

Conference

Conference11th ACM SIGPLAN International Conference on Certified Programs and Proofs, CPP 2022 - co-located with POPL 2022
Country/TerritoryUnited States
CityPhiladelphia
Period17/01/2218/01/22

Keywords

  • circular queue
  • concurrency
  • program verification
  • separation logic
  • systems

Fingerprint

Dive into the research topics of 'Applying formal verification to microkernel IPC at meta'. Together they form a unique fingerprint.

Cite this