A sound and complete definition of linearizability on weak memory models

Linearizability is the standard correctness notion for concurrent objects, i.e., objects designed to be accessed simultaneously by multiple threads. In this paper, we explain why the original definition of linearizability is not applicable to code running on the weak memory models supported by modern multicore architectures, and provide an alternative definition which is applicable. In contrast to earlier work, our definition is proved to be both sound and complete. Furthermore, while earlier work has focussed on linearizability for the TSO (Total Store Order) architecture, ours is applicable to any existing weak memory model. We illustrate how it can be used to prove the correctness of a simple case study on the widely used TSO, Power and ARM architectures.

[1]  Peter Sewell,et al.  An operational semantics for C/C++11 concurrency , 2016, OOPSLA.

[2]  Roland Meyer,et al.  Checking and Enforcing Robustness against TSO , 2013, ESOP.

[3]  John Derrick,et al.  A Proof Method for Linearizability on TSO Architectures , 2017, Provably Correct Systems.

[4]  Francesco Zappa Nardelli,et al.  The semantics of power and ARM multiprocessor machine code , 2009, DAMP '09.

[5]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[6]  Oleg Travkin,et al.  SPIN as a Linearizability Checker under Weak Memory Models , 2013, Haifa Verification Conference.

[7]  John Derrick,et al.  Making Linearizability Compositional for Partially Ordered Executions , 2018, IFM.

[8]  W. Marsden I and J , 2012 .

[9]  Scott Owens,et al.  Reasoning about the Implementation of Concurrency Abstractions on x86-TSO , 2010, ECOOP.

[10]  Radha Jagadeesan,et al.  On abstraction and compositionality for weak-memory linearisability , 2018, VMCAI.

[11]  Hongseok Yang,et al.  Liveness-Preserving Atomicity Abstraction , 2011, ICALP.

[12]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[13]  Robert Colvin,et al.  A wide-spectrum language for verification of programs on weak memory models , 2018, FM.

[14]  John Derrick,et al.  Linearizability and Causality , 2016, SEFM.

[15]  Mark Moir,et al.  Concurrent Data Structures , 2004 .

[16]  John Derrick,et al.  A Framework for Correctness Criteria on Weak Memory Models , 2015, FM.

[17]  Graeme Smith,et al.  Relating trace refinement and linearizability , 2017, Formal Aspects of Computing.

[18]  Rajeev Alur,et al.  An Axiomatic Memory Model for POWER Multiprocessors , 2012, CAV.

[19]  John Derrick,et al.  Using Coarse-Grained Abstractions to Verify Linearizability on TSO Architectures , 2014, Haifa Verification Conference.

[20]  Brijesh Dongol,et al.  Contextual Trace Refinement for Concurrent Objects: Safety and Progress , 2016, ICFEM.

[21]  John Derrick,et al.  Mechanically verified proof obligations for linearizability , 2011, TOPL.

[22]  Peter Sewell,et al.  Mathematizing C++ concurrency , 2011, POPL '11.

[23]  Roland Meyer,et al.  Deciding Robustness against Total Store Ordering , 2011, ICALP.

[24]  John Derrick,et al.  A Sound and Complete Proof Technique for Linearizability of Concurrent Data Structures , 2014, TOCL.

[25]  John Derrick,et al.  Defining Correctness Conditions for Concurrent Objects in Multicore Architectures , 2015, ECOOP.

[26]  Sebastian Burckhardt,et al.  Concurrent Library Correctness on the TSO Memory Model , 2012, ESOP.

[27]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

[28]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[29]  Ali Sezgin,et al.  Modelling the ARMv8 architecture, operationally: concurrency and ISA , 2016, POPL.

[30]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[31]  Oleg Travkin,et al.  Handling TSO in Mechanized Linearizability Proofs , 2014, Haifa Verification Conference.

[32]  John Derrick,et al.  Verifying Linearizability on TSO Architectures , 2014, IFM.

[33]  Peter W. O'Hearn,et al.  Abstraction for concurrent objects , 2009, Theor. Comput. Sci..

[34]  Hongseok Yang,et al.  Show No Weakness: Sequentially Consistent Specifications of TSO Libraries , 2012, DISC.

[35]  Jade Alglave,et al.  Understanding POWER multiprocessors , 2011, PLDI '11.

[36]  Jade Alglave,et al.  Herding cats: modelling, simulation, testing, and data-mining for weak memory , 2014, PLDI 2014.

[37]  Francesco Zappa Nardelli,et al.  x86-TSO , 2010, Commun. ACM.