Synchronization primitives (locks) are at the heart of any system, and the Linux kernel is no exception. While lockless algorithms/data structures are an attractive alternative with performance in mind, reality dictates otherwise, many times due to the extra complexity involved. In the kernel, lockless structures are, rather the exception, than the norm.
Davidlohr Bueso will review recent changes and discussions on the topic, including mutexes, rwsems and futexes. The algorithmic ideas behind them will be revisited and uncover some of the issues that can significantly impact overall system scalability. This work has led to important performance benefits on large multi-core systems, spanning a variety of workloads and configurations. Future room for improvements and a look forward on how to address them will also be covered.Survey this Session