Verifying read-copy-update in a logic for weak memory

Joseph Tassarotti, Derek Dreyer, Viktor Vafeiadis

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Read-Copy-Update (RCU) is a technique for letting multiple readers safely access a data structure while a writer concurrently modifies it. It is used heavily in the Linux kernel in situations where fast reads are important and writes are infrequent. Optimized implementations rely only on the weaker memory orderings provided by modern hardware, avoiding the need for expensive synchronization instructions (such as memory barriers) as much as possible. Using GPS, a recently developed program logic for the C/C++11 memory model, we verify an implementation of RCU for a singlylinked list assuming "release-acquire" semantics. Although releaseacquire synchronization is stronger than what is required by real RCU implementations, it is nonetheless significantly weaker than the assumption of sequential consistency made in prior work on RCU verification. Ours is the first formal proof of correctness for an implementation of RCU under a weak memory model.

Original languageEnglish (US)
Title of host publicationPLDI 2015 - Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation
EditorsSteve Blackburn, David Grove
PublisherAssociation for Computing Machinery
Pages110-120
Number of pages11
ISBN (Electronic)9781450334686
DOIs
StatePublished - Jun 3 2015
Event36th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2015 - Portland, United States
Duration: Jun 13 2015Jun 17 2015

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
Volume2015-June

Conference

Conference36th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2015
Country/TerritoryUnited States
CityPortland
Period6/13/156/17/15

Keywords

  • C/C++
  • Concurrency
  • Program logic
  • RCU
  • Separation logic
  • Weak memory models

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Verifying read-copy-update in a logic for weak memory'. Together they form a unique fingerprint.

Cite this