I previously interviewed Paul McKenney at Linaro Connect 5 years ago in Hong Kong here, since then he has been working with a lot of things at IBM and this is the first time he’s back at Linaro Connect since that initial interview. He says there might be 20 Billion Linux machines in the world, most of them running on ARM, all of them have Paul McKenney’s Read-Copy Update (RCU) code in them.
Read-copy update (RCU) is a synchronization mechanism that was added to the Linux kernel in October of 2002. RCU achieves scalability improvements by allowing reads to occur concurrently with updates. In contrast with conventional locking primitives that ensure mutual exclusion among concurrent threads regardless of whether they be readers or updaters, or with reader-writer locks that allow concurrent reads but not in the presence of updates, RCU supports concurrency between a single updater and multiple readers. RCU ensures that reads are coherent by maintaining multiple versions of objects and ensuring that they are not freed up until all pre-existing read-side critical sections complete. RCU defines and uses efficient and scalable mechanisms for publishing and reading new versions of an object, and also for deferring the collection of old versions. These mechanisms distribute the work among read and update paths in such a way as to make read paths extremely fast. In some cases (non-preemptable kernels), RCU’s read-side primitives have zero overhead.