Applying formal verification to microkernel IPC at meta

Quentin Carbonneaux, Noam Zilberstein, C. Klee, P. O'Hearn, Francesco Zappa Nardelli
{"title":"Applying formal verification to microkernel IPC at meta","authors":"Quentin Carbonneaux, Noam Zilberstein, C. Klee, P. O'Hearn, Francesco Zappa Nardelli","doi":"10.1145/3497775.3503681","DOIUrl":null,"url":null,"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.","PeriodicalId":196529,"journal":{"name":"Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs","volume":"45 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-01-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3497775.3503681","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
形式验证在微内核IPC上的应用
我们使用Iris (Coq证明助手中的并发分离逻辑实现)来验证正在开发的操作系统中用于进程间通信的两个队列数据结构。我们的动机是双重的。首先,我们希望利用正式的验证来增强人们对这个经过多次修订的工业法规的信心。其次,我们的目标是获得关于在我们的工业环境中应用最先进的正式验证工具的成本-收益权衡的信息。在这两个方面,我们的努力都取得了成功。验证工作证明了队列算法是正确的,并发现了四种算法简化以及客户端代码中的错误。这些简化包括删除两个内存屏障、一个原子负载和一个布尔检查,所有这些都在操作系统的性能敏感部分。删除冗余布尔检查会发现在多个设备驱动程序中意外使用未初始化的内存,这是修复的。证明工作是由不熟悉Iris的工程师在几个月而不是几年的时间内完成的。这些发现促使Meta进一步使用验证方法。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
The sel4 verification: the art and craft of proof and the reality of commercial support (invited talk) Verbatim++: verified, optimized, and semantically rich lexing with derivatives Reflection, rewinding, and coin-toss in EasyCrypt Mechanized verification of a fine-grained concurrent queue from meta’s folly library Certified abstract machines for skeletal semantics
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1