[$] Lockless algorithms for mere mortals
Time, as some have said, is nature's way of keeping everything fromhappening at once. In today's highly concurrent computers, though, timeturns out not to be enough to keep events in order; that task falls to anextensive set of locking primitives and, below those, the formalized viewof memory known as the Linux kernel memory model. It takes a special kindof mind to really understand the memory model, though; kernel developerslacking that particular superpower are likely to make mistakes when workingin areas where the memory model comes into play. Working at that level isincreasingly necessary for performance purposes, though; a recentconversation points out ways in which the kernel could make that kind ofwork easier for ordinary kernel developers.