Binary Compatible Critical Section Delegation
The paper discusses a new approach to improve performance in high lock contention scenarios through binary compatible critical section delegation. This method replaces the traditional queue of pending threads with a queue of operations, allowing for more efficient execution of code under locks. The authors demonstrate that their approach can significantly enhance performance without requiring changes to existing application code.
- ▪The futex design is effective under low contention but struggles with high contention scenarios.
- ▪The proposed delegation method allows operations to be queued and executed later, reducing cache line bouncing between cores.
- ▪Automatic delegation can be implemented in the OS kernel to enhance the performance of applications using futexes.
Opening excerpt (first ~120 words) tap to expand
Binary Compatible Critical Section DelegationA sneak way to ship code to dataBlake PeltonMar 12, 202611ShareBinary Compatible Critical Section Delegation Junyao Zhang, Zhuo Wang, and Zhe Zhou PPoPP'26The futex design works great when contention is low but leaves much to be desired when contention is high. I generally think that algorithms should be crafted to avoid high lock contention, but this paper offers a contrarian approach that improves performance without code changes.Contention CostsAcquiring a futex involves atomic operations on the cache lines that contain the futex state. In the case of high contention, these cache lines violently bounce between cores.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at Hacker News (Newest).