English

Herding Cats - Modelling, simulation, testing, and data-mining for weak memory

Logic in Computer Science 2014-01-10 v5

Abstract

We propose an axiomatic generic framework for modelling weak memory. We show how to instantiate this framework for SC, TSO, C++ restricted to release-acquire atomics, and Power. For Power, we compare our model to a preceding operational model in which we found a flaw. To do so, we define an operational model that we show equivalent to our axiomatic model. We also propose a model for ARM. Our testing on this architecture revealed a behaviour later acknowledged as a bug by ARM, and more recently 33 additional anomalies. We offer a new simulation tool, called herd, which allows the user to specify the model of his choice in a concise way. Given a specification of a model, the tool becomes a simulator for that model. The tool relies on an axiomatic description; this choice allows us to outperform all previous simulation tools. Additionally, we confirm that verification time is vastly improved, in the case of bounded model-checking. Finally, we put our models in perspective, in the light of empirical data obtained by analysing the C and C++ code of a Debian Linux distribution. We present our new analysis tool, called mole, which explores a piece of code to find the weak memory idioms that it uses.

Keywords

Cite

@article{arxiv.1308.6810,
  title  = {Herding Cats - Modelling, simulation, testing, and data-mining for weak memory},
  author = {Jade Alglave and Luc Maranget and Michael Tautschnig},
  journal= {arXiv preprint arXiv:1308.6810},
  year   = {2014}
}
R2 v1 2026-06-22T01:18:06.682Z