Over the past few years, the kernel has grown a modern, sophisticated memory model which is exposed directly to the developer and provides portable concurrency primitives across the 20+ architectures supported by mainline. These low-level primitives have been used to construct high-performance, scalable locking implementations in generic code but have not seen much use elsewhere in the tree.

This talk will introduce the various ordering constructs within Linux, showing how to use and reason about them but also offering some tips to help with reviewing code that makes use of them.

Will Deacon, ARM