TY - GEN
T1 - Coping with context switches in lock-based software transactional memory
AU - Afek, Yehuda
AU - Cohen, Yoav
AU - Morrison, Adam
PY - 2011
Y1 - 2011
N2 - Lock-based software transactional memory algorithms do not perform well in workloads with a high rate of context switches, which is caused for example by scheduling events or page faults. This occurs since threads that are switchedout by the operating system while holding locks block other threads from progressing, causing their transactions to abort repeatedly. We present here Lock Stealing, a novel contention management algorithm for minimizing the effect of context switches by enabling threads to acquire locks which are held by other threads. While some methods addressing this problem exist (e.g., schedctl in Solaris) they are best effort and only cover scheduling related context switches. In addition, they are platform specific and thus are not suitable or available in managed runtimes such as Java or.NET. In contrast, our approach is solely based on user-level code and is decoupled from specific operating system events. We evaluate the performance of our approach on a set of benchmarks and observe improvements in both micro benchmarks and more elaborate test applications.
AB - Lock-based software transactional memory algorithms do not perform well in workloads with a high rate of context switches, which is caused for example by scheduling events or page faults. This occurs since threads that are switchedout by the operating system while holding locks block other threads from progressing, causing their transactions to abort repeatedly. We present here Lock Stealing, a novel contention management algorithm for minimizing the effect of context switches by enabling threads to acquire locks which are held by other threads. While some methods addressing this problem exist (e.g., schedctl in Solaris) they are best effort and only cover scheduling related context switches. In addition, they are platform specific and thus are not suitable or available in managed runtimes such as Java or.NET. In contrast, our approach is solely based on user-level code and is decoupled from specific operating system events. We evaluate the performance of our approach on a set of benchmarks and observe improvements in both micro benchmarks and more elaborate test applications.
KW - Software transactional memory
KW - Thread oversubscription
UR - http://www.scopus.com/inward/record.url?scp=79960102659&partnerID=8YFLogxK
U2 - https://doi.org/10.1145/1987816.1987831
DO - https://doi.org/10.1145/1987816.1987831
M3 - منشور من مؤتمر
SN - 9781450307734
T3 - ACM International Conference Proceeding Series
BT - Proceedings of the 4th Annual International Systems and Storage Conference, SYSTOR 2011
T2 - 4th Annual International Systems and Storage Conference, SYSTOR 2011
Y2 - 30 May 2011 through 1 June 2011
ER -