HackerPapers

arXiv:1610.03052cs.LO

Verification of the Tree-Based Hierarchical Read-Copy Update in the Linux Kernel

Lihao Liang, Paul E. McKenney, Daniel Kroening, Tom Melham

HN submission. Found in a submission link or body. Submitters do not count as commenters in the main ranking; a submission is not an endorsement.

Abstract

Read-Copy Update (RCU) is a scalable, high-performance Linux-kernel synchronization mechanism that runs low-overhead readers concurrently with updaters. Production-quality RCU implementations for multi-core systems are decidedly non-trivial. Giving the ubiquity of Linux, a rare "million-year" bug can occur several times per day across the installed base. Stringent validation of RCU's complex behaviors is thus critically important. Exhaustive testing is infeasible due to the exponential number of possible executions, which suggests use of formal verification. Previous verification efforts on RCU either focus on simple implementations or use modeling languages, the latter requiring error-prone manual translation that must be repeated frequently due to regular changes in the Linux kernel's RCU implementation. In this paper, we first describe the implementation of Tree RCU in the Linux kernel. We then discuss how to construct a model directly from Tree RCU's source code in C, and use the CBMC model checker to verify its safety and liveness properties. To our best knowledge, this is the first verification of a significant part of RCU's source code, and is an important step towards integration of formal verification into the Linux kernel's regression test suite.

arXiv comments
This is a long version of a conference paper published in the 2018 Design, Automation and Test in Europe Conference (DATE)
Journal reference
Design, Automation and Test in Europe Conference (2018): 61-66
DOI
doi:10.23919/DATE.2018.8341980
Subjects
cs.LOLogic in Computer Science cs.DCDistributed, Parallel, and Cluster Computing cs.OSOperating Systems cs.SESoftware Engineering

On Hacker News

No comments linking this paper were found in the collected sources. Found in 2 HN submissions from Oct 2016 to Dec 2018. Open submission discussions.

Comments linking this paper, per year.

Discussed in comments0 threads

No comments linking this paper were found in the collected sources. Open submission discussions.

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.