Software-Improved Hardware Lock Elision
With hardware transactional memory (HTM) becoming available in mainstream processors, lock-based critical sections may now initiate a hardware transaction instead of taking the lock, enabling their concurrent execution unless a real data conflict occurs. However, just a few transactional aborts can cause the lock to be acquired non-transactionally resulting in the serialization of all the threads, severely degrading the amount of speedup obtained.
In this project we provide two software extension mechanisms that considerably improve the concurrency and speedup levels attained by lock based programs using HTM-based lock elision. The first sacrifices opacity to achieve higher levels of concurrency, and the second retains opacity while reaching slightly lower levels of concurrency.
Software-Improved Hardware Lock Elision. Yehuda Afek, Amir Levy, and Adam Morrison. PODC 2014.
- The software-improved HLE source code package contains the implementations of the lock elision methods described and evaluated in the paper, as well as the HLE-adjusted lock implementation described in the appendix.