Applying Formal Verification to Microkernel IPC at Meta

被引:5
|
作者
Carbonneaux, Quentin [1 ]
Zilberstein, Noam [2 ,3 ]
Klee, Christoph [2 ]
O'Hearn, Peter W. [4 ,5 ]
Nardelli, Francesco Zappa [1 ]
机构
[1] Meta, Paris, France
[2] Meta, Menlo Pk, CA USA
[3] Cornell Univ, Ithaca, NY 14853 USA
[4] Meta, London, England
[5] UCL, London, England
基金
英国工程与自然科学研究理事会;
关键词
circular queue; concurrency; program verification; separation logic; systems;
D O I
10.1145/3497775.3503681
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:116 / 129
页数:14
相关论文
共 50 条
  • [1] Comprehensive Formal Verification of an OS Microkernel
    Klein, Gerwin
    Andronick, June
    Elphinstone, Kevin
    Murray, Toby
    Sewell, Thomas
    Kolanski, Rafal
    Heiser, Gernot
    [J]. ACM TRANSACTIONS ON COMPUTER SYSTEMS, 2014, 32 (01):
  • [2] Formal Verification of Functional Correctness for Mutexes in Microkernel
    Zhang, Lin-Yan
    Li, Xi-Meng
    Shi, Zhi-Ping
    Guan, Yong
    Cao, Qin-Xiang
    Zhang, Qian-Ying
    [J]. Ruan Jian Xue Bao/Journal of Software, 2024, 35 (09):
  • [3] Formal Verification of a Microkernel Used in Dependable Software Systems
    Baumann, Christoph
    Beckert, Bernhard
    Blasum, Holger
    Bormer, Thorsten
    [J]. COMPUTER SAFETY, RELIABILITY, AND SECURITY, PROCEEDINGS, 2009, 5775 : 187 - +
  • [4] Research on Microkernel Integrity Semantics Model and Formal Verification
    Qian Zhenjiang
    Liu Wei
    Huang Hao
    [J]. CHINESE JOURNAL OF ELECTRONICS, 2014, 23 (01) : 43 - 48
  • [5] Research on Microkernel Integrity Semantics Model and Formal Verification
    QIAN Zhenjiang
    LIU Wei
    HUANG Hao
    [J]. Chinese Journal of Electronics, 2014, 23 (01) : 43 - 48
  • [6] Applying formal verification with protocol compiler
    Stangier, C
    Holtmann, U
    [J]. EUROMICRO SYMPOSIUM ON DIGITAL SYSTEMS DESIGN, PROCEEDINGS, 2001, : 165 - 169
  • [7] On Applying Model Checking in Formal Verification
    Hjort, Hakan
    [J]. 2022 FORMAL METHODS IN COMPUTER-AIDED DESIGN, FMCAD, 2022, 3 : 3 - 3
  • [8] Experiences in Applying Formal Verification in Robotics
    Walter, Dennis
    Taeubig, Holger
    Lueth, Christoph
    [J]. COMPUTER SAFETY, RELIABILITY, AND SECURITY, 2010, 6351 : 347 - 360
  • [9] Research on method of formal design and verification of memory management based on microkernel architecture
    Qian Z.-J.
    Liu Y.-J.
    Yao Y.-F.
    Tang L.
    Huang H.
    Song F.-M.
    [J]. 1600, Chinese Institute of Electronics (45): : 251 - 256
  • [10] Applying formal techniques in simulation-based verification
    Zhu, YS
    [J]. 2005 6TH INTERNATIONAL CONFERENCE ON ASIC PROCEEDINGS, BOOKS 1 AND 2, 2005, : 946 - 951